共同 DevOps 條款

以下是一些常見詞彙的清單。 DevOps 在企業中有效工作必須了解的術語 DevOps.

目錄

驗收測試:通常對整個系統進行高水準的測試,以確定新功能和現有功能的整體品質是否足夠好,從而使系統能夠投入生產。

應用程式發布編排(ARO): 用於在目標環境中自動安裝和正確配置給定版本應用程式的工具、腳本或產品,使其隨時可用。也稱為“應用程式發布自動化”(ARA)或“持續交付和發布自動化”(CDRA)。

黑盒測試: 一種測試或品質保證實踐,它假定對被測系統的內部運作一無所知,因此試圖驗證外部行為或狀態,而不是內部行為或狀態。

建置代理: 一種用於持續整合的代理,可以本地或遠端安裝在持續整合伺服器上。它負責發送和接收有關軟體建置處理的訊息。

建立自動化: 能夠將原始程式碼自動編譯成可發布二進位的工具或框架。通常包含程式碼級單元測試,以確保各個程式碼片段的行為符合預期。

配置即程式碼: 一種系統配置管理技術,其中機器、應用程式、作業等的配置以程式碼形式指定並保存在版本控制中,使團隊能夠在幾秒鐘內配置應用程式/系統/作業。

配置漂移: 該術語用於描述軟體和硬體配置由於手動臨時更改(如熱修復)而未重新引入模板,從而導致軟體和硬體配置與系統模板版本偏差或不一致的一般趨勢。

容器: 容器與虛擬機器類似,但更輕量級,它是獨立的、可執行的軟體包,其中包含運行一段軟體所需的一切:程式碼、運行時間、系統工具、系統庫、設定等等。

持續交付(CD): 一套流程和實踐,從根本上消除軟體生產過程中的浪費,加快高品質功能的交付速度,並在企業和用戶之間建立快速有效的回饋循環。

持續整合(CI)這種開發實踐要求開發人員每天多次將程式碼提交到共享程式碼庫。每次提交都會透過自動化建置進行驗證,使團隊能夠及早發現問題。

交付流程: 一系列精心編排的自動化任務,旨在實現 軟件交付 新應用程式版本發布流程。流程中的每一步都旨在逐步提升對新版本的信心,直到最終做出是否發布的決定。交付流程可以被視為優化組織發布流程的成果。

DevOps – 開發 + 營運: 由 development 和 operations 組合而成 DevOps 是一套流程、實踐和工具,旨在改善軟體開發週期中各個角色之間的溝通、協作和流程,從而更快、更穩定地交付更好的軟體。

DevSecOps: 將安全融入實踐 DevOps 的過程。

反饋迴路: 在軟體交付過程的早期階段,建立維運與開發之間快速、持續的回饋機制是其主要原則之一。 DevOps這樣做不僅有助於確保你為客戶提供他們真正想要的東西,還能減輕開發負擔,減少部署的恐懼,建立更好的開發和維運關係,並提高生產力。

治理: 在IT領域,治理是指組織評估並確保其技術投資能如預期運作且不會引入新風險的過程。正式的治理流程也有助於公司確保IT活動與業務目標保持一致,同時確保所有活動都符合通用標準,例如: OWASPPCI 3.2 和 CWE/SANS。

基礎設施即代碼: 一種系統配置管理技術,其中機器、網路設備、作業系統、中間件等以完全可自動化的格式進行指定。該規範或“藍圖”被視為由配置工具執行的程式碼,並進行版本控制,通常遵循與應用程式程式碼開發相同的實踐。

基礎設施即服務 (IaaS): 雲端託管的虛擬機器通常採用「按需付費」模式。使用者擁有對虛擬機器的完全控制權,但需要自行安裝和配置任何所需的中間件和應用程式。

