SlideShare una empresa de Scribd logo
1 de 35
分布式系统 
AWS持续部署
何飞 
ThoughtWorks 高级咨询 
师,项目技术负责人 
多年企业级应用以及互 
联网开发经验。专注于 
分布式系统架构设计, 
持续交付,DevOps以及 
云计算
http://www.myfun.com/
技术栈 
Java / Guice / Sitebricks / Spring 
Ruby / Resque 
Python 
Jetty/Unicorn/Nginx 
Solr/Zookeeper 
Mongo/Redis
数字 
46 EC2 Instances 
30 分钟 
8 个组件 
1 条命令 
50% 
0 宕机时间
为什么做不到持续部署
原因 
架构设计没有对于部署的充分考虑 
部署人员没有真正理解架构
策略 
尽早就开始部署 
部署团队和开发团队一起部署,或者直接由开发团队部 
署
为什么要选择AWS 
省钱 
省事 
省心
Artifacts 
War + Tomcat/Jetty 
Package(Rpm/Deb) 
AMI 
Docker
Platform AMI + Rpm
架构图
部署图
administrators an easy way to create and manage a collection of related AWS resources, provision
orchestration
友情提示 
环境一致 
应用程序和基础架构职责分离 
版本管理
Resilience Testing
Configuration as Service
etcd + etcdctl
A / B 环境
版本不兼容
语义化版本 
Major:不兼容修改 
Minor:新功能,但向后兼容 
Patch:build版本
没开发完的功能怎么办 
feature branch 
feature toggle
监控报警
安全
VPC 
ACL 
security Group 
Bastion
谁来部署
人人都要做部署
Q & A 
droxer.he@gmail.com 
https://github.com/droxer
谢谢

Más contenido relacionado

La actualidad más candente

Ant构建工具快速入门
Ant构建工具快速入门Ant构建工具快速入门
Ant构建工具快速入门
minghe36
 
从CI到CD[麻袋理财王天青]v1
从CI到CD[麻袋理财王天青]v1从CI到CD[麻袋理财王天青]v1
从CI到CD[麻袋理财王天青]v1
天青 王
 

La actualidad más candente (16)

Angular Conf 2018 - 原來 Angular 可以這樣玩設定
Angular Conf 2018 - 原來 Angular 可以這樣玩設定Angular Conf 2018 - 原來 Angular 可以這樣玩設定
Angular Conf 2018 - 原來 Angular 可以這樣玩設定
 
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2
 
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
 
VSCode Remote Development
VSCode Remote DevelopmentVSCode Remote Development
VSCode Remote Development
 
Open stack在企业持续集成中的实战
Open stack在企业持续集成中的实战Open stack在企业持续集成中的实战
Open stack在企业持续集成中的实战
 
Ant构建工具快速入门
Ant构建工具快速入门Ant构建工具快速入门
Ant构建工具快速入门
 
使用 Dependency Injection 撰寫簡潔 C# 程式碼原來這麼簡單 (.NET Conf 2018)
使用 Dependency Injection 撰寫簡潔 C# 程式碼原來這麼簡單 (.NET Conf 2018)使用 Dependency Injection 撰寫簡潔 C# 程式碼原來這麼簡單 (.NET Conf 2018)
使用 Dependency Injection 撰寫簡潔 C# 程式碼原來這麼簡單 (.NET Conf 2018)
 
玩轉 .NET Interactive Notebooks 一次就上手
玩轉 .NET Interactive Notebooks 一次就上手玩轉 .NET Interactive Notebooks 一次就上手
玩轉 .NET Interactive Notebooks 一次就上手
 
VSCode Remote Development 介紹
VSCode Remote Development 介紹VSCode Remote Development 介紹
VSCode Remote Development 介紹
 
不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...
不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...
不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...
 
使用最新 Edge 瀏覽器來進行開發​
使用最新 Edge 瀏覽器來進行開發​使用最新 Edge 瀏覽器來進行開發​
使用最新 Edge 瀏覽器來進行開發​
 
