SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
微服務⾃自⼰己動⼿手做
劉劉晏辰
台科⼤大資管所碩⼠士⽣生
Linkedin: daychen.tw
分享⼤大綱
• 微服務架構 Microservices
• 訊息佇列列 Message Queue
• 服務的通訊協定 HTTP、AMQP
• 容器化技術 Docker
• ⾃自動擴展與部屬容器 Kubernetes
• ⽰示範 Demonstrate
3
微服務架構
4
微服務優點
優點
• 檔案⼩小,擴充速度快
• 服務可採⽤用不同語⾔言與技術
• 低耦合性
5
服務的通訊協定
• HTTP 同步通訊
• ⾼高階消息佇列列協議(AMQP) 非同步通訊
HTTP 通訊
7
服務探索-命名伺服器
8
⾼高階消息佇列列協議(AMQP)
服務通訊範例例
服務通訊範例例-PIKA
• Python RabbitMQ/AMQP client library
• https://pika.readthedocs.io
• Demo: https://github.com/yenchenLiu/RentalManagementMicroservice/tree/master/demo/pika
服務通訊範例例-NAMEKO
• Python framework for building microservices
• https://www.nameko.io/
• Demo: https://github.com/yenchenLiu/RentalManagementMicroservice/tree/master/demo/nameko
PIKAVS NAMEKO
容器化技術 DOCKER
• 直接建立在作業系統上的虛擬化技術
• 將程式直接封裝成映像檔
• 在數秒內即可開啟程式
• 輕鬆的遷移和擴展
參參考資料:https://philipzheng.gitbooks.io/docker_practice/content/
如何建立
1. 配置 Dockerfile
2. 建置 Docker 映像檔(image)
3. 執⾏行行映像檔
4. 上傳映像檔到Docker Hub
DOCKERFILE
• From 需要使⽤用到的映像檔
• RUN 執⾏行行設定或安裝需要的檔案
• CMD 執⾏行行程式
DOCKER 指令
• docker build 將資料夾打包成docker 映像
• docker image ls 顯⽰示出系統內有的映像檔
• docker run 執⾏行行映像檔
• docker push 將映像檔推送⾄至docker hub
KUBERNETES
• ⾃自動擴展、部署、管理理容器
• YAML檔描述想要的機器狀狀態
• 對初學者來來說很複雜
KUBERNETES
如何搜尋服務
容器單位 POD
• kind: Pod
• metadata: 服務的名稱與標籤
• spec: 服務的內容與相關規格
存取規則 SERVICE
• kind: Service
• metadata: 服務的名稱
• selector: 被應⽤用的標籤
標籤的功能
部署MINIKUBE
• 建置環境 - https://github.com/yenchenLiu/RentalManagementMicroservice#如何部署
KUBERNETES補充
• Deployment - 無狀狀態的Pod叢集
• StatefulSets - 有狀狀態的Pod叢集
• Ingress - 負載平衡與服務路路由
DEPLOYMENT
• 根據設定檔,⾃自動產⽣生需要的程式副本數
• 零停機升級(ZDU) 或 回復上⼀一版(roll back)
• 根據CPU及Memory使⽤用率⽔水平擴展或縮減
STATEFULSETS
• 基本同Deployment
• 依照0,1,2,3,......,N順序開機,相反順序關機
• 每個Pod會有持久性的儲存空間
INGRESS
• 配置為外部服務可訪問的URL
• 提供負載平衡、SSL、基於Domain的虛擬機
INGRESS-⽰示意圖
Q&A

Más contenido relacionado

La actualidad más candente

使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)Will Huang
 
Docker - 30秒生出100台伺服器
Docker - 30秒生出100台伺服器Docker - 30秒生出100台伺服器
Docker - 30秒生出100台伺服器升煌 黃
 
Docker集群管理 工具篇
Docker集群管理 工具篇Docker集群管理 工具篇
Docker集群管理 工具篇Guangya Liu
 
Docker home ted
Docker home tedDocker home ted
Docker home tedLayne Peng
 
企業導入容器經驗分享與開源技能培養
企業導入容器經驗分享與開源技能培養企業導入容器經驗分享與開源技能培養
企業導入容器經驗分享與開源技能培養Philip Zheng
 
Docker open stack
Docker open stackDocker open stack
Docker open stackGuangya Liu
 
Rancher: 建立你的牧場艦隊
Rancher: 建立你的牧場艦隊Rancher: 建立你的牧場艦隊
Rancher: 建立你的牧場艦隊Miles Chou
 
3 introduction to kubernetes
3 introduction to kubernetes3 introduction to kubernetes
3 introduction to kubernetesJiang Shang
 
Angular 开发技巧 (2018 ngChina 开发者大会)
Angular 开发技巧 (2018 ngChina 开发者大会)Angular 开发技巧 (2018 ngChina 开发者大会)
Angular 开发技巧 (2018 ngChina 开发者大会)Will Huang
 
快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)Will Huang
 
RxJS 6 新手入門
RxJS 6 新手入門RxJS 6 新手入門
RxJS 6 新手入門Will Huang
 
