Git Product home page Git Product logo

devops-workshop's People

Contributors

rofrano avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

devops-workshop's Issues

Add Docker support

As a: Service Provider
I need: the ability to deploy my service using Docker
So that: I can move with speed and agility

Assumptions:

  • Need to create a Dockerfle for the service
  • Need to update Travis CI to use Docker version

Acceptance Criteria:

Given I have my service in a Docker image
When I user docker run
Then I should have my service running in a contatiner

Add Kubernetes support

As a: Service Provider
I need: the ability to deploy my service on Kubernetes
So that: I can easily scale it out horizontally as needed

Assumptions:

  • Need to create Kubernetes manifests
  • Need a to deploy a Redis database in Kubernetes

Tasks:

  • Create a deployment.yaml file for service
  • Create a service.yaml file for the service
  • Create a redis.yaml file to deploy Redis as a StatefulService

Acceptance Criteria:

Given I have my service in Kubernetes
When I ask Kubernetes to scale to 5 instance
Then I should have 5 instances of my service running

Setup Continuous Integration

As a: Developer
I need: the ability to continuously test my code
So that: I can know if a Pull Request has broken the build

Assumptions:

  • We will use Travis CI
  • Need to tell Travis CI that we need a Redis database

Acceptance Criteria:

Given I have set up Travis CI
When I make a Pull Request
Then my automated tests should run automatically
And if they fail the build will be stopped

Add ability to delete a counter

As a: User
I need: the ability to delete a counter
So that: I can remove unwanted counters

Assumptions:

  • Deleting a counter will remove it from the database
  • If the counter doesn't exist a 204_NO_CONTENT will be returned

Acceptance Criteria:

Given I have counter named foo
When I delete the counter named foo
Then I should receive a 204_NO_CONTENT
And I retrieve the counter named foo
Then I should receive 404_NOT_FOUND
And I delete the counter named foo again
Then I should receive a 204_NO_CONTENT

Add a counter where each GET increments the counter

As a: User
I need: a way to register a hit on the counter
So that: it increments with every access

Assumptions:

  • Calling the GET /counter URl will increment the counter
  • No need for the counter to be persistent for now

Acceptance Criteria:

Given I have a counter
When I call the /counter URL
Then I should see the counter increment

Create a skeleton Flask service

As a: Service Provider
I need: a minimal Flask service
So that: my developers have a starting point to add code

Assumptions:

  • Only the root / URl needs to be defined
  • Call it app.py for now

Acceptance Criteria:

Given I have a skeleton Flask app
When I call the / URL
Then I should see "Hello from Flask" returned

Make the counter persistent

As a: User
I need: the hit counter to persist the last known count
So that: I don't loose track of the count after the service is restarted

Assumptions:

  • We will use Redis as the persistent store
  • A Redis image from Docker should be used

Tasks:

  • Need to update the Vagrantfile with Redis Docker image
  • Need to create a Model that uses Redis

Acceptance Criteria:

Given I have a persistent counter
When I advance the hit counter to 2
And I restart the hit counter service
And I call the hit /counter URL
Then I should see 3 returned from the service

Add ability for multiple counters that are RESTful

As a: User
I need: the ability to create multiple RESTful counters
So that: I can keep track of multiple hit targets

Assumptions:

  • We will implement using REST API guidelines
  • Add ability to create multiple named counters
  • Add ability to update counters by name

Tasks:

  • Need to update root / URL to return json message
  • Need to rename /counter to /counters
  • Need to change GET to only return the counter
  • Need to implemtent POST to create new counters
  • Need to implement PUT to update multiple counters

Acceptance Criteria:

Given I have a multi-counter ability
When I create a counter named foo
And I update the counter named foo to 1
And I call the hit /counters/foo URL
Then I should see 1 returned from the service

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.