第四次作业

一、什么是Devops?

Devops是Develement和Operations的组合词缩写,是一种重视软件开发人员和IT运维技术人员之间沟通合作的文化、运动货惯例,并通过自动化流程来提高软件交付速度、频率和可靠性。EvOps的目标是通过持续的优化和改进,实现更高效、更可靠且更快速的软件交付,以适应快速变化的市场和技术环境。

devops概念提出

单体架构+瀑布模式:

为了解放双手监控服务,开发者会写一些脚本分析日志,服务器少,部署简单,通常开发就可以完成运维的工作,不需要专门的运维来做部署,所以开发模式很简答,直接按照瀑布流方式开发就可。

分布式架构+敏捷开发模式:

随着业务体量发展越来越大,一台机器扛不住,那么就加机器,单机变多机,业务架构也开始加入了 nginx,cdn,缓存等通用基础服务,业务变多需要的人越多,此时就涉及到多人协同开发,多人多机器模式。为了解决多人协同开发问题,更好的分工,大多会将项目进行拆分,每个人负责专注于一部分。将一个大的目标不断拆解,把它变成一个个可交付的小目标,然后通过不断迭代,以小步快跑的方式持续开发,为了保证项目质量,测试必不可少,为了加快速度增大开发效率,QA的工作最好是和开发同步交替进行的,需要将测试环节从后面注入到整个开发环节当中,每次可交付的都是一个可用的功能集合,对开发交付的内容进行持续验证。

微服务架构:采用微服务架构可以使得系统更加灵活,易于维护和扩展,每个服务可以独立部署和扩展,这也促进了DevOps的实施。

敏捷开发:敏捷开发模式下,开发和测试是迭代进行的,这要求开发和运维团队紧密合作,以快速响应市场变化和用户需求。

监控和日志:在DevOps实践中,监控系统的健康状况和分析日志是至关重要的,这有助于快速发现和解决问题。

EvOps作为DevOps的扩展,可能会更加注重以下几个方面:
效率:不断寻找提高软件交付效率的方法。
效果:确保软件交付的质量和业务价值。
持续改进:基于反馈和监控数据,持续优化流程和工具。
风险管理:通过自动化测试和部署前验证,降低软件交付的风险。
 

Devops的三大支柱是人、流程、平台。

     “人”:DevOps 文化要求团队成员之间有良好的沟通和协作,打破传统的隔阂,共同为软件的质量和交付效率负责。

    “流程”:DevOps 涉及的流程包括产品规划、开发编码、构建、QA测试、发布、部署和维护等。这些流程需要被优化和自动化,以提高效率。

    “平台”:为了支持 DevOps 流程,需要一系列的工具和平台,包括但不限于:
   项目管理工具:如 Jira,用于问题跟踪和管理项目进度。
   代码管理工具:如 GitLab,用于版本控制和代码库管理。
   持续集成工具:如 GitLab CI,用于自动化构建和测试,确保代码的集成质量。
   持续交付工具:如 GitLab CD,用于自动化部署,使得软件可以快速且稳定地发布到生产环境。

通过结合这些工具和平台,DevOps 旨在创建一个高效、透明和可复制的软件交付过程,从而提高开发和运维的效率,解决两者之间的矛盾,并最终实现快速、频繁且可靠的软件交付。这种文化和技术实践的结合,使得团队能够更快地响应市场变化,提高竞争力,并提供更好的服务给最终用户。

二、什么是scrum中的3355?

3个核心角色
Scrum的三个核心角色分别是:Scrum Master、Product Owner(产品负责人)和 Scrum Team(团队)。


产品负责人 (Product Owner)
Product Owner的核心工作对团队对外交付的价值负责。
定义需求
定义需求的优先级
定义需求的验收标准
定义产品发布内容与日期


敏捷教练 (Scrum Master):Scrum Master的核心工作是帮助团队遵循Scrum 框架,持续改进,以又好又快的工作。
促进团队的工作
帮助团队熟悉与掌握 Scrum 价值观与框架
帮助团队排除影响生产力的障碍
保护团队不受打扰
团队 (Scrum Team)

Scrum team 对交付成果负责。
跨职能部门
自组织式的团队

