<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          DevOps 溫故知新

          共 3318字,需瀏覽 7分鐘

           ·

          2024-05-12 20:24

          【引】伴隨著微服務架構以及云技術的廣泛使用,DevOps相應地引起了人們的關注,尤其在互聯(lián)網(wǎng)企業(yè)展開了大量的探索和實踐。去年賦閑在家的時候, 有幸精讀了三本書,分別是《持續(xù)架構實踐——敏捷和DevOps時代下的軟件架構》,《精益DevOps——快速安全的IT交付寶典》和《基礎設施即代碼——模型驅動的DevOps》, 于是,溫故知新,老碼農(nóng)對DevOps 又有了不同的體會。

          DevOps的出現(xiàn)是“左移運動”的具體體現(xiàn),是為了按時交付軟件產(chǎn)品和服務,可看作開發(fā)、運維和質(zhì)量保障三者的交集,旨在通過改善這三個部門之間的協(xié)作,提高組織提供應用程序和服務的速度,從而更好地為客戶服務并在市場中保持競爭力。遺憾的是, 在經(jīng)典DevOps 環(huán)中的“Test”并沒有凸顯QA團隊的作用。

          DevOps的實施涉及到多個方面,包括自動化工具的使用、持續(xù)集成/持續(xù)部署(CI/CD)的實踐、監(jiān)控和日志分析系統(tǒng)的建立等。通過這些實踐,DevOps可以確保軟件在開發(fā)、測試、部署和運維等各個環(huán)節(jié)中都能夠保持高效、可靠和一致。

          DevOps 的技術組成

          DevOps 涉及了技術、組織、文化等多個領域,就相關技術技能而言, 大約包括以下幾個層次:

          基礎的技術技能包括版本控制、Linux 操作系統(tǒng)的操作、編程技能、數(shù)據(jù)庫和網(wǎng)絡操作等,其中與Ops相關的編程主要是Shell 和Python。CI/CD 是DevOps 的關鍵環(huán)節(jié),常見的工具包括Jenkins、Github Action,GitLab CI 等。容器化技術保證了CI/CD 的環(huán)境一致性,同時為服務和網(wǎng)絡的編排提供了工具。就具體的部署環(huán)境而言, IaC 是實現(xiàn)面向混合云快速部署的關鍵。監(jiān)控和日志與傳統(tǒng)運維領域的技術類似,區(qū)別可能是顆粒度不同。

          DevOps 中CI/CD 流水線

          CI/CD 是DevOps 的關鍵技術點,工作流及其流水線是工程效率提升的主要體現(xiàn)。

          CI/CD有助于從初始代碼提交到部署的軟件開發(fā)過程。通過自動化流水線,它消除了傳統(tǒng)上將代碼運送到生產(chǎn)環(huán)境所需的大量手動人工干預。

          持續(xù)集成(CI)包括自動化構建、執(zhí)行測試以及將單個開發(fā)人員的代碼合并到共享存儲庫中。持續(xù)集成的主要目標是有效地將源代碼集成到共享存儲庫中。一旦將更改提交給版本控制系統(tǒng),就會執(zhí)行自動構建和測試用例,以確保代碼的功能和有效性。這些過程驗證源代碼如何編譯以及測試用例在執(zhí)行期間如何執(zhí)行。

          其中代碼入庫可以做成一個單獨的流水線:

          構建和測試作為另一條流水線:

          持續(xù)部署(CD)是 CI/CD 流水線中 CI 之后的下一步,是自動部署將自動測試階段傳遞到生產(chǎn)環(huán)境的每個代碼更改的實踐。其典型的流水線如下:

          持續(xù)部署的重點是在生產(chǎn)環(huán)境中快速部署代碼變更。它的根源可以追溯到敏捷宣言,強調(diào)“早期和持續(xù)交付的有價值的軟件”來滿足客戶。真正的持續(xù)部署是具有挑戰(zhàn)性的,而且沒有像 CI 那樣被廣泛采用,但是一個更常見的實踐方式是持續(xù)交付(Continuous delivery)。持續(xù)交付和持續(xù)部署的主要區(qū)別在于,持續(xù)交付可能側重于“ready for production”,不是自動完成上線,而是完成上線準備。

          從DevOps 到MLOps

          如果對DevOps中的Dev 進行領域劃分和擴展,就會形成XOps。隨著人工智能的廣泛使用, 機器學習成為了Dev 中的一個重要領域,從而形成了DevOps 的一個變體——MLOps。

          MLOps的核心思想是將DevOps的流程和工具應用于機器學習領域,以實現(xiàn)機器學習應用的持續(xù)集成、持續(xù)交付和持續(xù)部署。MLOps的目標是通過使機器學習的開發(fā)、測試和部署更加自動化來增強軟件開發(fā)的效率和質(zhì)量。 

          MLOps可以更好地管理機器學習模型的生命周期,包括數(shù)據(jù)準備、傳輸和轉換、模型訓練和優(yōu)化、模型評估和選擇、模型部署和監(jiān)控等。同時,MLOps也可以幫助團隊管理開發(fā)和生產(chǎn)環(huán)境之間的差異,保證模型在生產(chǎn)環(huán)境中的穩(wěn)定性和可靠性。簡單而言,MLOps增加了領域特殊性的環(huán)節(jié)——持續(xù)訓練(Continuous Training,CT)。

          MLOps的引入,使得機器學習模型的開發(fā)和部署流程更加高效,從而加快了AI應用的創(chuàng)新速度并降低了錯誤率,還有助于加強數(shù)據(jù)安全性和合規(guī)性,并提高機器學習應用的可靠性和可維護性。

          至于LLMOps, 后續(xù)會有專門的文章重點總結。

          面向基礎設施的DevOps

          DevOps 不僅僅適用于軟件交付,而是面向整個IT交付領域。那么,如何將DevOps應用于基礎設施呢?如何高效、智能地管理和配置基礎設施呢?

          這就需要IaC,IaC 是面向基礎設施的DevOps 的關鍵技術。面對基礎設施尤其是網(wǎng)絡環(huán)境的多樣化和差異性,對網(wǎng)絡進行建模是實現(xiàn)IaC的前提。

          通過模型驅動的方式,IaC是一種將基礎設施管理過程自動化的方法,通過使用編程語言來描述和管理基礎設施資源,實現(xiàn)對基礎設施的快速部署、配置和管理。

          與傳統(tǒng)的手動管理方式相比,IaC具有更高的靈活性、可擴展性和可維護性,能夠幫助企業(yè)降低運營成本、提高運維效率。

          從DevOps 到 DevSecOps

          DevSecOps是DevOps實踐的自然演變,其重點是將安全性集成到軟件開發(fā)和部署過程中。術語“DevSecOps”代表了開發(fā)(Dev)、安全(Sec)和運營(Ops)實踐的融合,強調(diào)了安全在整個軟件開發(fā)生命周期中的重要性。在QCon 2022的關于工程師成長專題中,我曾分享過《工程師成長的金字塔思維》,其中涉及了DevSecOps 的敏捷安全金字塔。

          DevSecOps的核心理念是“業(yè)務應用生命周期的每個環(huán)節(jié)都需要為安全負責,安全是整個IT團隊(包括開發(fā)、測試、運維及安全團隊)所有成員的責任,并且需要貫穿到從研發(fā)至運營的全過程”。相較于傳統(tǒng)的研發(fā)運營安全,它更注重在開發(fā)階段就考慮并融入安全因素,而不是僅僅在測試及運營階段進行安全威脅的檢測、識別、修復和防御。

          DevSecOps是DevOps概念的延續(xù),可以最大限度在軟件上線前減少產(chǎn)品的漏洞,并完全地被最終用戶使用。由于每個流程和相關工作流程都通過嚴格的安全檢查實現(xiàn)自動化,因此可以更準確地滿足安全要求。

          DevOps 的方法論

          我們很容易理解DevOps為IT服務交付帶來的諸多益處,但對如何讓DevOps 真正融入我們的軟件工程中往往缺乏真正有意義的指導方法。也就是說,DevOps的落地確實是個難題,它不僅需要技術層面的支持,還需要組織文化、流程管理、團隊協(xié)作等多方面的配合。

          “他山之石,可以攻玉”,我們可以參考借鑒其他領域的反法論來實現(xiàn)DevOps,例如精益管理。精益管理是由豐田精益生產(chǎn)方式創(chuàng)生出的具有全新思維方式和行為方式的管理,在制造業(yè)取得了巨大的成功。精益思想是適于任何組織消除浪費、創(chuàng)造價值的最強有??具?;诰嫠枷氲腄evOps能有效地減少交付摩擦和管理服務交付風險,應用OODA循環(huán),可以通過管理不可預測性來提升組織的執(zhí)行力,

          DevOps 本身就是把精益思想應用到技術價值流中的結果,而技術價值流是把業(yè)務構想轉化為向客戶交付價值的、由技術驅動的服務所需要的流程。精益思想是DevOps乃至敏捷開發(fā)的魂魄,也是指引DevOps及敏捷開發(fā)落地的燈塔。

          【關聯(lián)閱讀】

          瀏覽 115
          1點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          1點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  伊人大香蕉在线网 | 久久久人妻熟妇精品无码蜜桃 | 人妻夜夜爽天天爽麻豆三区视频 | 影音先锋男人网站 | 91久久久久久国产 |