Drawbacks to Team Foundation Service and TFS on Azure - azure

I'm an MSDN subscriber beginning a personal project that will involve WPF, Web Services, and SQL Server. I'm planning on using my MSDN benefits to host the Web Services on Azure and the database on SQL Azure.
I was going to run TFS on my own dev machine, but then heard about Microsoft's Team Foundation Service cloud offering. Also, it appears that I could run my own instance of TFS on Azure. At this point I'm thinking that Team Foundation Service is the best option because:
I'd prefer to have TFS in the cloud over my main dev machine so that I can access it anywhere and not have to worry about having to back it up.
I'd rather not have to worry about setting up and administrating TFS on Azure if I'm not getting anything extra out of it.
I'm not exactly sure if setting up and using TFS on Azure will be free (or continue to be free) with my MSDN Subscription.
Has anyone experienced any major drawbacks to using Team Foundation Service, like a major loss of flexibility or functionality?

I've been using TFS Services since it has been in preview for my personal work - and I haven't had any limitations in terms of source control/build services. The service is fairly comparable to the full TFS server; but doesn't include the more advanced features such as test automation.
The pricing page also states that service will continue to remain free for MSDN subscribers: https://tfs.visualstudio.com/en-us/pricing/information/

Before TFSPreview existed, I asked some people in the know at MS about running TFS in Azure and I was told that there are some non-trivial problems with running TFS on a virtual machine on Azure. I believe this is why MS are offering TFS as a service rather than as a template for a virtual machine. As such, if you want to use TFS and you want it to be in the cloud, I'd definitely use the TFS Preview.

Related

Best practices when deploying Dynamics CRM to Azure virtual machines

Are there any recent best practices / guidance for deploying Dynamics CRM (eg 2016) to Azure virtual machine IaaS (eg Windows Server 2016)?
In case you ask, we are pursuing this to control licensing costs.
I'm familiar with the Microsoft whitepaper from 2015, Deploying Microsoft Dynamics CRM in Microsoft Azure Virtual Machines, but it is somewhat dated and Azure / cloud service providers have evolved tremendously in the past 4 years.
Are there any newer best practices / guidance? Are there any gottchas?
I've looked in some depth at SQL Server 2016 on Azure virtual machines, some examples of the Azure-specific guidance there would be:
tempdb on D: ephemeral disk (credit Brent Ozar)
backups on storage blogs mapped by URI (credit Microsoft in DBA Stack Exchange)
storage spaces (pools) for enhanced performance of Azure data disks
several Azure Quickstart Templates for SQL Server
etc
There is no mention of Dynamics (CRM or otherwise on-server) in the Azure Quickstart Templates.
I'm looking for equivalent guidance for Dynamics CRM on Azure VMs.
You are probably not going to find any Azure Templates for CRM because Microsoft is generally trying to push everyone to use Dynamics 365 Online. Without knowing your situation, that would always be my recommendation since you're essentially trying to create a cloud hosting solution for a product with a cloud hosting solution.
However, I understand that there are circumstances that would prevent this.
With that said, the guide seems relevant even if it's outdated. You can still set up the VMs using the plan recommended in the guide even if the steps may change.
Also, whenever I set up on-prem hosting, I would need to set up an ADFS server. This was always a separate VM that only ran ADFS and nothing else. Fortunately, Microsoft Docs have a pretty reference for creating ADFS in Azure.
https://learn.microsoft.com/en-us/windows-server/identity/ad-fs/deployment/how-to-connect-fed-azure-adfs

What is the most covered way of scripting Azure resources?

I know of ARM, the REST SDK and the CLI Powershell cmdlets.
What I want to know is; which of these has the most extensive support for scripting resources without having to touch the (indeed very slow) Azure Portal?
And I would also really like to know which one of these Microsoft usually ship first with regards to preview features?
Each service in Azure is exposed using a REST API. Most of those APIs are publically supported. Some aren't.
It depends on the team that builds the elements that make up Azure and often their primary customer base. The Windows IaaS and AAD teams have been mostly PowerShell first. Machine learning and AI seem to favor azure-cli, which is built in Python, a very commonly used language in big data scenarios. The Azure Devops team has recently moved from the Visual Studio to the Azure brand (formerly Visual Studio Team Services, Visual Studio Online, Team Foundation Service preview). Their tools are mostly Node and Powershell based. Not everything in Azure is a "Resource", per se. So not all things are created or updated using Azure Resource Manager Templates (ARM).
So, unfortunately, there is no golden hammer when it comes to automating Azure.
Azure REST Api is, obviously, the best way to go, but its the least convenient (there probably is a better word for this). I really like arm templates, they (basically) allow you to define REST api calls you want to do and allow to do some looping\parametrizing\etc. As arm templates are just a proxy for the rest api, they usually work really well.

