专栏首页sktjDevOps:原理、方法与实践

DevOps:原理、方法与实践

软件开发中的精益原则

1 )消除浪费。浪费是不会增加产品价值的东西,这里的价值必须是由客户确定的。 在精益思维中,浪费的概念有一个很大的跨越(与日常浪费概念相比)。如果一个开发周 期中在没有人读的文件中收集了需求,那就是浪费。如果一个制造工厂生产的材料比立 即需要的多,那就是浪费。如果开发人员编写比立即需要更多的功能,那就是浪费。在 产品开发中,将开发从一个团队转移到另一个团队是浪费的。理想的是找出客户想要的 东西,然后制作或开发它,并且几乎立即交付客户想要的东西。 2 )增强学习。软件开发是个持续学习的过程,最佳的改善软件开发环境的做法就是 增强学习。使用短周期的迭代(每个迭代都应包括重构、集成测试、部署和交付)可以加 速学习过程。在决定当前阶段的开发内容并对未来改善的努力方向进行调整时,客户反 馈是最重要的学习素材。通过反馈,产品团队能够应对不明确和易变的需求。在软件设 计时,不是去做成更多的文档或详细设计,而是对各种各样的想法进行实际的编码尝试, 在代码完成后马上进行测试,从而使得软件的质量在学习中保持在很高的水平。 3 )尽量延迟决策。面对当前软件复杂系统功能以及设计的不确定性,尽量延迟决 策,直到可以基于更多的事实并且不确定性更容易预测时才做出决定,这使得我们做出 正确决策的可能性变得更大。 4 ) 尽快交付。没有速度,我们无法延迟决策; 没有速度,我们没有增强学习需要的 反馈。交付周期对于学习至关重要: 设计、实施、反馈、改进。这些周期越短,可以学 到的越多。尽可能多地压缩价值流是消除浪费的基本精益策略。 5 )赋予团队权力。软件具体工作中涉及技术决策的细节是做出正确决策的基础,而 没有人比实际工作的人更了解细节, 精益主张将技术决策权利下放到团队的每个人手里, 从而使开发人员有权利来阐述自己的观点并做出决策,这能够极大地改善决策速度和 质量。 6 )内建完整性。当用户认为系统是完整的, 会感觉“是的,这正是我想要的,有人 在我的脑海里!” 市场份额是产品感知完整性的一个粗略测量,因为它衡量了客户的意见 反馈。完整性的软件具有一致的架构,在可用性和适用性方面达到高水平,具有可维护 性、适应性和可扩展性。 7 )全局优化。全局优化使得每个部门之间的联系更紧密。除了努力降低每个部门内 的成本,消除部门之间的隔阂和浪费会产生更显著的效果。在DevOps 成为一大趋势的今 天,开发部门、质量管理部门和运行维护部门之间的协同变得越来越重要了。

三种敏捷方法

scrum xp kanban Sc 「um : 着重于项目管理,特别适于难以提前进行计划的项目。Scrum 以经验过程 控制理论为依据,采用迭代、增量的方法来提高产品开发的可预见性并控制风险。Scrum 框架包括一组Scrum 团队和与其相关的事物: 时间盒、工件和规则。Scrum 团队的目标 是提高灵活性和生产能力,自组织、跨职能,并且以迭代方式工作。Scrum 团队有三个 角色: ( 1 ) Scrum Master ,负责确保成员都能理解并遵循过程;( 2 ) 产品负责人,负责最 大化Scrum 团队的工作价值;( 3 )团队,负责具体工作。Scrum 利用时间盒实现规律性。 被时间盒限定的Scrum 要素有: Sprint 计划会议、Sprint 、每日站会、Sprint 评审会议和 Sprint 回顾会议。Scrum 中的Sprint 是贯穿于开发工作中保持不变的一个月( 或更短时 间)迭代。所有的Sprint 都采用相同的Scrum 框架,并且都交付潜在可发布的最终产品 增量。Scrum 采用了三个主要的工件: 产品Backlog 是开发产品的所有需求的优先排列表; Sprint Backlog 包含了在一个Spri旧内的产品Backlog ; 燃尽图用来衡量剩余的Backlo g 的工作量[7] 。

Kanban : Kanban (看板)是日语单词,是“可视卡片”(或标志)的意思。在丰田, 看板专指将整个精益生产系统连接在一起的可视化物理信号系统。看板的主要规则有: ( 1 )可视化工作流,把产品切分成小块,将每一块写在一张卡片上,然后将卡片贴到墙 上;墙上的每一栏都有名称,以此显示每张卡片在工作流中所处的位置。( 2 ) 限定在制 品( WIP ), 针对工作流的每个状态, 明确限定正在进行中的工作项数量。( 3 ) 衡量并管 理周期时间,完成一个工作项的平均时间,有时称为前置时间(更贴切的术语可能应该是 流通时间) 。优化流程让周期时间尽可能短、尽可能可预测[32) 。

ITIL 的全称是Information Technology Infras tru cture Library (信息技术基础架构库) 。 ITIL 是一套公开的、基于业界最佳实践制定的、用于规范IT 服务管理的流程和方法论。 它以流程为导向,以客户为中心,目的是确保IT 能更好地服务于业务部门,从而让企业 的IT 投资回报最大化。

微服务架构

image.png

zipkin 调用链路图

image.png

监控:zabbix 测试:selenium 配置管理:puppet ansible 编译:maven ant 版本管理:git gitlab 持续集成:jenkins 协同开发:jira docker k8s

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • mysql 读写分离altas

    1、altas2.2.1,只能安装在64位系统上 2、1台管理机,2台DB,1主1从。配置主从同步 3、主从配置管理机登录账号 GRANT ALL ON ...

    用户5760343
  • IOS 改变字体样式 **

    1 import UIKit 2 import CoreText 3 4 class ViewController:UIViewController { ...

    用户5760343
  • flask 使用flask_moment

    //不要和bootstrap同时使用,会冲突 from flask import Flask from flask import render_templa...

    用户5760343
  • Scrum团队如何运作? - 简要指南

    Scrum团队是一组合作的人员,他们共同提供所需的和承诺的产品增量,其中包括三个角色:

    Warren2Lynch
  • 使用 VS Code 开发 Arduino 项目

    在 VS Code 中搜索 Arduino 插件并安装。安装完之后,进行重新加载。

    caoqi95
  • 2017最流行的十大Python库

    AiTechYun 编辑:yuxiangyu 年末是你需要思考过去一年的成就的时候。对于程序员来说,这通常是回顾今年发布的或者最近流行的开源库,因为它们是解决特...

    企鹅号小编
  • pandas中的数值计算及统计基础

    py3study
  • 如何为 DNS 服务器添加反向解析记录

    前一篇文章我们介绍了如何快速搭建 DNS 服务器,本文将向大家介绍如何向 DNS 服务器添加反向解析记录,支持将指定的 IP 解析到对应的域名。

    9527
  • 设计师规划好你的2017了么?

    元宵已经过去了,2016新年已经彻底过完了。说过的快的人一般分两种:第一种无所事事,大量做重复的工作,看起来很忙但是没卵用,日子过的很快。第二种是几乎每天作总结...

    宇相
  • 【python游戏编程之旅】第三篇---pygame事件与设备轮询

    本系列博客介绍以python+pygame库进行小游戏的开发。有写的不对之处还望各位海涵。

    马三小伙儿

扫码关注云+社区

领取腾讯云代金券