[2021 DevDays]Microsoft Teams 整合 Azure DevOps之實務應用
[2021 DevDays]Microsoft Teams 整合 Azure DevOps之實務應用[2021 DevDays]Microsoft Teams 整合 Azure DevOps之實務應用
[2021 DevDays]Microsoft Teams 整合 Azure DevOps之實務應用
 
01 DevOps and Azure DevOps overview
01 DevOps and Azure DevOps overview01 DevOps and Azure DevOps overview
01 DevOps and Azure DevOps overview
 
我們與Azure DevOps的距離
我們與Azure DevOps的距離我們與Azure DevOps的距離
我們與Azure DevOps的距離
 
02 azure devops pipeline - build
02 azure devops pipeline - build02 azure devops pipeline - build
02 azure devops pipeline - build
 
从CI到CD[麻袋理财王天青]v1
从CI到CD[麻袋理财王天青]v1从CI到CD[麻袋理财王天青]v1
从CI到CD[麻袋理财王天青]v1
 

Similar a Distributed system cd in aws

Ruby on rails部署
Ruby on rails部署Ruby on rails部署
Ruby on rails部署
Deng Peng
 
+++º+ ¦¦ ¦ ¦¦ ¦+ =
+++º+ ¦¦  ¦ ¦¦ ¦+ =+++º+ ¦¦  ¦ ¦¦ ¦+ =
+++º+ ¦¦ ¦ ¦¦ ¦+ =
guesta6295f3
 
Eucalyptus安装及实例映像制作
Eucalyptus安装及实例映像制作Eucalyptus安装及实例映像制作
Eucalyptus安装及实例映像制作
liangxiao0315
 
Kiss开发平台简介
Kiss开发平台简介Kiss开发平台简介
Kiss开发平台简介
cecepig
 
研发云:借助云计算实现持续交付(by冯智超)
研发云:借助云计算实现持续交付(by冯智超)研发云:借助云计算实现持续交付(by冯智超)
研发云:借助云计算实现持续交付(by冯智超)
gigix1980
 
Struts Mitac(1)
Struts Mitac(1)Struts Mitac(1)
Struts Mitac(1)
wangjiaz
 
自动化运维管理
自动化运维管理自动化运维管理
自动化运维管理
frankwsj
 

Similar a Distributed system cd in aws (20)

It基础架构的自动化编排
It基础架构的自动化编排It基础架构的自动化编排
It基础架构的自动化编排
 
Ruby on rails部署
Ruby on rails部署Ruby on rails部署
Ruby on rails部署
 
實踐 Clean Architecture(實作高可用性的軟件架構)
實踐 Clean Architecture(實作高可用性的軟件架構)實踐 Clean Architecture(實作高可用性的軟件架構)
實踐 Clean Architecture(實作高可用性的軟件架構)
 
2023 08 - SRE 實踐與開發平台指南 - 書友見面會
2023 08 - SRE 實踐與開發平台指南 - 書友見面會2023 08 - SRE 實踐與開發平台指南 - 書友見面會
2023 08 - SRE 實踐與開發平台指南 - 書友見面會
 
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
 
+++º+ ¦¦ ¦ ¦¦ ¦+ =
+++º+ ¦¦  ¦ ¦¦ ¦+ =+++º+ ¦¦  ¦ ¦¦ ¦+ =
+++º+ ¦¦ ¦ ¦¦ ¦+ =
 
Eucalyptus安装及实例映像制作
Eucalyptus安装及实例映像制作Eucalyptus安装及实例映像制作
Eucalyptus安装及实例映像制作
 
twMVC#24 | 開發團隊的敏捷之路(未完成)
twMVC#24 | 開發團隊的敏捷之路(未完成)twMVC#24 | 開發團隊的敏捷之路(未完成)
twMVC#24 | 開發團隊的敏捷之路(未完成)
 
