成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何組合多種DevOps工具來解決現實問題

譯文
開發 開發工具
本文和您討論在DevOps生命周期的每個階段所涉及到的各種工具。您可以組合使用它們來解決各種現實問題。

【51CTO.com快譯】在我們開始下面的討論之前,首先通過一張總圖來了解一下不同的工具,在DevOps生命周期中所處的位置。

如何組合多種DevOps工具解決現實問題

DevOps生命周期階段

我敢斷言長期從事開發工作的您,一定對上述圖片并不陌生。那么,這是否意味著您能夠自如地使用各個階段的各種工具,而不會碰到任何問題呢?

本文將通過引導您遍歷DevOps生命周期中的各個階段,并向您介紹如何綜合使用多種DevOps工具,來解決各種現實問題。總的說來,我們在采用DevOps模式進行軟件與應用程序開發時,通常會經歷如下五個不同的階段:

  • 持續開發
  • 持續測試
  • 持續集成
  • 持續部署
  • 持續監控

1.持續開發

此階段涉及到對于軟件應用程序基本功能的計劃與編碼。雖然對于計劃而言,并沒有什么可選的工具,但是可用于代碼維護的工具卻有不少。

通常情況下,項目的實現目標是在計劃階段被確定的。而當項目組成員開始著手編寫代碼時,就進入了所謂的編碼階段。

程序代碼可以用任何一種語言來編寫,但是我們需要配備相應的版本控制工具予以維護。如今,在此類持續開發的DevOps工具中,受用戶歡迎的莫過于:Git、SVN、Mercurial、CVS和JIRA了。

那么,您是否真正理解保留代碼主要版本的重要性呢?讓我們從如下兩個方面來討論它對于開發與運營的影響吧:

  • 只有各種版本(特別是存儲在中央存儲庫中)得到了管控,我們才能確保統一的可信代碼來源。在此基礎上,所有的開發人員都可以針對最新提交的代碼開展協作。同時,在計劃發布最新版本時,運營人員可以確保訪問到一致的代碼。
  • 在發布過程中,如果出現各種意外,或是發現程序代碼中存在著嚴重的缺陷,以及功能性故障,那么運營人員就能夠從容且快速地回滾或恢復到,先前部署過的、已處于穩定狀態的代碼版本上。

