Cloud platforms generally fall into three broad categories with an evolving Container-as-a-Service (CaaS) that could break out into a fourth category. There are infrastructure-as-a-service (IaaS) offerings that organizations can employ to deploy their applications. These services make extensive use of software-defined infrastructure and programmable APIs that essentially transform infrastructure into code. Because of the latter capability developers often end run internal IT organizations to directly employ applications on a public cloud. Allowed to continue it’s only a matter of time before the organization that employs those applications winds up being confronted by a host of security, compliance and management challenges.
Those challenges will only become more complex to navigate. Today most IaaS environments expose either a virtual machine or a bare metal server. Some analysts treat CaaS as a subset of IaaS though they also reflect attributes of PaaS. These CaaS solutions such as Amazon’s EC2 Container Services (ECS) expose a container for use by the end-user. In addition, IaaS environments are evolving, with IT organizations now starting to make use of graphical processor units (GPUs) and field programmable gate arrays (FPGAs).
The second major classes of cloud services come in the form of a PaaS environment. In general, this class of services spans all the middleware services a developer may need to invoke. Those PaaS services can be invoked comprehensively or employed in a more ala carte manner. For example, some organizations may conclude all they really need at the PaaS layer is a database-as-a-service offering. As in the case of IaaS offerings the elements of what makes up a PaaS environment are also subject to change. Some IT organizations are starting to experiment with serverless computing frameworks based on event driven architectures that allow applications to dynamically scale in real time because additional compute, storage and networking resources are instantly made available as required.