Submit Search
Upload
microservice-and-12factor.pdf
•
0 likes
•
2 views
Rock Sun
Follow
microservice and 12factors
Read less
Read more
Data & Analytics
Report
Share
Report
Share
1 of 32
Download now
Download to read offline
Recommended
Mvc
Mvc
Yun-tao Chen
MVC架構簡介
Dev ops 顛覆新時代創新論壇
Dev ops 顛覆新時代創新論壇
Jini Lee
介紹 導入 microservices 的策略與困難
大型 Web Application 轉移到微服務的經驗分享
大型 Web Application 轉移到微服務的經驗分享
Andrew Wu
由大型商用軟體 (人才發展系統) 轉型為雲端服務,會面臨許多技術與架構轉換的挑戰。 單體式 (monolitch) app 移轉到微服務 (microservices) 就是其中最關鍵的環節。 這個 session 將分享我們如何轉移到微服務的經驗,以及如何面對技術與架構上的挑戰。 講師介紹: Andrew Wu,任職一宇數位技術長 & 技術發展顧問。有 18 年大型商用軟體與雲端服務 的開發經驗,負責系統架構的規劃與設計。 熱衷於 OOP、.NET、軟體工程、與 Cloud 相關技術。近年鑽研如何將 .NET 解決方案微服務 化,熱衷於 (windows) container、devops,以及分散式系統等主題,同時在部落格上也持續 分享相關主題的一系列文章。期許能將這些實作經驗分享到社群。 講師經歷 一宇數位 技術長、技術顧問 Microsoft MVP 微軟最有價值專家 經營:安德魯的部落格 (http://columns.chicken-house.net/) 曾任:資策會 雲端系列課程 Azure PaaS 講師、專欄作家
03 李实恭-乘云之势以智致远 0611
03 李实恭-乘云之势以智致远 0611
ikewu83
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
drewz lin
IBM PureFlex (Traditional Chinese)
IBM PureFlex (Traditional Chinese)
Jerry Huang
2012年cisa考试知识点变化总结
2012年cisa考试知识点变化总结
yujian2007
2012年cisa考试知识点变化总结
2012年cisa考试知识点变化总结
2012年cisa考试知识点变化总结
yujian2007
Recommended
Mvc
Mvc
Yun-tao Chen
MVC架構簡介
Dev ops 顛覆新時代創新論壇
Dev ops 顛覆新時代創新論壇
Jini Lee
介紹 導入 microservices 的策略與困難
大型 Web Application 轉移到微服務的經驗分享
大型 Web Application 轉移到微服務的經驗分享
Andrew Wu
由大型商用軟體 (人才發展系統) 轉型為雲端服務,會面臨許多技術與架構轉換的挑戰。 單體式 (monolitch) app 移轉到微服務 (microservices) 就是其中最關鍵的環節。 這個 session 將分享我們如何轉移到微服務的經驗,以及如何面對技術與架構上的挑戰。 講師介紹: Andrew Wu,任職一宇數位技術長 & 技術發展顧問。有 18 年大型商用軟體與雲端服務 的開發經驗,負責系統架構的規劃與設計。 熱衷於 OOP、.NET、軟體工程、與 Cloud 相關技術。近年鑽研如何將 .NET 解決方案微服務 化,熱衷於 (windows) container、devops,以及分散式系統等主題,同時在部落格上也持續 分享相關主題的一系列文章。期許能將這些實作經驗分享到社群。 講師經歷 一宇數位 技術長、技術顧問 Microsoft MVP 微軟最有價值專家 經營:安德魯的部落格 (http://columns.chicken-house.net/) 曾任:資策會 雲端系列課程 Azure PaaS 講師、專欄作家
03 李实恭-乘云之势以智致远 0611
03 李实恭-乘云之势以智致远 0611
ikewu83
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
drewz lin
IBM PureFlex (Traditional Chinese)
IBM PureFlex (Traditional Chinese)
Jerry Huang
2012年cisa考试知识点变化总结
2012年cisa考试知识点变化总结
yujian2007
2012年cisa考试知识点变化总结
2012年cisa考试知识点变化总结
2012年cisa考试知识点变化总结
yujian2007
cisa考试知识点变化总结
cisa考试知识点变化总结
yujian2007
云计算技术与应用
云计算技术与应用
Yang Guanjun
简述云计算相关技术和应用,介绍私有云里常用到的openstack,ceph,docker等开源项目。
sun 云计算
sun 云计算
jianghe_zsm
破雲而出 — 重新發現您的雲端策略
破雲而出 — 重新發現您的雲端策略
Fred Chiang
於 2012.4.18 精誠資訊「行雲流水」系列活動之二「雲」的 Keynote 講稿。說明經營雲端運算的兩條產業鏈,需要不同的核心能力。並指出雲端服務其實本質還是網路服務,台灣歷經 Web 1.0 與 2.0,都還有一時或存活下來的英雄,但雲端時代,台灣幾乎找不到雲端服務的 local hero,這是為什麼?值得大家深思。
2019 Cloud Native Forum, Taipei
2019 Cloud Native Forum, Taipei
YiDeWu1
Public Talk:站上雲端-Bottom Up 的雲原生轉型之路
Java 与 云计算
Java 与 云计算
kevin huang
Java课程作业第一小组PPT演示稿
微服務對IT人員的衝擊
微服務對IT人員的衝擊
Philip Zheng
叡揚資訊 微服務風雲 Michael Smith 的任務 活動網址: https://gssweb.gss.com.tw/eDM/eDM20190603_GSS-ITs_microservices.html
Cloud computing for manufacturing
Cloud computing for manufacturing
Jeff Chu
Cloud computing for manufacturing
微服務的基礎建設 - Service Discovery, Andrew Wu
微服務的基礎建設 - Service Discovery, Andrew Wu
Andrew Wu
DevOpsDays Taipei 2018 的場次, 主題是 Service Discovery 微服務架構下,講求動態擴充與自主管理。傳統的 IT 管理方式不再適合微服務的系統架構了。 Service Discovery 視為服務架構的關鍵基礎建設之一。 * 如何知道其他的服務實際的 IP 與 PORT 等資訊?即使服務的數量不斷動態的調整也不受影響? * 當你有更動態的需求 (例如特定客戶要有更高的服務水準保證),一般的 Load Balancer 或是 API Gateway 無法滿足時,你該怎麼辦? * 當這些上百個 instance 彼此的流量已經大過單一 Load Balance 或是 API Gateway 能夠負擔的程度時,你該如何將集中式的通訊方式改為服務網格 (service mesh) 的模式?? 這些問題,只要你能靈活運用 service discovery 的機制妥善管理你的服務群, 就能彈指之間就辦到。這個 session 會以 HashiCorp 的 Consul,搭配 .NET 的應用程式為案例,說明如何妥善運用 service discovery 來解決這些問題。
我們與Azure DevOps的距離
我們與Azure DevOps的距離
Edward Kuo
如何使用Azure Devops Service與一些奇怪技巧
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
Andrew Wu
當紅的容器化技術 Docker, 已在 Linux 平台下相當盛行。熟悉 .NET 的開發人員,該如何搭上容器化技術的列車,更快的轉移到微服架構? 如何善用容器化技術加速開發流程? 微服務架構下能更容易的整合其他成熟的解決方案。 這個 Session 會展示如何用 .NET + Windows Container ,來完成這任務。
美国云计算发展现状及趋势-2010
美国云计算发展现状及趋势-2010
Jiang Zhu
如何使用微軟Power系列服務的看法
如何使用微軟Power系列服務的看法
Edward Kuo
關於如何使用Office 365上面一些Power系列服務的選擇與用法
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated
Paul Chao
廣宣學堂
廣宣學堂: 企業導入微服務實戰
廣宣學堂: 企業導入微服務實戰
Paul Chao
https://www.facebook.com/broadmission
Iaa s管理平台的规划与研发 社区
Iaa s管理平台的规划与研发 社区
benbenhappy
Eucalyptus安装及实例映像制作
Eucalyptus安装及实例映像制作
liangxiao0315
04 陈良忠ibm cloud forum ibm experience 0611
04 陈良忠ibm cloud forum ibm experience 0611
ikewu83
微博平台混合云实践 - Docker全架构
微博平台混合云实践 - Docker全架构
Chen Fei
微博平台从2014年开始尝试Docker技术,并在14年春晚中大规模应用,为春晚峰值应对提供了弹性能力。从2015年开始,微博平台继续在Docker生态领域发力,构建混合云解决方案。本文为混合云技术体系介绍PPT:
如何以自訂語言加速程式開發與增加重用性-Domain-specific language技術實際應用
如何以自訂語言加速程式開發與增加重用性-Domain-specific language技術實際應用
Ying-Chun Cheng
如何以自訂語言加速程式開發與增加重用性-Domain-specific language技術實際應用
More Related Content
Similar to microservice-and-12factor.pdf
cisa考试知识点变化总结
cisa考试知识点变化总结
yujian2007
云计算技术与应用
云计算技术与应用
Yang Guanjun
简述云计算相关技术和应用,介绍私有云里常用到的openstack,ceph,docker等开源项目。
sun 云计算
sun 云计算
jianghe_zsm
破雲而出 — 重新發現您的雲端策略
破雲而出 — 重新發現您的雲端策略
Fred Chiang
於 2012.4.18 精誠資訊「行雲流水」系列活動之二「雲」的 Keynote 講稿。說明經營雲端運算的兩條產業鏈,需要不同的核心能力。並指出雲端服務其實本質還是網路服務,台灣歷經 Web 1.0 與 2.0,都還有一時或存活下來的英雄,但雲端時代,台灣幾乎找不到雲端服務的 local hero,這是為什麼?值得大家深思。
2019 Cloud Native Forum, Taipei
2019 Cloud Native Forum, Taipei
YiDeWu1
Public Talk:站上雲端-Bottom Up 的雲原生轉型之路
Java 与 云计算
Java 与 云计算
kevin huang
Java课程作业第一小组PPT演示稿
微服務對IT人員的衝擊
微服務對IT人員的衝擊
Philip Zheng
叡揚資訊 微服務風雲 Michael Smith 的任務 活動網址: https://gssweb.gss.com.tw/eDM/eDM20190603_GSS-ITs_microservices.html
Cloud computing for manufacturing
Cloud computing for manufacturing
Jeff Chu
Cloud computing for manufacturing
微服務的基礎建設 - Service Discovery, Andrew Wu
微服務的基礎建設 - Service Discovery, Andrew Wu
Andrew Wu
DevOpsDays Taipei 2018 的場次, 主題是 Service Discovery 微服務架構下,講求動態擴充與自主管理。傳統的 IT 管理方式不再適合微服務的系統架構了。 Service Discovery 視為服務架構的關鍵基礎建設之一。 * 如何知道其他的服務實際的 IP 與 PORT 等資訊?即使服務的數量不斷動態的調整也不受影響? * 當你有更動態的需求 (例如特定客戶要有更高的服務水準保證),一般的 Load Balancer 或是 API Gateway 無法滿足時,你該怎麼辦? * 當這些上百個 instance 彼此的流量已經大過單一 Load Balance 或是 API Gateway 能夠負擔的程度時,你該如何將集中式的通訊方式改為服務網格 (service mesh) 的模式?? 這些問題,只要你能靈活運用 service discovery 的機制妥善管理你的服務群, 就能彈指之間就辦到。這個 session 會以 HashiCorp 的 Consul,搭配 .NET 的應用程式為案例,說明如何妥善運用 service discovery 來解決這些問題。
我們與Azure DevOps的距離
我們與Azure DevOps的距離
Edward Kuo
如何使用Azure Devops Service與一些奇怪技巧
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
Andrew Wu
當紅的容器化技術 Docker, 已在 Linux 平台下相當盛行。熟悉 .NET 的開發人員,該如何搭上容器化技術的列車,更快的轉移到微服架構? 如何善用容器化技術加速開發流程? 微服務架構下能更容易的整合其他成熟的解決方案。 這個 Session 會展示如何用 .NET + Windows Container ,來完成這任務。
美国云计算发展现状及趋势-2010
美国云计算发展现状及趋势-2010
Jiang Zhu
如何使用微軟Power系列服務的看法
如何使用微軟Power系列服務的看法
Edward Kuo
關於如何使用Office 365上面一些Power系列服務的選擇與用法
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated
Paul Chao
廣宣學堂
廣宣學堂: 企業導入微服務實戰
廣宣學堂: 企業導入微服務實戰
Paul Chao
https://www.facebook.com/broadmission
Iaa s管理平台的规划与研发 社区
Iaa s管理平台的规划与研发 社区
benbenhappy
Eucalyptus安装及实例映像制作
Eucalyptus安装及实例映像制作
liangxiao0315
04 陈良忠ibm cloud forum ibm experience 0611
04 陈良忠ibm cloud forum ibm experience 0611
ikewu83
微博平台混合云实践 - Docker全架构
微博平台混合云实践 - Docker全架构
Chen Fei
微博平台从2014年开始尝试Docker技术,并在14年春晚中大规模应用,为春晚峰值应对提供了弹性能力。从2015年开始,微博平台继续在Docker生态领域发力,构建混合云解决方案。本文为混合云技术体系介绍PPT:
如何以自訂語言加速程式開發與增加重用性-Domain-specific language技術實際應用
如何以自訂語言加速程式開發與增加重用性-Domain-specific language技術實際應用
Ying-Chun Cheng
如何以自訂語言加速程式開發與增加重用性-Domain-specific language技術實際應用
Similar to microservice-and-12factor.pdf
(20)
cisa考试知识点变化总结
cisa考试知识点变化总结
云计算技术与应用
云计算技术与应用
sun 云计算
sun 云计算
破雲而出 — 重新發現您的雲端策略
破雲而出 — 重新發現您的雲端策略
2019 Cloud Native Forum, Taipei
2019 Cloud Native Forum, Taipei
Java 与 云计算
Java 与 云计算
微服務對IT人員的衝擊
微服務對IT人員的衝擊
Cloud computing for manufacturing
Cloud computing for manufacturing
微服務的基礎建設 - Service Discovery, Andrew Wu
微服務的基礎建設 - Service Discovery, Andrew Wu
我們與Azure DevOps的距離
我們與Azure DevOps的距離
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
美国云计算发展现状及趋势-2010
美国云计算发展现状及趋势-2010
如何使用微軟Power系列服務的看法
如何使用微軟Power系列服務的看法
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated
廣宣學堂: 企業導入微服務實戰
廣宣學堂: 企業導入微服務實戰
Iaa s管理平台的规划与研发 社区
Iaa s管理平台的规划与研发 社区
Eucalyptus安装及实例映像制作
Eucalyptus安装及实例映像制作
04 陈良忠ibm cloud forum ibm experience 0611
04 陈良忠ibm cloud forum ibm experience 0611
微博平台混合云实践 - Docker全架构
微博平台混合云实践 - Docker全架构
如何以自訂語言加速程式開發與增加重用性-Domain-specific language技術實際應用
如何以自訂語言加速程式開發與增加重用性-Domain-specific language技術實際應用
microservice-and-12factor.pdf
1.
微服务与 12-Factors 云原生系列课程 孙岱军 2022年5月
2.
微服务与 12-Factors • 目标:通过这个课程你可以认识到什么是微服务?运用微服务架构 之后凸显的一些问题和应对方法,以及
Kubernetes 可以如何解决 这些问题。 • 时长:2小时 • 面向群体:项目经理、架构师、运维人员、开发人员
3.
微服务的神话
4.
什么是微服务? 微服务是一种用于构建应用的架构方案。微服务架构有别于更为传统的单体式方案,可将应用拆分 成多个核心功能。每个功能都被称为一项服务,可以单独构建和部署,这意味着各项服务在工作 (和出现故障)时不会相互影响。
5.
业务压力凸显了单体架构的一些缺陷 • 为了更新系统的一小部分,必须重新部署整个应用 • 很难采用新的技术或框架,因为所有的功能都构建在相同的技术之上 •
个别服务不稳定会导致整个应用挂起 • 在单体应用中应用敏捷方法论非常困难
6.
微服务给我们的承诺 我们采用微服务架构的原因 • 独立扩展 • 独立升级 •
易于维护 • 技术独立性 • 故障和资源隔离 Account Service 扩展:新增实例 Inventory Service 独立升级 golang java
7.
微服务架构的设计模式(1)
8.
微服务架构的设计模式(2)
9.
微服务架构的设计模式(3)
10.
微服务对运维提出了更高的要求 • 服务复制 • 服务发现 •
服务可观测 • Health • Metrics • Trace • 弹性 • CI/CD • CI - 自动编译,部署到测试环境并测试 • CD – Delivery & Deployment • Deployment • 蓝绿
11.
Kubernetes 给了一些工具,但还不够 • 服务复制 •
服务发现 • 服务可观测 • Health • Metrics • Trace • 弹性 • CI/CD • CI - 自动编译,部署到测试环境并测试 • CD – Delivery & Deployment • Deployment • 蓝绿 Service ReplicaSets Liveness / Readiness Probe Prometheus Istio+Trace ReplicaSets Autoscaling Deployments Deployments 看看实际的案例…
12.
管理的应用数量大增 规模的变化会让许多问题放大
13.
每个环境下的前端应用都需要重新编译 配置 源代码 开发环境 前端应用 开发环境 测试环境 测试环境 构建 生产环境 生产环境 1.
每个环境重新编译可能会因为不易察觉的差异引发问题 2. 构建阶段需要知道生产的配置,不利于权限控制 3. 有些前端构建非常耗时,会影响应用的可用性
14.
配置变更的同步经常出现差错 配置文件 前端应用 开发环境 测试环境 构建 生产环境 漏配配置,会出现许多意想不到的问题 工程师 开发环境 测试环境 生产环境 漏配
15.
单 Git 仓库多服务(模块)让持续交付变复杂 目录 源代码
各个环境 构建 多个服务使用同一个代码仓库,给版本控制带来了一些干扰,也让持续交 付工作变得复杂 模块1 模块2 模块3 模块1 模块2 模块3
16.
Kubernetes 不是银弹
17.
何为 12-Factors Heroku 是
PAAS 平台的先驱,通过多年的实践,Heroku 的工程师们 总结出了 12-Factors。一个应用如果遵守了 12-Factors,便可以更好 的运行在 Heroku 平台。这对 Kubernetes 或其他 PAAS 平台也是一 样的。
18.
建立PAAS上应用的12-Factors 1. 单一代码基 2. 显式声明依赖关系 3.
配置 4. 后端服务 5. 区分构建、发布和运行三个阶段 6. 进程 7. 端口绑定 8. 并发 9. 易处理 10.开发环境与线上环境等价 11.日志 12.管理进程
19.
单一代码基 一份基准代码(codebase),多份部署(deploy) ● 基准代码和应用之间总是保持一一对应的关系: ● 一旦有多个基准代码,就不能称为一个应用,而 是一个分布式系统。分布式系统中的每一个组件 都是一个应用,每一个应用可以分别使用
12- Factors 进行开发。 ● 多个应用共享一份基准代码是有悖于 12- Factors 原则的。解决方案是将共享的代码拆分 为独立的类库,然后使用 依赖管理 策略去加载它 们。
20.
显式声明依赖关系 ● Manifest中显式声明依赖 ● 使用隔离工具 ●
指明版本 ● 避免使用shell来关联系统工具 ● Python – pipenv(pip+virtualenv) ● Java – maven ● .Net – nugget ● Node – NPM ● 环境 – Docker
21.
配置 将配置存到“环境”,而不是代码、属性文件、构建或应用服务器 ● 保证应用中不包含配置 ● Git
中不包含配置(主要指的是代码的 Git 仓库) ● 使用环境变量 小测试: 敢不敢今天 就把代码开源? ConfigMaps & Secrets
22.
后端服务 把后端服务当做附加资源 ● 数据库 ● 消息队列 ●
缓存
23.
区分构建、发布和运行三个阶段 基准代码 转化为一份部署(非开发环境)需要分为三个阶段 ● 构建(
Build )阶段 是指将代码仓库转化为可 执行包的过程。构建时会使用指定版本的代 码,获取和打包 依赖项,编译成二进制文件 和资源文件。 ● 发布( Release )阶段 会将构建的结果和当 前部署所需 配置 相结合,并能够立刻在运 行环境中投入使用。 ● 运行( Run )阶段 (或者说“运行时”)是 指针对选定的发布版本,在执行环境中启动 一系列应用程序 进程。 每一个发布版本必须对应一个唯一的发布 ID,例如指定的版本号,也可以使用发 布时的时间戳(2011-04-06-20:32:17),亦或是一个增长的数字(v100)。发 布的版本就像一本只能追加的账本,一旦发布就不可修改,任何的变动都应该产 生一个新的发布版本。 有了这几个阶段会 有什么好处?
24.
区分构建、发布和运行三个阶段 Kubernetes 的实现方式 ● build
– 构建镜像 ● Release – 设置镜像版本号,修订 Helm Charts 文件 ● Run – helm install / helm upgrade
25.
进程 无状态服务,使用服务保存状态 12-Factors 应用的进程必须无状态且无共享。任 何需要持久化的数据都要存储在后端服务内,比如 数据库。 b stateful stateless add(a) add(a,b) ReplicaSets
26.
端口绑定 执行环境控制监听的端口 ● 12-Factor 应用完全自我加载
而不依赖于任何网 络服务器就可以创建一个面向网络的服务。互联 网应用 通过端口绑定来提供服务 ,并监听发送至 该端口的请求。 Service
27.
并发 通过进程模型进行扩展 ● 进程是一等公民 ● 将工作赋予不同类型的进程(web,db, worker) ●
进程不需要 daemonize 或写 pid 文件 ● 使用系统进程管理 Deployment
28.
易处理 快速启动和优雅终止可最大化健壮性 ● 可以瞬间开启或停止。这有利于快速、弹性的伸 缩应用,迅速部署变化的 代码
或 配置 ,稳健的 部署应用。 我们的应用易处理吗?
29.
开发环境与线上环境等价 尽可能的保持开发,预发布,线上环境相同 传统应用 12-Factors 应用 每次部署间隔
数周 几小时 开发人员 vs 运维人员 不同的人 相同的人 开发环境 vs 线上环境 不同 尽量接近 这就是 DevOps 吧…
30.
日志 把日志当作事件流 ● 不要将日志存储到文件 ● 而是写到stout,由环境决定如何处理 stdout
Conainer stdout 日志服务 Kubernetes 最佳实践
31.
管理进程 后台管理任务当作一次性进程运行 ● 运行数据迁移 ● 运行一个
console 来执行一些代码或是针对线上 数据库做一些检查 ● 运行一些提交到代码仓库的一次性脚本 ● 一次性管理进程应该和正常的 常驻进程 使用同样的环境 ● 所有进程类型应该使用同样的 依赖隔离 技术 ● 应用代码应该伴随管理代码
Download now