Environments
Kloudlite offers a structured approach for managing your applications and resources through the concept of environments. Each environment functions similarly to a Git branch, providing the flexibility to create, clone, and delete environments as needed. These environments encompass various types of resources, including applications, configurations, secrets, managed resources, and more.
Managing Applications with Kloudlite Environments
Let's understand how developers can effectively manage their applications using Kloudlite environments.
Workflows with Kloudlite Environment:
Create a Main Environment: Initially, create a main environment where you set up all necessary components such as applications, configurations, secrets, and integrated services. This main environment acts like the main or master branch in Git, providing a stable base for development.
Configure and Run Applications: Once all applications are configured and running in this main environment, you have a functional setup that can be used as a reference.
Clone for New Features or Fixes: When it's time to develop a new feature or fix a bug, create a new environment by cloning the main one. This cloned environment will have all the apps and configurations of the source environment, allowing you to work on updates without affecting the main setup.
Individual Development: Each developer can clone their own environment, giving them an isolated space to make changes and test their work independently. This prevents conflicts and ensures that each developer's work is contained within their environment.
Collaborate and Test: When collaboration is needed, developers can switch between environments easily, similar to switching branches in Git. This flexibility allows for effective testing and integration of different features or fixes.
Below animation shows the flow of development
Team Members:
- Karthik - Backend Developer
- Hari - Frontend Developer
- Adam - QA Engineer
Each developer's workspace can consist of different tools and repositories. For example: Karthik's code might come from a monorepo. Hari's code might span into multiple repositories. Karthik could use a different set of tools and technologies for backend development, while Hari might use VSCode for his frontend.
Despite these differences, both Karthik and Hari can connect to the environment running backend and frontend applications. They can switch between environments and collaborate seamlessly.
Adam, the QA engineer, can connect to his feature environment to run all the integration tests.