Azure - The Microsoft Cloud
Azure is Microsoft’s Cloud computing platform. It features at time of writing 54 global data centres which is more than any competing cloud provider. In the UK there are 2 Azure datacentres, UK West and UK South which are the primary locations I use for server infrastructure. As there are 2 UK datacentres I can geo-replicate your environments between them so if your primary data centre, lets assume UK west experiences degradation it will automatically failover to UK South resulting in zero downtime for your customers.
Azure offers flexibility to scale on demand with a large choice of IaaS, PaaS and SaaS offerings from both Microsoft and open source vendors.
When working with clients that are interested in migrating to Azure I will give a breakdown on the estimated monthly costs and what services I recommend you invest in to gradually replace your onPrem hardware. I will provide an architectural diagram so you can visualize your cloud environment, resource types and scale. Once you’re happy Ill proceed to gradually move your infrastructure to Azure ensuring downtime is kept to near zero.
Azure allows you to offset the cost of maintaining physical servers. This allows you to focus more on software development while not having to worry about bottlenecks, scaling issues and the lifespan of your OnPrem hardware. This will prove invaluable as your business grows and customer demand for your applications increases.
Scale up when required
Scalability is one of the major benefits of cloud computing. Allow me to configure your Azure environment to auto scale to handle increased customer demand.
Migrate your OnPrem Servers to Azure PaaS
Move away from the hassle of VMs and instead to Azure's Platform as a Service (PaaS) offerings such as App Services and SQL Azure.
Pay as you Go
Only pay for what you use. Gone are the days of having to invest in expensive hardware to manage traffic spikes. With Azure it will scale automatically based on traffic and hardware utilization. Then once the spike is over it will scale back down to normal. You just pay the difference.
AzureDevOps and Deployment
Azure makes deployment from visual studio very simple, but by combing your infrastructure with AzureDevOps you can create very powerful deployment routines that are 100% automated.
JGilmartn - Recent Azure Experience
I have been using Azure for the past 6 years. Back then I was working on a commercial website that was experiencing OnPrem network bottlenecks. This became an issue during busy times which for that business was out of hours, between 8pm and 10pm. An area of the website that was under heavy load was the product images. It wasn’t possible to move the whole environment to Azure so to alleviate network load I provisioned a Azure CDN (Content Delivery Network) and updated the existing image import app to copy the images to Azure and return the CDN URLs. This significantly helped with the network issues and reduced the slowdowns during peak times.
A few years ago I was working with a website that had severe performance issues. The environment was fully OnPrem hosted in their own datacentre. This in itself caused many issues with downtime due to power loss and other issues. The infrastructure was essentially overkill. 5 high spec Virtual Machines each one featuring multi core CPUs and 32GB of RAM, connected to a hardware load balancer. The website was very slow but when remoting into the VMs to check resource monitor, the memory was at less than 1GB and the CPU’s barely breaking a sweat at 5% utilization. This is a prime example of underutilized hardware resources. After a few weeks of investigation and a number of red herrings I discovered that the slowdown was related to a legacy PowerShell script that restarted the AppPool every 60 seconds. However, once the issue was solved I alerted the owners that the infrastructure was far too underutilized and we should move it to Azure. The website used an old CMS system that only supported classic AppPool in IIS. Furthermore it used .htaccess for URL rewrite. This was not supported by AppServices. It also had a legacy SQL Server feature dependency not supported in SQL Azure. Unfortunately, the website would not run using PaaS App Services and PaaS SQL Azure, so instead we used Virtual Machines, 2 web servers and 2 database servers geo-replicated between UK South and UK West. The cost of these was significantly less than running and maintaining the existing onPrem VMs. They were eventually decommissioned and reallocated into Hyper-V servers and their resources split for other business applications.
The vast majority of modern apps I have developed, most specifically WebAPI Services and MVC Web Apps are all hosting using Azure’s PaaS offering for web servers (App Services) and SQL (SQL Azure). This offers many advantages as there is no need to manage a virtual server instead just settings and configuration. With PaaS you don’t need to update the OS, manage the networking or .NET version, all that is handled by Microsoft. From experience, everything should be PaaS unless you have an app that has a legacy dependency that is not supported. In this scenario you will need a VM.