Container & Microservice

fiona8953發表於2018-09-13

容器技術帶來的好處:

  • 極其輕量:只打包了必要的Bin/Lib;

  • 秒級部署:根據映象的不同,容器的部署大概在毫秒與秒之間;

  • 易於移植:一次構建,隨處部署,因為本身是一個自包含映象;

  • 彈性伸縮:Docker、Kubernetes、Mesos這類容器管理平臺有著與生俱來的彈性管理能力;

Serverless -- Lambda是個事件驅動的彈性計算平臺。使用者可以寫一段程式碼,AWS為其建立一個Lambda資源,這樣,當指定的事件來臨的時候,AWS的runtime會建立相應執行環境,執行程式碼,執行完畢(或者timeout)後,回收相應資源。

AWS Lambda是基於容器技術實現的,它把核心函式和服務包裝成容器,相信也同樣打包了使用者程式碼,同時高度最佳化了容器的管理和排程,實現快速幾乎實時的大規模scale out和scale down。也就是說,同樣的業務場景,容器技術讓AWS Lambda和IFTTT產生了完全不同效果。同樣,也正是容器易於部署,編排的特性,讓使用者專注於應用本身而不是計算資源的管理,這就催生了Serverless的概念。

Lacalytics的例子很好說明了容器技術以應用/服務為中心的(application centric),而傳統基於虛擬化技術的雲平臺是以機器(虛擬或真實的物理資源)為中心,後者勢必讓我們去考慮很多所謂DevOps的工作,而顯然那將是需要不斷提高但卻永無止境的付出。

Immutable Infrastructure (不可變基礎架構)-- 所謂不可變基礎架構,就是說系統一旦部署,就不再更變升級。當服務/應用需要升級時,只要部署一個新版系統,摧毀舊版就好了。在這個過程中,系統對外服務幾乎是持續的。

  1. Automate the setup and deployment for every part and every layer of your infrastructure.

  2. Never change any part of your system once it is deployed. If you need to change it, deploy a new system.

Immutable Infrastructure vs. Artisanal Infrastructure  (手工藝架構)


Microservice架構

微服務的幾個主要特徵:

  • 元件化的服務(封裝)

  • 圍繞業務能力組織

  • 是獨立產品不是專案

  • 簡化的通訊與連線

  • 去中心管理

  • 去中心資料管理

  • 基礎架構自動化

  • 容錯設計

  • 遞進設計

從這些特性看,容器技術及其相關的編排管理框架是得它成為實現Microservice架構最自然的載體。比如,通常一個Container映象是一個應用/服務的獨立完整的封裝,一般要求是Stateless,而且從管理角度看,Container平臺都提供自動化的生命週期,scale out和scale down的管理。


Amazon Container Cheat Sheet

Amazon ECS VS  Amazon EKS VS  AWS Fargate

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26477398/viewspace-2214084/,如需轉載,請註明出處,否則將追究法律責任。

相關文章