Devops概念:

Development和operations的组合,官方一点的说是以面向IT运维的工作流,是以开发自动化、CI、CD为基础来优化开发、测试、运维之间的工作环节。

Devops目的:是填补开发和运维之间信息沟通上的不足,改善团队协作关系。让软件的构建、测试、发布版本更加的快捷、频繁、可靠。

Devops好处:高效交付,改善公司组织文化、提高员工参与感

DevOps希望做到的是软件产品交付过程中IT工具链的打通,使得各个团队减少时间损耗,更加高效地协同工作。专家们总结出了下面这个DevOps能力图,良好的闭环可以大大增加整体的产出。

devops 版本功能设计 devops平台功能_devops 版本功能设计

上文提到了工具链的打通,那么工具自然就需要做好准备。现将工具类型及对应的不完全列举整理如下:

代码管理(SCM):GitHub、GitLab、BitBucket、SubVersion

构建工具:Ant、Gradle、maven

自动部署:Capistrano、CodeDeploy

持续集成(CI):Bamboo、Hudson、Jenkins

配置管理:Ansible、Chef、Puppet、SaltStack、ScriptRock GuardRail

容器:Docker、LXC、第三方厂商如AWS

编排:Kubernetes、Core、Apache Mesos、DC/OS

服务注册与发现:Zookeeper、etcd、Consul

脚本语言:python、ruby、shell

日志管理:ELK、Logentries

系统监控:Datadog、Graphite、Icinga、Nagios

性能监控:AppDynamics、New Relic、Splunk

压力测试:JMeter、Blaze Meter、loader.io

预警:PagerDuty、pingdom、厂商自带如AWS SNS

HTTP加速器:Varnish

消息总线:ActiveMQ、SQS

应用服务器:Tomcat、JBoss

Web服务器:Apache、Nginx、IIS

数据库:MySQL、Oracle、PostgreSQL等关系型数据库;cassandra、mongoDB、redis等NoSQL数据库

项目管理(PM):Jira、Asana、Taiga、Trello、Basecamp、Pivotal Tracker

在工具的选择上,需要结合公司业务需求和技术团队情况而定。

规模化敏捷框架SAFE框架(50-125人)

实例:我们将其分为1、2、3、4、5

1列火车:(版本火车)

2层治理:项目级的管理以及单个项目的,8~12周一个版本;

3级看板:

         实施特性看板——feature

         版本研发看板

         团队看板

4驱团队:就是四个角色,技术leader、QAleader、产品、架构

5项联合

         联合计划会议(项目层次的)

         站会

         各个master会议

         演示会议

         回顾总结会议

Devops工具链:

代码版本管理工具:git、SVN、gitlib

编译:maven、msbuild、make

验证:sona、Junit、jmeter、selenium

部署:蓝绿部署、灰度部署

交付:

环境:docker

敏捷开发宣言:

个体与交互 重于 过程和工具

可用的软件 重于 完备的文档

客户协作 重于 合同谈判

响应变化 重于遵循计划

左边的黑体比右边的更总要,但是并不是代表右边的不要做

敏捷开发十二原则

在敏捷开发中,我们遵循以下准则:

我们的最高目标是,通过尽早和持续地交付有价值的软件来满足客户。

欢迎对需求提出变更——即使是在项目开发后期。要善于利用需求变更,帮助客户获得竞争优势。

要不断交付可用的软件,周期从几周到几个月不等,且越短越好

项目过程中,业务人员与开发人员必须在一起工作。

要善于激励项目人员,给他们以所需要的环境和支持,并相信他们能够完成任务。

无论是团队内还是团队间,最有效的沟通方法是面对面的交谈。

可用的软件是衡量进度的主要指标。

敏捷过程提倡可持续的开发。项目方、开发人员和用户应该能够保持恒久稳定的进展速度。

对技术的精益求精以及对设计的不断完善将提升敏捷性。

要做到简洁,即尽最大可能减少不必要的工作。这是一门艺术。

最佳的架构、需求和设计出自于自组织的团队。

团队要定期反省如何能够做到更有效,并相应地调整团队的行为。