必知 | 容器和微服務的五個關鍵真相
企業可以將容器與微服務結合使用,使其能夠創建更加一致且輕量級的開發框架,該框架是云計算的***選擇。而容器和微服務是可以在云計算中實現更高效率的兩項前沿技術。雖然它們不需要組合使用,但當它們一起使用時,可以提供更多的好處。
容器:
使用容器,可以讓開發人員通過創建虛擬“沙箱”來更快、更好地工作,從而可以編寫、管理和操作軟件代碼。其優點是可以在不影響服務器或虛擬機(VM)上運行的其他應用程序和系統的情況下完成此操作。容器可以提高效率,降低成本,甚至提高安全性。這些易于打包和輕量級的組件可以與同一虛擬機中的其他組件一起運行。
容器引入的巨大靈活性推動了快速采用,從而日益依賴容器技術。容器已成為虛擬機的替代品。調研機構Forrester公司指出,58%的開發商計劃在未來一年內使用容器或正在計劃使用容器。與此同時,調研機構451 Research公司的報告表明,應用容器市場規模將從2016年的7.62億美元增長到2020年的27億美元。
微服務:
容器的主要吸引力在于微服務。這些軟件組件(可能包括代碼、運行時間、系統工具、系統庫和設置作為獨特且謹慎的流程)引入了更加模塊化和高級的開發框架。
微服務通常通過工具欄或菜單提供,允許組織部署軟件,并更快、更持續地進行更改。對于使用DevOps和其他敏捷方法的組織,此功能尤為重要。
微服務的根源在于Web服務。通過將代碼組件組合到功能應用程序中,組織可以使用這些預先設計的小型應用程序來進行軟件開發。這使企業能夠更快地推出產品,并更加動態地進行更改。
請記住,雖然微服務不需要容器,但它們從中受益匪淺。具有微服務的容器允許組織創建更一致和輕量級的云計算開發框架。
以下是有關使用容器和微服務的五個關鍵真相和事實:
(1)復雜性可能成為一個問題
解決方案的積累(在這種情況下是跨多個容器的微系統)可能帶來新問題,有時甚至是棘手的問題。雖然這兩個工具(特別是在組合時)可以簡化和加速開發,但是它們也帶來了新的挑戰,有時還會帶來棘手的挑戰。
微服務的數量及其與容器的所有交叉點轉化為不斷變化的環境。這可能會迫使組織處理過多的粒度,如果使用過多或映射不正確,可能會引入延遲。它還可能提高測試要求。
某些組件是開源的,而其他組件是由商業公司提供的,這可能會使問題進一步復雜化。最終,整體框架中的差距可能會影響可擴展性、可靠性和許多其他因素。
成功的關鍵是建立戰略和強大的框架來支持微服務和容器。這需要經驗豐富的開發人員對團隊關鍵成員進行***培訓,以便他們能夠領導計劃,并使用工具和系統獲得***的優勢。
(2)組織需要新的流程
持續交付(CD)和持續集成(CI)框架是大多數企業的關注焦點。這些方法可以釋放卓越的業務創新。它們特別適合當今的敏捷和DevOps開發框架,這些框架可以促進應用程序和更新的快速、增量和連續部署。
容器和微服務在很大程度上支持這種方法。然而,有一個問題:沒有正確的工作流程,組織很難從持續交付(CD)和持續集成(CI)中獲取***價值,并最終從容器和微服務中獲取***價值。
在沒有建立基礎和框架的情況下釋放這些工具可能會增加復雜性并破壞進度。因此,對于開發和運營團隊而言,重點關注兩個關鍵問題:
- 構建知識庫:在接受微服務和容器之前,業務和開發方面的團隊必須徹底了解持續交付(CD)和持續集成(CI)概念和方法。
- 必須建立協作基礎:組織必須為合作伙伴開發一個框架,以便以最有效和***效的方式協同工作以整合容器和微服務。
(3)監測至關重要
由于依賴容器和微服務的開發環境可能變得相當復雜并且涉及大量的工具和組件,所以監控是成功計劃的核心。
此外,代碼監視必須在容器內部進行。關注幾個關鍵問題非常重要:
- 了解所需監控的范圍和性質。監控不足可能會導致開發團隊感到沮喪和不堪重負。一個問題是微服務在容器和組件之間可能有很大差異。這意味著必須部署跨越整個容器和微服務集合的監視。
- 了解傳統監測是有限的。傳統的監測方法(即采用儀器的方法)并不一定有效。容器受益于小而孤立的進程,并且具有盡可能少的依賴性。
- 監控工具必須解決容器和微服務的獨特挑戰。確定出現缺陷、錯誤和生產問題的位置,并采取措施糾正這些問題涉及更復雜和細微差別的方法。監視容器和微服務可能包括各種工具,包括應用程序性能監視、代碼分析、直接錯誤跟蹤、集中式日志記錄,以及圍繞應用程序和組件的度量標準。
- 快速無縫地修復問題。當開發團隊可以確定問題存在的位置時,可以快速回滾或修補問題。這可能涉及刪除或更改,否則可能難以在容器中發現和填充更改的微服務。
(4)編排對成功至關重要
容器和微服務的集合不會自動解決組織的DevOps或敏捷性挑戰。需要有效地協調這些系統和組件。
編排基本上以智能方式對容器進行聚類,是這個難題的關鍵部分。它使可擴展性易于管理。容器編排平臺Kubernetes是開源的,可與大多數工具和平臺配合使用。它解決了自動化和擴展的需求。
許多潛在的解決方案都包含Kubernetes,包括開源Docker,它對管理單個圖像實例更有效。解決方案還可以包含來自AWS、谷歌云和Microsoft Azure等云計算公司的商業服務,這些服務可用于解決更復雜的分布式應用程序。
這些服務可以完成幾項關鍵任務。最重要的是,它們可以:
- 將大量微服務聯系在一起。
- 自動執行一系列任務和流程。
- 管理服務的擴展。
- 通過在更廣泛的環境(包括混合云部署)中部署容器和微服務,實現更高級別的靈活性。
(5)安全不能是事后想法
容器和微服務引入了一些重要的安全優勢,特別是通過沙盒隔離代碼和應用程序,但它們也會產生新的漏洞。
***的風險之一圍繞著易受特定威脅影響的特定庫和微服務。因此,使用容器和微服務的組織應該:
- 采用專門的工具來管理容器安全性,包括處理圖像掃描、圖像管理和維護可信賴的注冊表的解決方案。組織還受益于應用程序安全軟件,以解決代碼的動態和靜態掃描,以及處理基于策略的執行任務的軟件。
- 使用在邊界處保護容器的操作系統或軟件。這種方法很重要,因為它可以防止主機內核脫離容器以及保護容器彼此之間的連接。
- 將容器編排作為安全的關鍵要素。這包括部署哪些容器到哪些主機、主機容量、容器可以被發現和連接的方式、容器運行狀況的管理方式,以及整合到環境中的開發人員自助服務的程度。
- 了解網絡如何針對容器和微服務安全性進行配置,包括是否可以對流量進行分段以隔離單個集群中的不同用戶、團隊、應用程序和環境。這可能需要更先進的SDN工具,以解決識別IP地址和集群的復雜性。同樣,組織必須解決存儲問題,包括容器在靜止狀態下的方式和位置。
妥善處理這些問題并采取系統方法處理容器和微服務的組織將處于優勢地位,使他們的發展努力與當今數字業務框架的機遇和挑戰相匹配。