华为 马博文-海外大型互联网房地产广告公司 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·上海海站"