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

解讀基礎(chǔ)設(shè)施即代碼

開發(fā) 開發(fā)工具
現(xiàn)代軟件開發(fā)對(duì)基礎(chǔ)設(shè)施的管理提出了更苛刻的要求。在快速變化的過程中,要求基礎(chǔ)設(shè)施既要靈活,也要安全、可靠。

現(xiàn)代軟件開發(fā)對(duì)基礎(chǔ)設(shè)施的管理提出了更苛刻的要求:

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

傳統(tǒng)的基礎(chǔ)設(shè)施運(yùn)維管理具有以下幾個(gè)問題:

  • 被動(dòng)響應(yīng)。產(chǎn)品團(tuán)隊(duì)獲取服務(wù)器資源采用的是申請(qǐng)制,中間存在若干審批過程,以及需要等待運(yùn)維團(tuán)隊(duì)實(shí)施,響應(yīng)不及時(shí)。
  • 自動(dòng)化缺乏串聯(lián)。雖然有一定的自動(dòng)化,但不能做到無人值守,需要執(zhí)行一些臨時(shí)命令介入。由于環(huán)境釋放和重建的成本高,因而傾向于不釋放,導(dǎo)致資源利用率低。
  • 和產(chǎn)品團(tuán)隊(duì)脫節(jié)。很難根據(jù)需求隨時(shí)動(dòng)態(tài)增加環(huán)境。需要額外的文檔來描述環(huán)境,可能更新不及時(shí)。

產(chǎn)品團(tuán)隊(duì)是實(shí)施持續(xù)交付的過程中,必須考慮將基礎(chǔ)設(shè)施的維護(hù)納入進(jìn)來,作為支持產(chǎn)品運(yùn)行的一部分。以下是產(chǎn)品團(tuán)隊(duì)的持續(xù)交付流水線全景圖。

產(chǎn)品團(tuán)隊(duì)的持續(xù)交付流水線全景圖

從上圖可以看出,產(chǎn)品團(tuán)隊(duì)除了管理項(xiàng)目本身代碼外,還要管理環(huán)境定義腳本。環(huán)境定義腳本可以由基礎(chǔ)設(shè)施自動(dòng)化工具執(zhí)行,動(dòng)態(tài)創(chuàng)建、銷毀和更新產(chǎn)品運(yùn)行所需的環(huán)境(包括服務(wù)器、負(fù)載均衡器、防火墻配置、第三方依賴等)。

如果實(shí)現(xiàn)了這一點(diǎn),就實(shí)現(xiàn)了基礎(chǔ)設(shè)施即代碼的雛形。Kief在《Infarftruce As Code》一書中對(duì)基礎(chǔ)設(shè)施即代碼定義如下:

“基礎(chǔ)設(shè)施即代碼是一種使用新的技術(shù)來構(gòu)建和管理動(dòng)態(tài)基礎(chǔ)設(shè)施的方式。它把基礎(chǔ)設(shè)施、工具和服務(wù)以及對(duì)基礎(chǔ)設(shè)施的管理本身作為一個(gè)軟件系統(tǒng),采納軟件工程實(shí)踐以結(jié)構(gòu)化的安全的方式來管理對(duì)系統(tǒng)的變更。”

基礎(chǔ)設(shè)施即代碼有四項(xiàng)關(guān)鍵原則:

  • 再生性。環(huán)境中的任何元素可以輕松復(fù)制。
  • 一致性。無論何時(shí),創(chuàng)建的環(huán)境各個(gè)元素的配置是完全相同的。
  • 快速反饋。能夠頻繁、容易地進(jìn)行變更,并快速知道變更是否正確。
  • 可見性。所有對(duì)環(huán)境的變更應(yīng)該容易理解、可審計(jì)、受版本控制。

