微信登录
注册忘记密码
查看: 1156|回复: 12

一文看懂微服务架构及DevOps

[复制链接]

签到天数: 12 天

[LV.3]偶尔看看II

发表于 2022-6-28 09:31:19 | 显示全部楼层 |阅读模式
DevOps是什么?







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

瀑布开发模式

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


敏捷开发模式

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

Scrum的理念

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


  • 瀑布模型的核心思想是按工序将问题简化,将功能的实现与设计分开,便于分工协作。将软件生命周期划分为制订计划、需求分析、软件设计、程序编写、软件测试和运行维护6个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
  • 瀑布模型有以下特点:


  • 为项目提供了按阶段划分的检查点。
  • 当前一阶段任务完成后,只需要去关注后续阶段。
  • 瀑布模型强调文档的作用,并要求每个阶段都要仔细检查。但是,这种模型的线性过程太理想化,其主要问题在于:
各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。

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

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

3.在做大的变革之前,积极听取其他成员的意见,努力理解其他成员的观点,获得团队主要成员的支持,是保证变革成功的重要一环。
4.软件开发根本就没有什么灵丹妙药可言。虽然敏捷可以很快开发出优秀的应用软件,但不是说这项技术适合每个项目。在实施敏捷之前,一定对现有项目做好分析,对症下药。
5.在Scrum开发模式下,为每个Sprint起一个名字,不但可以增加团队软件开发的乐趣,提高大家的参与度,还可以记录下Scrum Team当时的心情。
DevOps实践六大原则

DevOps 的三大支柱

人(People)、流程(Process)和平台(Platform)
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 管道",需要开发和运维团队以敏捷方式协同支持。


声明:以上内容来源于网络,如有侵权请联系我们(123@shiyan.com)删除!

签到天数: 1 天

[LV.1]初来乍到

发表于 2022-6-28 09:34:34 | 显示全部楼层
产品和UI图:蓝湖
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2022-6-28 09:39:27 | 显示全部楼层
相信我,你不需要DevOps。[泪奔][泪奔][泪奔]
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2022-6-28 09:43:09 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2022-6-28 09:46:35 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

签到天数: 98 天

[LV.6]常住居民II

发表于 2022-6-28 09:48:22 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2022-6-28 09:53:33 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2022-6-28 09:57:19 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2022-6-28 09:58:23 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2022-6-28 10:03:05 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则