推荐!DevOps 工具正越来越自动化
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 等等。
评论