基礎(chǔ)設(shè)施即代碼的目標(biāo)是:

  • 標(biāo)準(zhǔn)化。以代碼來定義環(huán)境,實(shí)現(xiàn)開發(fā)環(huán)境、測試環(huán)境、生產(chǎn)環(huán)境的標(biāo)準(zhǔn)化。
  • 自動(dòng)化。以自動(dòng)化工具來驅(qū)動(dòng)代碼準(zhǔn)備環(huán)境。包括創(chuàng)建環(huán)境、更新環(huán)境以及銷毀環(huán)境。
  • 可視化。以監(jiān)控來可視化環(huán)境信息。環(huán)境當(dāng)前狀態(tài)可視、環(huán)境變更歷史可視、可追溯。

基礎(chǔ)設(shè)施即代碼實(shí)踐會(huì)產(chǎn)生高成熟度的持續(xù)交付和DevOps。

基礎(chǔ)設(shè)施即代碼

在實(shí)施基礎(chǔ)設(shè)施即代碼時(shí),要遵守以下實(shí)踐:

1. 使用DSL描述環(huán)境

Ansible、Chef、SaltStack、Terraform等基礎(chǔ)設(shè)施自動(dòng)化工具都有各自的描述性語言來實(shí)現(xiàn)對(duì)基礎(chǔ)設(shè)施的定義。使用DSL更容易通過描述性的語言定義基礎(chǔ)設(shè)施,也有助于代碼重用。團(tuán)隊(duì)成員能建立起共同理解,從而維護(hù)腳本。

以下是Ansible的一個(gè)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. 自測試系統(tǒng)

在編寫環(huán)境代碼的配置時(shí),也要編寫對(duì)環(huán)境的測試。確保所有服務(wù)器都進(jìn)行了正確的配置,遵守了所有的安全規(guī)則,也對(duì)網(wǎng)絡(luò)連通性等進(jìn)行了驗(yàn)證。我們一般提倡將測試代碼和配置代碼放在一起維護(hù)。這樣配置代碼更新時(shí),能保證測試代碼也被及時(shí)更新。

一些典型的基礎(chǔ)設(shè)施自動(dòng)化測試工具有ServerSpec、Testinfra等。以下是一個(gè)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. 一切進(jìn)行版本化

一旦采用了環(huán)境定義腳本實(shí)現(xiàn)對(duì)環(huán)境的控制后,需要將環(huán)境定義腳本納入到版本管理中。并且之后所有的環(huán)境變更都應(yīng)該先修改環(huán)境定義腳本,由環(huán)境定義腳本觸發(fā)對(duì)環(huán)境的變更。登錄到服務(wù)器執(zhí)行一些臨時(shí)性命令是被堅(jiān)決禁止的。因?yàn)檫@極有可能會(huì)破壞環(huán)境的一致性。重建服務(wù)器時(shí),也不能保證能應(yīng)用所有需要的變更。

下圖是基礎(chǔ)設(shè)施即代碼的一個(gè)典型使用場景。

基礎(chǔ)設(shè)施即代碼的一個(gè)典型使用場景

除此之外,如果想要在生產(chǎn)環(huán)境中創(chuàng)建可伸縮性的服務(wù),也需要借助“基礎(chǔ)設(shè)施即代碼”這一實(shí)踐。在高峰時(shí)期,系統(tǒng)可以根據(jù)定義的環(huán)境自動(dòng)創(chuàng)建并加入新的節(jié)點(diǎn)來實(shí)現(xiàn)動(dòng)態(tài)擴(kuò)容,并在低峰時(shí)將其銷毀。當(dāng)監(jiān)控發(fā)現(xiàn)某節(jié)點(diǎn)失敗,系統(tǒng)可以根據(jù)定義的環(huán)境自動(dòng)創(chuàng)建新的節(jié)點(diǎn)來替換失敗節(jié)點(diǎn),實(shí)現(xiàn)自動(dòng)災(zāi)難恢復(fù)。

***是我們?cè)谀硤F(tuán)隊(duì)實(shí)施基礎(chǔ)設(shè)施即代碼的案例解析。這張圖是某團(tuán)隊(duì)的基礎(chǔ)設(shè)施架構(gòu)圖。

