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

持續(xù)基礎設施:另一個CI

運維 系統(tǒng)運維
想要提升你的 DevOps 效率嗎?將基礎設施當成你的 CI 流程中的重要的一環(huán)。在這篇文章中,我們會看到在基礎設施管理方面的進步,將基礎設施視為一個版本化的組件并試著探索不可變服務器的概念。

[[251541]]

想要提升你的 DevOps 效率嗎?將基礎設施當成你的 CI 流程中的重要的一環(huán)。

持續(xù)交付(CD)和持續(xù)集成(CI)是 DevOps 的兩個眾所周知的方面。但在 CI 大肆流行的今天卻忽略了另一個關鍵性的 I基礎設施infrastructure。

曾經(jīng)有一段時間 “基礎設施”就意味著無頭headless的黑盒子、龐大的服務器,和高聳的機架 —— 更不用說漫長的采購流程和對盈余負載的錯誤估計。后來到了虛擬機時代,把基礎設施處理得很好,虛擬化 —— 以前的世界從未有過這樣。我們不再需要管理實體的服務器。僅僅是簡單的點擊,我們就可以創(chuàng)建和銷毀、開始和停止、升級和降級我們的服務器。

有一個關于銀行的流行故事:它們實現(xiàn)了數(shù)字化,并且引入了在線表格,用戶需要手動填寫表格、打印,然后郵寄回銀行(LCTT 譯注:我真的遇到過有人問我這樣的需求怎么辦)。這就是我們今天基礎設施遇到的情況:使用新技術來做和以前一樣的事情。

在這篇文章中,我們會看到在基礎設施管理方面的進步,將基礎設施視為一個版本化的組件并試著探索不可變服務器immutable server的概念。在后面的文章中,我們將了解如何使用開源工具來實現(xiàn)持續(xù)的基礎設施。

實踐中的持續(xù)集成流程

實踐中的持續(xù)集成流程

這是我們熟悉的 CI,盡早發(fā)布、經(jīng)常發(fā)布的循環(huán)流程。這個流程缺少一個關鍵的組件:基礎設施。

突擊小測試:

  • 你怎樣創(chuàng)建和升級你的基礎設施?
  • 你怎樣控制和追溯基礎設施的改變?
  • 你的基礎設施是如何與你的業(yè)務進行匹配的?
  • 你是如何確保在正確的基礎設施配置上進行測試的?

要回答這些問題,就要了解持續(xù)基礎設施continuous infrastructure。把 CI 構建流程分為代碼持續(xù)集成continuous integration code(CIc)和基礎設施持續(xù)集成continuous integration infrastructure(CIi)來并行開發(fā)和構建代碼和基礎設施,再將兩者融合到一起進行測試。把基礎設施構建視為 CI 流程中的重要的一環(huán)。

包含持續(xù)基礎設施的 CI 流程

包含持續(xù)基礎設施的 CI 流程

關于 CIi 定義的幾個方面:

  1. 代碼

    通過代碼來創(chuàng)建基礎設施架構,而不是通過安裝。基礎設施如代碼Infrastructure as code(IaC)是使用配置腳本創(chuàng)建基礎設施的現(xiàn)代***的方法。這些腳本遵循典型的編碼和單元測試周期(請參閱下面關于 Terraform 腳本的示例)。

  2. 版本

    IaC 組件在源碼倉庫中進行版本管理。這讓基礎設施的擁有了版本控制的所有好處:一致性,可追溯性,分支和標記。

  3. 管理

    通過編碼和版本化的基礎設施管理,你可以使用你所熟悉的測試和發(fā)布流程來管理基礎設施的開發(fā)。

