際際滷

際際滷Share a Scribd company logo
DevOps
Farzaneh Varaminian
Introduction to DevOps
 DevOps is the offspring of agile software development.
 DevOps is a culture which promotes collaboration between
Development and Operations.
 DevOps = Development + Operations
Models before DevOps
 Waterfall Model
 Agile Methodology
DevOps grows out of the agile software development movement
Before DevOps - Waterfall
 Long planning phases
 Sequential
 Top-down approach
 Linear
 A lot of time to produce the product
 The working software was delivered only after the final
phase
 Suitable for projects with stable requirements.
(Requirement will no change by the time)
Before DevOps - Waterfall
Before DevOps - Agile Methodology
 Continuous Iteration of development and testing
 Development and testing are concurrent
 Lack of collaboration between developers and operations
Before DevOps
 Development Team (Dev)
 Quality Assurance Team (QA)
 Operations Team (Ops)
Before DevOps - Development Team
 Gathering business requirements for a software program
and writing codes.
 Ship as many features as possible.(Speed)
Before DevOps - Quality Assurance Team
 Test the program in an isolated environment.
 Find as many bugs as possible.
Before DevOps - Operations Team
 Stability of Application
 Deploying
 Networking
 Database operations
Before DevOps - Problems
 Dev is unaware of QA and Ops roadblocks, that prevent the
program from working as anticipated.
 QA and Ops are typically working across many features and
have little context of business purpose and value of
software.
 Each group has opposing goals that can lead to
inefficiency and finger pointing when something goes
wrong. (each team is a black box for the other team)
Dev ops
Development & Operations - Opposing Goals
Development
Speed
Operations
Stability
DevOps Goals
 Fast Time To Market
 Few production failures
 Immediate recovery from failures
Development & Operations
Speed & Stability
With DevOps
 Happier Teams
 Tech employees tend to be happier doing devops than doing traditional
silos
 More time to innovating
 Devs dont feel like they have to fight to get their work out there
 Operation people dont have to fight devs for stability
 Happier Customers
 Give customers the features they want quickly
 Use more stable Applications
What is DevOps?
DevOps is the practice of operations and development
engineers participating together in the entire service
lifecycle, from design through development process to
production support.
Why DevOps?
When to adopt DevOps?
It should be used for large distributed applications:
 eCommerce sites
 Applications hosted on a cloud platform
When not to adopt DevOps?
It should not be used in a mission-critical application,
which it need strict access controls on production
environments:
 Bank
 Power
 Sensitive data sites
DevOps Life Cycle
DevOps Life Cycle: Continuous Development
 Planning
 Understanding the vision of project
 Envisioning a software based on perceptions
 Software Coding
 Developing the source code
 Maintaining the code (SCM)
 Version Control tools: Subversion, Git
 Packaging
 Producing .exe, jar, war files
 Using Maven, Gradle
DevOps Life Cycle: Continuous Integration
 The core of entire life cycle.
 Frequently merging code changes done by developers.
 Developers run tools for unit testing, code review,
integration testing.
 Early reflection of end-users to the updated code.
 Tool for procuring the updated source code and
constructing to the build formate: Jenkins
DevOps Life Cycle: Continuous Testing
 Continuously testing of developed software for bugs.
 Automation testing Tools: Selenium, JUnit, TestNG
 Using Docker containers to simulate the test environment.
 Automation testing saves the time.
DevOps Life Cycle: Continuous Deployment
 Here Code is deployed to the production server.
 Configuration Management: Precise deployment of code on
all servers
 Tools used: Ansible, Puppet, Chef
 Code is released to servers, Updates are scheduled for
servers
 Containerization Tool: Maintaining consistency across the
environment where the application deployed.
 Tools used: Docker, Vagrant
DevOps Life Cycle: Continuous Monitoring
 Continuously monitor the performance and stability of
application
 Vital information about the use of software like
 Memory usage (low memory error)
 Cpu
 Disk I/O
 Application log
 Network traffic
 Other resources over time
 Increasing the productivity and reliability of the system
 Tools: Sensu, ELK stack, New Relic
Continuous Monitoring: Why do Monitoring?
 Fast Recovery
 The sooner a problem detected, the sooner it can be fixed
 Better root cause analysis
 The more data you have, the easier it is to determine the causes
 Visibility across the teams
 Give useful data to both developers and production people about the
