The as-a-service model evolved when SalesForce's "not a software" model (SaaS) met Amazon-Web-Service's Cloud Storage and Compute (IaaS & PaaS). When I wrote about the evolution of as-a-service in Techcrunch over five years back, I did not realize that I would be promoting the next level of abstraction in the same series five years down the line, i.e., Environments-as-a-Service or EaaS. I would instead call it a gap fill that emerged with everything around pre-production environments being standardized, but these environments are still being created in wild-west, bespoke fashion.
What is an environment anyway?
Before defining an environment, let us start with defining what an environment is not. Let us use the metaphor of a house to make it even easier.
An environment is not:
Not Wood, Concrete, & Steel reinforcement: Infrastructure as Code
Infrastructure as code or IaC has become mainstream in the last few years. In the public cloud world approach of "your wish is my command," all you need is a good wish list (configuration as code), and the cloud creates infrastructure. Creating good infrastructure in an agile way is essential and is akin to putting foundation, walls, roofs, doors, etc., in the house. It provides a solid foundation and protects the home from elements. It does not offer a "warm and cozy environment" for residents to live in.
Leading examples of IaC platforms: Hashicorp Terraform and CloudFormation
Not Residents: Code and Services
In the cloud-native world, code converts into images that get life in containers. These containers and images need to be created in the right way and protected correctly. For example, an image not being created using a multi-stage build is a recipe for disaster. In the same way, a container running as root is also a recipe for disaster.
Leading houses for code to reside-in are: GitHub, GitLab & BitBucket
Containers reside in: DockerHub, Elastic Container Registry, JFrog Artifactory, etc.
An environment is:
The air-conditioning & furnishings: Environment as a Service
An environment is a gap that needs to be filled for a resident to have a comfortable and pleasant experience in the house.
In technical terms:
An environment as a service is a space where teams can experience & interact with shareable & testable applications crafted using configuration, infrastructure & dependent services.
EaaS is a way of delivering development infrastructure and services to run an application in an on-demand ephemeral environment. It removes the burden of creating custom scripts and managing complex software in order for developers to create a pre-production environment.
Roost EaaS Platform
Roost is an “Environments as a Service” platform that creates instant and ephemeral environments which automatically validates applications allowing developers to spot potential errors before a pull request is merged.
With Roost, developers effortlessly create pre-production environments either at pull request, feature branch or any custom insertion point. Once created, a Roost environment can be shared with other stakeholders who validate their deliverable using their own criteria.
Sign up for a live demo to see how Roost lets you move fast and deliver better products, with the autonomy to instantly create ephemeral and production-like environments on-demand or download our white paper: Advantages of Ephemeral Environments.