What you need for IaaS
Using Infrastructure-as-a-Service (IaaS), such as AWS, typically allows a wide choice of technology and network configurations but leaves installation, configuration and administration to the user. To deploy onto, and maintain a system on, an IaaS typically requires personnel with some degree of experience in system administration, operations, devops, database administration and network planning. If those skills don’t exist within the project then personnel must be trained, the skills must be brought in or an alternative must be found.
What PaaS offers
A Platform-as-a-Service (PaaS) will typically offer pre-determined and pre-configured options for a database server, an application server, a web server, framework, language, caching, load balancing and scaling. There may be an element of choice amongst these options but this will be restricted. Deploying onto a PaaS can be as straightforward as opening an account and selecting the framework to be installed, e.g. Drupal or WordPress.
As much, if not more, research is required when investigating PaaS solutions as an alternative to IaaS solutions; an IaaS is relatively easily configurable whereas PaaS are generally less so. Ideally the PaaS should offer a stack as similar as possible to the system to be deployed and there may be some degree of tailoring of the system to the PaaS.
Considerations to take into account when using PaaS are:
- appropriate geo-location – this may be due to legal or performance requirements
- on-going costs – PaaS has a premium above IaaS (many PaaS are located on IaaS)
- data and code portability – do the skills exist for getting data and code into and out of the PaaS.
- technology lock-in – for example, Microsoft Azure locks in to Microsoft technology
Time and money should be spent on solving business problem instead of creating and managing computing environments. Developers may want to expand their skills into system administration, and you may be happy for them to do so, but when time and budgets are limited it pays to at least investigate the more off-the-shelf approach that a PaaS offers.