performance of code in production.
 Automated response
 Monitoring data used alongside orchestration to provide automatic
responses to events and recovery from failures
Thank You.

More Related Content

Dev ops

  • 2. Introduction to DevOps DevOps is the offspring of agile software development. DevOps is a culture which promotes collaboration between Development and Operations. DevOps = Development + Operations
  • 3. Models before DevOps Waterfall Model Agile Methodology DevOps grows out of the agile software development movement
  • 4. Before DevOps - Waterfall Long planning phases Sequential Top-down approach Linear A lot of time to produce the product The working software was delivered only after the final phase Suitable for projects with stable requirements. (Requirement will no change by the time)
  • 5. Before DevOps - Waterfall
  • 6. Before DevOps - Agile Methodology Continuous Iteration of development and testing Development and testing are concurrent Lack of collaboration between developers and operations
  • 7. Before DevOps Development Team (Dev) Quality Assurance Team (QA) Operations Team (Ops)
  • 8. Before DevOps - Development Team Gathering business requirements for a software program and writing codes. Ship as many features as possible.(Speed)
  • 9. Before DevOps - Quality Assurance Team Test the program in an isolated environment. Find as many bugs as possible.
  • 10. Before DevOps - Operations Team Stability of Application Deploying Networking Database operations
  • 11. Before DevOps - Problems Dev is unaware of QA and Ops roadblocks, that prevent the program from working as anticipated. QA and Ops are typically working across many features and have little context of business purpose and value of software. Each group has opposing goals that can lead to inefficiency and finger pointing when something goes wrong. (each team is a black box for the other team)
  • 13. Development & Operations - Opposing Goals Development Speed Operations Stability
  • 14. DevOps Goals Fast Time To Market Few production failures Immediate recovery from failures Development & Operations Speed & Stability
  • 15. With DevOps Happier Teams Tech employees tend to be happier doing devops than doing traditional silos More time to innovating Devs dont feel like they have to fight to get their work out there Operation people dont have to fight devs for stability Happier Customers Give customers the features they want quickly Use more stable Applications
  • 16. What is DevOps? DevOps is the practice of operations and development engineers participating together in the entire service lifecycle, from design through development process to production support.
  • 18. When to adopt DevOps? It should be used for large distributed applications: eCommerce sites Applications hosted on a cloud platform
  • 19. When not to adopt DevOps? It should not be used in a mission-critical application, which it need strict access controls on production environments: Bank Power Sensitive data sites
  • 21. DevOps Life Cycle: Continuous Development Planning Understanding the vision of project Envisioning a software based on perceptions Software Coding Developing the source code Maintaining the code (SCM) Version Control tools: Subversion, Git Packaging Producing .exe, jar, war files Using Maven, Gradle
  • 22. DevOps Life Cycle: Continuous Integration The core of entire life cycle. Frequently merging code changes done by developers. Developers run tools for unit testing, code review, integration testing. Early reflection of end-users to the updated code. Tool for procuring the updated source code and constructing to the build formate: Jenkins
  • 23. DevOps Life Cycle: Continuous Testing Continuously testing of developed software for bugs. Automation testing Tools: Selenium, JUnit, TestNG Using Docker containers to simulate the test environment. Automation testing saves the time.
  • 24. DevOps Life Cycle: Continuous Deployment Here Code is deployed to the production server. Configuration Management: Precise deployment of code on all servers Tools used: Ansible, Puppet, Chef Code is released to servers, Updates are scheduled for servers Containerization Tool: Maintaining consistency across the environment where the application deployed. Tools used: Docker, Vagrant
  • 25. DevOps Life Cycle: Continuous Monitoring Continuously monitor the performance and stability of application Vital information about the use of software like Memory usage (low memory error) Cpu Disk I/O Application log Network traffic Other resources over time Increasing the productivity and reliability of the system Tools: Sensu, ELK stack, New Relic
  • 26. Continuous Monitoring: Why do Monitoring? Fast Recovery The sooner a problem detected, the sooner it can be fixed Better root cause analysis The more data you have, the easier it is to determine the causes Visibility across the teams Give useful data to both developers and production people about the performance of code in production. Automated response Monitoring data used alongside orchestration to provide automatic responses to events and recovery from failures