Today marks our first step towards the future. Codefresh is launching a number of new features aimed at improving the experience and speed of continuous integration and deployment with GitOps. The features we’re launching today can help answer questions like “what’s running in production?” “What Jira tickets were just deployed?” and “Which change is causing a service degradation?” And we’re launching a larger initiative to define what the future of GitOps should be with GitOps 2.0.
Observability in software delivery is key to delivering software faster.
Observability has become a much more difficult problem to solve with the rise of microservices. Questions that were difficult to answer about monolithic architectures can be down right impossible to answer about large microservice stacks. This is why our first pillar of GitOps 2.0 is observability. Today we’re releasing better tooling to not only deploy software on Kubernetes, but additional observability so you can see not only what code but also what issues are deployed.
In addition to a detailed view that lets you see everything related to a release and controls over rollbacks, we have larger aggregate views that make it easy to tell what’s going on across all your applications.
Having this visibility and control can give teams more confidence in their release process and lead to them deploying more often.
In fact, one beta customer said “These flows work refreshingly well and provide enormous insight into our Kubernetes infrastructure.” This insight is key to deploying more often and with more automation, ultimately making software delivery faster and more reliable.
Another engineer, Victor Cuascut from Veeva said “Having GitOps directly embedded in Codefresh made things just click for our devs.” That kind of experience is exactly what we’re going for.
Learn more at codefresh.io/features/gitops
Or checkout the documentation.
This is an area of active development and we’ll be rolling out more features over the coming weeks and months so stay tuned!
Jira issues, commits, and committers are all brought into the release view.
Introducing logic to GitOps Flows
Another important area we’re supporting is building logic about how rollouts should occur and when. The guiding principle is that your infrastructure should reflect the state of Git. In practice, sometimes you need to be able to handle rollouts between many regions, or you may not yet be at a state where you’re ready to take humans out of the loop to do approvals. For this we’ve introduced different deployment steps for pipelines that can trigger Git synchronization based on pipeline logic.
This allows more advanced flows such as deploy, open PRs onto other infrastructure repos, or rollouts across different clusters and segments as well as automated testing of deployed versions with rollbacks.
The beginnings of GitOps 2.0
While this first step is a big win for teams delivering software there are a number of other challenges to solve. GitOps has proven to be a robust pattern for deploying software but there are still questions to answer. While we believe observability is one important one, there are more challenges to overcome. We don’t think we can solve them all ourselves so we’re going to be engaging the community. The goal is to work together to define those patterns that will help mainstream and standardize approaches to delivering software, whether it’s on Kubernetes or not.
The goal of GitOps 2.0 is ultimately to provide patterns and standards that improve software delivery and reliability. GitOps has evolved around a few core principles but has a number of questions that need to be addressed. Dealing with multiple environments, secrets, and of course observability are all key aspects that we hope to address.
Update 11/19 – We have officially partnered with other industry leaders to start the GitOps working group under the auspices of the CNCF! Read all about it here.
Try out GitOps with Codefresh
As always, these features are all free to try when you create an account at codefresh.io