Docker 淺入淺出
Docker 淺入淺出Docker 淺入淺出
Docker 淺入淺出Miles Chou
 
SQL Server 資料庫版本控管
SQL Server 資料庫版本控管SQL Server 資料庫版本控管
SQL Server 資料庫版本控管Will Huang
 
cec-hello-docker
cec-hello-dockercec-hello-docker
cec-hello-dockerBruce Huang
 
容器式基礎架構介紹
容器式基礎架構介紹容器式基礎架構介紹
容器式基礎架構介紹Philip Zheng
 
Docker Compose
Docker ComposeDocker Compose
Docker ComposeMiles Chou
 
Build your own kubernetes apiserver and resource type
Build your own kubernetes apiserver and resource typeBuild your own kubernetes apiserver and resource type
Build your own kubernetes apiserver and resource typeinwin stack
 
Openstack neutron 原理详解
Openstack neutron 原理详解Openstack neutron 原理详解
Openstack neutron 原理详解Yong Luo
 
Wot2013云计算架构师峰会 -陈轶飞2
Wot2013云计算架构师峰会 -陈轶飞2Wot2013云计算架构师峰会 -陈轶飞2
Wot2013云计算架构师峰会 -陈轶飞2dotCloud
 

La actualidad más candente (20)

使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
 
Docker Build
Docker BuildDocker Build
Docker Build
 
Docker - 30秒生出100台伺服器
Docker - 30秒生出100台伺服器Docker - 30秒生出100台伺服器
Docker - 30秒生出100台伺服器
 
Docker集群管理 工具篇
Docker集群管理 工具篇Docker集群管理 工具篇
Docker集群管理 工具篇
 
Docker home ted
Docker home tedDocker home ted
Docker home ted
 
企業導入容器經驗分享與開源技能培養
企業導入容器經驗分享與開源技能培養企業導入容器經驗分享與開源技能培養
企業導入容器經驗分享與開源技能培養
 
Docker open stack
Docker open stackDocker open stack
Docker open stack
 
Rancher: 建立你的牧場艦隊
Rancher: 建立你的牧場艦隊Rancher: 建立你的牧場艦隊
Rancher: 建立你的牧場艦隊
 
3 introduction to kubernetes
3 introduction to kubernetes3 introduction to kubernetes
3 introduction to kubernetes
 
Angular 开发技巧 (2018 ngChina 开发者大会)
Angular 开发技巧 (2018 ngChina 开发者大会)Angular 开发技巧 (2018 ngChina 开发者大会)
Angular 开发技巧 (2018 ngChina 开发者大会)
 
快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)
 
RxJS 6 新手入門
RxJS 6 新手入門RxJS 6 新手入門
RxJS 6 新手入門
 
Docker 淺入淺出
Docker 淺入淺出Docker 淺入淺出
Docker 淺入淺出
 
SQL Server 資料庫版本控管
SQL Server 資料庫版本控管SQL Server 資料庫版本控管
SQL Server 資料庫版本控管
 
cec-hello-docker
cec-hello-dockercec-hello-docker
cec-hello-docker
 
容器式基礎架構介紹
容器式基礎架構介紹容器式基礎架構介紹
容器式基礎架構介紹
 
Docker Compose
Docker ComposeDocker Compose
Docker Compose
 
Build your own kubernetes apiserver and resource type
Build your own kubernetes apiserver and resource typeBuild your own kubernetes apiserver and resource type
Build your own kubernetes apiserver and resource type
 
Openstack neutron 原理详解
Openstack neutron 原理详解Openstack neutron 原理详解
Openstack neutron 原理详解
 
Wot2013云计算架构师峰会 -陈轶飞2
Wot2013云计算架构师峰会 -陈轶飞2Wot2013云计算架构师峰会 -陈轶飞2
Wot2013云计算架构师峰会 -陈轶飞2
 

Similar a 微服務自己動手做

新浪微博平台与安全架构
新浪微博平台与安全架构新浪微博平台与安全架构
新浪微博平台与安全架构n716
 
Introduction MQTT in Chinese
Introduction MQTT in ChineseIntroduction MQTT in Chinese
Introduction MQTT in ChineseEric Xiao
 
Redis在唯品会的应用实践.pdf
Redis在唯品会的应用实践.pdfRedis在唯品会的应用实践.pdf
Redis在唯品会的应用实践.pdfjaydenhu
 
廣宣學堂: 企業導入微服務實戰
廣宣學堂: 企業導入微服務實戰廣宣學堂: 企業導入微服務實戰
廣宣學堂: 企業導入微服務實戰Paul Chao
 
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated企業導入微服務實戰 - updated
企業導入微服務實戰 - updatedPaul Chao
 
Mock Server的应用与实践
Mock Server的应用与实践Mock Server的应用与实践
Mock Server的应用与实践qi lei
 
Rest与面向资源的web开发
Rest与面向资源的web开发Rest与面向资源的web开发
Rest与面向资源的web开发topgeek
 
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated企業導入微服務實戰 - updated
企業導入微服務實戰 - updatedPaul Chao
 
