專一服務,而非容器

現階段而言,容器聽起來可能很酷,但這種現狀或許不會持續過久。能夠預見的是,容器未來也僅僅是一種基礎設施。經驗豐富的開發人員對部署應用程序的方法和其它幾種類型的基礎設施可能已經很熟悉了。容器對他們來講沒什麼大不了的。前端

然而,經過容器架構應用程序,能爲基礎設施帶來新機遇,而且市場前景巨大,這就是爲何微服務應用程序中的服務比其運行的容器化基礎設施要重要得多。後端

模塊化一直是應用程序架構的目標,現在,微服務的設想已成爲可能,如何構建這些服務最終決定了它們將在哪裏運行以及它們將以何種方式部署。應用程序的功能經過服務知足用戶需求,其價值也經過服務來實現。安全

這就是爲何若是你想充分利用容器,那你應該考慮的不該該僅僅只是容器。你必須關注服務,由於它們是容器啓用的關鍵。網絡

服務和容器

爲了便於對話,服務和容器是能夠互換使用的,由於容器化應用程序的理想用例是解構到服務中,每一個服務都被部署爲一個或多個容器。架構

可是,策略不盡相同。服務是一種隱含的基礎設施,更重要的是應用程序體系結構。當您談到做爲應用程序一部分的服務時,該服務是持久性的。例如,在沒有登陸頁面或購物車的狀況下,你沒法臨時擁有一個應有程序,還期望其進展順意。模塊化

另外一方面,容器的生命週期在設計之初就被限定在極短的範圍內。理想狀況下, 在每次部署或還原時, 一旦新的部署生效而且流量被路由到該容器就被終止。所以容器並不持久。若是交貨鏈正常運行,那根本就不重要。只要新部署已存在而且通訊流路由到該容器, 就會當即將其殺死。因此容器不是持久的。若是交付鏈正常運行, 即便容器終止也可有可無。微服務

微服務,既是一個應用程序,也是一個基礎設施術語,它有一些與之相關聯的獨特元素,從而使它進一步分化。工具

  • 單個服務能夠部署在多個區域。
  • 每一個區域均可以有多個版本——例如,A / B測試或Canary版本。
  • 每一個服務可能具備不一樣的生命週期。特定於後端的服務可能比前端服務部署的要少。

它甚至不必定意味着一個服務等於一個容器或一個主機。該服務是來自應用程序中功能的邏輯抽象,並不直接與任何基礎設施相關。測試

以服務爲中心意味着什麼?

專一於您的服務意味着開發人員不會花時間優化或修改容器編排或配置。若是最終版本的鏡像已經準備好,開發者只要關心提交他們的代碼就能夠了。若是開發人員還須要把容器也歸入考慮範圍,那就會打破某種平衡。優化

開發人員只有在開發環境中才須要考慮容器相關的事宜。開發環境和生產環境之間的平衡很是重要。要確保開發人員正在對正確的Docker鏡像進行測試,並可以訪問其餘服務,而左移QA是緩解「它在個人機器上明明能正常工做」這一問題的惟一途徑。這是經過強大的容器鏡像倉庫實現的。

然而,即便是開發環境也應該被放在最末來考慮。

如何實現以服務爲中心的工做流

我但願我能夠說,專一於服務是一項獨立的開發任務,但其實不是。開發人員已着眼於正在構建的功能,若是他們因容器和業務流程而分心,那也是由於他們是技術狂人,他們想要修補問題,而不是由於他們以爲這是他們的主要職責。

以服務爲中心,是團隊中的每一個人的責任。包括如何架構交付鏈——不只要快,並且要避免更普遍的團隊須要與之進行交互。所以,「以服務爲中心」須要從管理開始,下放到傳遞鏈(或DevOps),再到工具,最終,開發人員要麼保留基礎設施包,要麼能夠自由工做。如下是服務重點的三個關鍵原則:

  • 規範開發環境。您能夠經過找到一個強大的容器鏡像倉庫、審查圖像和標準化開發人員在其框中的工具來執行此操做。因爲服務是獨立開發的,其中一個挑戰是在整個應用程序的服務中看到新的功能。所以,開發人員每次提交均可以部署的按需集成環境就顯得尤其重要。
  • 保持不可變,不要只是掛在嘴邊。要想要以服務中心,你必須將「基礎設施不可變」付諸實踐,而不只僅是嘴上說說。這意味着在部署容器後將不得再進行更改,只能選擇運行或刪除。嚴格禁止Snowflake鏡像或配置,除了服務自己所需功能以外,不容許訪問單個容器。
  • 建立可見性。基於服務的應用程序確實有多個單片應用程序的移動部件。這意味着建立可見性併爲全部涉衆提供訪問權限相當重要。可見性還應支持基礎設施和應用程序可見性。團隊應該可以查看整個應用程序及其中的全部服務,並能檢查單個容器。所以對開發團隊來講,應用程序的可見性是最重要的。

爲避免發生重大故障,DevOps團隊還須要儘量地減小網絡和安全性的影響,其目標是儘量多地卸載編排工具。

專一於服務的目標是避免分心,只專一於服務功能。若是開發人員專一於構建一個偉大的產品,而DevOps則專一於構建最佳的交付鏈,那麼工具鏈和流程將會隨之就緒以提供支持——現在,這種偉大的產品誕生了,那就是容器和強大的編排工具。

用戶老是傾向於使用更優質的應有程序,這就促使公司更加精益求精、日臻完善,至於達到這一目標的機制,並不是問題的關鍵所在。所以,下次您再談論到容器時,不妨考慮把重點放在如何構建更好的服務上。


9月27日,北京海航萬豪酒店,容器技術大會Container Day 2017即將舉行。

CloudStack之父、海航科技技術總監、華爲PaaS部門部長、恆豐銀行科技部總經理、阿里雲PaaS工程總監、民生保險CIO······均已加入豪華講師套餐!

11家已容器落地企業,15位真·雲計算大咖,13場純·技術演講,結合實戰場景,聚焦落地經驗。免費參會+超高規格,詳細議程及註冊連接請戳

圖片描述

相關文章
相關標籤/搜索