开发人员和运营团队之间的 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 自动化可以节省多少小时.
来源: http://developer.51cto.com/art/202003/611888.htm