CIi 提供了下面的這些優(yōu)勢:

  1. 一致性Consistency

    版本化和標記化的基礎設施意味著你可以清楚的知道你的系統(tǒng)使用了哪些組件和配置。這建立了一個非常好的 DevOps 實踐,用來鑒別和管理基礎設施的一致性。

  2. 可重現(xiàn)性Reproducibility

    通過基礎設施的標記和基線,重建基礎設施變得非常容易。想想你是否經(jīng)常聽到這個:“但是它在我的機器上可以運行!”現(xiàn)在,你可以在本地的測試平臺中快速重現(xiàn)類似生產(chǎn)環(huán)境,從而將環(huán)境像變量一樣在你的調(diào)試過程中刪除。

  3. 可追溯性Traceability

    你是否還記得曾經(jīng)有過多少次尋找到底是誰更改了文件夾權限的經(jīng)歷,或者是誰升級了 ssh 包?代碼化的、版本化的,發(fā)布的基礎設施消除了臨時性變更,為基礎設施的管理帶來了可追蹤性和可預測性。

  4. 自動化Automation

    借助腳本化的基礎架構,自動化是下一個合乎邏輯的步驟。自動化允許你按需創(chuàng)建基礎設施,并在使用完成后銷毀它,所以你可以將更多寶貴的時間和精力用在更重要的任務上。

  5. 不變性Immutability

    CIi 帶來了不可變基礎設施等創(chuàng)新。你可以創(chuàng)建一個新的基礎設施組件而不是通過升級(請參閱下面有關不可變設施的說明)。

持續(xù)基礎設施是從運行基礎環(huán)境到運行基礎組件的進化。像處理代碼一樣,通過證實的 DevOps 流程來完成。對傳統(tǒng)的 CI 的重新定義包含了缺少的那個 “i”,從而形成了連貫的 CD 。

(CIc + CIi) = CI -> CD

基礎設施如代碼 (IaC)

CIi 流程的一個關鍵推動因素是基礎設施如代碼infrastructure as code(IaC)。IaC 是一種使用配置文件進行基礎設施創(chuàng)建和升級的機制。這些配置文件像其他的代碼一樣進行開發(fā),并且使用版本管理系統(tǒng)進行管理。這些文件遵循一般的代碼開發(fā)流程:單元測試、提交、構建和發(fā)布。IaC 流程擁有版本控制帶給基礎設施開發(fā)的所有好處,如標記、版本一致性,和修改可追溯。

這有一個簡單的 Terraform 腳本用來在 AWS 上創(chuàng)建一個雙層基礎設施的簡單示例,包括虛擬私有云(VPC)、彈性負載(ELB),安全組和一個 NGINX 服務器。Terraform 是一個通過腳本創(chuàng)建和更改基礎設施架構和開源工具。

Terraform 腳本創(chuàng)建雙層架構設施的簡單示例

Terraform 腳本創(chuàng)建雙層架構設施的簡單示例

完整的腳本請參見 GitHub。

不可變基礎設施

你有幾個正在運行的虛擬機,需要更新安全補丁。一個常見的做法是推送一個遠程腳本單獨更新每個系統(tǒng)。

要是不更新舊系統(tǒng),如何才能直接丟棄它們并部署安裝了新安全補丁的新系統(tǒng)呢?這就是不可變基礎設施immutable infrastructure。因為之前的基礎設施是版本化的、標簽化的,所以安裝補丁就只是更新該腳本并將其推送到發(fā)布流程而已。

現(xiàn)在你知道為什么要說基礎設施在 CI 流程中特別重要了嗎? 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2023-07-17 18:43:26

測試基礎設施開發(fā)

2016-12-26 15:23:21

戴爾

2021-11-11 09:00:00

IaC工具自動化

2012-01-12 10:09:55

Elementary 思路

2016-12-01 14:09:59

2011-03-28 14:02:07

MirahJava對手

2013-07-25 10:06:20

云就緒分布式存儲

2022-02-10 11:54:34

即時基礎設施基礎設施數(shù)字化轉型

2023-05-09 12:02:59

智慧城市智慧交通物聯(lián)網(wǎng)

2023-04-11 15:26:44

數(shù)據(jù)中心服務器

2009-12-18 17:14:25

惠普基礎架構

2009-12-22 13:59:59

惠普基礎設施運營

2023-01-06 08:59:07

模塊化基礎設施框架

2025-04-24 08:45:00

ADRecon開源運維

2021-05-29 07:13:26

微軟Nobelium網(wǎng)絡攻擊

2024-01-15 00:35:23

JavaScript框架HTML

2023-02-02 11:21:45

物聯(lián)網(wǎng)數(shù)字孿生智慧城市

2022-09-15 11:10:17

物聯(lián)網(wǎng)能源

2017-05-26 18:06:47

2011-11-10 09:46:41

云計算云管理
點贊
收藏

51CTO技術棧公眾號