一文看懂微服务架构及DevOps

DevOps是什么?

 

一文看懂微服务架构及DevOps

 

 

一文看懂微服务架构及DevOps

 

 

一文看懂微服务架构及DevOps

 

DevOps 是通过:

平台(Platform)、流程(Process)和人(People)的有机整合,以 C(协作)A(自动化)L(精益)M(度量)S(共享)文化为指引,旨在建立一种可以快速交付价值并且具有持续改进能力的现代化 IT 组织。

瀑布开发模式

一文看懂微服务架构及DevOps

 

瀑布模型(Waterfall Model)是Royce在1970年提出的,他把大型软件开发分为:分析与编程,象工厂流水线一样把软件开发过程分成各种工序,并且每个工序可以根据软件产品的规模、参与人员的多少进一步细分成更细的工序。该模型非常符合软件工程学的分层设计思路,所以成为软件开发企业使用最多的开发模型。

 

敏捷开发模式

一文看懂微服务架构及DevOps

 

敏捷是一种迭代的、基于团队的开发方法。这种方法强调以完整的功能组件快速交付应用程序。所有的时间都被“固定时间盒”划分为“冲刺(通常称迭代)”阶段。而不是创建任务和时间表。每个迭代周期都有一个定义的持续时间(通常以周为单位),其中包含在迭代开始时计划的可交付成果的运行列表。交付物根据客户确定的业务价值进行优先级排序。如果迭代中所有计划的工作都不能完成,那么工作将被重新排序,这些信息将用于未来的迭代计划。当工作完成时,项目团队和客户可以通过每日构建和迭代演示对其进行审查和评估。敏捷依赖于整个项目中非常高水平的客户参与,特别是在这些评审期间。

一文看懂微服务架构及DevOps

 

DevOps变化进度

一文看懂微服务架构及DevOps

 

Scrum的理念

Scrum敏捷软件开发强调的是在一个固定的时间内,利用一切合理的开发资源,完成客户的一定需求。总体的项目是由一个一个小的冲刺(Sprint)组成的。每个小的冲刺(Sprint)都有很清晰明确的需求,而且也有明确的需求验收标准,从而能够把一个大的项目逐渐分解到小冲刺中,为按时保质地完成交付提供支持。

从瀑布到敏捷转型的要点

  1. 瀑布模型的核心思想是按工序将问题简化,将功能的实现与设计分开,便于分工协作。将软件生命周期划分为制订计划、需求分析、软件设计、程序编写、软件测试和运行维护6个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
  2. 瀑布模型有以下特点:
  • 为项目提供了按阶段划分的检查点。
  • 当前一阶段任务完成后,只需要去关注后续阶段。
  • 瀑布模型强调文档的作用,并要求每个阶段都要仔细检查。但是,这种模型的线性过程太理想化,其主要问题在于:

各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。

由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险。

在瀑布开发模式下,早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。

3.在做大的变革之前,积极听取其他成员的意见,努力理解其他成员的观点,获得团队主要成员的支持,是保证变革成功的重要一环。

4.软件开发根本就没有什么灵丹妙药可言。虽然敏捷可以很快开发出优秀的应用软件,但不是说这项技术适合每个项目。在实施敏捷之前,一定对现有项目做好分析,对症下药。

5.在Scrum开发模式下,为每个Sprint起一个名字,不但可以增加团队软件开发的乐趣,提高大家的参与度,还可以记录下Scrum Team当时的心情。

DevOps实践六大原则

一文看懂微服务架构及DevOps

 

DevOps 的三大支柱

人(People)、流程(Process)和平台(Platform)

DevOps = 人 + 流程 + 平台

人 + 流程 = 文化

流程 + 平台 = 工具

平台 + 人 = 赋能

DevOps工具系统

一文看懂微服务架构及DevOps

 

一文看懂微服务架构及DevOps

 

项目管理(PM):jira。运营可以上去提问题,可以看到各个问题的完整的工作流,待解决未解决等;

代码管理:gitlab。jenkins或者K8S都可以集成gitlab,进行代码管理,上线,回滚等;

持续集成CI(Continuous Integration):gitlab ci。开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。

持续交付CD(Continuous Delivery):gitlab cd。完成单元测试后,可以把代码部署到连接数据库的 Staging 环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境中。

镜像仓库:VMware Harbor,私服nexus

容器:Docker

容器平台: Rancher

编排:K8S

服务治理:Consul

脚本语言:Python

日志管理:Cat+Sentry,还有种常用的是ELK

系统监控:Prometheus

负载均衡:Nginx

网关:Kong,zuul

链路追踪:Zipkin

产品和UI图:蓝湖

公司内部文档:Confluence

报警:zabbix,微信企业号

DevOps 可让您通过持续部署来实现扩展

持续集成和持续部署管道(CI/CD)是实施 DevOps 的一大重要成果。CI/CD 可帮助您频繁地向客户交付应用并检验软件质量,而且只需极少的人工干预。

具体而言,CI/CD 在整个应用生命周期内(从集成和测试阶段,到交付和部署)都引入了持续自动化和持续监控,让您能够快速识别和改正问题与缺陷。这些彼此关联的实践通常被统称为"CI/CD 管道",需要开发和运维团队以敏捷方式协同支持。

posted @ 2022-02-05 16:58  智慧园区-老朱  阅读(1137)  评论(0编辑  收藏  举报