2009年,比利時根特市舉辦了首屆 DevOpsDays 大會。至此,Development (開發(fā))與 Operation (運維)的概念合二為一,被縮寫為 DevOps (開發(fā)運維一體化)。
這一概念的風(fēng)行并不在意料之外。亞馬遜早期就提倡SOA (Service Oriented Architecture ),在亞馬遜的每一個工程師都可以完全獨立地完成編寫代碼,測試代碼,版本管理,部署上線,服務(wù)監(jiān)測等工作?,F(xiàn)在,亞馬遜憑借對 DevOps 文化的最佳實踐,一躍成為世界級別IT領(lǐng)導(dǎo)者。
目前,DevOps 仍處于高速發(fā)展階段,但如果做到整個業(yè)務(wù)部署 DevOps,不僅對軟性的文化有要求,也有對硬性工具鏈的要求。南京大學(xué)軟件研發(fā)效能實驗室發(fā)布的《DevOps ·云原生2021年度中國調(diào)查報告》顯示,2021年國內(nèi)企業(yè)的 DevOps 工具的普及程度較2019年有明顯上升。
DevOps 工具的使用正在變得越來越重要。隨著各色工具的出現(xiàn)與應(yīng)用,讓 DevOps 得以從一個概念慢慢變成現(xiàn)實。
目前,DevOps 工具覆蓋了從規(guī)劃、編碼、構(gòu)建、測試、發(fā)布、部署和維護(hù)的軟件生產(chǎn)全過程。
01 敏捷開發(fā)工具,加速開發(fā)效率
“敏捷”(Agile)這個概念起源于美國,比 DevOps 出現(xiàn)的時間要早。
敏捷開發(fā)框架被提出以后,軟件的運行和運維方式發(fā)生了巨大的變化。因為“敏捷”完全摒棄了傳統(tǒng)的瀑布式思維,將小步快跑、不斷迭代的分步思想融匯在開發(fā)過程中。
隨后,敏捷成為 DevOps 中的重要一環(huán),一些敏捷教練認(rèn)為,工作在這個系統(tǒng)中的所有人需要有全局協(xié)作和優(yōu)化的意識,優(yōu)化價值流的流量、流速,關(guān)注價值的產(chǎn)生。工程師們更要有工具鏈整體優(yōu)化的意識,而不僅僅是精通某個環(huán)節(jié),或局限在與自己相關(guān)的上下游工具上。
在敏捷開發(fā)中,往往離不開一些需求和項目管理工具,比如 JIRA、Trello等。
JIRA是一個被廣泛使用的問題跟蹤器,提供了 bug 跟蹤和敏捷項目管理功能。雖然JIRA是由澳大利亞 Atlassian 公司創(chuàng)建的商業(yè)授權(quán)產(chǎn)品,但也有可有限使用的免費版本。
JIRA詳情可查看:https://www.oschina.net/p/jira
此外,Atlassian 子公司所擁有的 Trello 也是在國際上非常流行的協(xié)作工具,以設(shè)計簡約著名,很多團(tuán)隊用它來計劃各自的工作 sprint(沖刺)。國內(nèi)知名的Teambition、Leangoo 等都在一定程度上效仿了 Trello 的設(shè)計。
02 持續(xù)交付工具,助力落地DevOps
DevOps 是一個完整的面向IT運維的工作流,其中CI/CD是基礎(chǔ)。
CI是Continuous Integration(持續(xù)集成),而CD對應(yīng)多個英文,Continuous Delivery(持續(xù)交付)或Continuous Deployment(持續(xù)部署)。
如果無法做到CI/CD的話,DevOps 也就變成了空中樓閣。
要做到持續(xù)交付,構(gòu)建十分重要。在構(gòu)建階段,需要保持打包的一致性,而自動執(zhí)行容易出錯的活動,生成早期質(zhì)量信號。此時,Maven、NPM、Gradle等構(gòu)建工具則大有用處。
Maven 主要用于 Java 項目的自動化構(gòu)建,同時它也可以構(gòu)建和管理以 C#、Ruby、Scala 等語言編寫的項目。而Gradle 則是基于 Apache Ant 和 Apache Maven 理念的自動化構(gòu)建系統(tǒng),它還引入了基于 Groovy 的領(lǐng)域特定語言。
Maven詳情可查看:https://www.oschina.net/p/maven
Gradle詳情可查看:https://www.oschina.net/p/gradle
在構(gòu)建Maven庫前后,往往需要Nexus這樣的倉庫管理工具。Nexus 是一套“開箱即用”的系統(tǒng),功能非常強(qiáng)大,它極大簡化了自己內(nèi)部倉庫的維護(hù)和外部倉庫的訪問。在內(nèi)部,你可以配置構(gòu)建工具,并發(fā)布到 Nexus,然后其他開發(fā)人員就可以使用它們了。
Nexus 詳情可查看:https://www.oschina.net/p/nexus
在持續(xù)集成中,像Jenkins、Bamboo等這樣的流水線工具不可或缺。其中,Jenkins 是開源、免費、與平臺無關(guān)的自動化服務(wù)器,它獨立于 Java ,且支持Windows、Mac 和其他類似 UNIX 的操作系統(tǒng),通過Jenkins 可以將本機(jī)系統(tǒng)軟件包 Docker 安裝。
Jenkins 詳情可查看:https://www.oschina.net/p/jenkins
此外,容器引擎和編排工具也在DevOps 的持續(xù)交付工具之列。南京大學(xué)軟件研發(fā)效能實驗室發(fā)布的《DevOps·云原生2021年度中國調(diào)查報告》顯示,過去兩年,容器技術(shù)的應(yīng)用持續(xù)深化,以容器及其編排技術(shù)為核心的生態(tài),逐漸擴(kuò)展至涵蓋微服務(wù)、DevOps、服務(wù)監(jiān)測分析、應(yīng)用管理的完整閉環(huán)。
因此,以Docker、K8s、Apache Mesos等為代表的容器引擎和編排工具幾乎在DevOps實踐中扮演著不可替代的角色。
Apache Mesos詳情可查看:https://www.oschina.net/p/apache+mesos
03 自動化運維工具,補上運維一環(huán)
DevOps將傳統(tǒng)的“開發(fā)”和“運維”概念合二為一,將兩者從傳統(tǒng)作坊式的工作方式解放出來。所以,在DevOps 工具鏈中,Zabbix、Elastic、Grafana、Kafka、Ansible、Logstash、Prometheus等自動運維工具的作用不可小覷。
其中,Ansible 是由 RedHat 維護(hù)的開源 IT 自動化工具,使用劇本(playbooks)做配置管理和多機(jī)部署系統(tǒng),它運行在 Unix 家族系統(tǒng)上,可以配置 Unix 家族系統(tǒng)和 Windows。
我們可以在控制機(jī)器上安裝 Ansible,而不需要 Ansible 在其他服務(wù)器上運行,這些服務(wù)器可以從 Web 到應(yīng)用程序再到數(shù)據(jù)庫服務(wù)器。
Ansible 詳情可查看:https://www.oschina.net/p/ansible
Prometheus則是用于事件監(jiān)視和警報的免費軟件應(yīng)用程序,它在時間序列數(shù)據(jù)庫中記錄實時指標(biāo),基于 HTTP 拉取模型,支持靈活的查詢和實時警報。Prometheus 服務(wù)器的工作方式是抓取,也就是說,調(diào)用各個節(jié)點暴露出來的指標(biāo)端點。
Prometheus 詳情可查看:https://www.oschina.net/p/prometheus
Grafana包括企業(yè)版和開源版本兩種,是可視化分析軟件,可以查詢、可視化、報警和探索指標(biāo),無論這些指標(biāo)存儲在哪里,Grafana 都可以通過提供相關(guān)數(shù)據(jù)來幫助我們跟蹤用戶行為、應(yīng)用程序行為、在生產(chǎn)環(huán)境或預(yù)生產(chǎn)環(huán)境中彈出錯誤的頻率、彈出錯誤的類型以及上下文場景。
Grafana 詳情可查看:https://www.oschina.net/p/grafana
04 平臺類工具,DevOps工具的“集大成者”
隨著 DevOps 實踐在國內(nèi)外企業(yè)中流行開來,用戶對自動化的要求越來越高。因此,也就催生了更多集成功能的DevOps 平臺,例如我國的“飛算 SoFlu全自動軟件工程平臺”。
飛算 SoFlu其實是通過可視化編程的方式滿足開發(fā)需求,也就是說,輸入流程圖即可實現(xiàn)自動開發(fā)、自動測試、自動運維等,由此提高工作效率,使用戶可以更多關(guān)注自身業(yè)務(wù)。在平臺使用過程中,可以達(dá)到一個ID相當(dāng)于一個10人科技團(tuán)隊的效果。
此外,飛算還可以通過管理平臺來管理需求、研發(fā)、測試、部署、上線、運維等整個軟件生命周期,沉淀經(jīng)驗、積累知識,將管理制度真正落地。
以近期上線的測試平臺為例,飛算SoFlu 通過自動化的生命周期管理、測試用例自動生成、測試數(shù)據(jù)管理等功能,去解決人工測試耗時長、測試跟蹤管理難、測試成本高等難題。軟件質(zhì)量可以通過工具、流程和管理予以保障,而不再依靠有豐富經(jīng)驗的軟件工程師。
目前,飛算 SoFlu仍在加速更新更加強(qiáng)大的 DevOps 功能,未來可期。
飛算詳情可查看:https://www.feisuanyz.com/
05 微服務(wù)相關(guān)技術(shù),通過拆分更加便利
所謂“微服務(wù)”,就是將原來黑盒化的一個整體產(chǎn)品進(jìn)行拆分(解耦),從一個提供多種服務(wù)的整體,拆成各自提供不同服務(wù)的多個個體。因此,通過微服務(wù)技術(shù),不同的工程師可以對各自負(fù)責(zé)的模塊進(jìn)行處理,例如開發(fā)、測試、部署、迭代。
Spring cloud、Spring Boot、Apache Dubbo等工具都可以用于微服務(wù)之中。其中,Spring cloud 專注為典型的用例和可擴(kuò)展性機(jī)制提供良好的開箱即用體驗,它為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中常見模式的功能,通過Spring cloud 開發(fā)者可以快速實現(xiàn)樣板的服務(wù)和應(yīng)用程序。
Spring cloud 詳情可查看:https://www.oschina.net/p/spring-cloud
06 安全管理工具,讓DevOps 走向DevSecOps
DevSecOps,也就是研發(fā)安全運營一體化,將安全融入 DevOps 每個階段過程,開發(fā)、安全、運營各部門緊密合作,強(qiáng)調(diào)在安全風(fēng)險可控的前提下,幫助企業(yè)提升IT效能,更好地實現(xiàn)研發(fā)運營一體化。
云計算開源產(chǎn)業(yè)聯(lián)盟發(fā)布的《中國DevOps現(xiàn)狀調(diào)查報告2021》顯示,源代碼靜態(tài)安全檢測、容器鏡像安全掃描及 Web 應(yīng)用防火墻(WAF)正在成為企業(yè)應(yīng)用最廣泛的 DevSecOps 技術(shù)實踐。
并且,企業(yè)在選擇 DevOps 工具時更注重功能的易用性、工具自身的安全性和自動化程度。
調(diào)查顯示, 超過四成的企業(yè)在選擇 DevOps 工具時考慮工具的功能的易用性(43.18%)、工具自身的安全性 (42.96%)和工具的自動化程度(42.80%)。
安全工具也是百花齊放, 包括了代碼安全工具Fortify、容器安全工具Clair、Web安全工具AppScan等等。
(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進(jìn)一步核實,并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應(yīng)及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )