2009年,比利时根特市举办了首届 DevOpsDays 大会。至此,Development (开发)与 Operation (运维)的概念合二为一,被缩写为 DevOps (开发运维一体化)。 这一概念的风行并不在意料之外。亚马逊早期就提倡SOA (Service Oriented Architecture ),在亚马逊的每一个工程师都可以完全独立地完成编写代码,测试代码,版本管理,部署上线,服务监测等工作。现在,亚马逊凭借对 DevOps 文化的最佳实践,一跃成为世界级别IT领导者。 目前,DevOps 仍处于高速发展阶段,但如果做到整个业务部署 DevOps,不仅对软性的文化有要求,也有对硬性工具链的要求。南京大学软件研发效能实验室发布的《DevOps ·云原生2021年度中国调查报告》显示,2021年国内企业的 DevOps 工具的普及程度较2019年有明显上升。 DevOps 工具的使用正在变得越来越重要。随着各色工具的出现与应用,让 DevOps 得以从一个概念慢慢变成现实。 目前,DevOps 工具覆盖了从规划、编码、构建、测试、发布、部署和维护的软件生产全过程。 01 敏捷开发工具,加速开发效率 “敏捷”(Agile)这个概念起源于美国,比 DevOps 出现的时间要早。 敏捷开发框架被提出以后,软件的运行和运维方式发生了巨大的变化。因为“敏捷”完全摒弃了传统的瀑布式思维,将小步快跑、不断迭代的分步思想融汇在开发过程中。 随后,敏捷成为 DevOps 中的重要一环,一些敏捷教练认为,工作在这个系统中的所有人需要有全局协作和优化的意识,优化价值流的流量、流速,关注价值的产生。工程师们更要有工具链整体优化的意识,而不仅仅是精通某个环节,或局限在与自己相关的上下游工具上。 在敏捷开发中,往往离不开一些需求和项目管理工具,比如 JIRA、Trello等。 JIRA是一个被广泛使用的问题跟踪器,提供了 bug 跟踪和敏捷项目管理功能。虽然JIRA是由澳大利亚 Atlassian 公司创建的商业授权产品,但也有可有限使用的免费版本。 JIRA详情可查看:https://www.oschina.net/p/jira 此外,Atlassian 子公司所拥有的 Trello 也是在国际上非常流行的协作工具,以设计简约著名,很多团队用它来计划各自的工作 sprint(冲刺)。国内知名的Teambition、Leangoo 等都在一定程度上效仿了 Trello 的设计。 02 持续交付工具,助力落地DevOps DevOps 是一个完整的面向IT运维的工作流,其中CI/CD是基础。 CI是Continuous Integration(持续集成),而CD对应多个英文,Continuous Delivery(持续交付)或Continuous Deployment(持续部署)。 如果无法做到CI/CD的话,DevOps 也就变成了空中楼阁。 要做到持续交付,构建十分重要。在构建阶段,需要保持打包的一致性,而自动执行容易出错的活动,生成早期质量信号。此时,Maven、NPM、Gradle等构建工具则大有用处。 Maven 主要用于 Java 项目的自动化构建,同时它也可以构建和管理以 C#、Ruby、Scala 等语言编写的项目。而Gradle 则是基于 Apache Ant 和 Apache Maven 理念的自动化构建系统,它还引入了基于 Groovy 的领域特定语言。 Maven详情可查看:https://www.oschina.net/p/maven Gradle详情可查看:https://www.oschina.net/p/gradle 在构建Maven库前后,往往需要Nexus这样的仓库管理工具。Nexus 是一套“开箱即用”的系统,功能非常强大,它极大简化了自己内部仓库的维护和外部仓库的访问。在内部,你可以配置构建工具,并发布到 Nexus,然后其他开发人员就可以使用它们了。 Nexus 详情可查看:https://www.oschina.net/p/nexus 在持续集成中,像Jenkins、Bamboo等这样的流水线工具不可或缺。其中,Jenkins 是开源、免费、与平台无关的自动化服务器,它独立于 Java ,且支持Windows、Mac 和其他类似 UNIX 的操作系统,通过Jenkins 可以将本机系统软件包 Docker 安装。 Jenkins 详情可查看:https://www.oschina.net/p/jenkins 此外,容器引擎和编排工具也在DevOps 的持续交付工具之列。南京大学软件研发效能实验室发布的《DevOps·云原生2021年度中国调查报告》显示,过去两年,容器技术的应用持续深化,以容器及其编排技术为核心的生态,逐渐扩展至涵盖微服务、DevOps、服务监测分析、应用管理的完整闭环。 因此,以Docker、K8s、Apache Mesos等为代表的容器引擎和编排工具几乎在DevOps实践中扮演着不可替代的角色。 Apache Mesos详情可查看:https://www.oschina.net/p/apache+mesos 03 自动化运维工具,补上运维一环 DevOps将传统的“开发”和“运维”概念合二为一,将两者从传统作坊式的工作方式解放出来。所以,在DevOps 工具链中,Zabbix、Elastic、Grafana、Kafka、Ansible、Logstash、Prometheus等自动运维工具的作用不可小觑。 其中,Ansible 是由 RedHat 维护的开源 IT 自动化工具,使用剧本(playbooks)做配置管理和多机部署系统,它运行在 Unix 家族系统上,可以配置 Unix 家族系统和 Windows。 我们可以在控制机器上安装 Ansible,而不需要 Ansible 在其他服务器上运行,这些服务器可以从 Web 到应用程序再到数据库服务器。 Ansible 详情可查看:https://www.oschina.net/p/ansible Prometheus则是用于事件监视和警报的免费软件应用程序,它在时间序列数据库中记录实时指标,基于 HTTP 拉取模型,支持灵活的查询和实时警报。Prometheus 服务器的工作方式是抓取,也就是说,调用各个节点暴露出来的指标端点。 Prometheus 详情可查看:https://www.oschina.net/p/prometheus Grafana包括企业版和开源版本两种,是可视化分析软件,可以查询、可视化、报警和探索指标,无论这些指标存储在哪里,Grafana 都可以通过提供相关数据来帮助我们跟踪用户行为、应用程序行为、在生产环境或预生产环境中弹出错误的频率、弹出错误的类型以及上下文场景。 Grafana 详情可查看:https://www.oschina.net/p/grafana 04 平台类工具,DevOps工具的“集大成者” 随着 DevOps 实践在国内外企业中流行开来,用户对自动化的要求越来越高。因此,也就催生了更多集成功能的DevOps 平台,例如我国的“飞算 SoFlu全自动软件工程平台”。 飞算 SoFlu其实是通过可视化编程的方式满足开发需求,也就是说,输入流程图即可实现自动开发、自动测试、自动运维等,由此提高工作效率,使用户可以更多关注自身业务。在平台使用过程中,可以达到一个ID相当于一个10人科技团队的效果。 此外,飞算还可以通过管理平台来管理需求、研发、测试、部署、上线、运维等整个软件生命周期,沉淀经验、积累知识,将管理制度真正落地。 以近期上线的测试平台为例,飞算SoFlu 通过自动化的生命周期管理、测试用例自动生成、测试数据管理等功能,去解决人工测试耗时长、测试跟踪管理难、测试成本高等难题。软件质量可以通过工具、流程和管理予以保障,而不再依靠有丰富经验的软件工程师。 目前,飞算 SoFlu仍在加速更新更加强大的 DevOps 功能,未来可期。 飞算详情可查看:https://www.feisuanyz.com/ 05 微服务相关技术,通过拆分更加便利 所谓“微服务”,就是将原来黑盒化的一个整体产品进行拆分(解耦),从一个提供多种服务的整体,拆成各自提供不同服务的多个个体。因此,通过微服务技术,不同的工程师可以对各自负责的模块进行处理,例如开发、测试、部署、迭代。 Spring cloud、Spring Boot、Apache Dubbo等工具都可以用于微服务之中。其中,Spring cloud 专注为典型的用例和可扩展性机制提供良好的开箱即用体验,它为开发人员提供了快速构建分布式系统中常见模式的功能,通过Spring cloud 开发者可以快速实现样板的服务和应用程序。 Spring cloud 详情可查看:https://www.oschina.net/p/spring-cloud 06 安全管理工具,让DevOps 走向DevSecOps DevSecOps,也就是研发安全运营一体化,将安全融入 DevOps 每个阶段过程,开发、安全、运营各部门紧密合作,强调在安全风险可控的前提下,帮助企业提升IT效能,更好地实现研发运营一体化。 云计算开源产业联盟发布的《中国DevOps现状调查报告2021》显示,源代码静态安全检测、容器镜像安全扫描及 Web 应用防火墙(WAF)正在成为企业应用最广泛的 DevSecOps 技术实践。 并且,企业在选择 DevOps 工具时更注重功能的易用性、工具自身的安全性和自动化程度。 调查显示, 超过四成的企业在选择 DevOps 工具时考虑工具的功能的易用性(43.18%)、工具自身的安全性 (42.96%)和工具的自动化程度(42.80%)。
安全工具也是百花齐放, 包括了代码安全工具Fortify、容器安全工具Clair、Web安全工具AppScan等等。a (责任编辑:IT) |