某團(tuán)隊(duì)的基礎(chǔ)設(shè)施架構(gòu)圖

該團(tuán)隊(duì)使用AWS作為基礎(chǔ)設(shè)施平臺(tái)。我們選用ansible作為基礎(chǔ)設(shè)施自動(dòng)化工具,并結(jié)合AWS提供的cloudformation服務(wù)實(shí)現(xiàn)快速創(chuàng)建和銷毀資源。所有網(wǎng)元都有清晰的角色劃分,配套對(duì)應(yīng)的配置腳本。從網(wǎng)絡(luò)配置到網(wǎng)元配置以及應(yīng)用配置都實(shí)現(xiàn)了全自動(dòng)化。所有的配置腳本都和源代碼一起托管在GitHub。團(tuán)隊(duì)所有成員都可以查看并修改。

【本文是51CTO專欄作者“ThoughtWorks”的原創(chuàng)稿件,微信公眾號(hào):思特沃克,轉(zhuǎn)載請(qǐng)聯(lián)系原作者】

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

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2020-02-24 11:08:27

云計(jì)算網(wǎng)絡(luò)攻擊數(shù)據(jù)

2024-02-04 09:13:24

基礎(chǔ)設(shè)施代碼DevOps

2016-08-18 16:55:00

基礎(chǔ)設(shè)施

2022-06-17 10:24:57

IaC

2022-04-11 19:08:06

設(shè)施作用域pod

2022-01-10 08:00:00

云原生云計(jì)算技術(shù)

2016-08-30 10:20:57

云計(jì)算

2021-11-11 09:00:00

IaC工具自動(dòng)化

2021-06-18 11:02:12

云計(jì)算infrastruct云安全

2021-07-26 09:53:58

IaC基礎(chǔ)設(shè)施即代碼云數(shù)據(jù)中心

2022-04-12 19:38:44

PostgresOperator數(shù)據(jù)庫

2017-06-22 17:23:13

超融合塑合代碼

2021-05-20 09:00:00

數(shù)字化轉(zhuǎn)型IT技術(shù)

2022-02-10 11:54:34

即時(shí)基礎(chǔ)設(shè)施基礎(chǔ)設(shè)施數(shù)字化轉(zhuǎn)型

2023-11-02 00:16:26

2019-02-25 12:16:02

服務(wù)器功能服務(wù)

2023-07-17 18:43:26

測試基礎(chǔ)設(shè)施開發(fā)

2009-12-18 17:14:25

惠普基礎(chǔ)架構(gòu)

2009-12-22 13:59:59

惠普基礎(chǔ)設(shè)施運(yùn)營

2015-05-21 09:15:28

OpenStack開放基礎(chǔ)設(shè)施開源
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 殴美黄色录像 | 精品一二区 | 欧美激情在线播放 | 日韩av中文 | 黄色免费在线观看 | 国产精品a久久久久 | 91精品国产综合久久婷婷香蕉 | 精品久久久久久久久久久久久久久久久 | 一区二区三区av夏目彩春 | 韩日免费视频 | 国产精品嫩草影院精东 | 天天草av| 日日夜夜天天干 | 国产成人精品综合 | 日韩一二三区视频 | 亚洲精品一区二区三区在线 | 日本一区二区三区精品视频 | 国产福利视频在线观看 | 国产一区二区在线播放视频 | 亚洲国产精品一区在线观看 | 国产伦精品一区二区三区高清 | 自拍偷拍欧美 | 日韩成人高清在线 | 99精品一区二区三区 | 久久久久久九九九九九九 | 亚洲成人av| 久久久久久亚洲精品 | 成人国产精品久久久 | 国产精品爱久久久久久久 | 亚洲国产精品视频 | 日韩成人av在线播放 | 国产精品1区2区 | 成人午夜精品一区二区三区 | 国产日韩欧美一区 | 亚洲成人一区二区 | 黄色网址在线播放 | 欧美1区2区 | 日韩欧美在 | 中文字幕免费视频 | 欧美久| 亚洲自拍偷拍视频 |