|
敏捷开发软件开发是近数十年软件开发实践中革命性的改变之一。它提倡适应计划、进化发展、早期交付和持续改进,它鼓励快速和灵活应对变化。为了实现这一点,需优化整体的开发生命周期。至于优化,只要有可能,自动化关键部分——这是显而易见的。
什么该自动化?
每个软件和软件开发的每个阶段都该自动化。
一些人可能认为自动化一切是一种野心,甚至是不可能的。不管怎样,我认为我们应该考虑将这个阶段作为我们最后的阶段,并且努力实现它。最后,我们正在实施敏捷开发,这是一个不断持续改进的过程。
敏捷开发后的主要观点是迅速、频繁的交付。任何的重复都应该自动化,或者尝试减少在其之上花费的时间。这应该适用于项目中的每个地方。
DevOps工具链
我给SDLC每个阶段做了一些分类,包括DevOps工具。我们应该至少尝试采用每个类别中的一种工具来处理解决方案。
计划与分析
- 捕捉和追踪 (JIRA, ServiceNow).
- 文件或 Wiki页面 (Confluence).
- 协同(Slack, HipChat).
设计与实现
- SCM (Subversion, Git, Mercurial).
- IDE (Eclipse, IntelliJ, Visual Studio).
构建与发布(CI/CD)
- 资源库管理(Artifactory, Nexus).
- 构建工具 (Jenkins, Bamboo).
- 配置管理(Chef, Puppet, Ansible).
- 云(AWS, Azure, OpenStack).
- 容器 (Docker).
集成与测试
- 源代码验证 (SonarQube).
- 安全测试 (HP Fortify).
- 功能测试(JUnit, Cucumber, Selenium).
- 性能测试 (SOASTA).
运营
- 监控 (Splunk).
- 分析 (Adobe Analytics, Flurry, TeaLeaf).
- BI (Kibana, Tableau).
摘自:http://mp.weixin.qq.com/s?__biz=MzAxOTAzMDEwMA==&mid=2652502392&idx=1&sn=8b3211b52c11ee5bc0f3f822afa60d80&chksm=80201043b7579955091ddb3e90ee00e5ffda00abf22cfece4cf75021271ae91931640a75f963&mpshare=1&scene=23&srcid=0315XE0j4iGYaUfcTmNd6gqE#rd |
|
|