Hosting TFS on Azure or AWS

We will be hosting TFS in a private cloud on VM(s). Are there technical differences to hosting TFS on Azure or AWS, or is it only a matter of pricing and which cloud a team prefers and has past knowledge of? I also think we won't go the Visual Studio Online route.
At InCycle, we have a full TFS 2015 installation hosted in Azure spread across something like 6-8 VMs. You'll need to take into account the standard considerations (virtual machine sizing and performance), especially on the data tier, which should have plenty of fast disks and lots of CPU and RAM.
You'll also need to consider Active Directory sync and how you'll get access to things like build drops on-premise from Azure.
Honestly, VSO will almost certainly be a lot cheaper for you, and you won't have to worry about the infrastructure requirements or upgrading TFS on a regular basis.
The ALM rangers have excellent guidance on this, as well: http://blogs.msdn.com/b/bharry/archive/2014/06/06/team-foundation-server-on-azure-iaas-guidance.aspx

Microsoft reporting services 2012 deployable to the cloud

I have a quick question on microsofts reporting service. I know SSRS 2012 is their desktop version and they also have Azure reporting services, but what I would like to know is it possible to host the SSRS 2012 on the cloud and use this directly. I am picking up contradicting advice on the web with regards this, I am worried about using Azure because they limit you to using the Azure database.
What I'm looking to do, is to have a reporting service hosted on the cloud but without any restriction on data sources.
thanks
mark

Is azure for big applications only?

I've recently been asked to redevelop an .Net 2.0 WinForms application with a back end SQL Server Express DB.
One of the requirements is to allow remote users access to the application, so I've been considering hosted options to avoid VPN setup. The data is not sensitive and does not fall under data protection act, so a basic security approach for the web will cover me.
I like the idea of using Azure for a few reasons, but I'm not sure if a good fit for a users base of 5 or 6 with no real scope to grow. I've never used Azure and I plan to develop using MVC and a SQL backend as this is my main skillset.
A few points in favour of Azure in my mind are:
Tight integration with the TFS preview that I'm using for this project
Easy to setup a sandpit and a live version
Easy maintenance as I expect other hosted options will require more knowledge of underlying OS
Sticking to a full Microsoft stack should hopefully make things simpler
From what I find on the Azure site the message is all about scalability, which is great if you need it.
My question is simply, do you need a large user base, or plans to grow quickly, to use azure or is it how we should be hosting apps now?
What you're asking here is the perfect case for Windows Azure Web Sites:
You get 10 web sites for free (no custom DNS, but this is perfect for your 'sandpit'/test version). The shared mode supports custom DNS and is very cheap.
Tight integration with TFS preview and GitHub
You don't need to worry about the underlying OS, you simply publish from Visual Studio or with TFS Preview.
Sticking to the Microsoft stack is the easiest solution, but other technologies work great aswell. Since you're talking about MVC I'm assuming you are considering ASP.NET MVC, which is a perfect match with Windows Azure. Take a look at the training kit for some good examples.
The day you'll need a solution which more scalable (meaning you'll have more users and more income) you can easily upgrade to a reserved instance or to a Cloud Service (Web/Worker Role).
About your question: "My question is simply, do you need a large user base, or plans to grow quickly, to use azure or is it how we should be hosting apps now?"
Windows Azure is a cloud service platform (includes PaaS as Cloud Services, IaaS as Windows Azure Virtual Machines and also Websites suggest by Sandrino above), and with cloud services you have ability to start very small and grow as much and as quickly as your user requirement is, so you can use Azure with both cases. On the other hand there are some advantages using certain offering depend on your which service you are going to use to run your application.
I think article (Section: "What Should I Use? Making a Choice") will explain the strategy about how you make a selection among various services.
This SO discussion does talks about the difference between cloud Services and Azure WebSites as well.

Resources