怎么样创建做零食山楂的网站,网页制作步骤图,无锡网站制作哪家公司好,维护模式 wordpress摘要#xff1a; 阿里巴巴DevOps转型之后#xff0c;运维平台是如何建设的#xff1f;阿里巴巴高级技术专家陈喻结合运维自身的理解#xff0c;业务场景的分析和业界方法论的一些思考#xff0c;得出来一些最佳实践分享给大家。
前言
“我是这个应用的 Owner”是阿里巴巴D…摘要 阿里巴巴DevOps转型之后运维平台是如何建设的阿里巴巴高级技术专家陈喻结合运维自身的理解业务场景的分析和业界方法论的一些思考得出来一些最佳实践分享给大家。
前言
“我是这个应用的 Owner”是阿里巴巴DevOps转型的重要策略运维有了这个策略以后PE大量的日常工作就可以释放出来会有更多的时间去思考沉淀去做编码去做以前不曾做的事情。
运维的三个阶段第一阶段黑屏三角形是代表整个运维给用户的一些体感或者给研发的体感人工运维目前很多企业可能还是这样。
第二阶段白屏自动化运维以前把脚本做成工具去弄有什么特征人push机器去干活自助运维。
第三阶段用户对运维体感很少但是运维这个领域是不变的。最重要的是人机交互变少了无屏虽说是不可能的非常极端但是个趋势少量的人机交互它有自决策、自驱动。
自动化运维基础
做自动化运维我认为有四大基础。
第一运维标准与规范
我们的标准有什么好处让研发 follow 这个标准标准会在工具里固化。
第二泛监控运行时静态数据化可视化
泛监控不是说传统的监控是把线上想知道的一切都数据化最终数据不是给人看的是给机器去消费的数据是我们的生产资料不是可视化那不是我们的目标。
第三CMDB
1.CMDB 应该放什么一般放服务器相关的、网络相关的、应用相关的这三个维度的相关信息。
2.经常有人会说 CMDB 不准数据不准是因为没有把数据生产和数据消费形成闭环如果形成了闭环数据不准那是因为你不用这个数据所以不准。
第四高效的CI/CD/CD
我们一定要具备快速的交付能力主要体现这两个方面第一新开发的能力能不能快速上线第二想扩容一台机器能不能快速扩出来。这两个能力抽象出来是三块。 持续集成(CI)很多人说持续集成工具不好用效率低其实持续集成的本质是要自动化测试。如果研发部不具备自动化测试的能力持续集成怎么做都是失败的。 持续集成里最重要的一点就是要推行单元测试、集成测试还有系统测试单测是保证自己没问题集成测试是保证跟上下游没问题系统测试是保证整个系统没问题。 持续交付(CD)有很多人说持续交付本质是一个 PipelineCI的目标是什么快速正确打一个包出来。CD的目标是什么能够快速把一个包在不同的环境验证它是ok的可以放到线上去这就是持续交付要干的事。持续交付里很关键的一点我们要解决就是它的环境一致性、配置一致性。环境一致性可以用Docker解决Docker 本身就是一种标准化的东西。所以说第一条用 Docker肯定是标准化的另外一个问题配置是不是一致性是不是动静分离。 持续部署(CD)是一种能力这种能力非常重要就是把一个包快速部署在你想要的地方。 PS持续部署的几个痛点。
1.对包的文件的分发阿里有一个叫蜻蜓的产品是做了 SP2P在 P2P 的基础上加了一个 Super。
2.应用启动很多应用启动的时候要两三分钟这是很有问题的。
3.部署起来以后这个业务是不是正确的大家一定要做一个 HealthCheck不是运维做是PE做一定要把这个要求说出来执行 HealthCheck 这个脚本。
运维系统的重要特性
中间件研发首先关注稳定性其次是效率然后是易扩展。运维研发里面的六个重要特征每一个都非常重要以下是我感触比较深的几个。1.高可用
在做同城容灾演练的时候我把关一切结果发现运维系统挂了救命的东西没有了怎么办所以说运维系统一定要是高可用不一定是高并发。
2.幂等性
幂等性是分布式系统设计中十分重要的概念这个也非常重要。
3.可回滚
这个是做运维最基本的一个 sense你做的任何操作是不是可控的。如果真正做可回滚其实事情没有这么复杂。
4.高效率
如果你的企业发展非常快速你的规模性效应已经来了你的运维系统一定要具备很高效率快速扩容、快速部署这个效率我们要追求极致。
研发定义运维配置驱动变更2015年11月4日设想的架构图
从最下面看是我们的基础设施提供三种能力包括集散、存储、网络。从右下角的位置看画的是一个泛监控它会知道系统、应用等在旁边标了一个字现状我要通过这个现状把线上的系统全部数据化然后放到决策中心。
左上角有 CMDB现在很多变更系统很多强调流程。我本人是做研发出身非常抵触流程流程不是一个效率工具它是阻碍效率的。
比如故障搞完以后就是一堆的流程非常阻碍效率是质量控制的一个工具。流程不是不要是把流程做到系统里面去让系统帮人做决策而不是人在那里点。
CMDB 定义了我刚才说的目标现状通过监控拿到了目标也知道了这个时候还觉得这个事情很复杂吗我认为这看你怎么去做。想做成人工还是做成自动或者做成智能都取决于这个地方。所以智能里一定要有数据。
举个例子通过智能分析出目标状态是使这个应用有100个VM但是现在状态只有80个一看这两个不一样要扩容20台如果系统做得更智能一点通过图上左边的事件中心提示我20台负载较轻的放在哪可以调度过去然后去做执行变更。
基于这些东西得出来两个结论“研发定义运维”“配置驱动变更”。
为什么是研发定义运维
研发定义运维DDO研发最贴近业务最应该清楚这个业务应该具备什么样的能力只有研发才知道这个业务KPS是多少。
为什么是配置驱动变更?
配置就是把目标改变一下你跟我说一个运维场景我可以在这个图里面 run 起来配置只需要改你的目标状态比如把你的状态10VM 变成15个VM。
这就是“研发定义运维配置驱动变更”前因后果的思考。
运维工具与方法论精益发现价值
价值来源于用户的需求而不是自己的YY我们的价值来源于用户。
精益对我最大的感触就是要发现价值。精益思想什么东西是有价值的能够对用户带来物质上的或者身体上的愉悦的东西就是有价值的。
今天也有人问DevOps 团队是该拆还是该合我想他应该首先弄清楚面对的是什么样的问题问题的优先级是什么如果只解决一个问题也许并不是DevOps 团队拆不拆的问题。
敏捷交付价值
敏捷也是对我影响很多的。很多人谈敏捷我们团队里也搞敏捷敏捷是要快速交付价值它是一系列的方法论。但是在引入的时候千万注意别人行的东西你不一定行你需要的东西并不一定是敏捷要因团队而异形成一个环持续反馈。
OODA环
OODA 环就是形成闭环让价值快速流动。
应用运维平台ATOM
应用运维平台的基础设施是一层二层是运维中台最上面一块是要做的 PaaS 平台这个平台分几步。第一块预算、容量、资源、弹性
这个是PaaS 平台上非常重要的一块目的就是让资源快速流动起来流向正确的方向来产生价值。资源如果常年不增不减是有问题的。
第二块应用管理
这是日常要做的操作规模化要快速对一个单元建站、扩容、缩容。
第三块数据化运营
一定要讲数据数据不是可视化出来一些报表是要给结论告诉用户这个数据完了以后应该是什么规则中心是什么是所有运维同学日常的运维经验沉淀。
批量腾挪工具这个工具不是所有人都需要可以解决机房的搬迁凑框迁移。单机闭环这是腾挪工具的关键如果企业有一定规模这个是需要的。弹性伸缩工具弹性伸缩是我们的决策中心。它决定你的资源往哪个地方流非常关键。最后这里是运维领域技术含量最深的一个地方要搞机器学习、深度学习、强化学习、算法等。弹性伸缩架构这个平台不一定很多企业都需要这里主要介绍在双11的时候是怎么用的。建一个站点起来只有5000的交易能力可以通过10分钟时间让它具有30000万的能力快速决策快速调动起来。弹性里面是一个 OODA 环拿它的数据和应用极限做比较得出来一个策略中心。
弹性一般有水平伸缩、垂直伸缩对线上做管理当然我们有额度这是比较精细化的管理。弹性有观察者模式还有自动化执行每次弹性完以后有一个控制台双11做全年压测的时候一般情况下不看这个。
实施效果原文链接
干货好文请关注扫描以下二维码