By Cliff De Wit, Chief Innovation Officer at Microsoft SA
While the operating environment for modern businesses has been dramatically reshaped by a number of technology- and business trends in the last few years, few of these has had the impact of cloud computing on extending the boundaries of productivity from beyond the office.
Companies that have been associated with cloud computing for some time normally know how to select a cloud deployment architecture, but a lot of businesses find it hard to decide between infrastructure as a service (IaaS) or platform as a service (PaaS).
IaaS and PaaS are terms that are used in describing the architecture behind cloud computing. The Microsoft Azure platform provides a cloud services operating system and a set of services to support easy development and operation of applications for the platform. The platform provides functionality to build and manage applications that span from consumer Web to enterprise scenarios.
Advantages of PaaS
Companies experience a reduced total cost of ownership through automated server maintenance and auto scaling of compute resources according to the current resource demands required within the business. Moreover, they gain the ability to more easily accelerate innovation, because developers will be able to build innovative solutions quickly in order to meet the market- and customer demands.
Maintaining physical and/or virtual servers is a laborious process as it involves downloading of the patches, testing them on a representative sample of servers, verify application compatibility, distribute patches and perform rolling upgrades so as to not to impact the availability of the mission critical apps. In spite of the advances in automation, it still requires significant effort on the part of the IT Pros to keep the infrastructure healthy. Azure PaaS team takes care of the infrastructure health by keeping the infrastructure updated against all the known vulnerabilities for which fixes have been distributed. Since this process is opaque to the developers and is automatic, the risk of information breach resulting from the known vulnerabilities is significantly reduced.
Disadvantages of PaaS
It is more difficult for a company to transform its business through cloud adoption, when opting for PaaS than through IaaS.
Due to the run time environment differences between Azure PaaS and the on-premise setup, applications have to be modified to be more transparent in terms of the telemetry and the runtime platform. This has to be done so that IT Professional can gain more insights into the operations and proactively mitigate the availability and scalability risks. Additionally, as a result of these PaaS specific changes to the app, it is not easy to take the same application and then run it on-premise.
Infrastructure as a service (IaaS) is an instant computing infrastructure, provisioned and managed over the Internet, allowing a business to quickly scale up and down with demand, and pay only for what it used.
IaaS helps companies avoid the expense and complexity of buying and managing their own physical servers and other datacentre infrastructure. Each resource is offered as a separate service component, and a business only needs to rent a particular one for as long as it is needed.
Advantages of IaaS
Due to the excellent portability enabled by IaaS, businesses can easily start offering cloud hosted services with minimal effort. The cloud computing service provider manages the infrastructure, while a company purchases, installs, configures, and manages its own software—operating systems, middleware, and applications.
In addition, applications that require complete control such as disaster recovery services can be built on IaaS.
Disadvantages of IaaS
IaaS is more expensive to operate, as the solutions have to factor in the higher server maintenance for software patching and upgrades. IaaS uses more dedicated server resources costing more in compute and storage. IaaS generally tend to operate its own database servers and other supporting application infrastructure such as Active Directory, which also adds to the cost of operations relative to PaaS.
Using IaaS also results in a slowdown in terms of innovation since complete control on the OS and application server stack encourages developers to take dependencies on specific versions of the OS and app server. As a result, application migration to future versions of the OS and app server ecosystem becomes progressively harder and harder. This will not only slow down innovation, but will also make it more difficult to find developers to maintain the existing system.
Many companies have well defined processes for testing and updating on-premise severs for security vulnerabilities. These processes need to be extended to the cloud hosted IaaS VMs to mitigate hacking risks. An unpatched server hosting sensitive data and processing logic can pose a huge PR risk for the company. There are no such problems with PaaS as server patching is automatically taken care of.
Opting for IaaS can mean that a business gets stuck with the older version of the operating systems and application stacks, resulting in apps that are difficult to maintain and add new functionality over the period of time. This often will result in massive reengineering efforts that are very risky.
IaaS based applications suffer from the same DevOps issues that plague on-premise deployments. It requires rigorous processes to bring developers and IT Pros together to build operations’ friendly applications.
Diligent processes are required for server patching and upgrades; this is more so for smaller companies than larger companies with mature server maintenance practices. Customers have to set up patch testing environment either in the cloud or an on-premise representative app environment so that every patch that is applied to the servers will not impact production applications. There is no need of patching the PaaS compute infrastructure due to the cloud provider taking care of it.
PaaS and IaaS have their respective benefits, with PaaS having a definite economic advantage for operations over IaaS when cost of operations breaks the business model. On the other hand, IaaS provides companies with complete control of the OS and application platform stack, which is a requirement for certain class of applications.
Every IT decision maker has to make that choice based upon factors such as risks management, agility, cost and nature of the solution.