3个工作
Scrum的工作主要包括:Product Backlog(产品待办事项)、Sprint Backlog (Sprint 待办事项)和 Increment(可交付产品增量)。


产品待办事项Product Backlog:产品视角的需求清单。
由 Product Owner 负责维护,包括增删及优先级。
用户故事是其中一种最佳实践。
每项需求都需要描述其外部价值。


Sprint 待办事项 Sprint Backlog:此次冲刺周期内规划要完成的内容。
由团队评估和选择Product Backlog中哪些放入Sprint Backlog。
团队需要一起定义“完成”的标准。


可交付产品增量Increment:冲刺结束后可对外发布的产品功能增量部分。
需要关注其是可工作的软件功能增量。
需要要在Scrum Review会议上进行演示。


5个事件
Scrum的五大事件,或 event,包括:冲刺、Sprint规划、每日站会、Sprint评审会和回顾会。

冲刺 (Sprint)
冲刺Sprint或迭代是一个特殊的事件,或者说其一个容器事件。后续四个事件包含在其中。

2-4周
固定周期,固定时间开始,固定时间结束
时间盒是其一个重要的概念


Sprint规划会 (Sprint Planning Meeting)
Sprint规划会的核心议题是下一次冲刺要实现的目标和范围。
确定 Sprint的目标
对产品backlog 中 item 进行估算,以作为是否放入下期的参考。
对于需求不清楚的 item,请 Product Owner 说明。
输入是 Product backlog
输出是 Sprint backlog
每日站会 (Sprint Daily Standup)
站会的目标是促进信息在团队内共享与透明。

回答3个问题
本次会议之前,我做了哪些事情?
本次会议之后,我准备做什么事情?
目前我是否碰到障碍,阻碍我达成目标?
每天15分钟
不是深入的问题讨论
每天固定时间召开


Sprint 评审会 (Sprint Review)
Sprint 评审会在冲刺末期召开,检查本期的成果。
团队全体参与
邀请相关干系人参与
2-4小时
Product Owner可以拒绝接收成果


回顾会 (Sprint Retrospective
团队一起复盘本次冲刺的过程,总结经验与教训,并形成切实可行的改进清单。
Sprint评审会结束后召开
时间2-4小时
全团队参与


5大价值观
承诺 Commitment - 愿意对目标做出承诺
专注 Focus – 全身心都用到你承诺的工作上去
开放 Openness – 团队内所有信息对所有人开放
尊重 Respect – 每个人都有他独特的价值和经验
勇气 Courage – 勇于承诺,履行承诺,敢于说不

三、什么是结对编程?

结对编程(Pair Programming)是一种敏捷软件开发方法中的协作技术,它涉及两个程序员在同一时间共同工作于同一段代码。这种编程方式可以带来多个好处,同时也存在一些挑战。以下是对结对编程的一些理解:
1. 结对编程的核心是协作,两个开发者共同解决问题,这可以促进知识共享和团队合作。
2.在结对编程中,一个开发者编写代码时,另一个开发者可以实时审查代码,这有助于提高代码质量和减少错误。
3. 对于经验较少的开发者来说,结对编程是一个很好的学习机会,他们可以从更有经验的搭档那里学习到最佳实践和技巧。
4. 两个人一起工作可以更快地发现和解决问题。
5.结对编程可以减少因个人疏忽导致的错误。
6.结对编程可以视为持续集成的早期形式,两个开发者频繁地合并他们的代码,从而减少集成问题。
7.在结对编程中,开发者可以交替扮演“驾驶员”和“导航员”的角色。驾驶员负责编写代码,而导航员负责审查代码并提供指导。
8.结对编程要求开发者之间有良好的沟通,这有助于提升整个团队的沟通能力。
9. 结对编程可能会遇到一些挑战,如协调两个开发者的工作节奏、处理个人工作风格差异、以及可能的社交动态问题。
10.为了有效地进行结对编程,需要有适当的工作环境和支持协作的工具,比如双显示器设置、共享代码编辑器或集成开发环境(IDE)。
12.虽然结对编程可以提高代码质量,但也有可能影响开发速度,因为需要两个开发者同步工作,这要求团队在质量与速度之间做出权衡。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值