自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

為新手準(zhǔn)備的DevOps工具鏈

譯文
開源
本文在介紹DevOps工具鏈的基本概念、商業(yè)價值、創(chuàng)建考慮、工具類別的基礎(chǔ)上,給出詳盡的工具列表,以及DevOps編排的相關(guān)討論。

[[436584]]

【51CTO.com快譯】DevOps是一種文化理念、流程和工具的組合。它可以在保證產(chǎn)品卓越質(zhì)量的同時,提高組織交付軟件的能力,以便更好地為客戶提供服務(wù),并在市場上搶占競爭優(yōu)勢。DevOps通過讓開發(fā)和IT運營團(tuán)隊實現(xiàn)自動化與集成化工作,協(xié)助他們快速、高質(zhì)量且可控地構(gòu)建、測試、部署和監(jiān)控應(yīng)用程序??梢哉f,在整個軟件的開發(fā)生命周期(SDLC)階段,它能夠?qū)崿F(xiàn)各項任務(wù)的自動化執(zhí)行,減少錯誤,消除瓶頸,以及減少不必要的返工。

什么是DevOps工具鏈?

DevOps的成功實施,往往依賴一組集成化的工具鏈。此類工具鏈能夠在整個系統(tǒng)開發(fā)的生命周期中,自動化地執(zhí)行設(shè)計、構(gòu)建、測試、交付、部署、管理、以及控制軟件應(yīng)用等任務(wù)。它能夠通過實現(xiàn)包括持續(xù)集成、持續(xù)交付、自動化協(xié)作與編排等關(guān)鍵性的DevOps原則,支持開發(fā)、運營、以及安全團(tuán)隊之間的異步協(xié)作,無縫地集成DevOps工作流,進(jìn)而更快、更高效地交付出產(chǎn)品。

DevOps工具鏈的商業(yè)優(yōu)勢

1.快速高效的部署

如今,軟件公司往往需要實現(xiàn)每天數(shù)次的部署與更新。這對于DevOps團(tuán)隊來說是一種挑戰(zhàn)。借助DevOps工具鏈,DevOps團(tuán)隊可以將自動化集成到軟件開發(fā)生命周期的每個階段,從而以更高質(zhì)量和更快效率的方式部署產(chǎn)品。據(jù)此,軟件公司可以確保每隔數(shù)小時進(jìn)行一次的部署,而非過去的每周僅部署一次。

2.事件管理

及時的事件響應(yīng)能夠確保業(yè)務(wù)的連續(xù)性。如今,企業(yè)不應(yīng)擔(dān)心“是否”會發(fā)生事故,而需要考慮的是“何時”出現(xiàn)問題。因此,它們必須準(zhǔn)備好快速、有效地響應(yīng)和解決事故的流程,以防止業(yè)務(wù)的中斷。

DevOps工具鏈可以優(yōu)化您的事件響應(yīng)策略,自動化事件管理的大部分初始過程,進(jìn)而加速解決的效率,并縮短停機(jī)時間。同時,工具鏈還可以通過接收和分析來自所有受影響系統(tǒng)的數(shù)據(jù),有效地協(xié)助創(chuàng)建事件報告。

3.提高軟件質(zhì)量

軟件錯誤與問題往往會阻礙軟件的開發(fā)過程,拖延發(fā)布的時間。因此,項目團(tuán)隊往往需要具備小時級的、快速準(zhǔn)確的問題識別和修復(fù)缺陷的能力。而DevOps工具鏈可以協(xié)作DevOps團(tuán)隊,主動地識別應(yīng)用程序的問題,根據(jù)問題的嚴(yán)重程度,對其進(jìn)行優(yōu)先級排序,進(jìn)而逐步修復(fù)問題。

4.工作流程自動化

2019年,在Evans Data Corp的DevOps與云調(diào)查中,針對工作流的管理工具,IT經(jīng)理會偏好收集與分析端到端的業(yè)務(wù)數(shù)據(jù);而開發(fā)人員會強調(diào)構(gòu)建可視化的、能夠操控數(shù)據(jù)的儀表板。借助DevOps工具鏈,項目團(tuán)隊既可以自動化地實時捕獲數(shù)據(jù),又能夠按需準(zhǔn)確、無縫地訪問與分析所需的數(shù)據(jù)。

