【DevOps核心理念基础】3. 敏捷开发最佳实践

一、敏捷开发最佳实践

1.1 项目管理

1.2 需求管理

1.3 技术架构

1.4 技术开发

1.5 测试

二、敏捷开发最佳实践

2.1 敏捷开发的执行细节

三、全面的DevOps工具链

四、版本控制和协作开发工具

4.1 集中式版本控制工具

4.2 分布式版本控制工具 


一、敏捷开发最佳实践

1.1 项目管理

  • 迭代开发

  • 技术团队的人员素质,人员配备完整

  • 及时有效的沟通方式,比如 每日会议、广告墙、任务板 

  • 公开透明和项目技术和项目文档


1.2 需求管理

  • 需求订单 inbox,类似redmine,jira的订单显示方式

  • 业务流程简图

  • 用例驱动开发

  • 良好的处理通知机制

1.3 技术架构

  • 演进可行的基础资源、网络架构,每一步都是可用的

  • 演进可用的人机交互设计

  • 基于组件、插件、扩展的架构设计

1.4 技术开发

  • 结对编程(两个或多个员工沟通顺畅或者对某个业务属性分一个队完成任务)(只是建议

  • 测试驱动开发(根据测试用例进行开发)(只是建议,需要看团队风格

  • 代码重构(经常优化代码)

  • 代码安全和规范(后章节有专门工具)

1.5 ​​​​​​​测试

  • 单元编程

  • 并行测试边开发边测试,模块或者类测试)

  • 完善的测试报告

二、敏捷开发最佳实践

2.1 敏捷开发的执行细节

  • 重要的目标是通过持续地及早交付有价值的软件使客户满意

  • 拥抱需求的变化,乐观面对需求,敏捷掌控软件生命周期

  • 经常地交付可工作的软件,倾向于采取较短的周期

  • 业务人员、开发人员、测试人员必须相互合作,高效沟通

  • 不论团队内外,传递信息效果最好效率也最高的方式是面对面的交谈

  • 可工作的软件是进度的首要度量标准

  • 不断地坚持针对软件开发,架构的优化,敏捷能力由此增强

  • 以简洁为本,它是极力减少不必要工作量的有效手段

  • 团队定期总结经验,反思自身,不断提高团队的专业水平

三、全面的DevOps工具链

  • 版本控制 & 协作开发 : GitHub、GitLab、SubVersion、 BitBucket

  • 自动化构建 和 测试: Maven 、Selenium、PyUnit、JUnit、PHPUnit

  • 持续集成&交付: Jenkins

  • 容器平台: Docker、Rocket、 Ubuntu ( LXC)、第三方厂商如(AWS/阿里云)

  • 配置管理: Saltstack、Ansible

  • 容器调度平台(常用于微服务): OpenShift、Cloud Foundry、Kubernetes.Mesosphere、 Docker Swarm

  • 日志管理: Logstash、CollectD、StatsD

  • 监控,警告&分析:Nagios、Ganglia、Sensu、zabbix、ICINGA、Graphite、 Kibana

四、版本控制和协作开发工具

4.1 集中式版本控制工具

  • 代表工具 SVN

  • 由一个中央服务器控制所有的文件版本,集中式管理

  • 所有客户端都可以对中央库进行操作,由中央服务器保证版本的统一

  • 特点是安全性不够好,针对中央服务器的通信比较频繁,如果版本库文件过多,服务器压力较

4.2 分布式版本控制工具 

  • 代表工具 GIT推荐

  • 本地就是一个中央服务器的完整镜像,直接提交到本地的镜像

  • 不依赖中央服务器的服务,不依赖网络,中央服务器负载压力小特点是 安全性好每个开发者本地就是一个副本,储存也可以得到分布式架构的优化

猜你喜欢

转载自blog.csdn.net/ladymorgana/article/details/132839343