Six Important Facts to Prefer Codefresh for Microservices CI/CD Automation
Codefresh automates CI/CD of your applications using Docker images, Helm charts, and pipelines. Build → Test → Deploy are the main stages of application deployment in codefresh. Devops insights and Artifacts are the other two major options in codefresh. Devops insights include Kubernetes and Docker swarm. Docker images and helm resides under Artifacts. Here are six reasons, which leads us to choose codefresh.
1. Codefresh is designed for micro-services.
2. Codefresh allows you to create multiple pipelines per repository.
3. Codefresh has explicit support for monorepos (Monolithic Repository).
4. The Docker registry in Codefresh is fully automated and is much more detailed.
5. Codefresh has explicit support for Kubernetes deployments.
6. Codefresh supports Helm Hub and Chart deployments.
1. Codefresh is designed for micro-services:
Codefresh is a task-based application. If you are working on multiple repositories, all the related functions are grouped per task. You can view builds for all projects at the same time and browse your internal Docker registry without any restrictions. From a security standpoint, Codefresh also allows you to create separate teams/accounts that do not share resources, so you get the best of both worlds, as well it integrates the github repository.
2. Codefresh allows you to create multiple pipelines per repository:
A pipeline that runs on every commit that packages code and creates a Docker image. Codefresh does not have any limitation on using multiple pipelines. Even if it allows you to define pipeline conditionals, you are still free to define multiple pipelines for every work.
3. Codefresh has explicit support for monorepos:
Codefresh has explicit support for monorepos right within the GUI. The trigger window allows you to define glob expressions. The pipeline will only trigger if the changed files match the expression.
4. The Docker registry in Codefresh is fully automated and is much more detailed:
Codefresh offers better support for its own internal registry. It does not take any special efforts to push your image to the Codefresh registry instead by default, all your Docker images that are produced by your builds are automatically pushed to the internal registry. It does not require to add anything in your yaml file to enable this functionality. If you want to use an external registry, Codefresh helps you even further by allowing you to declare all your registries at your account level (including authentication details).
Once you have many images in your Docker registry you need a way to find them and catalog them. You can also do an analysis of the layers of each image to gain insights into the size.
And most importantly of all, you can annotate your Docker images with your own metadata. For example, you can mark images that have passed security scans, or code quality gates, or load testing approval. The metadata can be added either directly from the GUI or via the pipeline syntax.
5. Codefresh has explicit support for Kubernetes deployments:
Easy Kubernetes integration is one of the major features behind the development of Codefresh. Kubernetes support is one of the highlights of Codefresh functionality. When you define a Kubernetes cluster in Codefresh, you get access to two major features: First, you have a built-in Kubernetes dashboard that shows you namespaces/pods and deployments.
Secondly, Codefresh allows you to deploy a Kubernetes service with the GUI.
6. Codefresh supports Helm Hub, Chart deployments:
Codefresh takes Helm integration to the next level by providing:
- Integrated Helm repository for all accounts,
- A graphical app browser that can access both the internal and external helm repository,
- A Helm dashboard for monitoring deployments and even rolling them back.
Codefresh gives you a built-in Helm Hub repository that you can use for your own Helm charts. You can also connect other chart repositories and create an application catalog.
Once you install a Helm chart in your Kubernetes cluster you have full visibility on version history, active services, chart values, etc. In short Helm support in Codefresh is much more extensive and the presence of a built-in Helm repo and dashboard are very important factors for using Helm as part of the CI/CD process.
Summary
Codefresh has automatic support for both caching and artifacts via the shared volume for all build jobs/steps and no explicit instructions are needed for either caches or artifacts. The Codefresh internal Docker registry is fully automated where all Docker images produced by builds are automatically pushed internally. Finally, Codefresh has explicit support for Helm, offering a dashboard and an integrated repository for all accounts and with the recent deployments in Yobitel’s cloud-native workspace, we successfully implemented Codefresh CI/CD automation for Docker and Kubernetes cloud-native applications.
For more details about cloud-native microservices CI/CD Automation, please contact Yobitel Communications. https://www.yobitel.com/about.