5.安全性

安全性往往是懸在業(yè)務(wù)目標(biāo)頭上的“達(dá)摩克利斯之劍”。不過,許多組織一直未能就“誰負(fù)責(zé)安全”達(dá)成共識,這直接導(dǎo)致了數(shù)據(jù)意外泄露、與業(yè)務(wù)攻擊事件的頻發(fā)。而DevOps工具鏈可以給技術(shù)團(tuán)隊帶來持續(xù)監(jiān)控、合規(guī)、數(shù)據(jù)加密、以及事后審查報告等,組織級別的安全態(tài)勢。

如何構(gòu)建強大的DevOps工具鏈?

強大的DevOps工具鏈在加速DevOps優(yōu)勢方面,發(fā)揮著至關(guān)重要的作用。DevOps工具鏈必須遵循組織級別的方法,跨越所有團(tuán)隊、業(yè)務(wù)、流程、系統(tǒng)和應(yīng)用程序。此外,它必須結(jié)合對于每種工具如何優(yōu)化,以及加強DevOps生態(tài)系統(tǒng)中其他工具的洞見。

雖然DevOps工具鏈并沒有放之四海皆準(zhǔn)的統(tǒng)一標(biāo)準(zhǔn),但它們往往涉及到包含由版本控制、代碼質(zhì)量和持續(xù)集成等底層的最佳實踐和流程。在工具的選擇時,項目團(tuán)隊?wèi)?yīng)考慮諸如:遷移策略、可擴(kuò)展性、開源性和許可證成本等因素。通常,我們可以從版本控制和配置管理等基礎(chǔ)領(lǐng)域開始,逐步采用持續(xù)交付、部署和監(jiān)控等其他DevOps實踐類工具。

多合一的DevOps工具鏈

多合一的DevOps工具鏈提供了標(biāo)準(zhǔn)的、完備的產(chǎn)品,您可以根據(jù)自己的需求進(jìn)行選擇。對于剛開啟DevOps之旅的組織、或旨在快速啟動項目的團(tuán)隊而言,這是一種最佳的選擇。那些預(yù)先編排好的工具集,能夠促進(jìn)更高的標(biāo)準(zhǔn)化和命名資源的集成。不過,這些多合一的工具鏈也可能無法與團(tuán)隊現(xiàn)有的遺留工具進(jìn)行完美的集成,甚至造成潛在的阻礙。

可定制的DevOps工具鏈

另一種方法是選擇按需定制的工具集,并通過謹(jǐn)慎的編排,以集成到團(tuán)隊現(xiàn)有的DevOps管道中。這種類型的工具鏈可以防止團(tuán)隊被工具或供應(yīng)商鎖定。不過,自定義的DevOps工具鏈可能需要大量的管理資源與標(biāo)準(zhǔn)化的投入。

創(chuàng)建DevOps工具鏈的注意事項

為了創(chuàng)建實用的DevOps工具鏈,組織需要考慮如下四個主要方面:

保持相關(guān)性

隨時了解DevOps生態(tài)系統(tǒng)中的最新趨勢和創(chuàng)新。團(tuán)隊可以去主動了解行業(yè)內(nèi)的成功案例,并在不同的技術(shù)社區(qū),與他們互動交流與學(xué)習(xí)。

分析

分析和評估當(dāng)前的軟件開發(fā)過程及使用的工具,包括每個SDLC階段需要的時長、準(zhǔn)確性、及其效率。這將協(xié)助團(tuán)隊識別當(dāng)前系統(tǒng)中的漏洞和混亂的流程。

構(gòu)建

一旦確定了當(dāng)前系統(tǒng)中的漏洞,團(tuán)隊就需要通過選擇工具,來對系統(tǒng)進(jìn)行必要的修改。同時,他們在將理論知識付諸實踐的過程中,也需要構(gòu)建出各種工具鏈的原型。

可擴(kuò)展