目前,大家普遍認可的工具是Git和GitHub(https://dzone.com/articles/git-vs-github-demystifying-the-differences)。其中,Git允許開發人員在分布式的VCS(版本控制系統)上開展彼此協作。

另外,由于并不依賴于中心服務器,因此運營人員可以從遠程位置,對存儲庫進行各種拉和推式的操作。此處用于維護代碼的中央存儲庫,便是GitHub。可見,Git可謂是世界領先的版本控制系統之一。

2.持續測試

眾所周知,開發好的代碼是不能夠直接部署或發布到生產系統上的。我們應當充分測試代碼的潛在錯誤和性能瓶頸。

通常,執行測試的方式有兩種:效率低下的手動測試和高效快捷的自動化測試。如今業界普遍使用的便是自動化的方式,其中具有代表性的包括:Selenium、TestNG、JUnit/NUnit等工具,它們可以自動執行各種用戶定義的測試用例。下面我們來看看此類工具的基本特點:

  • 自動化測試節省了手動執行各類測試的大量時間、精力和成本。
  • 此外,生成報告是它們的一大優勢。通過評估測試套件中有哪些測試用例失敗了,運營人員能夠更直觀地執行各項任務。
  • 此類測試也可以安排在預先指定的時刻被執行。

顯然,我們應該在DevOps生命周期中不斷嘗試各種工具,形成持續測試階段的習慣。如果您要問哪一款是我的最愛?我會告訴你:我會將它們組合起來使用。例如:我會用Selenium進行自動化測試,由TestNG生成報告,進而使用Jenkins觸發持續集成。

3.持續集成

這個階段可謂DevOps最為出彩的部分。它在第一次發布過程中,就發揮了重要的作用。它能夠最大限度地促進持續集成工具與配置管理工具的聯合部署。

毫無疑問,如今市面上最受歡迎的持續集成工具便是Jenkins。當然,其他流行的CI工具還是Bamboo和Hudson。

持續集成工具的主要功效在于:它能夠通過協調其他DevOps生命周期階段的自動化工具,將整個DevOps結構完整地保持在一起。也就是說:無論是持續開發、測試或部署工具,還是持續監視工具,或是持續集成工具,都可以與CI工具全面集成。

  • 在與Git/SVN集成后,Jenkins可以自動化地安排諸如:從共享存儲庫中提取代碼之類的作業,并使其為構建和測試做好準備(即持續開發)。Jenkins可以被設置為在某個預定的時刻,或是有提交被推送到中央存儲庫時,觸發構建作業。
  • 與Selenium等測試工具集成后,我們可以實現持續測試。通常,我們可以使用Maven/Ant/Gradle之類的工具,來對已開發的代碼進行構建。此后,Selenium可以通過創建一組測試用例,以及逐個執行這些測試用例,來自動執行各種代碼。在整個過程中,Jenkins/Hudson/Bamboo的角色就是自動化計劃。
  • 與持續部署工具集成后,Jenkins/Hudson/Bamboo可以通過配置管理,以及容器化工具來觸發部署計劃。
  • 另外,Jenkins/Hudson可以與Splunk、ELK、Nagios或NewRelic等監控工具相集成,進而對那些已部署的服務器狀態和性能提供持續監控。

4.持續部署

在討論了從頭開始構建代碼的工具、以及測試類工具之后,我們現在來一起看看配置管理工具或容器化工具。這兩套工具都有助于在DevOps中實現持續部署(CD)。實際上,持續部署是軟件項目的實際落地階段。

目前,配置管理工具具有如下特點:

  • 通常,配置管理需要在應用程序的功能需求和性能中,建立和維護一致性的行為。簡而言之,它是將部署發布到服務器上,調度所有服務器上的更新,以及保持所有服務器上一致性配置的行為。
  • 業界常用的此類工具有:Puppet、Chef、Ansible、以及SaltStack,其中最好的當屬Puppet。這些工具都是基于主-從(master-slave)架構的。當有新的部署被發送到主服務器時,這臺主服務器負責在所有從服務器之間復制此類變更。

下面我們看看容器化工具:

作為一套工具集,容器化工具可以協助運營人員在開發、測試和部署應用程序的環境中,保持一致性。通過對那些在開發/測試/階段性環境中頻繁使用到的相同依賴項和程序包進行打包與復制,容器化工具大幅消除了生產環境中各種錯誤與故障的可能。

Docker是最早也是久負盛名的容器化工具之一。過去,由于開發人員使用到了各種虛擬機與服務器,因此他們必須通過手動管理,才能保持生產環境狀態的一致性。如今,有了Docker容器的協助,大家能夠輕松地實現一致性的自動化保持。

近年來,許多云端應用的解決方案,都開始為容器服務提供支持了。其中,Amazon ECS、Azure容器服務和Google容器引擎,都能夠對Docker容器提供原生的云服務支持。這也就是Docker能夠廣為普及的原因之一。當然,其他類型的容器化工具還有:Vagrant。

5.持續監控

如果我們不對應用程序的性能進行監視,那么開發和部署應用還有什么意義呢?就算是再全面的測試,也難免疏漏掉一些潛在的錯誤或性能問題,因此,持續監控與應用開發同等重要。

目前,屬于此階段的流行監控工具有:Splunk、ELK Stack、Nagios,Sensu、NewRelic。它們與Jenkins結合使用,可以讓運營人員達到持續監控的目的。總的說來,持續監控工具的必要性在于如下兩個方面:

  • 由于程序的缺陷會給服務提供方造成財務上的損失,因此我們需要通過持續監控,來最大程度地減少功能性錯誤所出現的頻率和帶來的后果。
  • 監控工具可以在用戶普遍碰到故障,并產生不良使用體驗之前,及時報告故障或服務水平的驟降。

Splunk和ELK堆棧是該領域的兩大工具,它們之間有著競爭關系。它們雖然能夠提供幾乎相近的功能,但是具體提供的方式卻不盡相同。

Splunk是一款非常容易上手的商業工具。而ELK堆棧則是由ElasticSearch、LogStash和Kibana三種開源工具組合而成。雖然可以免費使用,但是ELK設置起來卻不像Splunk那么容易。我建議您親自試用一下這兩款工具,以選擇更適合自己項目的一款。

原文標題:How To Combine DevOps Tools Together To Solve Our Problems,作者:Sahiti Kappagantula

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

 

責任編輯:龐桂玉 來源: 51CTO
相關推薦

2010-12-01 23:26:12

微軟創新杯

2018-10-30 14:42:04

IPv6網絡運營商

2013-03-13 09:49:54

2020-10-10 16:08:36

容器Kubernetes云計算

2011-07-20 09:58:33

DevOps

2022-01-14 11:48:39

量子計算硬件技術

2016-12-20 16:28:49

數據中心高速光模塊

2009-10-21 18:04:22

博科資訊預算管理

2021-01-29 15:50:45

DevOps運維

2023-12-15 09:49:54

回溯解決組合問題數組

2019-12-12 09:30:31

工具代碼開發

2019-04-08 08:45:36

微軟瀏覽器Windows

2009-09-15 17:45:34

Linq多條件

2010-10-16 11:28:08

2010-04-07 11:00:55

網絡基線網絡故障

2021-05-11 10:56:07

DevOps開發工具

2017-07-11 08:40:07

區塊鏈IT分布式數據

2019-11-20 08:00:00

Ocado機器學習

2018-04-27 14:08:40

云容器DevOps

2022-06-29 07:49:42

云存儲架構DevOps
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美精品91 | 亚洲天堂999 | 日韩一区二区在线观看 | 中文字幕日韩一区 | av一区二区三区四区 | 美女黄视频网站 | 日韩欧美精品一区 | 日韩精品久久久久 | 成人国产精品免费观看 | 精品一区二区三区在线观看国产 | 国产精品污www在线观看 | 中文字幕在线一区二区三区 | 久久成人免费观看 | 刘亦菲国产毛片bd | 欧美日韩国产欧美 | 欧美1—12sexvideos | 欧美精品一区二区三区四区 在线 | 国产综合在线视频 | 精品欧美色视频网站在线观看 | 91一区二区在线观看 | 99热视 | 亚洲成人中文字幕 | 欧美精品在线一区 | 中国美女一级黄色片 | 亚洲一区精品在线 | 亚洲福利网 | 自拍视频精品 | 天天操网 | 久久久www成人免费精品 | 国产目拍亚洲精品99久久精品 | 午夜精品久久久久久久久久久久 | 色性av | 国产精品久久久久久久久久久免费看 | 久久久久久久久久爱 | 毛片网站在线观看 | 亚洲视频免费观看 | 日本xx视频免费观看 | 国产精品国产精品国产专区不卡 | 美女视频一区二区三区 | 国产在线精品一区二区三区 | 美女视频. |