Ever since Microsoft Azure was announced 10 years ago, the development of cloud services offered by the platform has been steadily increasing and improving. As this trend continues today, we are currently witnessing difficulties with keeping track of the number and nature of services being offered, resulting in certain ambiguities in terms of choosing the right service for a particular type of request.
The basic division according to the cloud service model is something we initially encounter when selecting the right service for each project that needs to be implemented. The question that typically crops up is: Do we need Infrastructure as a Service (IaaS), Platform as a Service (PaaS) or Software as a Service (SaaS)?
As shown above, the main difference between these three basic cloud service models is the separation of responsibilities and administration between cloud providers and clients. Depending on the requirements and needs of the projects, one of these models “must be” your choice; although lately, we have often been seeing a mix of cloud service models implemented in a single project.
According to recent cloud-specific research data and statistics, IaaS is still significantly much more used than PaaS (82% vs. 18%). SaaS definitely has its advantages, especially in the Enterprise world. Office365 and Dynamics CRM, as services, are definitely pivotal for most Enterprise-level IT companies. If we consider all the relevant factors, we can come to the conclusion that IaaS is extremely important for the cloud transformation process, which is increasingly taking place day by day.
IaaS – The First Step in the Cloud
Regardless of whether you need a test or development environment, or you decide to expand your data centre using cloud services and create a hybrid environment, IaaS is imposed as the first and logical step of the cloud migration process.
The main components of IaaS include:
- Virtual Machines
- Virtual Machine Scale Sets
Virtual Network is a resource pertinent to having a highly functional and streamlined IaaS environment, while in many cases Azure Storage is also a “must-have”. When you put all these resources into one context, you get a lot of services to think about, and with that, great opportunities to implement the solution.
Transform your Apps with the Help of Virtual Machines
Virtual Machines are a basic cloud service that comes with Microsoft Azure and were among one the first to emerge, back in the days when Azure was based on the ASM (Azure Service Management) deployment model. Although the transition to the Azure Resource Management (ARM) deployment model has simplified many things and the conditions for faster service development created, Virtual Machines remains one of the most represented services in the cloud.
Each Virtual Machine depends on several additional resources, such as Virtual Network and Azure Storage (or Managed Disk), without which it is impossible to create a single Virtual Machine. Virtual Machines are most prevalent in on-prem data centres expansion scenarios, as well as creating test or development environments. It is often the case that Virtual Machines is selected as the first step in the cloud transformation of web applications, which, due to their legacy prerequisites, cannot reap the benefits of PaaS.
Although deploying one or more Virtual Machines is technically not too complicated a task, it is very important to plan it and organize it properly right from the start so that later growth does not cause problems.
When creating a Virtual Machine, you need to pay attention to the following steps:
- Virtual Network Plan
- Define Virtual Machine naming convention
- Decide Virtual Machine location
- Determine Virtual Machine sizing
- Consider Virtual Machine storage
- Select an operating system
Meet the VMSS Capabilities
Virtual Machine Scale Sets is an IaaS service that is unfairly “forgotten” and not so widely represented. In the context of web applications that, due to their limitations, are located on Virtual Machines and cannot be deployed on App Services, Virtual Machine Scale Sets is simply a logical extension of Virtual Machines.
Basically, the Virtual Machine Scale Set is Virtual Machines. More precisely, it is a set of Virtual Machines that are created from the same Virtual Machine template, so that the content located on them (OS, features, application code …) is identical.
Among its greatest advantages of the Virtual Machine Scale Set, maybe the biggest one is the auto-scaling capability. If you have an application that has different workloads throughout the day, such as e-commerce or news portal sites, Virtual Machine Scale Set auto-scaling can greatly help you optimize costs by automatically adding or removing instances depending on the load on your site without the need for any user interaction.
The Flexibility of Containers
And at the end of this IaaS story, there are containers. Virtual machines are independent operating systems with dedicated resources that are designed to be used for a long time, and each application deployed on Virtual Machines requires an additional layer of management.
Unlike virtual machines, containers are more flexible and have significantly smaller footprints, and the space used by containers is completely separated from other containers or operations on the operating system. The biggest showstopper for using containers is application design. Containers require applications that are intended to be containerized and many of the applications are not ready to be subjected to this process.
Although the benefits of cloud computing are reflected in the use of PaaS and SaaS solutions, the use of IaaS is still very much present in the modern IT world, and we surely need to pay more attention to IaaS solutions. This is supported by the fact that Microsoft is investing a lot in the development of features that are related to IaaS solutions, and we don’t see the trend changing.
Do you have IaaS experiences you would like to share? Or questions? If so, drop us a comment or an e-mail!