Langchain and Azure ML and Open AI
Langchain and Azure ML and Open AILangchain and Azure ML and Open AI
Langchain and Azure ML and Open AIKo Ko
 
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open CampAndrew Wu
 
Python HTTP
Python HTTPPython HTTP
Python HTTPYao Zuo
 
Getting Started with Serverless Architecture - 深入淺出無伺服器架構應用程式
Getting Started with Serverless Architecture - 深入淺出無伺服器架構應用程式Getting Started with Serverless Architecture - 深入淺出無伺服器架構應用程式
Getting Started with Serverless Architecture - 深入淺出無伺服器架構應用程式Amazon Web Services
 
讓軟體開發與應用更自由 - 使用 Docker 技術
讓軟體開發與應用更自由 - 使用 Docker 技術讓軟體開發與應用更自由 - 使用 Docker 技術
讓軟體開發與應用更自由 - 使用 Docker 技術Yu Lung Shao
 
Kafka cluster best practices
Kafka cluster best practicesKafka cluster best practices
Kafka cluster best practicesRico Chen
 
新浪微博大规模基于Docker的混合云应用实践 -王关胜
新浪微博大规模基于Docker的混合云应用实践 -王关胜新浪微博大规模基于Docker的混合云应用实践 -王关胜
新浪微博大规模基于Docker的混合云应用实践 -王关胜Weibo Corporation
 
实时消息推送系统
实时消息推送系统实时消息推送系统
实时消息推送系统Yi Feng Yang
 
Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAEq3boy
 
[圣思园][Java SE]Network
[圣思园][Java SE]Network[圣思园][Java SE]Network
[圣思园][Java SE]NetworkArBing Xie
 
⼤語⾔模型 LLM 應⽤開發入⾨
⼤語⾔模型 LLM 應⽤開發入⾨⼤語⾔模型 LLM 應⽤開發入⾨
⼤語⾔模型 LLM 應⽤開發入⾨Wen-Tien Chang
 

Similar a 微服務自己動手做 (20)

新浪微博平台与安全架构
新浪微博平台与安全架构新浪微博平台与安全架构
新浪微博平台与安全架构
 
Introduction MQTT in Chinese
Introduction MQTT in ChineseIntroduction MQTT in Chinese
Introduction MQTT in Chinese
 
Redis在唯品会的应用实践.pdf
Redis在唯品会的应用实践.pdfRedis在唯品会的应用实践.pdf
Redis在唯品会的应用实践.pdf
 
廣宣學堂: 企業導入微服務實戰
廣宣學堂: 企業導入微服務實戰廣宣學堂: 企業導入微服務實戰
廣宣學堂: 企業導入微服務實戰
 
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated企業導入微服務實戰 - updated
企業導入微服務實戰 - updated
 
Mock Server的应用与实践
Mock Server的应用与实践Mock Server的应用与实践
Mock Server的应用与实践
 
Rest与面向资源的web开发
Rest与面向资源的web开发Rest与面向资源的web开发
Rest与面向资源的web开发
 
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated企業導入微服務實戰 - updated
企業導入微服務實戰 - updated
 
Langchain and Azure ML and Open AI
Langchain and Azure ML and Open AILangchain and Azure ML and Open AI
Langchain and Azure ML and Open AI
 
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
 
Databases on AWS
Databases on AWSDatabases on AWS
Databases on AWS
 
Python HTTP
Python HTTPPython HTTP
Python HTTP
 
Getting Started with Serverless Architecture - 深入淺出無伺服器架構應用程式
Getting Started with Serverless Architecture - 深入淺出無伺服器架構應用程式Getting Started with Serverless Architecture - 深入淺出無伺服器架構應用程式
Getting Started with Serverless Architecture - 深入淺出無伺服器架構應用程式
 
讓軟體開發與應用更自由 - 使用 Docker 技術
讓軟體開發與應用更自由 - 使用 Docker 技術讓軟體開發與應用更自由 - 使用 Docker 技術
讓軟體開發與應用更自由 - 使用 Docker 技術
 
Kafka cluster best practices
Kafka cluster best practicesKafka cluster best practices
Kafka cluster best practices
 
新浪微博大规模基于Docker的混合云应用实践 -王关胜
新浪微博大规模基于Docker的混合云应用实践 -王关胜新浪微博大规模基于Docker的混合云应用实践 -王关胜
新浪微博大规模基于Docker的混合云应用实践 -王关胜
 
实时消息推送系统
实时消息推送系统实时消息推送系统
实时消息推送系统
 
Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAE
 
[圣思园][Java SE]Network
[圣思园][Java SE]Network[圣思园][Java SE]Network
[圣思园][Java SE]Network
 
⼤語⾔模型 LLM 應⽤開發入⾨
⼤語⾔模型 LLM 應⽤開發入⾨⼤語⾔模型 LLM 應⽤開發入⾨
⼤語⾔模型 LLM 應⽤開發入⾨
 

微服務自己動手做