This blog post was co-authored by Moran Goldboim, VP of Product at Codefresh.
Delivering new software is the single most important function of businesses trying to compete today. Many companies get stuck with flaky scripting, manual interventions, complex processes, and large unreliable tool stacks across diverse infrastructure. Software teams are left scrambling to understand their software supply chain and discover the root cause of failures. It’s time for a new approach.
Today, we’re launching the Codefresh Software Delivery Platform (CSDP) to help you meet the software delivery challenge. The Codefresh platform is a complete software supply chain to build, test, deliver, and manage software with integrations so teams can pick best-of-breed tools to support that supply chain. Built on Argo, the world’s most popular and fastest-growing open source software delivery toolchain, the Codefresh Software Delivery Platform unlocks the full enterprise potential of Argo Workflows, Argo CD, Argo Events, and Argo Rollouts and provides a control-plane for managing them at scale.
Let’s jump into the platform.
A Single-pane of Glass for the Entire Software Supply Chain
Deploying the platform onto a single Kubernetes cluster is simple, run one command to bootstrap CSDP and the entire configuration will also be written to git. The CSDP runtime includes the enterprise version of the entire Argo stack- with tools to simplify their operation and provide better traceability between them. By building on and integrating Argo Workflows and Events for running delivery pipelines, and Argo CD and Rollouts for GitOps deployments and progressive delivery we’re able to provide a stronger security model with a greatly simplified management that works at scale.
Delivery Pipelines greatly simplify the creation and monitoring of workflows along with their triggers. These pipelines are optimized for DevOps flows such as CI/CD pipelines for checking out code, building and testing artifacts, etc. They also work well for general purposes like data pipelines.
Codefresh GitOps provides the application deployment layer. Defining an application is as simple as identifying a source repo and its target. Codefresh GitOps is built on Argo CD and Argo Rollouts to power progressive delivery.
More than these components, the platform seamlessly integrates with git, Jira, and others to provide a clear dashboard of all activity in the software supply chain. Bringing all these components into a single flow makes it easy to identify the cause of breaking changes, and keep track of all your running infrastructure and applications as changes flow into them. With easy remediation, teams have more confidence in deploying more frequently. Today, even high performant organizations often only deploy frequently on a few applications, CSDP enables companies to deploy frequently for every application.
This also works at scale. Filtering all changes by deployment time, committer, application, Jira issue, or several other dimensions brings incredible traceability and clarity. The dashboard can even track all the locations a particular artifact is deployed across the entire organization.
Built On GitOps For Total Traceability And Reliable Management
GitOps is a revolution in software delivery and management that simplifies and makes accessible decades of best practices. With GitOps, the desired state of software must be stored in version control and the actual state must be constantly monitored for divergence and if need be, corrected. This is in sharp contrast to most software delivery operations today which are done by teams doing manual work and then (hopefully) documenting that work in git and is generally indifferent to the state of production.
The Codefresh Software Delivery Platform is the only enterprise DevOps solution that operates completely with GitOps from the ground up. Using the CLI or GUI in CSDP generally ends with a git commit. Whether that’s installing the platform, creating a pipeline, or deploying new software. The CLI/GUI simply acts as extended interfaces of version control. A change to the desired state of the software supply chain will automatically be applied to the actual state.
In CSDP, every change and configuration goes directly into git. This makes git a common language for both engineering and operations and provides a full change history. Simplified change management, and permission management in the platform scope each user to their permissions in git and provide a full changelog for auditability of every change.
Unlocking the Full Potential of the Argo Project with Simplified Management that Works at Scale
The Argo Project is already the world’s fastest-growing, and most popular open-source project for delivering software. It’s no surprise that companies like Tesla, Google, Adobe, and others are using it with great success. For power users like these, CSDP releases the full potential of Argo. Correlating workflows with deployments, rollouts, commits, and more under a single unified user experience.
Likewise, when deployed as a single platform Codefresh greatly simplifies the management and adoption of Argo. If you’ve already defined Argo workflows and events, they will work natively in Codefresh Software Delivery Platform.
Codefresh acts as a control plane across all your instances. This is one of the greatest areas of value for teams using Argo today. Rather than many instances of Argo being operated separately and maintained individually, the control plane allows all instances to be monitored and managed in concert. Each instance comes with security and SSO baked in greatly simplifying the experience of running Argo in an enterprise environment. Upgrading runtimes is as simple as running a single command or making a git commit. This control plane works regardless of the runtime’s location, whether it’s on an edge cluster or in a virtual private cloud. All sensitive information is kept local to the runtime and is not shared with Codefresh.
The Codefresh platform provides the benefits of a fully-managed service with the security and flexibility of a self-managed offering.
Continuous Delivery and Progressive Delivery Made Easy
Those familiar with Argo CD and Argo CD Autopilot will be pleased to see their configurations are fully compatible with the platform and can instantly gain value from Codefresh’s robust features. Those new to continuous delivery will find the setup straightforward and easy. The new unified UI brings the full value of Argo CD and Argo Rollouts into a single view so you no longer have to jump around between tools to understand what’s going on.
Like the rest of the platform, Codefresh GitOps takes an opinionated but flexible approach to software delivery. To deploy an application, simply define the git source of manifests and set a deployment target. Doing this from the UI will commit the configuration to git. Once in git, Codefresh GitOps will automatically detect the application and deploy it.
Progressive delivery has long been out of reach for release teams because of complex requirements. In the Codefresh platform, progressive delivery strategies like canary or blue/green can be simply defined in a declarative manner. Canary and blue/green deployments can greatly reduce the risk of rolling out new changes by automatically detecting issues before they hit most users and rolling back to previous stable versions. In the screenshots above, we see canary releases along with the health checks monitoring their rollout.
Delivery Pipelines Are the BackBone of the Software Supply Chain
Ultimately every company is seeking to deploy software more frequently with greater confidence in avoiding breaking changes and improving the mean time to resolution. But teams can’t get to continuous delivery without first solving continuous integration.
A Delivery Pipeline is the combination of a workflow along with the events that trigger it. We’ve added a pipeline creation wizard that will create all the component configurations so you can spend less time with YAML and more time getting work done. The pipeline creation wizard ends with committing the configuration to git and allowing the built-in Argo CD instance to deploy them to the relevant runtimes.
The Delivery pipeline model also allows the creation of a single reusable pipeline that operates based on the context of its triggers. Pipelines can easily work as templates to be reused by thousands of different applications. DevOps teams can build once and use everywhere. Each step in a workflow operates in its own container and pod. This allows pipelines to take advantage of the distributed architecture of Kubernetes to easily scale both on the number of running workflows and within each workflow itself.
Current Argo users will especially appreciate how much simpler it is to create DevOps pipelines because sensors and workflow creation are merged into a single flow. The visibility in CSDP also makes debugging issues with events and workflows much easier as they are associated and logs collected into the main view of each execution.
To learn more about creating delivery pipelines, check out the quickstart.
Choose The Best Tool for the Job with Codefresh’s Approach to Extensibility
When choosing DevOps tools many teams are forced to pick between all-in-one platforms with immature features, or highly specific tools without integrations. With Codefresh the platform is designed to provide a powerful and functional software supply chain framework in which you can bring the best-of-breed tools to help you deliver software. One area where this is evident is in the Codefresh Hub for Argo: an open repository of integrations designed for Argo Workflows. Codefresh Hub for Argo is an important community resource with growing contributions from the community and verified and secure templates maintained by Codefresh and soon others.
As a platform, Codefresh has 1st class integrations with Jira, Git-providers, security vendors, cloud providers, and many others. We don’t believe that Codefresh has to build the best of everything, we can build the best core and supply chain that allows users to pick the best-of-breed tools they want to use and bring them into a single flow. Adopting Codefresh doesn’t force teams to replace the components of software delivery that work well. Instead, it integrates and expands the capabilities into a single, easy-to-use supply chain.
Enterprise Security and Reliability
Codefresh uses a unique hybrid model. Codefresh hosts the control plane while runtimes are deployed on the infrastructure you control. Each runtime operates independently when needed but reports status and other relevant information to the control plane. If the control plane were to go down for some reason, each runtime will continue to operate with git as its source of truth.
This model is in sharp contrast to traditional approaches that require teams to take on the burden of maintaining fully on-prem complex software stacks or put full trust in a hosted solution. These traditional approaches force teams to trade ease of use for security in a bargain no one really wants to make.
A hybrid model is a fresh approach that provides security and ease of use. Hybrid means secrets, git access, and other relevant keys are stored on the infrastructure you control and the connection to the control plane in Codefresh doesn’t pass those secrets. This is how you can use Codefresh to build, run, and deploy code monitored from your dashboard in Codefresh without Codefresh ever having access to your code.
We also partnered with Snyk to constantly monitor and scan the CSDP codebase and images.
“We are excited to partner with Codefresh to help developers scale securely when building cloud applications,” said Jill Wilkins, Senior Director Global Alliances at Snyk, a leader in developer security. “When developers are empowered to work within their preferred environment, organizations are able to dramatically improve their security posture and preserve application development efficiencies.”
Teams that adopt Codefresh Software Delivery Platform deploy more often, with greater confidence, and are able to resolve issues in production much more quickly. This is because we unlock the full potential of Argo to create a single cohesive software supply chain. Argo users can bring their configurations and immediately bring clarity and simplified management that they didn’t have before. For users of traditional CI/CD tooling, the fresh approach to software delivery is dramatically easier to adopt, more scalable, and much easier to manage with the unique hybrid model.
Starting today with additional features rolling out over the coming weeks, CSDP is available free for small teams and with a free trial for larger teams. Get started at https://codefresh.io/codefresh-signup/