- Implementing Modern DevOps
- David Gonzalez
- 344字
- 2021-07-08 10:11:15
Traditional release management
Through the years, companies have pushed the development of their IT systems out of their business core processes: retail shop business was retail and not software but reality has kicked in very quickly with companies such as Amazon or Alibaba, which can partially attribute their success to keeping their IT systems in the core of the business.
A few years ago, companies used to outsource their entire IT systems, trying to push the complexity aside from the main business in the same way that companies outsource the maintenance of the offices where they are. This has been successful for quite a long time as the release cycles of the same applications or systems were long enough (a couple of times a year) to be able to articulate a complex chain of change management as a release was a big bang style event where everything was measured to the millimeter with little to no tolerance for failure.
Usually, the life cycle for such projects is very similar to what is shown in the following diagram:

This model is traditionally known as waterfall (you can see its shape), and it is borrowed from traditional industrial pipelines where things happen in very well-defined order and stages. In the very beginning of the software industry, engineers tried to retrofit the practices from the traditional industry to software, which, while a good idea, has some drawbacks:
- Old problems are brought to a new field
- The advantages of software being intangible are negated
With waterfall, we have a big problem: nothing moves quickly. No matter how much effort is put into the process, it is designed for enormous software components that are released few times a year or even once a year. If you try to apply this model to smaller software components, it is going to fail due to the number of actors involved in it. It is more than likely that the person who captures the requirements won't be involved in the development of the application and, for sure, won't know anything about the deployment.
- 軟件安全技術
- Docker and Kubernetes for Java Developers
- Hands-On Machine Learning with scikit:learn and Scientific Python Toolkits
- 造個小程序:與微信一起干件正經事兒
- Designing Hyper-V Solutions
- 并行編程方法與優化實踐
- Visual Basic程序設計基礎
- Clojure Web Development Essentials
- VMware vSphere 5.5 Cookbook
- 程序員面試金典(第6版)
- Magento 2 Developer's Guide
- Python程序設計現代方法
- 計算機應用基礎
- C語言解惑:指針、數組、函數和多文件編程
- OpenCV:Computer Vision Projects with Python