為了在當(dāng)今瞬息萬變的IT市場中占有優(yōu)勢,企業(yè)應(yīng)當(dāng)能夠按需進(jìn)行無縫的調(diào)整和擴(kuò)展。為此,團(tuán)隊需要長遠(yuǎn)地規(guī)劃DevOps工具鏈,通過不同的策略來支持持續(xù)的維護(hù)、升級、定期配置、并能應(yīng)對各種不確定性。

DevOps工具的類別

項目管理工具

項目管理工具能夠幫助團(tuán)隊編制滿足客戶項目需求的代碼庫,將它們劃分為更小的任務(wù),并持續(xù)監(jiān)控任務(wù),直至完成。這些工具支持諸如Scrum、精益(Lean)和看板(Kanban)等敏捷項目管理的實踐。該領(lǐng)域的流行開源工具包括:GitHub Issues和 Jira。

源代碼存儲庫

版本控制類工具可以方便多名開發(fā)人員,同時在同一個代碼庫上工作。此類代碼存儲工具往往通過與CI/CD、安全性和測試工具相集成,以便代碼在提交到存儲庫時,能夠自動被移至下一步。該領(lǐng)域的流行開源工具包括:GitHub和GitLab。

CI/CD管道

持續(xù)集成和部署工具能夠自動化代碼的構(gòu)建、測試和部署。該領(lǐng)域的流行開源工具包括:市場上最富盛名的Jenkins和Kubernetes原生的CI/CD工具--Argo CD。

自動化測試框架

自動化測試框架包含各種用于自動化全部測試過程的軟件工具、庫和程序。其中包括單元測試、功能測試、合約測試、可用性測試、性能測試、滲透測試和安全測試等。此類工具大多能夠支持多種語言,有些甚至可以利用人工智能,來自動重新配置測試的流程,以響應(yīng)代碼的更改。當(dāng)然,此類測試工具往往比較昂貴。該領(lǐng)域的流行開源工具包括:Selenium、Katalon、Appium、Serenity和Robot Framework。

配置管理工具

配置管理工具有助于將基礎(chǔ)設(shè)施作為代碼進(jìn)行管理,從而避免了因跨環(huán)境而帶來的配置更改。通過執(zhí)行腳本,此類工具允許DevOps團(tuán)隊配置和提供完全版本化和文檔化的基礎(chǔ)設(shè)施。該領(lǐng)域的流行工具包括:Chef、Puppet、Ansible和Terraform。

監(jiān)控工具

監(jiān)控工具可以通過實時地收集和分析數(shù)據(jù),深入了解代碼更改是如何影響應(yīng)用程序性能的,進(jìn)而幫助DevOps工程師檢測和糾正系統(tǒng)中的問題。該領(lǐng)域的流行開源工具包括:Data dog、Nagios、Prometheus和Splunk。

持續(xù)反饋工具

此類工具通過熱圖(分析用戶的活動)、自助式問題反饋單或調(diào)查等各種渠道,收集用戶的反饋,進(jìn)而協(xié)助DevOps工程師解決問題,并提高相應(yīng)的產(chǎn)品質(zhì)量。

工件存儲庫

工件存儲庫存儲著所有待更新或更改的“重(heavy)”二進(jìn)制工件文件。它們是使用內(nèi)、外部源代碼存儲庫開發(fā)出的各種庫、DLL和二進(jìn)制文件的集合。該領(lǐng)域的流行工具包括:JFrog Artifactory和Nexus Repository。

問題跟蹤工具

在軟件開發(fā)生命周期中,清晰的透明度可以為DevOps團(tuán)隊提供深入的見解。而問題跟蹤工具可以協(xié)助他們對問題進(jìn)行編錄和跟蹤,并以更高效的響應(yīng)速度去快速解決問題。

協(xié)作和溝通工具

DevOps文化的精髓在于不同團(tuán)隊之間的無縫協(xié)作和溝通。而協(xié)作和溝通工具就能夠突破開發(fā)、測試、運營團(tuán)隊的位置與時區(qū)的障礙,開展流暢的協(xié)調(diào)和協(xié)同工作。該領(lǐng)域的流行工具包括:Slack、Campfire和Skype。

規(guī)劃工具

