current position:Home>How does Argo family bucket make Devops easier?

How does Argo family bucket make Devops easier?

2022-06-24 12:39:40My small bowl of soup

If you are a DevOps The engineer , You may at least have heard of Argo The name , See the friendly cuttlefish (squid) The logo , And want to know : What exactly is this tool that everyone is talking about ?

In short ,Argo Is a popular open source tool , It makes GitOps For any use Kubernetes All people are practical . But this is much more than that , Because by enabling GitOps,Argo Will also make Kubernetes The environment is more robust than ever 、 Safe and reliable .

What is? GitOps, Will replace DevOps Do you ?

GitOps Is a new process and paradigm for development teams to manage infrastructure and deploy applications .GitOps Medium “Git” It refers to the open source version control system .GitOps Use Git As a single source of information for declarative configuration . Based on this declarative configuration , It works its magic .

GitOps Use Git Pull requests automatically manage the configuration and deployment of the infrastructure . When the development team is right Git When the configuration changes , Deployed in the environment GitOps The agent automatically reconciles the changes to the real-time state . Every change to the real-time environment will occur in Git Capture... In the repository , So the team has visibility and auditability for system changes . most important of all , In case of failure in production , Rolling back to the previous working version is easy .

GitOps Build on developer experience , Enable teams to manage infrastructure using the same tools and processes used to develop software , And extend these tools to software deployment and infrastructure management .

Although some people will GitOps Touted as “DevOps 2.0”, But many experts disagree , call GitOps No DevOps A better version of , It will not completely replace DevOps.GitOps Is a kind of right DevOps A very useful technical practice for the team .DevOps Engineers will not be Git Triggered by the robot . but GitOps Will make developers more efficient .

What is? Argo project ?

Argo Is a cloud native Computing Foundation (CNCF) Managed open source projects :

https://www.cncf.io/projects/argo/

For building and managing Kubernetes、GitOps Style continuous delivery workflow .Argo What makes it unique is that it is Kubernetes Native , Designed from scratch for a modern containerized environment .

Argo The project consists of four main sub projects :

  • Argo CD: Have the power to GUI and CLI Of GitOps Continuous delivery engine .
  • Argo Workflows: A workflow engine , Support workflow and directed acyclic graph (DAG), Each of these process phases is a container .
  • Argo Rollouts: An advanced Kubernetes Deployment engine , Support progressive delivery strategies , Such as canary and blue / Green deployment , These are common Kubernetes It's very difficult to achieve .
  • Argo Events: One is based on Kubernetes Event dependent management system , Can be used to trigger CI/CD Automated workflows in pipelines .

Argo The advantages of tools in a production environment

ArgoCD

Argo CD yes Kubernetes Native continuous delivery (CD) Tools .

https://argoproj.github.io/cd/

Although most CD The tool only supports push based deployment , but Argo CD Working in pull mode , from Git The repository retrieves the updated code and deploys it directly to Kubernetes resources . This allows developers to manage infrastructure configuration and application updates in one system .

Argo CD Its main functions include :

  • Automatically put Kubernetes The application state in the cluster is the same as Git The repository (GitOps) The current version of the declarative configuration in .
  • Ability to visualize deployment issues and detect and fix misconfigurations .
  • Conveniently based on Web Of GUI and CLI.
  • Role-based access control (RBAC) And single sign on (SSO), Including passage GitHub、LinkedIn、Microsoft Wait for login .
  • Support in GitLab、GitHub and BitBucket Which triggers the operation webhook.

GitOps Can help you in Kubernetes To achieve real GitOps workflow , Provide the following benefits in a production environment :

  • Minimize failed deployments and quickly recover from downtime :Argo CD It allows you to recover and rollback immediately and easily in case of any problems in production , This reduces recovery time to seconds .
  • Built in audit history :Argo CD Make sure you are right Kubernetes Every change to the cluster is made in Git Audit in the form of configuration change log . This provides a complete audit trail of who changed the content in the cluster , This enables consistent operation and supports compliance requirements .
  • Improve visibility into the development function lifecycle :Argo CD Provide traceability from each change in the infrastructure or application directly to the code submission that caused those changes .
  • Improve safety :Argo CD Provide strong security assurance , Use powerful encryption to manage and verify identities , And in CI Create a complete separation between the environment and the production system , Eliminate multiple types of supply chain attacks .

Argo Rollouts

Argo Rollouts It's a group. Kubernetes Controller and CRD, Provides advanced deployment capabilities .

https://codefresh.io/learn/argo-rollouts/

for example Kubernetes Blue in the environment / Green and Canary deployment 、 Experimentation and progressive delivery . It can work with Ingress Controller and service grid integration , To convert the traffic increment to the new version during the update .

Argo Rollouts A key feature of is that it can query and interpret metrics from many sources , To verify that the deployment is working properly and perform an automatic upgrade or rollback .

By default ,Kubernetes Provide Deployment object , This object uses “ Scroll to update ” Policy update application . In large production environments , Rolling updates are considered too risky , Because we can't control the pushing speed , Nor can it be rolled back automatically in the event of a failure .

Another limitation is out of the box ,Kubernetes Deployment Unable to query external indicators , For example, real users' measurement of performance or participation , To determine if the deployment was successful .

Argo Rollouts Can solve all these challenges , And in Kubernetes Fully progressive delivery in the environment , Without complicated configuration .

Argo Workflows

Argo Workflows Is an open source container native workflow engine , Used in Kubernetes Arrange parallel tasks on .Argo Workflow is implemented as Kubernetes Custom resource definition (CRD).

Argo The main features of the workflow include :

  • Define a workflow in which each step in the workflow is a container .
  • Model a multi-step workflow as a set of actions or DAG To capture dependencies .
  • stay Kubernetes Run locally CI/CD The Conduit , No need to configure complex software development products .

Argo Workflows Can let you in any Kubernetes Automate production workflows in the environment , Whether it's local 、 Mixed cloud or cloudy environment . It eliminates manual processes , And ensure that automation is presented in declarative configuration , Make it consistent 、 repeatable 、 Easy rollback and troubleshooting .

Argo Events

Argo Events It's based on Kubernetes Event dependency Manager , It is for different event sources ( for example webhook、 S3、 Dispatch 、 Flow, etc. ), And event dependent Kubernetes Object dependencies were successfully resolved , Provide triggers .

Argo The events themselves are not very useful . To generate value , Need to integrate with systems that can perform workflow steps . therefore , have access to Argo Workflows To integrate Argo Events. This helps orchestrate parallelism Kubernetes Homework .

Argo Events Provides several in production Kubernetes Enable dependency management in the environment :

  • Manage the dependencies of various event sources .
  • Be able to customize business level constraint logic to solve event dependencies .
  • Manage everything from simple linear real-time dependencies to complex multi-source batch job dependencies .
  • accord with CloudEvents standard .
  • Ability to manage event sources at run time .

Conclusion

This paper introduces GitOps and Argo Basic knowledge of the project , And shows Argo How each key module of the project helps developers and DevOps The engineer made... With minimal effort Kubernetes Prepare for production .Argo Its magic lies in its simplicity and seamless integration into the existing Kubernetes The way of workflow .

copyright notice
author[My small bowl of soup],Please bring the original link to reprint, thank you.
https://en.chowdera.com/2022/175/202206241028445702.html

Random recommended