Why should you learn about DevOps?
What is DevOps? DevOps integrates software development and IT operations
into a single continuous process that delivers significant benefits to
achieve common business goals.
Before DevOps: Manual processes, build environments manually from scratch,
water development, discuss IT infrastructure after code build, test after
code build, and manually control IT components.
After DevOps: Continuous integration via automation, provision environment
from IT catalog, agile development, provide IT infrastructure during
development, write automated test before code build, and automate IT
infrastructure comprehensively.
Drivers for software development to use DevOps: (1) Reduce time to get
access to necessary IT resources. (2) Improve quality, performance, and
stability of applications. (3) Extend time to improve development
processes. (4) Shorten time to identify problems during development. (5)
Increase agility and decrease duration of development.
DevOps in software development lifecycle:
- | plan | code | build | test | release | deploy | operate
DevOps | yes | yes | yes | yes | yes | yes | yes
continuous delivery | yes | yes | yes | yes | yes | yes | no
continuous integration | yes | yes | yes | yes | yes | no | no
agile development | yes | yes | yes | no | no | no | no
Reasons for IT operations to use DevOps: (1) Increase speed, resilience,
reliability, stability, and predictability of deployment. (2) Decrease time
to resolve customer support cases. (3) Maximize efficiency and reduce the
cost of IT operations. (4) Gain time to improve IT infrastructure. (5)
Improve visibility into IT processes and requirements.
Steps to implement DevOps: (1) Automate deployment. (2) Automate IT
infrastructure. (3) Control source code versions. (4) Build continuous
integration system. (5) Monitor It infrastructure. (6) Monitor
applications. (7) Improve organizational culture. (8) Automate testing. (9)
Visualize essential quality and productivity metrics. (10) Set limits on
work in progress.
Benefits of DevOps for organizations: (1) Decrease time to market. (2)
Increase responsiveness to emerging opportunities. (3) Reduce time to
pinpoint problems across teams. (4) Enlarge customer conversion and boost
customer satisfaction. (5) Maximize performance and mitigate risk.
DevOps toolchain software: Collaboration, planning, source code control,
code quality analysis, build, issue tracking, configuration management,
continuous integration, automated testing, deployment, and monitoring.
Best practices for DevOps: (1) Deliver minimum viable products. (2) Form
dedicated and cross-functional teams. (3) Maximize flow of work. (4) Use
loosely coupled architecture. (5) Deliver in small and frequent batches.
(6) Eliminate overhead. (7) Automate testing, integration, and release. (8)
Continuously capture customer feedback. (9) Identify actionable insights.
Databases in DevOps: (1) Manual handling of databases is the weak link in
the continuous delivery chain. (2) Databases need a reliable automation and
integration process. (3) Databases need specialized database tools. (4)
Databases need to follow the same best practices as processes as other
managed DevOps resources. (5) Databases are crucial for applications.