如何选择正确的DevOps工具?
发布网友
发布时间:2022-04-22 06:01
我来回答
共4个回答
热心网友
时间:2023-05-17 19:14
DevOps 起源于亚马逊和 Google 这样的大型互联网公司
DevOps: Development和Operations的组合
可以把DevOps看作开发(软件工程)、技术运营和质量保障(QA)三者的交集。
传统的软件组织将开发、IT运营和质量保障设为各自分离的部门。在这种环境下如何采用新的开发方法(例如敏捷软件开发),这是一个重要的课题:按照从前的工作方式,开发和部署不需要IT支持或者QA深入的、跨部门的支持,而却需要极其紧密的多部门协作。然而DevOps考虑的还不止是软件部署。它是一套针对这几个部门间沟通与协作问题的流程和方法。
需要频繁交付的企业可能更需要对DevOps有一个大致的了解。Flickr发展了自己的DevOps能力,使之能够支撑业务部门“每天部署10次”的要求──如果一个组织要生产面向多种用户、具备多样功能的应用程序,其部署周期必然会很短。这种能力也被称为持续部署,并且经常与精益创业方法联系起来。 从2009年起,相关的工作组、专业组织和博客快速涌现。
DevOps的引入能对产品交付、测试、功能开发和维护(包括──曾经罕见但如今已屡见不鲜的──“热补丁”)起到意义深远的影响。在缺乏DevOps能力的组织中,开发与运营之间存在着信息“鸿沟”──例如运营人员要求更好的可靠性和安全性,开发人员则希望基础设施响应更快,而业务用户的需求则是更快地将更多的特性发布给最终用户使用。这种信息鸿沟就是最常出问题的地方。
以下几方面因素可能促使一个组织引入DevOps:
使用敏捷或其他软件开发过程与方法
业务负责人要求加快产品交付的速率
虚拟化和云计算基础设施(可能来自内部或外部供应商)日益普遍
数据中心自动化技术和配置管理工具的普及
有一种观点认为,占主导地位的“传统”美国式管理风格(“斯隆模型 vs 丰田模型”)会导致“烟囱式自动化”,从而造成开发与运营之间的鸿沟,因此需要DevOps能力来克服由此引发的问题。
DevOps经常被描述为“开发团队与运营团队之间更具协作性、更高效的关系”。由于团队间协作关系的改善,整个组织的效率因此得到提升,伴随频繁变化而来的生产环境的风险也能得到降低。
DevOps对应用程序发布的影响
在很多企业中,应用程序发布是一项涉及多个团队、压力很大、风险很高的活动。然而在具备DevOps能力的组织中,应用程序发布的风险很低,原因如下:
与传统开发方法那种大规模的、不频繁的发布(通常以“季度”或“年”为单位)相比,敏捷方法大大提升了发布频率(通常以“天”或“周”为单位)
减少变更范围与传统的瀑布式开发模型相比,采用敏捷或迭代式开发意味着更频繁的发布、每次发布包含的变化更少。由于部署经常进行,因此每次部署不会对生产系统造成巨大影响,应用程序会以平滑的速率逐渐生长。加强发布协调靠强有力的发布协调人来弥合开发与运营之间的技能鸿沟和沟通鸿沟;采用电子数据表、电话会议、即时消息、企业门户(wiki、sharepoint)等协作工具来确保所有相关人员理解变更的内容并全力合作。自动化强大的部署自动化手段确保部署任务的可重复性、减少部署出错的可能性。
热心网友
时间:2023-05-17 19:15
DevOps=“每个人都对项目负责”,是糅合了开发、安全及运营理念以创建解决方案的方法。所以对于DevOps的实施来说,安全工具也很重要。比如用JFrog Xray,通过对容器和软件制品进行多层分析来了解漏洞、许可证合规性和质量保证,能够持续管理和审计CI/CD流水线中使用和生成的制品。而且Xray能够和Artifactory相结合,使开发团队能够将安全性纳入到软件开发生命周期,研发人员可以主动检测和减轻开源组件 (OSS)的安全漏洞给自研软件带来的影响。
热心网友
时间:2023-05-17 19:15
DevOps=“每个人都对项目负责”,是糅合了开发、安全及运营理念以创建解决方案的方法。
热心网友
时间:2023-05-17 19:16
视觉与设计方面达成协作 根据敏捷手册中的内容,我们推荐使用在规划中允许您的开发团队实现迭代的工具。这样,您就能很快地从用户那里获知情况,并通过用户反馈优化产品。寻找能够提供sprint规划特点的工具。 另外,优先考虑为您的开发团队持续收集用户反馈,并加以组织形成可执行信息。寻找可以支持“异步讨论”的工具(如果您愿意)。重要的是每 …
开发的阶段环境 虽然Puppet和Chef主要受益于运维,但开发人员通过工具来提供各阶段的开发环境比如Docker。虚拟编码和可支配的产品副本可以帮助您完成更多工作。 一些奇怪的类路径?Mave安装突然被损坏?基础设施自动化意味着重新配置比修复的速度更快,也更可靠,这也意味着您可以加快升级您的开发环境。 当整个团队在相同配置的环境中工作时,“用自己的机器工作!”别开玩笑了,这是真的(现在就是在开玩笑)。 我们使用的工具:Docker 基础设施自动化 开发人员创建模块化应 …
持续集成 持续集成就是每天都要对共享存储库中的代码进行多次检查,并且每次都要对其进行测试。这样,您能及时发现问题,在最初阶段修复它们,并尽可能早的向你的用户展现新的功能。 由于分支和合并的工作流程是时下比较流行的(这是理所当然的!),所以避免在多分支环境中运行CI的工具可以保证在不降低开发速度的情况下进行严格的测试。 寻找那些可以自动将测试结果应用到开发分支中的工具,并在分支构建成功时为您提供是否将其推送至master的选择。除了这一点,您可以通过一 …