Giter VIP home page Giter VIP logo

devops-capstone-project's Introduction

I have a passion for building web application back-ends and creating cloud-enabling tools. Additionally, I'm enthusiastic about distributed systems, cloud computing, and open-source projects. It's this passion and enthusiasm that drive me on a purposeful journey.

devops-capstone-project's People

Contributors

chee-zaram avatar

Watchers

 avatar

devops-capstone-project's Issues

Update an account in the service

As a customer accounts service user
I need to update account information in the service
So that I can keep customer details up-to-date

Details and Assumptions

  • Define the fields that can be updated and the format of the update request.

Acceptance Criteria

  • Scenario 1: Valid update request

    • Given a valid customer identifier and correct update information format
    • When a request is made to the service to update the customer information
    • Then the service should reflect the changes in the customer details
  • Scenario 2: Invalid customer identifier

    • Given an invalid customer identifier
    • When a request is made to the service to update the customer information
    • Then the service should return an error indicating that the customer identifier is invalid
  • Scenario 3: Invalid update information format

    • Given a valid customer identifier
    • And an invalid update information format
    • When a request is made to the service to update the customer information
    • Then the service should return an error indicating that the update information format is invalid
  • Scenario 4: Missing customer identifier

    • Given a missing customer identifier
    • When a request is made to the service to update the customer information
    • Then the service should return an error indicating that the customer identifier is missing
  • Scenario 5: Missing update information

    • Given a valid customer identifier
    • And missing update information
    • When a request is made to the service to update the customer information
    • Then the service should return an error indicating that the update information is missing
  • Scenario 6: Unauthorized access

    • Given an unauthorized user
    • When a request is made to the service to update the customer information
    • Then the service should return an error indicating that the user is not authorized to perform the update
  • Scenario 7: Service error

    • Given a valid customer identifier and correct update information format
    • And the service is experiencing an error
    • When a request is made to the service to update the customer information
    • Then the service should return an error indicating that there was an error processing the request

Containerize your microservice using Docker

As a DevOps professional
I need to containerize the customer accounts service in a Docker container
So that the microservice can be easily tested, deployed, and scaled

Details and Assumptions

  • [document what you know]

Acceptance Criteria

Given the Docker image of the microservice
When the container is deployed
Then the service should be running successfully in the container

Create a CD Pipeline to Automate Deployment to Kubernetes

Title: Create a CD pipeline to automate deployment to Kubernetes

As a developer
I need to create a CD pipeline to automate deployment to Kubernetes
So that the developers are not wasting their time doing it manually

Assumptions

  • Use Tekton to define the pipeline
  • It should clone, lint, test, build, and deploy the service
  • Deployment should be to OpenShift
  • It can use a manual trigger for this MVP

Acceptance Criteria

Given the CD pipeline has been created
When I trigger the pipeline run
Then I should see the accounts service deployed to OpenShift

List all accounts in the service

As a customer account service admin
I need to be able to retrieve a list of all accounts in the service
So that I can have a comprehensive list of customer information

Details and Assumptions

  • [document what you know]

Acceptance Criteria

  • Scenario: I am authorized and there are 2 customer accounts
  • Given I have all necessary permissions
  • And there are 2 customer accounts in the service
  • When I request a list of all customer accounts
  • Then the service should return 2 accounts

Set up the development environment

As a developer
I need to set up the development environment
So that efficiently code and test my service

Details and Assumptions

  • [document what you know]

Acceptance Criteria

Given [some condition]
When [certain action is taken]
Then [the outcome of action is observed]

Delete an account from the service

As a customer accounts service user
I need the functionality to delete a customer account from the system
So that I can remove unnecessary customer records

Details and Assumptions

  • [document what you know]
  • Scenario 1: Delete an account with a valid customer identifier and authorization

    • Given a valid customer identifier
    • And authorization
    • When a request is made to the service
    • Then the customer record should no longer exist
  • Scenario 2: Delete an account without a valid customer identifier

    • Given an invalid customer identifier
    • And authorization
    • When a request is made to the service
    • Then an error should be returned indicating the invalid customer identifier
  • Scenario 3: Delete an account without authorization

    • Given a valid customer identifier
    • And no authorization
    • When a request is made to the service
    • Then an error should be returned indicating the lack of authorization

Read an account from the service

As a Service Provider
I need to be able to read an account from the service
So that I can see details about who the user is

Details and Assumptions

Acceptance Criteria

Given a user exists
And I am the service provider
When I send a request to the service for an account
Then I receive a response with the requested account

Need to add security headers and CORS policies

Title: Need to add security headers and CORS policies

**As a** service provider
**I need** my service to use security headers and CORS policies
**So that** my web site is not vulnerable to CORS attacks

#### Assumptions
* Flask-Talisman will be used for security headers
* Flask-Cors will be used to establish cross-origin resource sharing (CORS) policies

#### Acceptance Criteria
```gherkin
Given the site is secured
When a REST API request is made
Then secure headers and a CORS policy should be returned
```

Need the ability to automate continuous integration checks

Title: Need the ability to automate continuous integration checks

**As a** Developer
**I need** automation to build and test every pull request
**So that** I do not have to rely on manual testing of each request, which is time-consuming

#### Assumptions
* GitHub Actions will be used for the automation workflow
* The workflow must include code linting and testing 
* The Docker image should be postgres:alpine for the database
* A GitHub Actions badge should be added to the README.md to reflect the build status

#### Acceptance Criteria
```gherkin
Given code is ready to be merged
When a pull request is created
Then GitHub Actions should run linting and unit tests
And the badge should show that the build is passing
```

Deploy your Docker image to Kubernetes

As a DevOps Engineer
I need to deploy the images to Kubernetes
So that the microservice can be managed, scaled, and maintained in a Kubernetes environment

Details and Assumptions

  • We will use OpenShift

Acceptance Criteria

  • Scenario: Kubernetes cluster is up and docker image is available
  • Given a Kubernetes cluster and a Docker image for the microservice
  • When the service is deployed to Kubernetes
  • Then the microservice should be accessable and scalable within the Kubernetes environment

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.