With the increasing number of services in cloud-native applications and their dependence on various third-party applications or APIs, the test environment has become quite complex leading to challenges with managing testing needs and ever-growing demands for Kubernetes environments.
As covered in previous blog posts, the Roost platform creates dynamic & ephemeral environments to replace and extend existing static and shared test environments. The Roost platform’s proprietary auto-discovery engine discovers the running configuration (including service dependencies) by scanning the source code repo, image registries, and run-time behavior.
With Roost, developers can create any complex environment utilizing Terraform or CloudFormation, however, all customer services or artifacts from third-party dependencies may not be accessible to thoroughly run a custom test.
The Roost platform’s Event Framework solves these issues by offering extensibility. It publishes cloud events to the pub-sub topic (e.g. SNS) and these events are specific to the environment’s launch, cluster IP registration, and tear-down.
Scripts, or code, are easily consumed by these events to configure and launch all external APIs. Developers may want to create a test account to test third-party payment service, or to launch your test cases based on an event.
Application test environments are never simple, but with Roost ephemeral environment developers can create any complex environment using APIs and Event Framework and utilize all existing integrations. And, If infrastructure as code (IaC) components are already defined in Terraform or AWS CloudFormation, Roost will ensure that your infrastructure is created the way it was defined. This way, you can create or use your cloud-native infrastructure to run your application on demand with every pull request and have it automatically tested.
Figure 1. Roost uses infrastructure as code (IaC) components defined in Terraform or CloudFormation scripts ensuring that the environment is created the way it was originally architected.