Container & Microservice
容器技術帶來的好處:
-
極其輕量:只打包了必要的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 (不可變基礎架構)-- 所謂不可變基礎架構,就是說系統一旦部署,就不再更變升級。當服務/應用需要升級時,只要部署一個新版系統,摧毀舊版就好了。在這個過程中,系統對外服務幾乎是持續的。
-
Automate the setup and deployment for every part and every layer of your infrastructure.
-
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Container on AWSAI
- 2.3.7 Container MapsAI
- hydra-microservice 中文手冊(3W字預警)ROS
- flutter Container的decorationFlutterAI
- SAP ABAP ALV 的一些總結:Custom container 和 Splitter containerAI
- SAP ABAP ALV 的一些總結:Docking container 和 Dialogbox containerAI
- 【譯】容器元件 (Container Components)元件AI
- Leetcode 11 Container With Most WaterLeetCodeAI
- kubernetes CNI(Container Network Inferface)AI
- kubernetes container device interface (CDI)AIdev
- 2.1.3.3 Container Data Objects in a CDBAIObject
- Container容器元件的使用AI元件
- 不聽話的 ContainerAI
- 一種不錯的 BFF Microservice GraphQL/REST API 層的開發方式ROSRESTAPI
- Swift SB 容器 Container View使用SwiftAIView
- flutter佈局-4-containerFlutterAI
- offsetof與container_of巨集分析AI
- Flutter之Container用法詳解FlutterAI
- LeetCode 11. Container With Most WaterLeetCodeAI
- leetcode_11. Container With Most WaterLeetCodeAI
- Containerd 配置使用 Nvidia container runtimeAI
- 17-Containers-Container Environment VariablesAI
- 2.3.1.1.2 Application Container Use Case: SaaSAPPAI
- kubernetes之初始容器(init container)AI
- Flutter Container Widget 佈局詳解FlutterAI
- 看 Laravel 原始碼瞭解 ContainerLaravel原始碼AI
- Flutter 佈局(一)- Container詳解FlutterAI
- 容器Container概念的定義 - MarcJBrookerAI
- Flutter 容器控制元件篇-->ContainerFlutter控制元件AI
- Flink 1.10 Container 環境實戰AI
- 1.6 - Laravel - 5.6 - Container Bind 機制LaravelAI
- Flutter 佈局篇 Positioned 和 ContainerFlutterAI
- containerd 原始碼分析:建立 container(一)AI原始碼
- containerd 原始碼分析:建立 container(三)AI原始碼
- 什麼是 StackBlitz 的 web containerWebAI
- LeetCode - Medium - 11. Container With Most WaterLeetCodeAI
- Github Actions 中 Service Container 的使用GithubAI
- Golang標準庫學習—container/heapGolangAI