詹金斯: Jenkins 是一個用 Java 編寫的開源自動化伺服器,長期以來一直是持續整合的實際標準。借助 Jenkins,開發人員可以每天多次將程式碼整合到共享程式碼庫中。隨著企業尋求擴展其軟體交付流程,他們常常發現 Jenkins 需要編寫過多的腳本和/或維護工作流程,因此需要擴展到持續交付。持續交付不僅利用了持續整合工具,還利用了端到端發布編排、測試自動化、安全性、IT 服務管理等工具。

讀: 「精益製造」或「精益生產」是一種旨在透過注重價值保留來減少生產過程中浪費的方法或技術。精實理念主要源自於豐田汽車在汽車製造領域開發的實踐,並已作為敏捷方法的一部分應用於軟體開發。價值流程圖是一種關鍵的精實工具,它試圖以視覺化的方式識別有價值的和浪費的流程步驟。

非功能性需求(NFR): 系統特性規範,例如易用性、設計清晰度、延遲、速度以及處理大量使用者的能力,描述的是某項功能使用起來是否方便高效,而不僅僅是它是否存在。這些特性也可以透過持續交付回饋循環進行改進。

開源: 指的是任何人都可以修改其原始程式碼的程式或應用程式。有各種各樣的開源框架,例如 AngularJS 和 React;開源工具,例如 Gradle 和 Jenkins;以及開源程式庫,例如 JHipster,它們可以用來改進特定的軟體開發和部署流程。在複雜的企業環境中, DevOps 該平台可以整合開源工具,並將其簡化到交付流程中。

平台即服務 (PaaS): 雲端託管應用程式運行時通常採用「按需付費」模式。客戶提供應用程式程式碼和有限的配置設置,而中間件、資料庫等則包含在提供的執行時間環境中。

供應: 為使用者準備新系統的過程。在持續交付場景中,這項工作通常由開發或測試團隊完成。系統通常採用虛擬化技術,並按需實例化。用於安裝作業系統、中介軟體等的機器配置由自動化系統組態管理工具處理,這些工具也會驗證是否維護了所需的配置。

回歸測試: 對端到端系統進行測試,以驗證應用程式的變更是否對現有功能產生負面影響。

Release 管理: 從開發階段到實際軟體發布,管理軟體發布的過程。

左移隨著交付速度的提升,不同應用、團隊和環境中的安全風險和合規性問題也日益增加。 「左移」指的是將風險評估、安全測試和合規性評估流程更早整合到交付流程中。這樣做可以更經濟、更輕鬆地解決潛在的發布延遲或失敗、威脅生產環境的安全漏洞以及導致高額罰款的IT治理違規問題。

測試驅動開發(TDD): 一種開發實踐,即在編寫程式碼之前先編寫一些小型測試來驗證程式碼的行為。這些測試最初會失敗,開發人員的目標是添加程式碼使它們能夠成功運行。

單元測試: 程式碼級測試(即無需完整安裝端對端系統即可運行)用於驗證各個程式碼片段的行為。測試驅動開發廣泛使用單元測試來描述和驗證預期行為。

價值流程圖: 價值流圖是一種廣泛應用於精實生產和工程方法中的流程視覺化改善技術。它用於識別關鍵流程步驟和可以逐步消除的「浪費」。

版本控制系統(VCS): 一種能夠記錄檔案或檔案集隨時間推移發生的變更的系統,以便您日後可以呼叫特定版本。 (例如 GitHub、GitLab、Subversion 等)

虛擬化: 這是一種系統管理方法,使用者和應用程式無需使用實體機器,而是使用運行在實際「真實」硬體上的模擬系統。這些「虛擬機器」可以在幾秒鐘內自動建立、啟動、停止、複製和銷毀,從而為操作提供極大的靈活性。

白盒測試: 一種測試或品質保證實踐,其基礎是透過檢查系統運行時的(內部)行為和狀態來驗證系統內部功能的正確性。

零容忍: 也就是說,在生產環境中對故障零容忍。客戶對故障也零容忍。部署失敗或任何類型的面向客戶的軟體服務中斷都可能對組織造成災難性影響,尤其是在嚴格監管的行業中。