华为 马博文-海外大型互联网房地产广告公司 DevOps 之路
2020-02-27 130浏览
- 1.
- 2.海海外⼤大型互联⽹网房地产⼴广告公司的 DevOps之路路 ⻢马博⽂文 DevOpsDays 2017·上海海站"
- 3.关于我: ⻢马博⽂文" • ex-{ThoughtWorker,Developer},DevOps • 熟悉持续交付,微服务,AWS等 • 熟悉⼤大型⽹网站的运维 • 参与翻译有《Scala编程实战》、《DevOps实践》、 《DevOps Handbook》等书 • 斯达克学院《微服务架构与实践》课程⾼高级篇讲师 • ⽬目前关注CloudNaAve,函数式编程,Serverless,安全等 • 简书:hCp://www.jianshu.com/u/206a6b0af1c5DevOpsDays 2017·上海海站"
- 4.⽬目录" 1! What’s DevOps" 2 REA的DevOps之路路" 3 DevOps转型的⼀一些建议" 4 What’s Next" DevOpsDays 2017·上海海站"
- 5.The Big Waterfall" DevOpsDays 2017·上海海站"
- 6.DevOpsDays 2017·上海海站"
- 7.软件交付 == 价值交付" IncepAon scope 迭代 0 User Story 开发 • TDD/ BDD • ⾃自动化 测试 持续集成 • 集成 • 打包 • E2E • UAT 部署 发布 DevOpsDays 2017·上海海站"
- 8.ॹࢌڱ74໗"ק DevOpsDays 2017·上海海站"
- 9.%FW0QTUP4BWF" DevOps是运维和开发⼯工程师参与到 整个服务⽣生命周期-从设计到开发 过程到⽣生产环境维护的-的实践。 - Agile Admin DevOpsDays 2017·上海海站"
- 10.⽬目录" 1! What’s DevOps" 2 REA的DevOps之路路" 3 DevOps转型的⼀一些建议" 4 What’s After DevOps" DevOpsDays 2017·上海海站"
- 11.背景" ୍ቐႷ ᆯି*5ቆᆮࢲܒ ۱ؒ ۄֆॶႋႨࡏܒ ਆ۱ඔऌᇏྏ 0QT҆ඇ ௸҃ൔषؿ DevOpsDays 2017·上海海站" གྷᄝ %FW0QT ಆିۿؒ ো4QPSUJGZ ؒ ັڛༀ ಸఖ߄ ਆ۱ඔऌᇏྏ" ބ84ᅬ ӻ࿃ࢌڱӻ࿃҆ඇ ࣚၭुϰ
- 12.-2008: 存在的问题" 1. 瀑布式开发 • 特性上线慢,反馈周期⻓长 • 沟通成本⾼高 2. 业务逐渐增多,如何保证 • 交付的质量量 • 交付的速度 3. 运维负责部署和维护 • ⼈人⼯工部署、维护 • 疲于奔命,时不不时会出现重⼤大事故 DevOpsDays 2017·上海海站"
- 13.改进的⽅方案" 1. 在⼀一个⼩小的业务部⻔门引⼊入敏敏捷咨询 • 敏敏捷实践,站会,迭代式开发 • TDD,BDD,持续集成(Jenkins/GoCD) 2. 使⽤用puppet对⽣生产环境做配置即代码管理理 DevOpsDays 2017·上海海站"
- 14.-2010 达到的⽬目标" 1. 部⻔门内达到每两周交付,⾃自动化测试,持续集 成的 2. 对⽣生产环境的管理理成本降低 3. 敏敏捷实践、持续集成开始推⼴广到其它部⻔门 4. 每两周部署⼀一次(CR),由运维执⾏行行 DevOpsDays 2017·上海海站"
- 15.新的问题" 1. 业务发展快,项⽬目团队快速增⻓长,缺乏测试环 境(成本+运维⽆无⼒力力维护更更多的服务器器) 2. 2周⼀一次的部署仍然不不够快,业务需要更更加快 速的上线时间以及来⾃自市场的反馈 3. 增⻓长服务的部署成本对于运维的压⼒力力很⼤大 DevOpsDays 2017·上海海站"
- 16.基础设施成本也是个问题" 业务增⻓长 基础设施成本 0 2 4 6 8 DevOpsDays 2017·上海海站"
- 17.Gandalf Project" We shall use AWS DevOpsDays 2017·上海海站"
- 18.Gandalf Project" bowen Domain.yml 1 git 1 2 project bowen 2 topology.yml ServiceA ServiceB role version e2e-deploy tool deploy-tool ec2-tools Chef aws-sdk DatabaseA Schema/prod data role DevOpsDays 2017·上海海站" DNS bowen.vpc.com AWS EC2 Service A Service B Database A
- 19.全⾃自动化测试" DevOpsDays 2017·上海海站"
- 20.The J-Curve" DevOpsDays 2017·上海海站"
- 21.DeployBot:handover deployment to devs" Koji promote release rolling update ssh deploy DeployBot netscaler-tool Nagios-tool ruby Server-01 Server-01 puppet --test DevOpsDays 2017·上海海站"
- 22.得到的好处" 1. 快速获得E2E测试环境 2. 通过持续集成⼯工具做⼀一键式⾃自动化部署 3. 团队可以轻松获得这些能⼒力力,⼏几乎不不依赖运维 DevOpsDays 2017·上海海站"
- 23.-2012" 1. 部署仍然需要⼀一定的权限,经过”批准” 2. 对于单块应⽤用,维护成本⾼高,部署上线的时间 仍然很可观 DevOpsDays 2017·上海海站"
- 24.ӻ࿃ࢌ"ڱ • 软件开发原则,软件可以在任何时刻发布到产 品环境。 - MarAn Fowler • ⽬目的是减⼩小交付⽤用户需求的成本,时间。 - Jez Humble DevOpsDays 2017·上海海站"
- 25.发布从技术决策变为业务决策" DevOpsDays 2017·上海海站"
- 26.标准化部署⽅方式(In DC)" rpm.spec depends 1. jdk8 2. c-clientscripts:1. posAnstall Koji Server environment.sh rpm Config-ServiceDB:mysqlPASSWORD:pwd process Nagios Newrelic Base Image Splunkforwarder DevOpsDays 2017·上海海站"
- 27.标准化部署⽅方式(In DC)" install recreate-install Generic-Deploy-Tool Netscaler Vmware Ruby NetScaler AcAve-Vserver InAcAve-Vserver 2 unbind 1 bind 3 unbind 4 bind Service-Group-A v1 v1 v2 v2 Service-Group-B DevOpsDays 2017·上海海站"
- 28.流⽔水线案例例" DevOpsDays 2017·上海海站"
- 29.微服务" • 单⼀一应⽤用程序划分成⼀一组⼩小的服务 • 服务运⾏行行在其独⽴立的进程中 • 服务与服务间采⽤用轻量量级的通信机制互相沟通 • 独⽴立部署,⾃自治,去中⼼心化 DevOpsDays 2017·上海海站"
- 30.采⽤用/移植微服务架构" 1. 单块应⽤用逐步解耦为微服务(绞杀者模式) 2. 新的服务直接采⽤用微服务架构 DevOpsDays 2017·上海海站"
- 31.-2013" 1. 基础设施的初始配置仍需运维帮助 2. 服务过多,基础设施增⻓长速度快,需控制成本 DevOpsDays 2017·上海海站"
- 32.Migrate to AWS" DevOpsDays 2017·上海海站"
- 33.新的打包⽅方式" Tests CI RPM Package Install New AMI 2 1 Start server Packer Base Image DevOpsDays 2017·上海海站"
- 34.基于CloudFormaOon的不不可变部署" AMI Launch ConfigraAon CI User-data Auto Rollback Config Repo DevOpsDays 2017·上海海站"
- 35.⾼高可⽤用/⾃自恢复的架构" DevOpsDays 2017·上海海站"
- 36.前后端分离" Newrelic RUM DevOpsDays 2017·上海海站"
- 37.持续部署" DevOpsDays 2017·上海海站"
- 38.-2015" 1. 可移植性 2. Dev/Prod Parity 3. AMI构建耗时/耗钱 DevOpsDays 2017·上海海站"
- 39.Docker! Docker! Docker!" DevOpsDays 2017·上海海站"
- 40.12factor apps" • Codebase • Dependencies • Config • Backing services • Build, release, run • Processes • Port binding • Concurrency • Disposability • Dev/prod parity • Logs • Admin processeshCps://12factor.net/DevOpsDays 2017·上海海站"
- 41.容器器部署⽅方式" KMS encrypted GithCps://speakerdeck.com/mdub/rea-shipper-at-infracodersDevOpsDays 2017·上海海站"
- 42.类paas的部署⼯工具" AuthenAcate CloudFormaAon • Immutable • Blue/Green • 0-DownAme • Auto Rollback Deploy DevOpsDays 2017·上海海站"
- 43.容器器化后的流⽔水线" DevOpsDays 2017·上海海站"
- 44.保证流⽔水线的⾼高可⽤用性" DevOpsDays 2017·上海海站"
- 45.VPC EC2 ASG Buildkite agent Buildkite agent Docker in Docker OKTA DevOpsDays 2017·上海海站" EC2 ASG Buildkite agent Buildkite agent VPC Docker in Docker
- 46.Build It, Run It – 服务/团队⾃自治" IncepAon 1 3 Team 4 2 IPR 6 Arch TMI CD Develop Release DevOpsDays 2017·上海海站" OperaAon 3 AWS 4 5 alerts Slack discussion CDN Newrelic PagerDuty Splunk
- 47.Wrap UP"hCp://www.yunweipai.com/archives/13501.htmlDevOpsDays 2017·上海海站"
- 48.路路漫漫其修远兮" 职能型组织 瀑布式开发 敏敏捷型组织 敏敏捷 精益 ⼈人⼯工测试 ⼈人⼯工部署 单块架构 2008 ⾃自动化测试 ⾃自动化部署 持续集成 2011 持续交付 DevOps 微服务 2013 去中⼼心化组织 看板 团队/服务⾃自治 2015 DevOpsDays 2017·上海海站"
- 49.⽬目录" 1! What’s DevOps" 2 REA的DevOps之路路" 3 DevOps转型的⼀一些建议" 4 What’s Next" DevOpsDays 2017·上海海站"
- 50.⾃自动化测试是前提" DevOpsDays 2017·上海海站"
- 51.⾃自动化⽤用软件⼯工程的思维⾃自动化" DevOpsDays 2017·上海海站"
- 52.以持续交付为⽬目标" DevOpsDays 2017·上海海站"
- 53.尽⼀一切可能标准化" DevOpsDays 2017·上海海站"
- 54.重视对⼈人的培养和分享的⽂文化" 1. Embedded Ops -> CD 2. Pairing -> Cross FuncAonal 3. On-Call -> ResponsibilityhCps://www.usenix.org/conference/srecon17asia/program/presentaAon/contadDevOpsDays 2017·上海海站"
- 55.⽬目录" 1! What’s DevOps" 2 REA的DevOps之路路" 3 DevOps转型的⼀一些建议" 4 What’s Next" DevOpsDays 2017·上海海站"
- 56.Serverless" View S3 Client 2 3 1 API Gateway (2,3,4) 4 AuthenAcaAon HCp Proxy Lambda Controller Purchase FuncAon Search FuncAon Model Dynamodb DevOpsDays 2017·上海海站"
- 57.SRE, e.g The Data Pipeline"hCps://medium.com/nellix-techblog/evoluAon-of-the-nellix-data-pipeline-da246ca36905DevOpsDays 2017·上海海站"
- 58.DevOps other Silo, e.g FinOps"hCps://www.slideshare.net/AmazonWebServices/finops-at-rea-innovaAon-in-finance-operaAons DevOpsDays 2017·上海海站"
- 59.Thanks & QA DevOpsDays 2017·上海海站"
- 60.Great DevOpsDays 2017·上海海站" Thanks 荣誉出品" ⾼高效运维社区" 国际最佳实践管理理联盟"
- 61.想第⼀一时间看到" ⾼高效运维社区公众号" 的好⽂文章吗?" 请打开⾼高效运维社区公众号,点击右上⻆角⼩小⼈人,如右侧所示设置就好" DevOpsDays 2017·上海海站"