Introducing DevHigh5 Project

Ocopea: Application Copies for Kubernetes and Cloud Foundry

By Amit Lieberman and Vijay Tirumalai

A new DevHigh5 open source project, Ocopea, (pronounced Oh Copy!), introduces application copies for Kubernetes and Cloud Foundry platforms. It provides developers with easy access to fresh application states for debugging or for running automated tests, making the testing and development process much more efficient.

In the past decade, cloud space has seen immense growth propelled by the advancements in cloud infrastructure, modern architectures, tools, and practices. The initial wave of innovation has been dominated by the emergence of XaaS models such as IaaS (AWS, Azure, GCP) and PaaS (Pivotal, Heroku, Bluemix), whose growth has been further enabled by container technologies (Docker, OpenShift).

In addition, there has also been tremendous change in how cloud native applications are developed and delivered. Microservices architecture and 12-factor apps have become the norm, and an API first coupled with a CI/CD strategy has become a necessity to operate in the cloud. These modern processes have required the need for modern tools, to allow companies to focus on creating value with greater agility and speed, rather than spending their time in managing the infrastructure to deliver it.

This separation of concerns does come at a cost. Cloud native apps with their modern architecture have created a new set of complexities. One example is the ability for a developer to reproduce an end-to-end environment consisting of multiple microservices and data stores. Developers struggle with a plethora of tools and manual processes in order to retrieve high quality application copies while trying to debug or run automated tests. With classic monolithic apps using the database copies solves that concern, but cloud native has more data sources with state, like the service configuration, orchestrator metadata, and each microservice datastore.

Ocopea provides a unique solution tailored for such complex environments by leveraging capabilities that are inherent to cloud native technologies. The tool improves the test and development process and boosts productivity and quality by enabling application copy re-purposing.

Few ways developers can integrate Ocopea in their daily development process include:

  • Reproducing bugs and delivering fixes: Take application copy with the bug, reproduce it, and try the fix with the copy data.
  • Shorter load and performance tests using previously saved load profile data copies.
  • Reduced OpEx: Test environments (CF spaces/K8s clusters) can be configured with lower cost resources to reproduce bugs and test the fixes.

For more details on use cases, visit our website.

The initial version of the toolkit supports applications using MongoDB and running on the latest distribution of Kubernetes as well as applications using MySql DB running on Pivotal Cloud Foundry. The tool uses microservices architecture to separate the Platform, Database, and Copy technology interfaces and can be easily extended to other platforms and technologies.

To make the project useful to the community and successful, much work remains to be done. Working with the open source community to help the project further grow will help developers reduce their test and development cycles and cost. We invite you to further explore the project by visiting our website and GitHub project. We look forward to your feedback, ideas and contribution. Join us on the {code} Community Slack and share your experience on the #Ocopea channel.