1 of 26

S6-Class Project-03

DevOps Easy Learning

2 of 26

S6-Class Project-03

DevOps Easy Learning

3 of 26

github code

4 of 26

Problem to solve

  • Deploy Espresso Shop microservice application on Kubernetes Cluster using Helm

5 of 26

Main goal from the customer

  • Customer name: EXPRESSO INC

EXPRESSO INC business is growing exponentially at the extern that we the headquarter has expressed the need to launch an online shop where millions of customers will be able to shop and post review on different coffee flavor they offer.

To satisfy that need and after a careful selection EXPRESSO INC have picked EK TECH SOFTWARE SOLUTION as their best IT firm to build a robust application that will meet and exceed their expectation.

6 of 26

Requirements from the customer

1- High availability

2- zero downtime

3- Biweekly deployment

4- On demand scalability

7 of 26

Requirements from the Devops Team

  • [ ] INSTRUCTIONS
    • create a namespace with your prefer name
    • Name application with this format [PREFER_NAME]-[APPLICATION_NAME]
    • Deploy application with service Type NodePort
    • Create a repo in DockerHub with your prefer_name
    • write dockerfiles that called all base images with latest tag are avoided also set label with company information
    • All Images used will be tag with company repo

8 of 26

Requirements from the Devops Team

Acceptance Criteria

  • Application image is secure
    • Image runs as unprivileged user
    • Does not listen on privileged (0→1023) ports
    • Debug logs are disabled

9 of 26

Requirements from the Devops Team

Helm Chart

  • Helm Chart
    • Default values result in most-secure install/configuration
    • All security-related values are documented
    • pods ressource are define
    • Applications deploy with app-specific service accounts (not default/shared)
    • Service account permissions follow least-privilege principles
    • Secrets are used for all sensitive information
    • All workloads define appropriate Requests and Limits

10 of 26

Requirements from the Devops Team

High Availability

  • [ ] High Availability
    • All workloads have well-defined liveness and readiness probes
    • All workloads have well-defined deployment strategy (use rollingUpdate)
    • All critical workloads are deployed with multiple replicas
    • Workloads requiring persistent volumes are defined by StatefulSets
    • Stateful services perform replication using headless services (allowing multiple StatefulSets to coordinate)
    • All non-batch workloads have a PodDisruptionBudget defined

11 of 26

Application Structure

Frontend

- shop-web

API

  • shop-product
  • shop-reviews-v1
  • shop-reviews-v2

db

  • postgres

caching

- Redis

12 of 26

Application Structure

FRONTEND:

shop-web

Postgres-HA

API:

shop-reviews-v1

Redis-HA

For session caching

API:

shop-reviews-v2

API:

shop-product

13 of 26

Application Micro-Services

FRONTEND:

shop-web

API:

shop-product

API:

shop-review

Postgres cluster (HA)

Redis (HA)

14 of 26

Application Structure devops stand point

Frontend

- shop-web

shop-web

shop-product

shop-reviews-v1

shop-reviews-v2

Postgres-HA

Redis-HA

Develop by EK TECH

Develop by Third party

15 of 26

Application Helm Charts (06)

shop-web

helm-chart

shop-product

helm-chart

postgres -HA

helm-chart

Redis

helm-chart

shop-reviews

helm-chart

16 of 26

DevOps team service overview�

Pod Name

Port

shop-product

8091

shop-reviews

8092

shop-web

8090

17 of 26

Application Helm Charts (06)

shop-web

helm-chart

shop-product

helm-chart

postgres -HA

helm-chart

Redis

helm-chart

shop-reviews

helm-chart

18 of 26

DevOps Planning�

shop-web

helm-chart

  1. deployment —---- create pod
  2. service —--------- expose
  3. HPA —--- high available
  4. service account
  5. PDB

19 of 26

DevOps Planning�

postgres -HA

helm-chart

  1. connection

20 of 26

DevOps Planning�

Redis -HA

helm-chart

  1. connection

21 of 26

Manage secret with external secret �operator�

22 of 26

How to present this project� at your interview�

23 of 26

Accomplishment as team�

24 of 26

Accomplishment individually�

25 of 26

Issues encounter while working� on the project

26 of 26

Take personal notes here