Level 6: Environment as a Service

Level 6: Environment as a Service

This example demonstrate how to use Cloudify Service Component to manage development and production environments.

The Service Component is a node template that encapsulates a different deployment. The blueprint from which the Service Component deployment is created, as well as the new deployment’s inputs, can be determined dynamically, during runtime.

In this example, we use a stack based on Kubernetes, Postgress as the DB, and S3 as the storage system. Each of those services is referenced by a separate service component. The exact blueprint per component is determined at runtime based on the environment type.

In the case of a development environment, we are using a single instance per service and can also run all those services in a single VM. In the production case, we are using a fully managed version of those services with EKS as the Kubernetes cluster, RDS as the managed DB, and S3 as the managed storage services as illustrated in the diagram below.

Development Production EaaS Use Case

Our Environment-as-a-Service example on GitHub shows how to design a blueprint that creates a completely different topology based on an input of “environment type” (development vs. production).