規(guī)劃工具可以根據(jù)整個組織的業(yè)務(wù)目標(biāo),為利益相關(guān)者、客戶和與不同團(tuán)隊提供所需的透明度,以協(xié)助各方制定沖刺計劃。該領(lǐng)域的流行工具包括:Asana和Clarizen。

編排工具

編排是確保自動化工作流實現(xiàn)構(gòu)建、測試、交付和部署的軟件應(yīng)用。此類工具既可以由內(nèi)部開發(fā)團(tuán)隊安裝和管理,又可以讓外包團(tuán)隊基于SaaS(軟件即服務(wù))來實現(xiàn)。該領(lǐng)域的流行工具包括:CircleCI、AzureDevOps和Jenkins。

源代碼管理

每個組織都需要通過一個集中化的存儲位置,來存放包括數(shù)據(jù)、文檔、代碼、配置和文件在內(nèi)的所有關(guān)鍵資產(chǎn)。源代碼控制工具不但可以實現(xiàn)該需求,還能夠?qū)?shù)據(jù)分類到不同的分支上,以供團(tuán)隊的使用。該領(lǐng)域的流行工具包括:SVN、Git和Subversion。

數(shù)據(jù)庫工具

數(shù)據(jù)庫管理工具能夠方便組織輕松地管理,由各個應(yīng)用程序開發(fā)和處理所產(chǎn)生的大量有價值的數(shù)據(jù)。該領(lǐng)域的流行工具包括:Razor SQL和Team Desk。

學(xué)習(xí)和掌握優(yōu)秀DevOps工具列表

目前,業(yè)界有各種付費和開源的DevOps流行工具可供選擇:

1.Docker

作為DevOps團(tuán)隊最常用的DevOps工具,Docker在DevOps生態(tài)系統(tǒng)中已廣受歡迎。據(jù)Forrester統(tǒng)計,它早在2018年第四季度就已主導(dǎo)了企業(yè)容器平臺的市場。Docker是一個基于Linux的開源工具,且支持容器化。據(jù)此,團(tuán)隊開發(fā)出的軟件能夠與其依賴項一起被打包,作為一個整體單元交付,進(jìn)而消除了單獨管理依賴項的繁瑣。Docker不但具有可移植性、安全性和與其他語言的兼容性,而且能夠與諸如:Ansible、Jenkins和Bamboo等工具無縫集成。

2.Ansible

作為軟件自動化領(lǐng)域的DevOps“寵兒”,Ansible以其自動化優(yōu)勢而聞名。它通常被用于自動化軟件的添置、配置管理和應(yīng)用程序部署。同時,開源的Ansible憑借著其無需代理、以及使用YAML語言編寫簡單語法的特性,方便了系統(tǒng)管理員輕松地處理各種復(fù)雜的部署。

3.Git

這款開源的DevOps工具能夠使得DevOps工程師輕松地跟蹤開發(fā)工作的進(jìn)度,并協(xié)調(diào)彼此之間的工作。通過Git,開發(fā)者不但可以恢復(fù)到以前保存過的工作版本,而且能夠在適當(dāng)?shù)臅r候單獨創(chuàng)建分支,并添加新的功能。不過,組織需要為其工作托管一個諸如GitHub的存儲庫。目前,Git已經(jīng)成為最受歡迎的DevOps工具之一。亞馬遜、微軟和Facebook等科技巨頭都在使用它。

4.Puppet

作為開源的DevOps工具,Puppet通過其數(shù)千個代碼模塊,方便DevOps團(tuán)隊管理與自動化各種軟件檢查、交付和操作。同時,它可以與許多工具無縫集成。不過,免費版的Puppet工具僅適合小型項目。針對大型項目的Puppet Enterprise則可以使團(tuán)隊擁有更多的資源和代碼。

5.Chef

作為最強大的開源配置管理工具之一,Chef允許開發(fā)人員將基礎(chǔ)架構(gòu)修改為代碼,以實現(xiàn)輕松地管理各類數(shù)據(jù)、屬性和角色等。與Puppet類似,Chef也可以支持多個平臺,并能夠與基于云端的平臺實現(xiàn)無縫的集成。無論基礎(chǔ)設(shè)施的規(guī)模如何,Chef都可以自動化基礎(chǔ)設(shè)施的配置,應(yīng)用程序的部署,甚至管理整個網(wǎng)絡(luò)的配置。

