CloudShell Colony integrates with cloud providers to provide fully-managed, scalable and on-demand access to cloud services. While Colony provides out-of-the-box support for certain cloud services like AWS EC2, CloudFormation and Azure VM, in some cases, you may need to use cloud services that are not directly supported by Colony. For example, AWS RDS or AWS ElastiCache for Redis. Other services may include backup, database processing, hosted office suite, networking and security services.
In order to use such services in a Colony sandbox, you need to create a service YAML file that references the cloud service to use. Currently in Colony, cloud services are defined using Terraform modules. Terraform is an open-source cloud-agnostic tool that allows you to create reusable infrastructure. Terraform has a large, vibrant and growing community of plugin contributors.
To illustrate the use of services, consider the following scenario:
John the DevOps engineer needs to set up a test environment on the cloud that contains the latest build of the company’s product. The product has a web server, backend server and database that need to be interconnected in an isolated and secure network. John chooses to host this environment on AWS.
- John has custom images for the web server and backend server, but wants to use AWS RDS for the database server.
- To extend Colony support for the AWS RDS service, John creates a Terraform module, which can interact with the service, and includes the module in a service YAML.
- John adds the service YAML to his online repository, lists the service in the blueprint and defines the dependencies between the blueprint's components. In his case, the database server is deployed first, then the web and backend servers are deployed, followed by database and web server registrations in the backend.