持续集成(CI)-Continuous Integration
CI(Continuous integration,中文意思是持续集成)是一种软件开发时间。持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。
持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,部署,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。
持续交付(CD)-Continuous Delivery
是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的Staging环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境。
持续交付(Continuous Delivery)是一系列的开发实践方法,用来确保让代码能够快速、安全的部署到产品环境中,它通过将每一次改动都提交到一个模拟产品环境中,使用严格的自动化测试,确保业务应用和服务能符合预期。因为使用完全的自动化过程来把每个变更自动的提交到测试环境中,所以当业务开发完成时,你有信心只需要按一次按钮就能将应用安全的部署到产品环境中。
持续部署CD( Continuous deployment )
CD( Continuous deployment )持续部署则是在持续交付的基础上,把部署到生产环境的过程自动化。
Devops
在传统的团队组织方式中,开发人员与运维人员之间是割裂开的,软件开发流程被分割为多个独立环节,分别由不同的人员执行。这使得软件开发过程中需要付出高昂的沟通成本,层层手动的流程将大量的时间耗费在了重复的劳动中。在 DevOps 的指导下,不同技能的人员处在同个团队中,为了一个共同的软件开发目标而工作。透过自动化“软件交付”和“架构变更”的流程, 来使得软件构建、测试、发布能够更加地高效、快速和可靠。
Devops核心原则:
CALMS原则--DamonEdwards 2010
Culture(文化)-拥抱变革,促进协作和沟通
Automation(自动化)-将人为干预的环节从价值链中消除
Lean(精益)-通过使用精益原则促使高频率循环周期 --(后加的)
Metrics(指标)-衡量每一个环节,并通过数据来改进循环周期
Sharing(分享)-与他人开放分享成功与失败的经验,并在错误中不断学习改进
Devops工具
DevOps涉及到软件从概念到成品的全过程,有大量的开源工具用于实现DevOps某一部分的功能,需要根据自己的实际情况选择适合的工具来构建自己的DevOps体系,过程相对比较复杂、繁琐。
常用的做法是以CI/CD工具Jenkins为核心,整合各项工具如gitlab,sonarqube, maven, nexus, JMeter等构建完整的Devops体系。这个建设过程一般周期比较长,而且各个开源软件的适配经常要花很长时间进行调试。所以对于一个一站式的Devops平台的需求就非常的强烈。
阿里云 云效
云效是云原生时代一站式BizDevOps平台,数十万企业都在用。支持公共云、专有云和混合云多种部署形态,通过云原生新技术和研发新模式,助力创新创业和数字化转型企业快速实现研发敏捷和组织敏捷,打造“双敏”组织,实现多倍效能提升。
整体架构如下图所示:
云效是阿里巴巴多年研发效能理念方法、工具实践、业务实操等经验沉淀,也是数十万家企业和百万开发者DevOps转型和研发效能提升的平台。云效荣获信通院“研发运营(DevOps)解决方案分级能力”认证及信通院“可信云-软件研发效能度量平台”先进级评估。
经过简单的试用后,对比开源平台云效有以下一些优势:
DevOps工具链一步配齐,开箱即用,不用像开源软件要一个一个安装配置。 云效 DevOps 提供项目协作、代码管理、持续交付流水线、云原生应用交付、在线IDE、制品仓库、测试管理、知识库 、效能洞察9大产品。
一套账号、数据体系,打通所有系统,不需要繁琐的调试。使用开源工具自建 DevOps,往往项目管理是一个系统、代码管理是一个系统、持续集成又是另一个系统。每个系统都需要搭建不说,账号、数据都是独立的,维护起来很复杂。选择云效 DevOps,同一个阿里云账号,即可访问所有产品。同时,云效还支持与钉钉组织账号打通,实现云钉研发协同。
简单易用,优秀实践经验模板化沉淀,不需要在Jenkins上构建一个个流水线。云效提供简单、可视化的操作界面,相比于 jenkins 更容易上手。此外,云效持续交付流水线 Flow 还内置了丰富的模板。
深度集成阿里云产品,真正实现一站式BizDevOp。云效与阿里云产品采用同一套账号体系,与阿里云云服务器 ECS、容器服务 ACK、函数计算 FC、企业级应用架构 EDAS 、阿里云钉钉等无缝衔接,既减少了账号维护成本,也降低了账号泄露带来的安全风险。
多重企业级安全防控能力,安全可信。开源版本的 DevOps 工具往往缺少企业级的安全防控能力,企业想要保障生产安全可控,要么选择付更多的钱升级为付费版,要么研究如何集成其他安全工具,更甚者需要基于它进行二次开发以达到企业规范的安全标准。
云效 DevOps 通过了公安部网络安全等级保护 2.0 三级认证、ISO 27001 信息安全管理体系标准认证、ISO 9001 质量管理体系认证,标志着云效安全实践达到国内外相关权威机构的安全标准要求,用户使用云效的数据保密性、完整性、可用性和隐私性已经与国内外最佳实践对标,且得到独立第三方安全认证。