6.Jenkins

具有快速高效的代碼檢錯能力的Jenkins,不但可以自動化開發(fā)團(tuán)隊的交付管道,而且能夠為DevOps工程師近乎實時地測試和報告代碼中的更改。由于擁有上千個插件的龐大生態(tài)系統(tǒng),因此Jenkins不但可以與市場上幾乎所有可用的DevOps工具相集成,而且能與Linux、Windows和Mac OS X等系統(tǒng)相兼容。

7.Nagios

作為DevOps領(lǐng)域最受歡迎的監(jiān)控工具之一,免費開源的Nagios能夠協(xié)助識別和糾正網(wǎng)絡(luò)與基礎(chǔ)設(shè)施中的各種問題。DevOps團(tuán)隊不但可以用它來監(jiān)控應(yīng)用程序、服務(wù)和網(wǎng)絡(luò)協(xié)議等方面的狀態(tài),而且能夠記錄各種中斷和故障等事件。目前市場上有Nagios Core和Nagios XI兩個版本。其中,最新版本的Nagios XI提供了更多的新功能。當(dāng)然,這兩個版本都有相應(yīng)的論壇支持。

8.Splunk

Splunk能夠讓團(tuán)隊中的每個成員輕松地訪問和使用到目標(biāo)主機(jī)上的數(shù)據(jù)和日志。據(jù)此,DevOps工程師可以快速地分析和可視化機(jī)器數(shù)據(jù),并通過獲悉洞察力,來提高生產(chǎn)力和效率。開發(fā)人員既然可以開發(fā)自定義的Splunk應(yīng)用,又能夠并將Splunk數(shù)據(jù)集成到其他應(yīng)用程序中。

9.Bamboo

由Atlassian于2007年開發(fā)的Bamboo,是一種廣泛被使用的持續(xù)集成和部署工具。它會將自動化構(gòu)建、測試和發(fā)布集成到單個工作流中。雖然與Jenkins具有相似之處,但是Bamboo并不是一款開源的DevOps工具。通過它,開發(fā)人員能夠自動開發(fā)、集成、測試源代碼,以及部署應(yīng)用程序。此外,Bamboo的獨特功能還包括:易用的圖形化用戶界面,自動化完成,與各種工具的集成,以及預(yù)構(gòu)建等能力。

10.ELK Stack

Elasticsearch、Logstash和Kibana三種DevOps開源工具的組合被稱為ELK Stack。其中,Elasticsearch是一個搜索和分析類引擎,Logstash會從各個來源收集數(shù)據(jù),并由Elasticsearch存儲,而Kibana是一個可視化層次。ELK Stack可以被用于集中各種日志記錄。它不但具有多個插件,而且擁有一個活躍的支持社區(qū)。

11.Kubernetes

該容器編排平臺發(fā)布于2015年,可以幫助團(tuán)隊輕松地管理大量容器。在將容器化應(yīng)用程序部署到一組服務(wù)器上后,Kubernetes會自動進(jìn)行分發(fā)和調(diào)度。當(dāng)然,Kubernetes 只是一個編排平臺,并非一套完整的解決方案。它必須與諸如Docker等其他工具配合使用,實現(xiàn)開發(fā)、分發(fā)和運行容器。

12.Selenium

作為著名的自動化Web應(yīng)用測試工具,開源的Selenium正在被谷歌和IBM等許多財富500強公司所使用。Selenium的獨特之處在于,其測試腳本可以采用Python和Java等多種語言編寫。它能夠與Windows、Mac和Linux等操作系統(tǒng)相兼容,并適用于任何瀏覽器。為了實現(xiàn)持續(xù)測試目的,Selenium應(yīng)當(dāng)與Docker和Jenkins相集成。

13.Vagrant

