0% found this document useful (0 votes)
6 views43 pages

Introduction To DevOps

Uploaded by

vijaykumarvv0022
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views43 pages

Introduction To DevOps

Uploaded by

vijaykumarvv0022
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Introduction to DevOps

Some background …
SDLC?
Software Development Lifecycle

● Requirement Analysis
● Defining requirements
● Designing architecture
● Development
● Integration
● Testing
● Documentation
● Training
● Deployment
● Maintenance
Models …
Waterfall model

● Linear
● Large codebase
Waterfall model contd …

Drawbacks

● Silo role

Development => Integration => Testing => Deployments => Operations …

● Massive release cycle


● Rigid to changes
The evolution …
Agile model

● Iterative
○ Develop
○ Deliver

● Sprints
● Massive Smaller release cycle
● Rigid to changes Continuous integration and delivery
But, …
Agile model contd …

The issue

● Organizational differentiation
○ Developers
○ Deploy and Support
○ Different KPI
● Still in silo
○ IT
○ Deployment
○ Operations
● Botched up releases
● Unhappy customers
Leveraging agile …
DevOps

A culture

● Collaboration of roles
● You build it, you run it!
● Use of tools and technology
DevOps - Phases
DevOps - Phases

Planning

● Determine scope
● List features
○ Case studies
○ Input from stakeholder
○ Customer requirements
● Prioritize features
● Create backlog
● Tools
○ JIRA, Confluence, Slack
DevOps - Phases

Development

● Design and review


● Code feature
● Review code changes
● Test impact
○ Automated
■ Unit tests
■ Integration tests
○ Manual
Development contd …

● Tools
○ Environment
■ Kubernetes, Docker
○ Provisioning
■ Ansible, Terraform
○ Version Control
■ Git, Bitbucket, Gitlab
○ Test
■ Veracode, Sonar
DevOps - Phases

Integration

● Merge code changes to source


● Execution of automated checks
○ Quality
■ Unit tests
■ Integration tests
○ Compliance
■ Code coverage
■ Code smells
○ Security
■ Static code analysis
● Generate builds for later use
● Tools
○ Jenkins, AWS, Bitbucket, Circle CI
DevOps - Phases

Deployment

● Day 1
● Deploy builds generated in integration step
● Deploy progressively
○ Development
○ Testing
○ UAT
○ Production
● More stringent quality checks at each stage
● Break early and correct mistakes, if any
● Tools
○ Bamboo, Bitbucket, AWS CodePipeline
DevOps - Phases

Operations

● Day 2
● Monitor system health
○ Performance
○ Availability
○ Network
○ Storage
Operations contd …

● Incident management
○ Detect
○ Setup communication
○ Assess impact and determine severity
○ Communicate to customers
○ Escalate to responders
○ Resolve incident.

● Tools
○ Wavefront, Logz, Slack, PagerDuty, JIRA
DevOps - Benefits

● Smaller release cycles


● Improved collaboration
● Quality and reliability
● Security
● Improved time to resolution
● Management of unplanned work
DevOps - Best Practices
DevOps - Best Practices

Agile

● Iterative
○ Develop
○ Deliver

● Workflow
○ Todo => In Progress => Code Review => Done

● Items
○ Epics, Stories, Tasks, etc.
Agile contd …

● Frameworks
○ Scrum
■ Regular cadence
■ Fixed interval
■ Sprint planning, Daily sync, Retrospective
■ Scrum master
○ Kanban
■ Continuous flow
■ Limit work in progress
DevOps - Best Practices

Shift Left

● Testing during development


● Automated tests
○ Unit tests
○ Integration tests
DevOps - Best Practices

Toolset

● Use the right tools for each phase


DevOps - Best Practices

Automation

● From commit, to production


● Unit tests
● Generate build
● Deploy the build
● Integration tests
● E2E tests
● Performance tests
DevOps - Best Practices

Observability

● Sources
○ Logs
○ Traces
○ Metrics
■ Example: Used memory, Used CPU, Request latency, etc.

● Discover issues using the above sources


DevOps - Best Practices

Monitoring

● Broken builds
● Anomalies or issues
● Lack of performance
● Find it before the customer does
Continuous Delivery
Continuous Delivery

● From commit, to production


● Manual hops
○ Dev => Tools => Environment => Release => Ops => Customers

● Automated hops
○ Dev => Version Control => Automated Pipeline => Customers
Continuous Delivery - Benefits

● Velocity
● Productivity
● Sustainability
Continuous Integration / Continuous Delivery and Deployment (CI/CD)

Continuous Integration

● Merge code changes to source


● Generate build
● Validate the build
● Emphasis on automating tests
Continuous Integration contd …

How?

● Automated tests
● Automate test execution on every commits

Benefits

● Lesser bugs
● Smaller feedback loop
● Reduced testing costs
● QA focuses on larger picture
Continuous Integration / Continuous Delivery and Deployment (CI/CD)

Continuous Delivery

● Extension of Continuous Integration


● Deploy build to environments automatically
● Additional verification on deployed environments
Continuous Delivery contd …

How?

● Strong Continuous Integration foundation


● Good test suite
● Feature flags

Benefits

● No need to manually release


● Frequent releases
Continuous Integration / Continuous Delivery and Deployment (CI/CD)

Continuous Deployment

● Extension of Continuous Delivery


● Deploy to customers automatically
Continuous Deployment contd …

How?

● Strong Continuous Delivery foundation

Benefits

● Releases are less risky


● Frequent updates to the customers
● Continuous updates to the customers
Self Learning

● Feature flags
● CI/CD pipeline

How?

● Word document
● Illustrations help
● Quote references

Where?

● Keep it for now


● Submission opens 22nd Oct

You might also like