当前位置:网站首页>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 .
边栏推荐
- [offer78] merge multiple ordered linked lists
- Combination of fairygui check box and progress bar
- 地球围绕太阳转
- Common DOS commands
- 2021.11.10 compilation examination
- Who says that PT online schema change does not lock the table, or deadlock
- What is the maximum length of MySQL varchar field
- Expected value (EV)
- First use of dosbox
- FairyGUI简单背包的制作
猜你喜欢

Office提示您的许可证不是正版弹框解决

Particle system for introduction to unity3d Foundation (attribute introduction + case production of flame particle system)

Mysql database reports an error: row size too large (> 8126) Changing some columns to TEXT or BLOB or using ROW_ FORMAT=DY

单片机蓝牙无线烧录

JS function promotion and declaration promotion of VaR variable

PR 2021 quick start tutorial, first understanding the Premiere Pro working interface

Database course design: college educational administration management system (including code)

基于Redis的分布式锁 以及 超详细的改进思路

Whistle+switchyomega configure web proxy

Liste des boucles de l'interface graphique de défaillance
随机推荐
How to improve the deletion speed of sequential class containers?
Gateway 根据服务名路由失败,报错 Service Unavailable, status=503
Get the position of the nth occurrence of the string
(三)R语言的生物信息学入门——Function, data.frame, 简单DNA读取与分析
Guided package method in idea
How to add music playback function to Arduino project
Prove the time complexity of heap sorting
Unity3d makes the registration login interface and realizes the scene jump
Postman 中级使用教程【环境变量、测试脚本、断言、接口文档等】
(一)R语言入门指南——数据分析的第一步
Stm32f1+bc20+mqtt+freertos system is connected to Alibaba cloud to transmit temperature and humidity and control LED lights
It has been solved by personal practice: MySQL row size too large (> 8126) Changing some columns to TEXT or BLOB or using ROW_ FORMAT
First use of dosbox
Common DOS commands
第一人称视角的角色移动
VLSM variable length subnet mask partition tips
InnoDB dirty page refresh mechanism checkpoint in MySQL
Fairygui character status Popup
Easy to use shortcut keys in idea
Minio file download problem - inputstream:closed