Translated

This commit is contained in:
AnyISalIn 2021-01-27 13:01:36 +08:00
parent 5de8fc2473
commit 990e45508a
2 changed files with 95 additions and 96 deletions

View File

@ -1,96 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (How to implement a DevOps toolchain)
[#]: via: (https://opensource.com/article/21/1/devops-tool-chain)
[#]: author: (Tereza Denkova https://opensource.com/users/tereza-denkova)
How to implement a DevOps toolchain
======
A fully enabled DevOps toolchain propels your innovation initiatives
with prompt deployment and cost savings.
![Wratchet set tools][1]
Organizations from all industries and of all sizes strive to deliver quality software solutions faster. This guarantees not only their survival but also success in the global marketplace. DevOps can help them chart an optimal course.
DevOps is a system where different processes are supported by tools that work in a connected chain to deliver projects on time and at a lower cost.
At the IT services company [Accedia][2], where I work, we support our clients in implementing a fully-enabled DevOps toolchain that enables them to meet and often surpass their business objectives. In this article, I share with you the key things I have learned from our DevOps projects so far. 
### What is a DevOps toolchain?
A good DevOps toolchain is a progression of different DevOps tools used to address a specific business challenge. Connected in a chain, they guarantee a profitable cycle between the front-end and back-end developers, quality analyzers, and customers. The goal is to automate development and deployment processes to ensure the rapid, reliable, and budget-friendly delivery of innovative solutions.
We found out that building a successful DevOps toolchain is not a simple undertaking. It takes experimentation and nonstop refinement to guarantee that essential processes are fully automated.
### Why you need a DevOps toolchain
A DevOps toolchain automates all of the technical elements in your workflow. It also gets different teams on the same page so that you can focus on a business strategy to drive your organization into the future.
We have come to identify five all the more valid benefits in support of the DevOps toolchain implementation. You can use them to convince your management that it is worth the time and resources which will be invested in developing it: 
1. **Faster and more efficient product deployments:** DevOps tools automate most of the software development process. This results in the agile delivery of innovative products and solutions that leave the business far ahead of the competition.
2. **Budget and time optimization:** Automating manual tasks ensures that your organization saves time and resources. Once there are no additional costs incurred from natural human errors or insufficient time management, the budget is naturally optimized.
3. **Efficient development:** A DevOps toolchain makes the development process more efficient by removing unnecessary delays between the different aspects of development work. The work of front-end and back-end developers and quality testers is synchronized, so no one waits for the other team members to deliver their part so they can take over.
4. **Faster deployment means higher quality:** A DevOps toolchain guarantees that defects are resolved quickly and skillfully to achieve the best quality with a faster deployment process. How? It enables the generation of targeted alerts that notify your team of major incidents. This allows you to proactively stop potential problems from escalating and damaging your customer service.
5. **Timely incident management:** A DevOps toolchain helps refine your incident management record. It does this by identifying IT incidents and escalating them specifically towards the right team members, then following through until the issues are resolved. This means messages are received and acted upon quickly because they're correctly targeted.
### A DevOps toolchain in action
My team isn't new to DevOps. We've been agile for a long time, and we've always been keen to explore optimal workflows. In our experience, increasing application complexity increases the need for automation.
Here's a toolchain we set up for a client. The project included developing a mobile factoring solution that links all participants in a financial transaction—seller, buyer, and bank. The client wanted to make the whole experience user-friendly by dynamically responding to user feedback and reducing downtime to a minimum. My team designed a toolchain to automate app maintenance and deployment of new features.
![Accedia's DevOps toolchain][3]
(Accedia, [CC BY-NC-SA 4.0][4])
1. First, the team wrote automated tests that immediately identified changes to the application's initial version (the **source control/version control DevOps** phase).
2. Once the new version was ready, the code was committed to GitLab.
3. Through GitLab, the commit automatically started a Jenkins build.
4. In **continuous integration**, the new code version was tested with [Chai][5] and [Mocha][6] to check whether it operated correctly.
5. When the tests passed successfully, the **continuous delivery phase** automatically started and created a ready-to-use Docker image in Sonatype's [Nexus][7]. (This is available both as a free and open source tool and as a paid service from Sonatype.)
6. Finally, the new version of the application was downloaded from Nexus and deployed to a live environment, e.g., [Docker][8] containers (the **continuous deployment phase**).
In short, every time someone makes a new commit in the repository where the team uploads any new code versions, functions, upgrades, bug fixes, etc., the app package is automatically updated and delivered to clients.
This system has proficient incident control to ensure rapid deployment but not at the expense of quality. It's dynamic in responding to user feedback, meaning that new functions and updates of old ones are released in half the time, while downtime is reduced to a minimum.
### To wrap it up
A fully enabled and properly implemented DevOps toolchain propels your innovation initiatives from start to end and ensures prompt deployment.
Your toolchain will look different than this, depending on your requirements, but I hope seeing our workflow gives you a sense of how to approach automation as a solution.
* * *
_This was written in collaboration with Vladimir Vladimirov, senior software consultant at Accedia, who has extensive experience in CI/CD, DevOps processes, and automating software delivery. It is also based on [5 good reasons why you need a DevOps toolchain][9] from Accedia's blog and is reused under a [CC BY-NC-SA 4.0][4] license._
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/1/devops-tool-chain
作者:[Tereza Denkova][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/tereza-denkova
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/tools_osyearbook2016_sysadmin_cc.png?itok=Y1AHCKI4 (Wratchet set tools)
[2]: https://accedia.com/services/operations/devops/
[3]: https://opensource.com/sites/default/files/uploads/devopstoolchain.png (Accedia's DevOps toolchain)
[4]: https://creativecommons.org/licenses/by-nc-sa/4.0/
[5]: https://www.chaijs.com/
[6]: https://mochajs.org/
[7]: https://www.sonatype.com/nexus/repository-oss
[8]: https://opensource.com/resources/what-docker
[9]: https://accedia.com/blog/5-good-reasons-why-you-need-a-devops-toolchain/

View File

@ -0,0 +1,95 @@
[#]: collector: (lujun9972)
[#]: translator: (AnyISalIn)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (How to implement a DevOps toolchain)
[#]: via: (https://opensource.com/article/21/1/devops-tool-chain)
[#]: author: (Tereza Denkova https://opensource.com/users/tereza-denkova)
如何实现 DevOps 工具链
======
一套完整的 DevOps 工具链有助于推动业务创新
快速部署并且节省成本
![Wratchet set tools][1]
不同规模和不同行业组织都致力于为提高软件交付的速度和质量提供解决方案。这不仅保证了他们的生存还令他们在全球市场取得了成功。DevOps 可以帮助他们规划最佳路线。
DevOps 是一个系统,通过引入不同的工具链连接不同工作流程,以便及时交付项目并降低所需的开销。
在我工作的 IT 服务公司 [Accedia][2],我们会帮助客户落地一套完整的 DevOps 工具链,这套工具链能帮助他们达到甚至超越他们的业务目标。在这篇文章,我会分享目前为止从 DevOps 项目中汲取的经验。
### DevOps 工具链是什么?
一套完善的 DevOps 工具链可以在不同阶段中使用不同的 DevOps 工具来解决特定的业务带来的挑战。一条工具链能保证前端和后端开发者QA 人员,客户都能够从中获得收益。构建工具链的目的是为了自动化开发和部署过程,以确保快速,可靠,预算友好地交付与创新。
我们发现成功构建一套 DevOps 工具链不是一个简单的事情。它需要实验和不断的完善,保证必要的流程是完全自动化的。
### Why you need a DevOps toolchain
### 为什么你需要 DevOps 工具链
DevOps 工具链自动化了工作流中的所有技术元素。它能让不同团队在一个平台上进行工作,因此可以使你专注于业务战略以推动组织走向未来。
我们总结了五个实现 DevOps 工具链所带来的好处。你可以让管理层相信,是值得为 DevOps 工具链的开发投入资源和时间的。
1. **更快更高效的生产部署** DevOps 工具自动化了大部分软件开发进程。这会使产品开发专注于创新,交付更加敏捷,更领先于竞争对手。
2. **预算和时间优化** 将手动的任务转变为自动化会使你的组织节省时间和资源。当没有人为错误和时间管理不足带来的额外支出,预算自然会得到优化。
3. **高效开发** DevOps 工具链会减少开发工作中不必要的延时,提高开发效率。前端、后端、质量测试人员的工作是一致的,所以没有人需要协调不同团队之间人员的交付。
4. **更快的部署意味着更高的质量** DevOps 工具链保证了缺陷能够很快被解决,并且迅速的完成高质量的部署进程。怎么样?它可以生产有针对性的告警,并将重要的事件通知给你的团队。这会让你主动地发现并解决潜在的问题,从而规避故障的不断的升级从而导致的客户服务不可用。
5. **及时事件管理** DevOps 工具链有助于优化事件管理记录。它能够识别 IT 事件并且逐渐升级事件级别,通知给指定团队的成员,直到问题被解决。这意味着消息的接受和处理会更加的迅速,因为它们发送给了正确的目标。
### DevOps 工具链的实践
对我的团队来说DevOps 并不新鲜。我们已经敏捷开发很长时间了,并且我们总是热衷于探索最优的工作流。在我们的实践中,往往都是应用复杂性增加从而带来了自动化的需求。
这是我们为客户配置的工具链。这个项目包含了移动运营方案,连接了金融交易的所有参与者 (卖方,买方,银行)。这个客户需要动态响应用户反馈并且将故障时间缩短到最小从而来提高用户体验。我的团队设计了一套工具链用于自动化应用的维护和部署新功能。
![Accedia's DevOps toolchain][3]
(Accedia, [CC BY-NC-SA 4.0][4])
1. 首先,我们团队编写了自动化测试,可以立即识别应用程序的变更。
2. 当新版本已经准备就绪的时候,代码将被提交到 Gitlab 中。
3. 通过 Gitlab提交会自动触发 Jenkins 构建。
4. 在 **持续集成中**,新的代码版本通过 [Chai][5] 和 [Mocha][6] 进行了测试,以检测是否运行正常。
5. 当测试通过,**持续部署阶段** 将会开始并创建一个可用的 Docker 镜像并上传到 Sonatype's [Nexus][7]. (这是 Sonatype 公司的的一个开源工具)
6. 最后,新版本应用会通过 Nexus 下载并且部署到线上环境中,例如 [Docker][8] 容器 (**持续部署阶段**)
简而言之,每当有人在仓库中创建一个新的提交,又或者团队上传新的代码版本、功能、升级、缺陷修复等,应用程序包都会自动更新并且交付给客户。
这套系统拥有良好的事故控制能力以保证快速部署,但不以牺牲质量为代价。它对于用户的反馈是动态的,意味着新功能和旧功能的和更新只需要之前一半的时间,同时将故障时间降低到最低。
### 把它封装起来
一套完整并且正确实施的 DevOps 工具链可以从始至终推动你的创新计划并且加速部署。
根据你的需求,你的工具链可能看起来和这些不一样,但是我希望我们的工作流能够让你了解如何将自动化作为一种解决方案。
* * *
_This was written in collaboration with Vladimir Vladimirov, senior software consultant at Accedia, who has extensive experience in CI/CD, DevOps processes, and automating software delivery. It is also based on [5 good reasons why you need a DevOps toolchain][9] from Accedia's blog and is reused under a [CC BY-NC-SA 4.0][4] license._
--------------------------------------------------- -----------------------------
via: https://opensource.com/article/21/1/devops-tool-chain
作者:[Tereza Denkova][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/AnyISalIn)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/tereza-denkova
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/tools_osyearbook2016_sysadmin_cc.png?itok=Y1AHCKI4 (Wratchet set tools)
[2]: https://accedia.com/services/operations/devops/
[3]: https://opensource.com/sites/default/files/uploads/devopstoolchain.png (Accedia's DevOps toolchain)
[4]: https://creativecommons.org/licenses/by-nc-sa/4.0/
[5]: https://www.chaijs.com/
[6]: https://mochajs.org/
[7]: https://www.sonatype.com/nexus/repository-oss
[8]: https://opensource.com/resources/what-docker
[9]: https://accedia.com/blog/5-good-reasons-why-you-need-a-devops-toolchain/