【DevOps】团队敏捷开发系列--开山篇

随着软件发布迭代的频率越来越高,传统的「瀑布型」(开发—测试—发布)模式已经不能满足快速交付的需求。2009 年左右 DevOps 应运而生,开发运维一体化,通过自动化工具与流程让整个软件开发构建、测试、发布更加快捷、频繁、高效和可靠。

image.png

本系列教程目录

本系列将详细讲解Devops落地细节。将构建整个持续集成与交付的一整套体系与流程。对于未来要开篇的系列博文列表如下:

【DevOps】团队敏捷开发系列(一)--开山篇
【DevOps】团队敏捷开发系列(二)--版本控制之道Git
【DevOps】团队敏捷开发系列(三)--代码管理之道Gitlab
【DevOps】团队敏捷开发系列(四)--前后端分离契机Swagger
【DevOps】团队敏捷开发系列(五)--代码编译MAVEN
【DevOps】团队敏捷开发系列(六)--自动化CI工具Jenkins
【DevOps】团队敏捷开发系列(七)--自动化流程编排
【DevOps】团队敏捷开发系列(八)--自动化单元测试Junit
【DevOps】团队敏捷开发系列(九)--自动化性能压测Jmater
【DevOps】团队敏捷开发系列(十)--持续部署流程编排
【DevOps】团队敏捷开发系列(番外篇)--Linux常用命令

相关概念解释

DevOps 概念

Ops"是一个总括术语,泛指系统工程师、系统管理员、操作人员,发布工程师、DBA、网络工程师、安全专家和各种其他分支和头衔。"Dev"是开发人员的简称,但真正在实践中意味着更广泛的"参与开发的产品"的所有人,可包括产品,质量保证,和其他种类的学科。

DevOps 发展

DevOps(英文Development和Operations的组合)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。 从2009年起,相关的工作组、专业组织和博客快速涌现。

自动化概念

自动化(Automation)是指机器设备、系统或过程(生产、管理过程)在没有人或较少人的直接参与下,按照人的要求,经过自动检测、信息处理、分析判断、操纵控制,实现预期的目标的过程。自动化技术广泛用于工业、农业、军事、科学研究、交通运输、商业、医疗、服务和家庭等方面。采用自动化技术不仅可以把人从繁重的体力劳动、部分脑力劳动以及恶劣、危险的工作环境中解放出来,而且能扩展人的器官功能,极大地提高劳动生产率,增强人类认识世界和改造世界的能力。因此,自动化是工业、农业、国防和科学技术现代化的重要条件和显著标志。

DevOps自动化

全面自动化 —— 部署、 升级、 扩展、 维护、 数据、 测试、 监测、 安全和策略管理。在自动化方面投入巨资,目标是100%的自动化,不考虑低于90%的可能性。但是,全面自动化也可能会引起自动化泛滥。集中审查和调整可以控制Chef或Puppet脚本库的无序增长。
DevOps战略必须获取本组织自顶向下的全面支持。整个行政领导团队 ——不只是首席信息官 ——应知道它为什么重要和怎样使它取得成功。

为什么DevOps

为什么我们采用DevOps,首先来看一下传统的开发运维模式。

传统开发模式

首先,开发人员开发完毕,并进行简单自测,和 手动 功能测试。
其次,开发人员利用IDE 手动 打包。
然后,将构建后的文件 手动 复制到公网服务器指定目录。
最后,启动程序并进行手工测试。
很明显,在这个过程中,有太多重复性的东西,会严重影响团队效率。

自动化方案

我们可以简单的来将我们的系统优化,最终形成强大的自动化敏捷体系。

自动化单元测试

我们可以通过一些自动化平台例如jenkins 进行自动化单元测试的集成。可以很高效的对整个开发进行系统的单元测试,简化测试流程,提升测试效率

自动化打包构建

通过一些列的代码与版本控制管理工具,例如Git与Gitlab可以非常有效的管理代码、版本、分支、标签等等。当然不仅于此,还有很多比较优秀的工具供我们使用。但是目前市场最流行的当属Git与Gitlab体系。

自动化发布

针对于后端服务用Java开发的应用程序,我们大可以使用MAVEN或者Gradle进行统一的依赖管理及代码编译打包控制。可以通过一些列Wiki进行配置触发器,集成到jenkins等工具上,然后进行自动化的远程节点打包。当然可以在jenkins建立多个节点去持续多点出发集成。

自动化部署

通过强大的shell命令,让我们可以在每个服务器、每一个环境当中,自由穿梭。对于自动化部署,需要按照实际需求,编写不同的shell脚本,然后将相关流程进行配置,结合jenkins等工具,可以快速实现每一个环节的发布。
image.png

DevOps团队需要做什么

DevOps团队执行各种任务, 如:
1. 新虚拟服务器的配置
2. 配置网络设备
3. 应用程序部署
4. 收集和聚合的日志
5. 性能监视服务
6. 报警和自动修复的问题
7. 服务器和服务可用性监控

DevOps团队工具

工具名称工具用途
Docker虚拟化容器技术,快速构建独立隔离服务
Jenkins自动化平台,可以配置自动化测试与持续部署
New Relic应用性能监测
Ansible自动化(配置管理工具)平台,持续集成与编排
Kubernetes开源的docker编排工具,可以发布与回滚
JMeter基于Java的压力测试工具。用于对软件做压力测试

还有很多工具可以使用,这个具体我们后续慢慢讲来。

番外篇

除了一整套DevOps的体系,我们会在整个系统当中,穿插讲解Docker容器的使用。对于我们很多时候遇到的依赖或者安装流程复杂的问题,都可以容器的方式快速解决,并且可以快速启动或销毁多个服务。

未尽之处将会在系列博文中详细说道。本文只是对系列博文的概要说明,本文也参考了互联网很多资料整理所得。

源码

本文出处:http://www.hanyahong.com/
(欢迎转发、请注明出处!)

转载于:https://www.cnblogs.com/hyhnet/p/8082390.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值