IaaS

“IaaS” refers to Infrastructure-as-a-Service which is the foundation of cloud computing. IaaS provides compute (VMs), Networking (routes, firewalls, dns) and storage (object stores, databases) over the network created via APIs and usually GUIs.

IaaS enablez the ability to create environments (such as a server configuration) deterministically, based on rules. This means that environment creation becomes predictable, and testable, rather than a variable unknown.

Good IaaS services must be API based to allow development teams to incorporate distribution, load balancing, resilience, fail-over and configuration into the development and build process. Because of the necessary speed, amount of change and quality advantages IaaS provisioning, configuration and tear-down should be automated.

IaaS is sometimes characterized as treating servers as cattle, not pets. They tend not to have special names and designated purposes anymore. Servers are treated as utilities, if one goes wrong we simply turn it off and stand up a new server, with the exact same configuration, in its place.

IaaS is currently best provided by Public Cloud providers rather than built on premises.

Edit this page

PaaS

Platform-as-a-Service (PaaS) is a step on from Infrastructure-as-a-Service as it provides a configured environment to build software and services over the network.

PaaS allows developers to create applications based on tools provided by the PaaS service. Platforms are made from previously optimised features, packages and configuration ranging from Operating Systems, execution environments, server management software, design and development tools and hosting tools.

Platforms can build on basic infrastructure to create development, test, integration and deployment environments. As environments become more rules based and API driven it becomes possible to wrap up an environment (virtualized hardware, configuration and software) into a single package and simply move it from place to place. This “Containerization” means that as well as considering the progressing of changes during development we can also progress environments, or even networks of environments, as iterative development builds.

PaaS involves taking the grunt work out of development by providing, ideally portable, well configured server, development and deployment environments that are already hooked up to common Enterprise Architecture Mechanisms such as authentication, logging, security, asset management etc.

Edit this page