[2019 DevOpsDays Taipei]Azure DevOps 建立 DevOps 團隊
[2019 DevOpsDays Taipei]Azure DevOps 建立 DevOps 團隊[2019 DevOpsDays Taipei]Azure DevOps 建立 DevOps 團隊
[2019 DevOpsDays Taipei]Azure DevOps 建立 DevOps 團隊
 
Jobforcompal
JobforcompalJobforcompal
Jobforcompal
 
2021 ee大会-旷视ai产品背后的研发效能工具建设
2021 ee大会-旷视ai产品背后的研发效能工具建设2021 ee大会-旷视ai产品背后的研发效能工具建设
2021 ee大会-旷视ai产品背后的研发效能工具建设
 
Kiss开发平台简介
Kiss开发平台简介Kiss开发平台简介
Kiss开发平台简介
 
研发云:借助云计算实现持续交付(by冯智超)
研发云:借助云计算实现持续交付(by冯智超)研发云:借助云计算实现持续交付(by冯智超)
研发云:借助云计算实现持续交付(by冯智超)
 
在B2B硬體產業運用 Agile 與 DevOps 的實務與心法
在B2B硬體產業運用 Agile 與 DevOps 的實務與心法在B2B硬體產業運用 Agile 與 DevOps 的實務與心法
在B2B硬體產業運用 Agile 與 DevOps 的實務與心法
 
Struts Mitac(1)
Struts Mitac(1)Struts Mitac(1)
Struts Mitac(1)
 
自动化运维管理
自动化运维管理自动化运维管理
自动化运维管理
 
Software Engineer Talk
Software Engineer TalkSoftware Engineer Talk
Software Engineer Talk
 
AWS雲端架構師 培訓&考試課程介紹
AWS雲端架構師 培訓&考試課程介紹AWS雲端架構師 培訓&考試課程介紹
AWS雲端架構師 培訓&考試課程介紹
 
AWS_Educate_Ambassador_Day_TAIWAN_Track_B - Build a Telegram Chatbot using AW...
AWS_Educate_Ambassador_Day_TAIWAN_Track_B - Build a Telegram Chatbot using AW...AWS_Educate_Ambassador_Day_TAIWAN_Track_B - Build a Telegram Chatbot using AW...
AWS_Educate_Ambassador_Day_TAIWAN_Track_B - Build a Telegram Chatbot using AW...
 
The way to continuous delivery
The way to continuous deliveryThe way to continuous delivery
The way to continuous delivery
 

Distributed system cd in aws

Notas del editor

  1. 介绍项目做什么,以及简单介绍项目有技术栈
  2. 现场调查AWS,有多少人知道?有多少人用过?有多少人在产品环境使用? 省钱:不用猜到底有多少访问量,不用一次买一堆机器,但利用率不高 省事:不用自己管理机房 省心:AWS提供了很多基础服务,SES,SQS,RDS。。
  3. NAT限制public IP,安全,易于管理
  4. embedded Jetty AMI: 部署快,环境一直,但是artifacts过大,build的时间会比较长,发布在S3
  5. 未来是docker
  6. 这是一个典型的分布式系统架构
  7. 架构部署图 介绍mongo cluster,solr-cloud
  8. 多台机器,多组件,交互 ec2, elb, AG
  9. 环境一致性,易于测试,和重现问题 应用程序和基础架构职责分离, 以china-site为例子介绍。
  10. Chaos Monkey: 我们设计高可用系统,但怎么证明系统的高可用性? 怎么发现系统高可用性的问题
  11. 多组件,多环境配置难管理 配置中敏感信息的管理
  12. 横向比较zookeeper,chubby
  13. 如何做到新package部署后的无缝切换 session 原子操作 举例子,DNS, Solr alias
  14. 怎么让ops知道呢?
  15. Deployment Services for maintain backward compatibility 如果开发人员不做部署,无法知道什么时候修改版本
  16. feature branch: merge & regression feature toggle: regression & progression tradeoff
  17. bastion:限制public ip,易于管理
  18. 介绍为什么要人人都部署 如何做到人人都部署, 很难吗?介绍我们team 情况