作為一種倍受歡迎的開源DevOps工具,Vagrant可以讓開發(fā)者、操作員、以及設(shè)計師在共享的簡單且單獨的工作流中,開發(fā)和管理虛擬機(jī)環(huán)境。通過復(fù)制生產(chǎn)環(huán)境,Vagrant能夠方便DevOps工程師在生產(chǎn)過程的早期,識別和修復(fù)各項錯誤。同時,該工具也可以輕松地與Ansible、Chef和Puppet等相集成。

14.Maven

開源的Maven工具主要被用在Java類型的項目中,其主要功能是對自動化構(gòu)建過程和依賴項進(jìn)行解析。Maven能夠協(xié)助編譯源代碼,運行單元測試和功能測試,并將結(jié)果集成到JAR、WAR和RPM等文件包中,進(jìn)而上傳到Nexus或Artifactory等遠(yuǎn)程數(shù)據(jù)倉庫中。同時,由于該工具是基于項目對象模型的概念開發(fā)的,因此Maven會依賴于XML,并帶有執(zhí)行常規(guī)任務(wù)的預(yù)定義指令。

15.Gradle

同樣作為DevOps自動化開源工具的Gradle,能夠支持采用包括Java、C++和Python等多種語言編寫代碼。盡管Gradle構(gòu)建在Apache Ant和Maven之上,但它使用基于Groovy的特定領(lǐng)域語言,來描述構(gòu)建。自2009年被發(fā)布以來,該工具一直在多種項目構(gòu)建中提供穩(wěn)健的服務(wù)。而且由于能夠提供增量式構(gòu)建、構(gòu)建緩存和守護(hù)進(jìn)程,因此Gradle比Maven更加高效。

DevOps的編排

DevOps編排對于任何正在或已完成自動化實施的組織來說,都是至關(guān)重要的一步。它能夠通過協(xié)調(diào)由DevOps實踐進(jìn)行自動化的所有任務(wù),以提供改進(jìn)和優(yōu)化的建議??偟恼f來,DevOps編排可以提供如下業(yè)務(wù)優(yōu)勢:

  • 更快的軟件交付
  • 快速發(fā)布新的功能和結(jié)構(gòu)
  • 最小化部署的時間
  • 降低服務(wù)交付的成本
  • 提高產(chǎn)品的可靠性

雖然DevOps編排能夠方便分析師、IT經(jīng)理和QA人員根據(jù)自己的興趣,通過快速實施,在適當(dāng)?shù)臉?gòu)建和配置級別上,實現(xiàn)完備的產(chǎn)品環(huán)境,但是編排在DevOps中并非一蹴而就。團(tuán)隊往往需要通過不斷測試和積累經(jīng)驗,才能構(gòu)建出完全符合其業(yè)務(wù)目標(biāo)的編排工具,進(jìn)而充分利用其自動化,給項目和產(chǎn)品帶來深度和廣度上的全面轉(zhuǎn)變。

原文標(biāo)題:DevOps Toolchain for Beginners,作者:Vishnu Vasudevan

【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】

 

責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2020-12-21 15:30:35

Python工具編程語言

2021-01-29 15:50:45

DevOps運維

2020-07-14 21:53:13

Python Python 工具開發(fā)

2020-08-21 07:00:00

DevOpsIT開發(fā)

2021-03-06 08:05:54

工具DevOpsLighthouse

2019-12-12 09:30:31

工具代碼開發(fā)

2020-09-24 10:50:10

運維架構(gòu)技術(shù)

2010-08-13 11:27:14

DB2基本命令

2022-07-04 07:56:04

DevOpsDevStream工具鏈管理器

2020-09-28 09:12:22

DevOps

2011-07-18 14:15:55

iPhone iPad GIS

2013-09-12 09:49:36

PHP調(diào)試工具PHP調(diào)試工具

2021-06-25 09:00:00

Java開發(fā)工具

2022-02-24 23:51:58

多云DevOpsIT

2020-01-07 22:35:57

網(wǎng)絡(luò)連接網(wǎng)絡(luò)運維

2021-04-07 15:49:23

編程工程師開發(fā)

2021-12-20 09:29:42

LinuxFreeDOS命令

2022-10-24 09:42:31

2011-07-03 23:40:54

友情鏈接

2011-06-27 16:27:31

外鏈
點贊
收藏

51CTO技術(shù)棧公眾號