开发人员和运营团队之间的DevOps合作使敏捷和有效的部署结构更为合理。但这在现实中是这样工作的吗?
如今,大多数软件开发组织都在采用DevOps文化,并且它有很多好处。其中一些是:
- 持续交付和持续集成
- 缩短开发周期
- 提高质量并降低成本:
- 稳定的运行环境:
- 增强的版本控制
上面的每个好处都与多个DevOps工具之一相关联。我们必须了解为什么DevOps是必不可少的。我们真的需要上述功能与我们现有的软件开发生命周期集成吗?
您从使用DevOps Essentials的现有开发生态系统开始,并聘请了一名DevOps工程师,开始在当前项目中实施DevOps工具,但是几周后,您发现项目发布的稳定性和交付情况与以前相同。
这样一来,实施DevOps的成本以及该特定DevOps工具的月度和年度费用都增加了。
在上述情况下缺少某些内容;你知道那是什么吗 可能是项目复杂性,微服务,正确的DevOps工具的选择,容器化,也可能是编排。
DevOps与工具无关
我从一些采用DevOps的客户那里听说。他们开始使用 Jenkins或CircleCI之类的工具进行部署,或者使用Capistrano for Rails应用程序之类的本地工具实现自动化部署。但是,DevOps不是自动化部署。要了解DevOps的核心原则,首先,您必须了解采用DevOps的实际好处。
案例研究:需要使用Docker Orchestration进行POS应用程序的自动化部署。
在过去的三年中,我们的团队之一致力于产品开发。直到今天,开发工作仍在进行中,每天都在进行,该团队每天要进行3到4个部署,有时还会有一些热修复程序。
假设我们在该项目中实现了DevOps,我们开始设计Docke图像并与Kubernetes进行编排,并使用CircleCI集成CI / CD。
- 使用Capistrano完成部署非常简单
- 开发人员友好的环境,其中检查日志和调试与开发人员的本地计算机相同
- 专注于产品开发,无需操作知识
4周后:
- 部署时间略有减少
- 更好的性能
- 调试Docker面临的问题
- 开发团队正在努力获取日志和修补程序
- 需要部署权限,已创建依赖项
- 维修费用增加
- 要解决使用第三方工具升级的问题,需要具备Docker的知识
在这里,我想澄清一下,我并不是说实现DevOps并不是一件好事,但是如果您打算仅通过阅读Web内容和实现工具来实现DevOps,那么我不建议您选择DevOps。
仅阅读文档和观看教程视频,如何在生产中实现DevOps工具?这将是一场斗争,最终将导致生产力降低而不是生产力提高。
DevOps实施不足之处
知识与准备
DevOps要求很高,因为它有助于消除手动工作,并有助于加快测试和部署操作。因此知识和准备状态起着至关重要的作用。否则,将会有很多挣扎,这将导致生产率降低而不是生产率提高。
专注于产品开发
另一种情况是企业希望团队专注于产品开发。团队遵循的是敏捷方法论,因此他们每隔一周就要在生产中部署代码。在大型组织中,开发新产品而不用担心其他操作是完全可以的。但是,中小企业没有那么多资源,因此频繁发布的应用程序使他们无法专注于DevOps。
确保您计划实施DevOps,以了解其核心原理。DevOps通过自动化基础架构配置帮助节省了大量时间和精力,因此请考虑使DevOps自动化可以节省多少小时。