SE Devops

  1. Implications of DevOps
    • Quality of deployed change is important
    • Reliability and repeatability of delivery mechanism should be high
  2. Two key time points in development
    • Developer commits a change
    • Change is deployed to production
  3. Most sensitive time in software development
    Software release
  4. Why is software release sensitive?
    • System incompatibilities
    • System failures
  5. Four considerations in release planning
    • 1. Define and agree on release and deployment plans with customers/stakeholders
    • 2. Ensure compatibility of assets and service components in release packages
    • 3. Ensure integrity of release packages in configuration management system
    • 4. Ensure all release and deployment packages are tracked, installed, tested, verified and uninstalled/rolled back if needed.
  6. Why does devops matter
    Bad deployment is expensive
  7. Operations staff tasks
    • - Analyze logs to identify issues
    • - Routine audits of systems and software
    • - Perform backups
    • - Apply OS patches, updates and config changes
    • - Install new hardware and software
    • - Manage user accounts
    • - Answer technical queries and assist users
    • - Ensure system integrity
    • - Document system configuration
    • - Troubleshoot problems
    • - Optimize system performance
    • - Ensure network stability
    • - Manage filesystems
  8. Seven stages in devops
    • 1. Continuous Development
    • 2. Continuous Integration
    • 3. Continuous Testing
    • 4. Monitoring
    • 5. Feedback
    • 6. Deployment
    • 7. Operation
  9. What is continuous development
    Use of an iterative software development process
  10. Essential tools in continuous development
    • Version control
    • Build systems
  11. What is continuous integration?
    Automation building the system
  12. Example software used for continuous testing
    J unit, gtest, Selenium, TestNG
  13. Where in the devops cycle is Docker most often used?
    Continuous testing
  14. Benefits of continuous deployment
    • Removes need for scheduled releases
    • Accelerates bug resolution
    • Accelerates feedback from users
  15. Requirement for continuous deployment
    Automated testing environment
  16. How does blue/green deployment work?
    • - Two environments, one is deployed while the other is being developed
    • - When it's time to update, swap them around
    • - Update the old deployment environment and develop it further
  17. How does canary releasing work?
    • - A small number of users (maybe 10%) will be given the update
    • - The update will be closely monitored
    • - If the "canary dies" the update will be rolled back
    • - Otherwise, the update will be rolled out to everyone
  18. How does A/B testing work?
    • - Different deployments/versions are released to different groups
    • - Metrics are used to determine which gives best outcome
  19. What things might be monitored?
    • Patterns of use
    • Resource failures
    • Security
    • Performance
  20. Resource failure examples
    • Unreachable server
    • Low memory
  21. Why monitor patterns of use?
    • Capacity planning
    • Determine if/where more development effort is needed
  22. Most important thing to monitor
    Customer satisfaction
  23. Things that are (generally) important to customers
    • Features
    • Availability
    • Response time
  24. Most important concern for the business
    Cost efficiency
  25. Aspects of cost efficiency
    • Utillization
    • Optimization
    • Automation
  26. Uses of continuous feedback
    • Guiding current release improvements
    • Guiding future release plans
  27. What does continuous operation ensure?
    • Shorter development cycles
    • Faster integration of user feedback
    • Accelerated time to market
  28. List the 8 Netflix DevOps stages
    • Code check-in
    • Continuous integration
    • Bake
    • Deployment
    • Post-deploy test
    • Hotfix
    • Canary
    • Live
  29. What is baking (Netflix)
    Creating the containers/images
  30. Why are software containers useful/needed?
    • Because software does not run in an isolated environment
    • Allows isolation of running environment from host environment
  31. Key jobs of containers
    • Keep applications' execution environments isolated
    • Share underlying OS kernel
    • Allow combinations of software components
  32. Key benefits of containers
    • Application isolation
    • Disposable
    • Cost-effective scaling
    • Benefits of VMs
  33. Container abstraction layer provides... (4)
    • Lighter weight than a full VM
    • Better resource usage
    • Better application development
    • Improved developer productivity
  34. What does Docker do?
    Creates, deploys and runs containers (and their applications)
  35. Developer steps (using Docker)
    • 1. Write and share code using containers
    • 2. Push application to test environment 
    • 3. Fix bugs and redeploy
    • 4. Push image to production
  36. Three components of docker architecture
    • Docker client (local)
    • Docker host (local)
    • Registry (remote)
  37. What does the docker host do?
    • Listen for API requests
    • Manages images and containers
  38. What is a docker image?
    Read-only instructions for creating a docker container
  39. What is a docker container?
    Runnable instance of an image
  40. Common container orchestrators
    • Kubernetes (K8s)
    • Ansible
    • Puppet
    • Salt
    • AWS CloudFormation
Author
Ant
ID
359746
Card Set
SE Devops
Description
Updated