What is DevOps?
Development and operations
the word DEVOPS is a combination of 2 words development and operation
this is culture that promotes the collaboration between development team and the operations team. With the help of DevOps , the application can be delivered faster and serve their customer need nicely
developer and tester
why do we need devops
thIs is more about how devops addresses dev and ops challenges
dev
challenges
|
devops
solution
|
code
deployment time s higher
|
quick
deployment of code |
poor code management
|
effective ode management due to continuous integrations |
ops
challenges
|
devops
solution
|
up
time maintenance is difficult
|
maximum
reliability of software uptime |
poor code management
|
automation tools are highly
effective |
server
monitoring is tough
|
continuous
monitoring
|
feedback if not given well
|
continuous monitoring
|
Devops lifecycle
Devops is the effective collaboration between development and IT operations. It is not possible to understand Devops without knowing Devops lifecycle.
The important phase of DevOps life cycle are shown which promotes continuous integration and continuous monitoring
Devops vs agle
Customer Developer Operations
+ <=====> + <========> +
Software Requirements Tester IT infrastructure
Agile approach address gap between customer and developer communities
DevOps approach address gap between developer and IT operations communication
Devops principles
customer- centric actions
end to end responsibility
Continuous integration and automate every thing
monitor and test every thing
work together as a team
devops automation tools
continuous integration
continuous delivery
configuration management
configuration monitoring
Continuous integration
Integrating all code changes into a single, authoritative code branch from which production environments are deployed / production software is build
enables early problem detection and provides immediate feedback on code quality, allowing for issues to be identified, diagnosed and fixed immediately, without interruption to a production environment
CI/CD
CI/CD stands for continuous integration and continuous deployment
one of the top challenges for software companies is to respond quickly to market and customer demands
facilitates agile software development methodology
simply put CI/CD is a practice of software development in which you're able to release updates at any time in a sustainable way
changing code is routine, development cycles are more frequent, meaningful and faster
Accepted worldwide to reduce the software development and delivery time
CI
CI is a practice of integrating code in a common branch and producing an artifact(build file / binary file) that can be deployed across environment
Developer merge their changes to the main code branch many time per day
each code merge triggers an automated code build and test sequence
The main point of continuous integration is to detect error as early as possible in build process
check-in ---> source repository ===> server (build, test, result)=====> result
CI pipeline process
Detect changes to the source code repository (new commit appear)
Analysis of the quality of source code(sonar)
project build
perform all unit tests
Generate deployable artifacts
status of report
CI trobleshooting
if any above steps fails
Integration may stop or continue depending on their severity and configuration of the detect
Result are reported to the team via email or chat system
teams fixed the defect and commits it again
task are carried out again
CD
Continuous delivery is an extension of continuous Integration
CD ensures that the code is ready and can be delivered
CD deploys all code changes to testing or staging environment in the build
CD enables builds to be released to the production environment when needed
CD effectively reduces time on the market
automated deployment of artifacts produced from the CI process
requires no human intervention
reduce the risk
painless deployment happier team
reduce cost
a fully automated and transparent
Benefits of CI/CD
detecting bug in early stage- early bug detect less harm it makes
reduct bug count
the development process become more transparent team will are notified when build fails and what caused it
efficient since whole process is automated, manual testing is reduced
Benefits of CD
Reduce the risk
Painless deployment , happier team
reduce costs
a fully automated and transparent
Cost of implementing CI/CD
its an investment and as each investment has its own cost that are worth knowing before implementing this process
CI cost
multiple team need to collaborate
teams needs to write automated tests
server for automated tests
developers need to merge their changes as often as possible
CD
strong foundation in C process
testing culture must be at its best
cd precess reqre the highest quality of test
documentatoin need to be updated frequuently to keep tupn after deployments (JIRA)
the whole process
Some CI/CD tools
Bamboo
Jenkins
Octopus Deploy
TC
bamboo and octopus as CI.CD tools
pull request 2 man rule
trunk based development
ticketing system
Jira-> Branch -> pull request-> build->Deploy
Bamboo
bamboo is a CI/CD tools that ties automated
for stakeholders in company
Configuration management
Configuration management is process for maintaining computer system, server and software in a desired consistent state
Configuration management applies to a verity of system but most often you will be concerned with these:
servers
database and other storage system
operating systems
networking
applications
software
Features of configuration management
- classify and manage system by groups and subgroups
- centrally modify base configurations
- roll out new setting to all applicable system
- automate system identification , patches and updates
- identify outdated, poor performing and non compliant configurations
- prioritize action
- access and apply prescriptive remediation
- Idempotency
- Distribution design to improve managing large number of remote servers
- Helps you automate other wise tedious task and allow an organization to increase agility
- Ansible
- Hashicorp Terraform
- CHEF
- Puppet
- Saltstack
- DevOps lifecycle is continuous loop of several stages, continuous monitoring is the last stage in this loop
Comments
Post a Comment