DevOps 实战笔记
石雪峰
京东商城工程效率专家
37393 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 41 讲
DevOps 实战笔记
15
15
1.0x
00:00/00:00
登录|注册

16 | 环境管理:一切皆代码是一种什么样的体验?

纳入版本控制系统进行管理
自动化批量完成环境配置
公共配置的复用
Skaffold命令
KSync工具
多种工具结合的实践
基于基础设施即代码的方法
GitOps的好处
GitOps的核心理念
GitOps的定义
基础设施即代码的优势
基础设施即代码的定义
环境变更难以追溯
环境交付速度慢
环境一致性难以保证
环境复杂性上升
环境种类繁多
思考题
总结
开发本地测试的实践
开发环境的治理实践
开发运维打通的GitOps实践
基础设施即代码
环境管理的挑战
为什么基础设施即代码是解决环境管理问题的最佳实践?
为什么基础设施即代码是解决环境管理问题的最佳实践

该思维导图由 AI 生成,仅供参考

你好,我是石雪峰。
网上经常流传着一些有关偏见地图的段子,通俗点说,“偏见地图”就是说网友对世界其他地方的印象,比如很多人认为天津人都会说相声。
如果软件开发中也有偏见地图的话,那么,对不熟悉运维的人来说,提到运维团队,可能就觉得是维护环境的那帮人。于是,环境就成了软件行业的“头号背锅侠”。比如,线上出故障了,可以是环境配置错误;测试有些功能没测到,可以是没有测试环境;开发出 Bug 了,也不管三七二十一,先甩给环境再说……所以你看,好像什么问题都可能跟环境相关。这种没来由的偏见,也加剧了开发和运维之间的不信任。

环境管理的挑战

那么,为啥环境总是让人这么不放心呢?其实,这是因为,现代企业所面对的业务复杂性,很大程度上都可以直观地体现在环境管理的方方面面上。总结起来,我认为一共有 5 点:
1.环境种类繁多
首先,软件关联的环境种类越来越多,比如开发环境、测试环境、UAT 用户验收测试环境、预发布环境、灰度环境、生产环境等。光是分清这些环境的名字和作用,就不是件容易的事情。
2.环境复杂性上升
现代应用的架构逐渐从单体应用向微服务应用转变。随着服务的拆分,各种缓存、路由、消息、通知等服务缺一不可,任何一个地方配置出错,应用都有可能无法正常运行。这还不包括各种服务之间的依赖和调用关系,这就导致很多企业部署一套完整环境的代价极高,甚至变成了不可能完成的任务。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

基础设施即代码是解决现代企业环境管理挑战的最佳实践。通过代码化环境配置,实现了公共配置的复用、自动化批量完成环境配置、环境配置的版本控制管理,解决了环境种类繁多、环境复杂性上升、环境一致性难以保证、环境交付速度慢以及环境变更难以追溯等问题。基础设施即代码的实践符合DevOps的协作原则,降低了不同角色之间的依赖,降低了沟通协作成本,实现了开发运维的一体化,形成了一种绝妙的组合,即GitOps。GitOps基于Git实现应用从开发到运维的交付过程,让开发和运维之间的协作可以基于Git来实现。它通过代码化的方式描述应用部署的环境和部署过程,实现了环境配置的共享和统一管理,以及环境和工具升级的层层验证。基础设施即代码的方法也适用于开发环境的治理实践,可以简化研发环境的维护成本。一些工具如KSync和Skaffold提供了解决方案,使开发者能够更快地获取反馈,实现了所见即所得的代码开发体验。这些实践展示了基础设施即代码在现代企业中的重要性和应用前景。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《DevOps 实战笔记》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(14)

  • 最新
  • 精选
  • 陈斯佳
    老师,您以后会有专门一章来讲解K8S、Docker或Jenkins吗?或者您会提供一些资料或网站啥的让大家可以学习的吗?我感觉这几个软件的运用好重要,而对于一些实际工作业务中没有用到这些工具的同学有时候缺少一个实际的抓手来上手…

    作者回复: 你好,的确很多人关心这个话题,所以我会在27讲把这些工具串联起来,搭建一个小型的持续交付流水线,通过案例给大家介绍这些工具方面的内容哈。

    2019-11-18
    11
  • 许童童
    老师讲得好,kubernetes我很早就在用了,在小公司很好推行,大公司却很难推动。

    作者回复: 你好,我也有同感哈,之前在小公司是全套基于Kubernetes的研发环境,但是大公司基础设施不在控制范围内,反而有些倒退。所以还是看业务倒逼上云的节奏,毕竟上云还是有不可取代的优势,目前的话已经有不少业务跑在云上啦,之前在小公司的经验就发挥了作用。

    2019-11-16
    2
    8
  • 牧野静风
    对于项目多的一个中型公司,想要改变现有的技术架构,确实比较困难,现行的需求都是急忙上线,何谈迁移旧框架,只能一步步来推行。

    作者回复: 这就是比较尴尬的事情了,我见过一些企业在做DevOps,但是每次迭代排期的时候DevOps相关改进的需求都是优先级最低的,导致改进类工作形同虚设,所以在国内的现状下,还是自上而下的项目制驱动,目标明确的效果好的多,单纯自发的改进,的确太难了。

    2020-01-06
    1
  • Robert小七
    gitops 的代码仓库和配置仓库是分开的还是同一个仓库中

    作者回复: 是分开的哈,代码是代码,配置是配置,实际上也要看你的项目实际情况,这个案例里面,之所以分开的原因还在于,希望通过独立的仓库来管控上线发布哈

    2020-06-03
  • BertGeek
    标准项目,如互联网产品,企业自由平台,可以推行devops,甚至k8s高效率上线 我们公司,基本私有环境,客户要求、网络限制等。 有的容器都不让用。 所以,大多数企业平台产品,还是很有实施价值
    2021-05-25
    1
  • Pyel
    企业环境管理的五个难题:种类多,复杂性,一致性,交付速度和变更追溯。代码化管理的方式都是未来的发展趋势
    2020-03-29
    1
  • 事已至此开始撤退
    真的优秀,19年就有这么好的,可惜那时候还不知道极客这个平台。
    2023-05-11归属地:上海
  • 橙汁
    19年我还在天天划水 没想到那时就有基础设施即代码理念 真不知道早干什么去了
    2023-04-21归属地:北京
  • 赵先生
    看到熟悉的saltsatck+gitlab+Kubernetes,原来我司一直在践行devops,只是当初每个组件都是单纯为了解决客户问题,没有拔高抽象到这种思想的高度...
    2023-04-04归属地:北京
  • Tron
    我们公司的困难点是: 传统软件,比较重,容器化的成本非常高,只能通过vm ova安装,导致打包,编译,安装时间比较长。我们能做的只是通过jenkins + k8s 运行我们安装,编译流程,跑测试等等,没有办法做到把产品安装到k8s集群中,用集群管理资源。这会带来额外的开销和工作,比如ip esxi资源分配等等,老师 对这种vm +容器混合环境有没有什么建议呢?
    2020-12-02
收起评论
显示
设置
留言
14
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部