This article is a follow-up to my previous topic “The Importance of Automation in Cloud Computing” published at http://wp.me/s3qrAW-11. This time I will discuss the automation processes that cloud providers employ for more advanced functions such as multi-tier, multiple virtual machine (VM) platforms or Platforms-as-a-Service (PaaS).
Most cloud service providers offer virtual machines and storage as part of their Infrastructure-as-a-Service (IaaS) offering. With a typical IaaS service, the customer selects their desired operating system and sizing of virtual machine (CPU, memory, disk storage) through a web-based service catalog. Upon order completion, the automation system, that runs behind the scenes within the cloud provider, provisions or hydrates a virtual machine based on existing pre-created templates. Once the virtual machine is ready, the customer can manage all of their online virtual machines via the cloud provider’s portal.
Platform services or PaaS is a much more complex ordering, configuration, and provisioning process. Many traditional IaaS cloud providers add PaaS services to their list of offerings once their ordering and cloud management systems are upgraded to handle the automation tasks. There are several factors, beyond normal IaaS-based virtual machines, that a PaaS service must configure and automatically provision upon a customer’s order:
- Multi-VM platforms. Many applications hosted in the cloud require, or are best configured, using multiple virtual machines—each VM is configured to run part of the application environment such as one VM running a database while a second VM runs the application. The ordering process and automated provisioning systems must treat these multiple VMs as a group. Each VM is assigned a boot order to handle situations where one VM/host must be online before the application or other VMs attempt to boot up. VMs within a single project/environment may have the same security and administrators assigned but this platform, or group of VMs, cannot be seen or managed by any other users or platforms. Virtual networks and roles-based security permissions are provisioned by the automation system.
- Application Development (also called Dev/Test) platforms. Similar to simple multi-VM environments, a Dev/Test platform will provision multiple VMs for developers to create and test applications. Developers often run multiple simultaneous application servers and client desktop VMs as they develop and test their code/applications. Additional VMs in a Dev/Test platform may include Application Lifecycle Management (ALM) tools that development teams utilize to store programming code, share project information, and test applications. Finally, Dev/Test environments can be configured to allow promotion of applications from Development VMs and virtual networks to Testing and then to Production networks/VMs. For more details on Dev/Test cloud services, refer to my article entitled “What is Dev/Test as a Service” at http://wp.me/p3qrAW-n.
- Network virtualization. Multi-VM environments common utilize multiple virtual networks to separate traffic from other platforms or other projects/teams within your organization. Even within a platform consisting of multiple VMs, virtual or software defined networking can be configured to separate network traffic into multiple paths, improve security, or for scalability. Automated deployments of PaaS platforms are usually based on pre-defined templates that include the VM configuration as well as storage and networking settings to be deployed when a customer places an order.
- Shared storage. Multiple VMs or platforms can also be configured to share storage. This storage may be assigned to multiple clustered VMs or the storage can be configured as shared storage accessible by multiple VMs within the defined platform.
PaaS cloud services, as described above, go beyond just the operating systems that are defined and provisioned within each VM. Platform services involve a higher layer, on OSI model, where applications and even data may be pre-loaded onto the VMs. This brings additional automation requirements such as software license tracking, application patching, software upgrade tools and processes to keep the platform up-to-date with latest manufacturer or custom application releases. The cloud provider will also assume more responsibility to manage more than just the operating system for a PaaS offering–refer to my article entitled “Who Manages Cloud IaaS, PaaS, and SaaS Services” at http://wp.me/p3qrAW-h.
A cloud provider’s automation system must be configured to handle all of these PaaS-specific tasks. This requires a significantly more advanced cloud management and automation system behind the scenes that the cloud provider operates. This is why you will notice many new or smaller cloud providers focused on IaaS virtual machines and they may be rather weak on PaaS capabilities. You should ask your current or potential cloud provider exactly how they define, provision, and manage multi-VM application stacks or platforms. Not only ask how platforms are automatically provisioned but also how customizable the templates are, who manages templates, and how virtual networking is configured within platforms. A true PaaS provider should be able to clearly articulate their platform provisioning process and know the different between a platform and just a group of unrelated IaaS-style virtual machines.
Categories: cloud computing