DevOps principles, practices and common tools


According to Stastista , 74 ZB of data will be available in 2021. With the development of new technologies such as 5G networks and AI, data production is expected to increase over time. The question is how to make this data more accessible?

DevOps stands for Development and Operations. It is a set of processes designed to merge development, quality assurance and operations (deployment and integration) into a single and continuous process [1]. The main goal of DevOps is to shorten the system development life cycle and provide high-quality continuous delivery of software. DevOps is not just a series of actions, it is also improving the culture of cross-functional team communication and enabling innovation. In other words, DevOps is more about teamwork, and its success depends on the principles and practices used by DevOps teams.

On the one hand, DevOps is adopted to solve many problems faced by development teams, such as on-time delivery and long release cycles. Operations teams, on the other hand, must manage resources as demand increases, handle application requirements executing in production environments, and diagnose and resolve production-related issues. In order to solve the above problems, DevOps came into being. By implementing DevOps, development and operations teams no longer work in isolation, testing and deployment become a phase included in the development phase, and team members can focus on business services instead of spending time on Test, deploy and design. As a result, teams are able to avoid errors and delays in production by automating the process because deployment and operations can now work together and enforce similar schedules.

Understanding DevOps principles and practices is paramount if DevOps is to be incorporated into enterprise team operations.
1. Incremental releases : When developers have to wait a long time to commit code and tests, bugs and incompatibilities can occur. In DevOps, teams commit their code incrementally (sometimes multiple times a day). This way, the team will be able to respond more quickly to possible issues.
2. Automation : This is probably the most critical part of doing DevOps! In DevOps, it is necessary to automate as much software development as possible. This will allow teams to focus only on writing code, while automating the work of building, testing, and alerting developers in case something goes wrong.
3. Pipeline : This is a set of tasks that code needs to go through before it can be deployed to production. That is, first the code needs to be developed by the team and then the build needs to be created by compiling the code. After building, tests can be performed to ensure that the source code behaves as expected. Finally, the code can be deployed to end users.

1. Continuous Integration and Delivery (CI/CD) : This principle encourages developers to commit code to a Central Repository (CI) multiple times a day and then quickly and continuously release code updates (CD).

2. Microservices : Microservices are a set of independent services that communicate with each other but are independently developed, deployed, and maintained. With the high deployment rate of DevOps, microservices help keep the system stable while enabling separation and quick problem resolution.

3. Communication and collaboration : Information sharing and portable communication via chat, issue tracker or wiki are the keys to success in applying DevOps methodology. This facilitates effective communication and alignment of goals across different teams.

The main goal at this point is to form an automated delivery pipeline and integration process. To do this, a number of tools are available, as shown in the image below.


Continuous delivery pipelines and tools (image taken from [6])


Each step of the Delivery Pipeline should be tailored to the specific needs of a specific tool. To help choose the right tool, here are the 10 most commonly used tools in DevOps:
  1. Git for coding and building
  2. Slack as a communication platform
  3. Jenkins for build, test and deploy
  4. Puppet for deployment and operations
  5. Docker for building, deploying and operating
  6. Selenium for testing
  7. Kubernetes for builds, deployments and operations
  8. Elasticsearch for monitoring
  9. 腾讯云、AWS 或 Azure 用于云计算存储
  10. Prometheus 用于存储数据和监控。

TLDR-总结 :DevOps 是一种生命周期投资,是一份团队承担,它能够实现更好的软件开发和交付实践,并加速持续交付。

参考文献:

[1] https://www.altexsoft.com/blog/engineering/devops-principles-practices-and-devops-engineer-role/

[2] https://phoenixnap.com/blog/devops-principles

[3] https://www.altexsoft.com/blog/engineering/devops-principles-practices-and-devops-engineer-role/

[4] https://puppet.com/resources/report/2015-state-devops-report/

[5] https://puppet.com/blog/2017-state-devops-report-here/

[6] https://www.bogotobogo.com/DevOps/DevOps_CI_CD_Pipeline_Sample.php




TARS基金会是Linux基金会下的非营利性、微服务基金会,致力于建设一个强大而灵活的微服务生态系统。无论你在哪个行业,无论你使用什么技术栈,这里能助你快速实现你的创意。


点“在看”让TARS小姐姐变好看

本文分享自微信公众号 - TARS星球(TarsCloud)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

{{o.name}}
{{m.name}}

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=324130543&siteId=291194637