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

解讀基礎設施即代碼

開發 開發工具
現代軟件開發對基礎設施的管理提出了更苛刻的要求。在快速變化的過程中,要求基礎設施既要靈活,也要安全、可靠。

現代軟件開發對基礎設施的管理提出了更苛刻的要求:

產品要適應瞬息萬變的市場,要求基礎設施有更快的響應速度。持續交付和DevOps的推行要求產品團隊對部署和運維要有更高的自主性。技術的快速進步和演化,也使得基礎設施的配置不得不頻繁變化。在這種快速變化的過程中,要求基礎設施既要靈活,也要安全、可靠。

傳統的基礎設施運維管理具有以下幾個問題:

  • 被動響應。產品團隊獲取服務器資源采用的是申請制,中間存在若干審批過程,以及需要等待運維團隊實施,響應不及時。
  • 自動化缺乏串聯。雖然有一定的自動化,但不能做到無人值守,需要執行一些臨時命令介入。由于環境釋放和重建的成本高,因而傾向于不釋放,導致資源利用率低。
  • 和產品團隊脫節。很難根據需求隨時動態增加環境。需要額外的文檔來描述環境,可能更新不及時。

產品團隊是實施持續交付的過程中,必須考慮將基礎設施的維護納入進來,作為支持產品運行的一部分。以下是產品團隊的持續交付流水線全景圖。

產品團隊的持續交付流水線全景圖

從上圖可以看出,產品團隊除了管理項目本身代碼外,還要管理環境定義腳本。環境定義腳本可以由基礎設施自動化工具執行,動態創建、銷毀和更新產品運行所需的環境(包括服務器、負載均衡器、防火墻配置、第三方依賴等)。

如果實現了這一點,就實現了基礎設施即代碼的雛形。Kief在《Infarftruce As Code》一書中對基礎設施即代碼定義如下:

“基礎設施即代碼是一種使用新的技術來構建和管理動態基礎設施的方式。它把基礎設施、工具和服務以及對基礎設施的管理本身作為一個軟件系統,采納軟件工程實踐以結構化的安全的方式來管理對系統的變更。”

基礎設施即代碼有四項關鍵原則:

  • 再生性。環境中的任何元素可以輕松復制。
  • 一致性。無論何時,創建的環境各個元素的配置是完全相同的。
  • 快速反饋。能夠頻繁、容易地進行變更,并快速知道變更是否正確。
  • 可見性。所有對環境的變更應該容易理解、可審計、受版本控制。

基礎設施即代碼的目標是:

  • 標準化。以代碼來定義環境,實現開發環境、測試環境、生產環境的標準化。
  • 自動化。以自動化工具來驅動代碼準備環境。包括創建環境、更新環境以及銷毀環境。
  • 可視化。以監控來可視化環境信息。環境當前狀態可視、環境變更歷史可視、可追溯。

基礎設施即代碼實踐會產生高成熟度的持續交付和DevOps。

基礎設施即代碼

在實施基礎設施即代碼時,要遵守以下實踐:

1. 使用DSL描述環境

Ansible、Chef、SaltStack、Terraform等基礎設施自動化工具都有各自的描述性語言來實現對基礎設施的定義。使用DSL更容易通過描述性的語言定義基礎設施,也有助于代碼重用。團隊成員能建立起共同理解,從而維護腳本。

以下是Ansible的一個playbook示例。

  1. --- 
  2. - hosts: local 
  3.   tasks: 
  4.     - name: Install Nginx 
  5.       apt: pkg=nginx state=installed update_cache=true 
  6.       notify: 
  7.         - Start Nginx 
  8.  
  9.   handlers: 
  10.     - name: Start Nginx 
  11.       service: name=nginx state=started 

2. 自測試系統

在編寫環境代碼的配置時,也要編寫對環境的測試。確保所有服務器都進行了正確的配置,遵守了所有的安全規則,也對網絡連通性等進行了驗證。我們一般提倡將測試代碼和配置代碼放在一起維護。這樣配置代碼更新時,能保證測試代碼也被及時更新。

