共计 1223 个字符,预计需要花费 4 分钟才能阅读完成。
概念
公布工程专一于构建和交付软件,通过源代码仓库,编译器,自动化构建工具,包管理器等工具软件,让代码运行起来,对外提供服务。
公布工程属于 devops 的一部分,对于晋升研发效率意义重大,然而效率和稳定性是一对矛盾,公布工程就是要在晋升效率的时候保持足够的稳固,确保业务零碎不因频繁的上线等操作呈现故障。
在咱们组建本人的公布工程时,应该留神以下几个准则:
1. 自服务模型
SRE 工程师开发工具软件,利用开源软件构建流水线的指标是晋升公布效率。在此过程中要留神,这些工具和流水线是由开发团队来应用和执行的,运维工程师不要适度参加到公布过程,除非呈现开发团队无奈解决的问题才干涉。只有这样在应答业务规模扩张时,运维人员才不会疲于奔命,同时也给了开发团队足够的自由度,让各个开发团队可能根据本人的节奏和打算上线服务。
2. 谋求速度
面向用户的软件上线公布十分频繁,因为这类软件的指标是让用户可见的性能越快上线越好,可能疾速响应用户和市场的需要以取得商业价值。疾速迭代的麻利开发方式曾经成为支流,小步快跑的模式能够减小版本之间的差别和变动,让测试和调试变得简略,同时升高上线后呈现问题的概率。所以咱们的公布工程要满足速度的要求
3. 幂等性
咱们应用的公布工具链必须具备一致性和可重复性。经常都听过开发人员这么埋怨:” 在我服务器上明明跑的好好的,怎么上线了就出问题?”
,这里有两种可能,一种是因为开发环境和生产环境的配置差别造成的,还有一种可能是咱们构建和公布的软件包不统一,不满足幂等性导致的。同一份源代码实践上必须要保障无论构建多少次,最终进去的软件包是一只,不受构建服务器上安装的零碎版本,第三方库或其余工具软件影响
4. 强调策略和流程
要指定平安,正当的公布流程标准和权限,确保只有指定的开发人员或产品人员有权限执行公布操作。在无非凡状况时,要遵循公布标准操作。
同时公布流程要足够简洁高效,通俗易懂,不要给其余团队的共事造成学习老本和流程累赘。一旦过于繁琐,开发团队可能会抉择绕过这些流程,再欠缺的流程和标准也变成了陈设。
5. 协调与共识
咱们须要制订公布打算和告诉事宜。公布前要和研发,市场,产品,运维等团队沟通上线打算,取得认可和共识,同时要告诉到所有受影响相干方
6. 查看列表
在咱们上线前,通常咱们要列一个查看表单,以打消潜在的问题和影响,以下是举例:
- 架构和依赖
咱们须要评审该服务是否应用了正当的基础架构资源,是否有依赖服务和被依赖服务,是否会对 IAAS 层造成影响 - 系统集成和配置
如何抉择服务器,配置性服务,设置监控,与负载平衡零碎和 DNS 服务联合 - 容量布局
业务刚上线可能会带来尖峰式的流量,须要配合压力测试,及产品,市场等部门的用户反馈设置正当的资源容量,确保不产生雪崩事变 - 平安防护
针对零碎可能受到的攻打进行平安测试,同时配置防火墙,WAF 等相干设施和策略 - 回退打算
针对公布打算中的每一步剖析潜在危险,并制订相应的补救和备用计划。同时针对公布失败或异样,制订正当的回退计划