Code Monkey home page Code Monkey logo

devops-workshop's Introduction

Agile DevOps WorkShop

An introduction to agile processes, elastic cloud computing, configuration management, and automated test/build/deploy cycles.

1. Background

Agile DevOps (a portmanteau of Development and Operations) is a holistic approach to engineering, testing, operating, and maintaining software applications and their dependencies in an Agile manner. Agile DevOps leverages the robust communication patterns of Agile software development, and further adds a culture and process whereby all members of the software team work together in an environment of shared responsibility.

Agile embraces the idea that software requirements and priorities constantly change; and that conversations involving real-world examples produce the best requirements. By emphasizing robust communication and short feedback loops, further bolstered by real-world prototypes, Agile reduces technical risk and the cost of incorrect assumptions.

This approach of maximizing communication, and driving a product's strategy via empirical evidence makes Agile an extremely effective way to manage a software project.

However, Agile is often only applied to the development part of the software lifecycle. In this case, an Agile software development team will have strong feedback loops and use prototypes to spur robust conversation, while other members of the team remain isolated. These groups include:

  • Testing: Functional and user acceptance testing.
  • Build/Deployment: Compiling an application for distribution or deployment.
  • Operations: Maintaining an application in a production capacity.
  • Incident Response: Responding to errors or outages.
  • Monitoring: Knowing an application's state and how it is affecting customers.

With Agile DevOps, all members of the team work together. This way everyone fully understands the customers needs and how to holistically fulfill them. Some examples include:

  • Software Architecture: How the application is developed will mimic the production needs and constraints.
  • Capacity Planning: Ensuring the production application serves the expected user volume.
  • Codified Operations: The exact specification for every server is saved and audited for future use.
  • Automated Builds/Deploys: New team members will know how to test/build/deploy the application quickly and easily.
  • Robust Uptime: Software and infrastructure can work together to "self-heal" if necessary.

In this way, Agile DevOps eliminates barriers between team members and brings the benefits of the Agile process through to the entire software development lifecycle.

2. Organization

This is a workshop-style class which involves presentation and examples provided by the instructor. Starting with an overview of Agile DevOps, the workshop will break into 5 short real-world examples. These examples will showcase how the different parts of the Agile Software DevOps Lifecycle work together to create a holistic approach to sustainable software applications. The workshop will conclude with a question-answer period to help close any knowledge gaps and to give advice on how to communicate the value of DevOps to others.

The total length of the course will be 4 hours.

3. Objectives

The goal of this workshop is to help you understand the following:

  1. What Agile DevOps is, how it builds upon Agile Development, and what benefits it brings to reducing technical risk.
  2. How Agile DevOps can fit in, and help close gaps within, your current stake holder needs and processes.
  3. How coalescing roles within a team leads to a culture of shared responsibility, and therefore better software for your customers.
  4. How the different facets of the Agile Software DevOps Lifecycle (such as Configuration Management and Automated Deployments) work together holistically.
  5. How to explain DevOps to others, and how to generate buy-in for its adoption within your organization.

4. Topics

This workshop will cover the following topics:

  1. Elastic Cloud Computing: Using Amazon Web Services, you will see how quickly new systems infrastructure can be created and released, based on actual need.
  2. Configuration Management: Using Chef, you will see how new servers can be automatically configured in a auditable and verifiable process.
  3. Automated Builds/Testing: Using TravisCI, you will see how an application can be automatically tested for correctness whenever any change is contributed.
  4. Automated Deployment: Using Capistrano, you will see how an application can be automatically deployed to production in a secure and sustainable way.
  5. Robust Monitoring: Using NewRelic, you will see how a production application will automatically collect real-time usage data and allow proactive software support for your customers.

5. Suggestions for Success

For members who are new to Agile, this course will be more difficult as Agile DevOps builds upon the benefits and understanding of the Agile Process. If new to Agile, please look at the following materials before [Insert Materials Here].

If familiar to Agile but new to DevOps, try to bring each facet of DevOps back to how it works tightly with the development phase of software. The key is that developed software does little good unless the envrionment it lives in aligns with your architecture, you business, and your customers.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.