一些典型的基礎設施自動化測試工具有ServerSpec、Testinfra等。以下是一個ServerSpec的示例。

  1. require 'spec_helper' 
  2.  
  3. describe package('httpd'), :if => os[:family] == 'redhat' do 
  4.   it { should be_installed } 
  5. end 
  6.  
  7. describe package('apache2'), :if => os[:family] == 'ubuntu' do 
  8.   it { should be_installed } 
  9. end 
  10.  
  11. describe service('httpd'), :if => os[:family] == 'redhat' do 
  12.   it { should be_enabled } 
  13.   it { should be_running } 
  14. end 
  15.  
  16. describe service('apache2'), :if => os[:family] == 'ubuntu' do 
  17.   it { should be_enabled } 
  18.   it { should be_running } 
  19. end 
  20.  
  21. describe service('org.apache.httpd'), :if => os[:family] == 'darwin' do 
  22.   it { should be_enabled } 
  23.   it { should be_running } 
  24. end 
  25.  
  26. describe port(80) do 
  27.   it { should be_listening } 
  28. end 

3. 一切進行版本化

一旦采用了環境定義腳本實現對環境的控制后,需要將環境定義腳本納入到版本管理中。并且之后所有的環境變更都應該先修改環境定義腳本,由環境定義腳本觸發對環境的變更。登錄到服務器執行一些臨時性命令是被堅決禁止的。因為這極有可能會破壞環境的一致性。重建服務器時,也不能保證能應用所有需要的變更。

下圖是基礎設施即代碼的一個典型使用場景。

基礎設施即代碼的一個典型使用場景

除此之外,如果想要在生產環境中創建可伸縮性的服務,也需要借助“基礎設施即代碼”這一實踐。在高峰時期,系統可以根據定義的環境自動創建并加入新的節點來實現動態擴容,并在低峰時將其銷毀。當監控發現某節點失敗,系統可以根據定義的環境自動創建新的節點來替換失敗節點,實現自動災難恢復。

***是我們在某團隊實施基礎設施即代碼的案例解析。這張圖是某團隊的基礎設施架構圖。

某團隊的基礎設施架構圖

該團隊使用AWS作為基礎設施平臺。我們選用ansible作為基礎設施自動化工具,并結合AWS提供的cloudformation服務實現快速創建和銷毀資源。所有網元都有清晰的角色劃分,配套對應的配置腳本。從網絡配置到網元配置以及應用配置都實現了全自動化。所有的配置腳本都和源代碼一起托管在GitHub。團隊所有成員都可以查看并修改。

【本文是51CTO專欄作者“ThoughtWorks”的原創稿件,微信公眾號:思特沃克,轉載請聯系原作者】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2020-02-24 11:08:27

云計算網絡攻擊數據

2024-02-04 09:13:24

基礎設施代碼DevOps

2016-08-18 16:55:00

基礎設施

2022-06-17 10:24:57

IaC

2022-01-10 08:00:00

云原生云計算技術

2022-04-11 19:08:06

設施作用域pod

2016-08-30 10:20:57

云計算

2021-11-11 09:00:00

IaC工具自動化

2021-06-18 11:02:12

云計算infrastruct云安全

2021-07-26 09:53:58

IaC基礎設施即代碼云數據中心

2022-04-12 19:38:44

PostgresOperator數據庫

2017-06-22 17:23:13

超融合塑合代碼

2021-05-20 09:00:00

數字化轉型IT技術

2022-02-10 11:54:34

即時基礎設施基礎設施數字化轉型

2023-11-02 00:16:26

2019-02-25 12:16:02

服務器功能服務

2009-12-18 17:14:25

惠普基礎架構

2009-12-22 13:59:59

惠普基礎設施運營

2023-07-17 18:43:26

測試基礎設施開發

2015-05-21 09:15:28

OpenStack開放基礎設施開源
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲v区 | 日韩精品免费视频 | 久久久青草 | 一区二区三区免费在线观看 | 亚洲一区二区免费 | 中文字幕av网站 | 亚洲成人日韩 | 三a毛片| 久久久久av | 欧美日韩a | 天天色综网 | jizz视频 | 秋霞a级毛片在线看 | 成人精品免费视频 | 中文字幕一区二区三区精彩视频 | 视频在线一区二区 | 亚洲在线免费 | 在线黄 | 国产精品一区二区视频 | 久久美女视频 | 99精品一区二区 | 亚洲成人激情在线观看 | 国产免费一区二区三区 | 7777精品伊人久久精品影视 | 久久久久国产视频 | 国产一区二区三区四区五区加勒比 | 欧美精品日韩精品国产精品 | 精品福利在线视频 | 一区二区三区高清 | 成人在线免费视频 | 亚洲午夜精品 | 精品亚洲一区二区三区 | 欧美日韩在线观看视频 | 男女搞网站 | 婷婷色成人 | 成人三区四区 | 久久久久久久久久影视 | 久久久高清 | 欧美日韩国产精品一区二区 | a级黄色毛片免费播放视频 国产精品视频在线观看 | 欧美色性|