当前位置:网站首页>Containers and Devops: container based Devops delivery pipeline
Containers and Devops: container based Devops delivery pipeline
2022-07-06 12:46:00 【Devops cloud school】
* This article is translated from :https://www.bmc.com/blogs/devops-containers/ *
DevOps The emergence of is to meet the growing market and consumer demand for technology applications . It aims to create a faster development environment without sacrificing software quality .DevOps It also focuses on improving the overall quality of software in the rapid development lifecycle . It depends on a variety of technologies 、 A combination of platforms and tools to achieve all these goals .
Containerization is a radical change in our development 、 Technology for deploying and managing the application way . In this post , We will learn how containers fit DevOps The world , And container based DevOps Advantages and disadvantages of delivery pipeline .
What is a containerized Application ?
Virtualization helps users create virtual environments that share hardware resources . Containerization takes this abstraction further by sharing the operating system kernel . This leads to lightweight and inherently portable objects that bundle software code with all necessary dependencies ( Containers ). These containers can then be deployed on any supported infrastructure , Only minimal or no external configuration is required .
One of the most complex parts of traditional deployment is to deploy the environment with all dependencies and configurations . Containerized applications eliminate these configuration requirements , Because the container packages everything the application needs .
most important of all , Compare with virtual machine , Containers will require fewer resources and can be easily managed . In this way , Containerization greatly simplifies the deployment strategy , It can be easily automated and integrated into DevOps In delivery pipeline . When it comes to Kubernetes or Rancher When combined with the editing platform , Users can :
- Take advantage of these platforms to manage the entire application lifecycle
- Higher availability 、 Extensibility 、 Performance and safety
What is continuous delivery pipeline ?
DevOps Rely on continuous delivery (CD) As the core process of managing software delivery . It enables software development teams to deploy software more frequently , At the same time, maintain the stability and reliability of the system .
Continuous delivery and utilization CI/CD platform 、 A series of tools such as testing tools , Combine automation to promote frequent software delivery . All possible tasks through automated pipelines , From testing 、 Infrastructure configuration and even deployment , Automation plays an important role in these continuous delivery pipelines .
in the majority of cases , Continuous delivery and continuous integration are combined to create a stronger delivery pipeline , be called CI/CD The Conduit . They enable organizations to integrate complete software development processes into DevOps In the pipeline :
- Continuous integration ensures that all code changes are integrated into the delivery pipeline .
- Continuous delivery ensures that new changes are properly tested and eventually deployed into production .
Both are important for success DevOps Delivery pipelines are crucial .
How all this comes together ?
Now we know about containerized applications and delivery pipelines , Let's see how the two are related to each other to deliver software more effectively .
Conventional DevOps The Conduit
First , Let's look at the traditional DevOps The Conduit . Generally speaking , The traditional delivery pipeline will include the following steps .
- Develop software and integrate new changes into a centralized repository .( Version control tools work here .)
- Validate the code and merge the changes .
- Build the application with new code changes .
- Provide all configurations and dependencies for the test environment and deploy the application .
- To test .( This can be tested automatically and manually as required )
- After completing all tests , Deploy applications in production .( This again requires providing resources and configuring dependencies with any other configuration required to run the application .)
Most of the above tasks can be automated , Including the use of Terraform、CloudFormation etc. IaC Tool configuration infrastructure , Use AWS Elastic Beanstalk and Azure App Service And other platforms can simplify the deployment . However , All these automated tasks still need careful configuration and management , Using supplier specific tools will lead to supplier lock .
Containerized delivery pipeline
Containerized application deployment enables us to simplify the delivery pipeline with less management overhead . A typical containerized pipeline can be summarized as the following steps .
- Develop and integrate changes using version control systems .
- Validate and merge code changes .
- Build a container image .( At this stage , The code repository contains the application code and all the necessary configuration files and dependencies for building the container .)
- Deploy the container to the test environment .
- Application testing .
- Deploy the container to the production environment using the same container image .
As you can see in the figure above , Containerized application pipelines effectively eliminate most conventional infrastructure and environmental configuration requirements . however , The main thing to remember is ,「 The container deployment environment must be configured in advance 」. in the majority of cases , This environment involves :
- A container orchestration platform , Such as Kubernetes or Rancher
- Platform specific orchestration Services , Such as Amazon Elastic Container Service (ECS)、AWS Fargate、Azure Container services, etc .
The container includes all application dependencies and configurations . It reduces any errors related to configuration problems , And allow the delivery team to work in different environments ( For example, testing and production ) Quickly migrate these containers . Besides , Containerization greatly reduces the scope of troubleshooting , Because developers only need to dig deep into the application in the container , It is hardly affected by external configuration or services .
Modern application architecture ( For example, the architecture based on microservices ) Very suitable for containerization , Because they decouple application functions into different services . Containerization allows users to manage these services as individual entities , Without relying on any external configuration .
Even if containers are used, there will be infrastructure management requirements , Think that containers do simplify these requirements . The most prominent infrastructure management requirements will be managed at the same time :
- Container arrangement platform
- External service , Such as load balancer and firewall
however , Use Amazon Elastic Kubernetes Service (EKS) or Azure Kubernetes Service (AKS) And other managed container orchestration platforms do not need to manage the infrastructure of the container orchestration platform . These platforms further simplify the delivery pipeline , And allow Kubernetes Users use them without being locked by suppliers , Because they're based on Kubernetes.
DevOps The arrangement of containers in the delivery pipeline
Container orchestration goes hand in hand with container applications , Because containerization is only part of the whole container revolution . Container orchestration is the process of managing containers throughout their lifecycle , From deploying containers to managing availability and expansion .
Although there are many editing platforms , but Kubernetes It's one of the most popular choices , It has been supported by the whole industry . It can power almost any environment , From single node cluster to multi cloud cluster . The ability of the orchestration platform to manage containers throughout their lifecycle , At the same time, ensuring availability eliminates the need for manual intervention to manage containers .
As mentioned earlier , Using a platform independent orchestration platform can prevent suppliers from locking , At the same time, it allows users to take advantage of hosting solutions and support multi Cloud Architecture through a single platform .
Whether the container is suitable for your DevOps Delivery pipeline ?
The answer is yes . Containerization can benefit almost all application development :
- DevOps Simplifies rapid development and delivery , At the same time, it increases team collaboration and improves the overall application quality .
- Containers allow users to DevOps Take advantage of all the advantages of containers in the delivery pipeline , Without hindering the core DevOps practice , To help further simplify DevOps Delivery process .
Containers can support any environment , No matter the programming language 、 frame 、 How about the deployment strategy , At the same time, it provides more flexibility for the delivery team , Can customize their environment without affecting the delivery process .
边栏推荐
- 基于Redis的分布式锁 以及 超详细的改进思路
- 1041 Be Unique (20 point(s))(哈希:找第一个出现一次的数)
- (四)R语言的数据可视化——矩阵图、柱状图、饼图、散点图与线性回归、带状图
- 341. Flatten nested list iterator
- (课设第一套)1-5 317号子任务 (100 分)(Dijkstra:重边自环)
- [Offer18]删除链表的节点
- Unity3d makes the registration login interface and realizes the scene jump
- [leetcode19] delete the penultimate node in the linked list
- FairyGUI簡單背包的制作
- FairyGUI人物状态弹窗
猜你喜欢
Force buckle 1189 Maximum number of "balloons"
(4) Data visualization of R language -- matrix chart, histogram, pie chart, scatter chart, linear regression and strip chart
Stm32f1+bc20+mqtt+freertos system is connected to Alibaba cloud to transmit temperature and humidity and control LED lights
Whistle+switchyomega configure web proxy
Postman 中级使用教程【环境变量、测试脚本、断言、接口文档等】
The dolphin scheduler remotely executes shell scripts through the expect command
Mysql database index
Naive Bayesian theory derivation
Office prompts that your license is not genuine pop-up box solution
Prove the time complexity of heap sorting
随机推荐
FairyGUI增益BUFF數值改變的顯示
Get the position of the nth occurrence of the string
[Offer29] 排序的循环链表
Remember an experience of ECS being blown up by passwords - closing a small black house, changing passwords, and changing ports
idea中导包方法
Gateway 根据服务名路由失败,报错 Service Unavailable, status=503
(一)R语言入门指南——数据分析的第一步
Latex learning
PR 2021 quick start tutorial, first understanding the Premiere Pro working interface
(3) Introduction to bioinformatics of R language - function, data Frame, simple DNA reading and analysis
JS regular expression basic knowledge learning
(1) Introduction Guide to R language - the first step of data analysis
记一次云服务器被密码爆破的经历——关小黑屋、改密码、改端口
Database course design: college educational administration management system (including code)
Single chip Bluetooth wireless burning
FairyGUI复选框与进度条的组合使用
Unity3D,阿里云服务器,平台配置
2021.11.10 compilation examination
By v$rman_ backup_ job_ Oracle "bug" caused by details
[leetcode622] design circular queue