Why Developers Need a
What is a production-like environment?
A production-like environment provides DevOps teams with an on demand service integration testing and validation tier that is as close to production as possible.
Production-like environments allows developers to get feedback from stakeholders automatically and continuously. They can work on multiple features at the same time and share clusters with QA and product teams for fast certification and review.
Why DevOps Teams Need a Production-like Environment
In today’s development process there is no place for developers to test and validate their code with production-ready services, for early discovery of service-to-service interaction and upstream/downstream dependencies issues.
A traditional testing environment may allow developers to do basic testing and validation of code; however, it becomes impossible for efficient testing to occur when dealing with modern complex architectures such as containers, microservices and cloud-native applications. Complexity scales faster than the number of services.
The continuous integration phase (CI) of CI/CD is supposed to help resolve issues and speed up the development life cycle by continuously and automatically adding code into the production pipeline. However, this process actually slows down the release cycle because issues are not discovered until very close to the release deadline.
Developers who use a production-like environment, as defined above, can test service changes automatically and continuously with dependent services. This ensures that the changed service not only works on “my machine” but also works with the rest of the dependent services.
The continuous integration phase (CI) of CI/CD has helped rapid smoke & unit testing of the applications. This has worked well for monolithic applications but with the proliferation of containers & microservices has lost its effectiveness. With the size of code continuously shrinking, microservices and applications have now become first-class citizens. A new framework is needed to battle harden these services & cloud-native applications which focus on service-to-service issues.
Works on my machine becomes a thing of the past...
Developers who use a production-like environment can test service changes automatically and continuously with dependent services. This ensures that the changed service not only works on “my machine” but also works with the rest of the dependent services.
Developing and Testing in a Production-like Environment Accelerates the Pipeline and Eliminates CI
By eliminating the need for traditional CI and left-shifting the battle-hardening of services & applications into the hands of developers, releases can be accelerated by at least 60%.
A production-like environment allows all service changes to be tested and certified by developers thus the traditional CI phase is not needed anymore. Furthermore, once these changes go to production, the chances of failure are close to none.