The DevOps Lifecycle: Keep C.A.L.M. and Carry On
Once upon a time there were two teams in charge of creating great software: Dev and Ops. Though they worked on the same product, their goals were diametrically opposed to each other. On one hand there was the Dev team pushing for feature changes, and on the other hand was the Ops team striving for stability.
Since the advent of the personal computer in the 80’s these teams have been siloed and burdened with dysfunctional communication during a product lifecycle that has historically led to delays and broken code. It was a sad tale to tell to end users everywhere.
Today, things have changed, radically. An entire movement was formed by new technology like cloud infrastructure and virtual machines. This cultural change in perspective combines the two teams into one lean mean rapid deployment machine, leveraging code to manage the infrastructure. It is called DevOps.
Transparency, collaboration and cross-functional teams with polyglot skills are breaking down the walls with automation and rapid deployment. Software gets shipped quickly, more often, code failures are detected and corrected faster and the product runs smoother. This sped up process allows innovation to flourish and companies to do more in less time.
“But,” you might ask, “how is the DevOps Lifecycle different?” It can be summed up with the acronym C.A.L.M.S.
- C – Culture
- A – Automation
- L – Lean
- M – Measurement
- S – Sharing
The traditional software development lifecycle follows a Waterfall methodology that eventually morphed into the Agile SCRUM lifecycle. But for most enterprises the current lifecycle resembles something like an Agile-SCRUM-Fall.
The DevOps Lifecycle Looks Like This:
- Check in code
- Pull code changes for build
- Run tests (continuous integration server to generate builds and arrange releases): Test individual models, run integration tests, and run user acceptance tests.
- Store artifacts and build repository (repository for storing artifacts, results, and releases)
- Deploy and release (release automation product to deploy apps)
- Configure environment
- Update databases
- Update apps
- Push to users – who receive tested app updates frequently and without interruption
- Application and Network Performance Monitoring (preventive safeguard)
- Rinse and repeat
The DevOps Lifecycle = A rapid release cycle with a strong feedback loop.
Utilizing a DevOps lifecycle, products can be continuously deployed in a feedback loop through:
- Infrastructure Automation
- Configuration Management
- Deployment Automation
- Infrastructure Monitoring
- Log Management
- Application and Performance Management
To learn more about DevOps tools, visit our DevOps Tools Glossary.
What are your thoughts? Let us know!
Tools for DevOps
To learn more about some of the DevOps tools that we use at New Relic, visit our DevOps Tools Glossary.