Your Future, in the cloud.
Azure is amazing. It can fundamentally change your organization. When mindfully used, it can not only reduce your applications total cost of ownership, it can help you refocus the way you do software development. But in order to understand how it can change your organization, you need to understand the three basic service models that define Azure’s service offering. Once you understand these three service models, you’ll have the core tools needed to define your long-term application development strategy as it relates to the cloud. The three cloud service models I’m referring to are SaaS, IaaS, and PaaS, or Software as a Service, Infrastructure as a Service and Platform as a Service.
Azure as 3 four letter words
Before describing SaaS, IaaS and Paas, I’m going to set the stage. Let’s say your company has a web-based music cataloging application. We’ll call it AudioLeaf. Your customers use your application to track their music collection. As a side benefit, they can also purchase music from an e-Commerce portion of your website. You currently host the website on your on-premise servers. Your developers do all their development locally. They do their testing on environments hosted on local machines. Testers run their tests on the Test environment, which is hosted on another, which is local. The database team manages the SQL servers which host both the information for each customer’s music library as well as well as the eCommerce transaction data. The IT Infrastructure team is responsible for provisioning the servers in support of development and testing. The deployment team oversees the deployment of the website application to the webservers which are managed by the operations team. Webservers are hosted by a well-known ISP.
The CIO has tasked you with defining the company’s long-term strategy for using Azure and needs to understand how to best use Microsoft’s cloud services. Here’s what you should know.
Software as a service, or SaaS refers to a product that is centrally hosted and managed, and is often licensed through a subscription model. Office 365 and Visual Studio Online are examples of Software as a Service. They provide services and features yet are centrally hosted and managed.
Using the cloud for SaaS provides several benefits. 1) Hosting and uptime are the responsibility of any cloud-service provider that (presumably) is an expert in the area and will provide better uptime and hosting functionality than an on-premise hosting solution. 2) Geographic distribution of access points means people from around the world will be able to access the application from a node that is nearest them, and 3) Total cost of ownership of the infrastructure is potentially reduced because its management costs are more evenly distributed across all the customers using Azure.
In our example, AudioLeaf is currently hosted on premise. There are a couple of ways to take advantage of the Azure’s SaaS capabilities, and each has it’s pro’s and con’s. One way is to just recreate our on-premise infrastructure in-the-cloud.
Providers of infrastructure as a server, or IaaS, offer physical or virtual machines as resources. Typically, cloud service providers offer virtual servers, virtual disk storage, raw block storage, firewalls, network load balancers, VLANs, etc. The list goes on. The advantage of using IaaS is that you will likely have a lot more flexibility and resource availability using cloud-based IaaS then you would using your own infrastructure.
Using IaaS provides several benefits. 1) Creating a virtual machine is generally easy and quick. 2) It’s easier to scale a virtual machine than a physical one. 3) The cost of managing a virtual machine can be nominal compared to the fully-burdened cost of managing a physical one.
In our example, AudioLeaf, we could, in Azure, create a virtual machine configured as a web server and a virtual machine configured as a SQL Server, configure them to reflect our existing environments and then move our website to the Azure-hosted virtual machines, essentially replicating our on-premise environment, in the cloud. By moving to Azure we reduce the cost of managing on-site webservers and database servers. We reduce the cost of having to keep up with firewall and DMZ configuration, and we can focus our efforts on what we do best – develop great software. In addition, the long-term cost of hardware maintenance and replacement go away as that burden is now on the shoulders of the cloud-service provider.
Keep in mind that we have not removed the need to have a DBA or system administrators. We still need experts who can manage the virtual machines and the databases – we’ve just moved the infrastructure to the cloud and therefore still need to manage the virtual infrastructure.
Infrastructure as a service offers us a way to easily create server and networking technologies that would otherwise require us to purchase expensive hardware to support. Organizations that want to remove the expense of managing virtual machines and database infrastructure have another option – Platform as a Service or PaaS.
PaaS providers offer a platform and a solution stack that enables the customer to create applications that will be hosted by the cloud-service provider. The advantage of using PaaS is that customers can spend more time focusing on the application they are building and less time on the infrastructure required to host it.
In our example, AudioLeaf, we would have Azure host our website, and we would have their large-data storage objects house our data and not rely on our own managed server infrastructure. With proper coding we can take advantage of the auto-scaling built into the cloud-service infrastructure and we wouldn’t need to be concerned about spinning up another webserver to handle increased traffic or load-balancing. That would be done automatically by the provider. In addition, we wouldn’t need to have to physically add more disk space because the host provider could provide us with the ability to grow our space as we needed it. By moving our website to Azure’s Platform as a Service, we can reduce the cost of infrastructure management and we reduce the risk exposure of having insufficient space of data or capacity for more users. By removing the need for infrastructure management and network management, we can focus on what we do best – developing awesome software.
Keep in mind that our developers will need to become familiar with the Azure API’s and framework to take full advantage of it’s capabilities. Platform as a Service offers us a way to easily host our software solutions while maintaining the ability to scale our solution as needed. It takes away the need to manage on-premise infrastructure and empowers us to focus on what we do best.
How to view it
Moving your software to Azure is not incredibly difficult. Doing it right, however, requires mindful planning and a thoughtful strategy. A staged approach, using IaaS and then rebuilding to support PaaS is usually how organizations move to cloud technologies, but there are many considerations – do you have adequate resources to manage your current environment, is your current infrastructure plagued with issues, how agile are you with giving your development team the infrastructure it needs to build and deploy it’s software?
At Northwest Cadence we can examine your existing development practices and provide guidance (and justification) to get you to Azure. It may just be one of the best choices you could make for your enterprise development organization!