Continuous delivery is a modern software engineering practice that allows releasing applications faster through continuous integration of new developments and automated release in production or staging environments. Therefore, continuous delivery combines the development and test phases with the release ones, getting "ready-made" applications available into production.
The continuous delivery capabilities are based on the automation of those processes that bring the software into production: development, code test, release in the staging environment, post-deploy test, and so on. A chain of activities that, to be effective, must be integrated giving the teams visibility and control. Objectives that Mia-Platform addresses with the DevOps Console: a platform to easily design and manage the entire DevOps lifecycle.
The DevOps Console supporting continuous delivery
Designed to centralize the control of the instruments and simplify the work of the development and operations teams, the DevOps Console allows combining data and automatically perform all the actions necessary for the production pipeline, giving the teams full visibility on the ongoing processes.
The purpose of the DevOps Console is to support continuous delivery by centralizing control over all the instruments, such as Git, Jenkins, Docker, Nexus, Kubernetes, Terraform, Prometheus, Kibana, and many others.
In the execution of the processes leading to delivery, the DevOps Console helps to manage k8s clusters, allows defining the execution environments, setting up automatic tests, designing and launching continuous integration, and continuous delivery pipelines.
The use of the Mia-Platform DevOps Console reduces the burdens and risks associated with the software release, making available the code already tested and loaded in the GitHub repository.
Designed to be used by both the development and operation teams, the DevOps Console allows everyone involved to have an overview of all the activities, not only the part they’re responsible for. In the same way, the line of business (LOB) can use the Console to monitor changes and give feedback at the early stages, speeding up production.
Key Functionalities of the DevOps Console
Mia-Platform's DevOps Console offers various functionalities to support continuous delivery: from the infrastructure setup, to the creation of the project, the configuration of Auth0 for the access to the environments, the management of environment variables.
The Console also supports the design, helping to configure the CRUD APIs (defining the properties of the collection), import external microservices into the ecosystem, or create new microservices, starting from Node, Springboot, GraphQL and React templates. It allows you to create pre and post decorators, configure endpoints by attaching them to APIs, custom microservices, or external services shared between multiple projects.
Through the Console, you can also configure the CMS right from a json file or by integrating an external front-end into the CMS. It allows you to prepare analytical tools to monitor the most significant KPIs.
It also has an advanced section to configure the API Gateway (config map and request size), manage replicas (with the Horizontal Pod Autoscaler service to scale the number of pods available in a cluster according to computational needs), and configure authentication service.
In the Test & Debug section, which is the key in the automation of continuous delivery, you can view the status of all the services developed with the Console (if they are active, how much memory and CPU they use, etc.) and, through the TelePresence function, you can run a single service locally and simulate its behavior in a real context, to debug it without compromising the production environment.
On the deployment side, the Console facilitates the release of configurations in different environments. In addition, it allows checking the historical version of the project and releasing the code using a custom Webhook if, for example, you want to use an external continuous integration server, such as Jenkins.
The control and monitoring of the infrastructure are managed by separating the project environments, displaying the pods available with specific logs. With customizable dashboards, it is possible to collect data through the entire DevOps lifecycle, to keep metrics of specific interest under control.
Finally, the Console makes the API portal available with self-generated and synchronized documentation of RESTful and graphQL APIs, in order to help developers understand how a specific API works and behaves before integrating it into the code.
The advantages of using the DevOps Console for the company and the team
Simplifying the management of continuous delivery processes offers many business benefits. The first advantage is the reduced time-to-market for your applications. Automation, reuse of components, better exploitation of templates, and ready-to-use services, together with the automated test phases, allow saving weeks or months in production times.
You can benefit from better quality of code, using the continuous delivery approach and thanks to the full control over the code lifecycle offered by the DevOps Console. The ability to integrate the simplest tests into daily work helps teams to focus on the most valuable and demanding activities, such as exploratory, usability, performance, and safety tests, which improve the quality of the code written.
In the end, the Console improves the quality of teamwork, making the release phases fluid and less stressful. The DevOps team can work quietly and faster. With early releases, it is easier to get feedback from users, and also LOBs, which are useful to incrementally improve the quality and functionality of the software.