Skip to content

Repository files navigation

DevOps Test Case

Based on the application source code provided, prepare a scalable solution based on deploying the application to a kubernetes cluster.

What should be part of the prepared solution?

  • CI action building an application using GitHub workflows
  • Build a Kubernetes-based implementation
    • It is necessary to prepare a web server that can handle the traffic
    • Application also communicates internally, which means that its design must be able to be accessed via a network based on VPC peering
    • It also contains 3 super secret environment variables in the form of:
      SECRET1=ULTRASUPERSECRET_1
      SECRET2=SECONDSECRETDATA!@#$%
      DB_URI=mysql://localhost:3306
    
    • From outside, the application can only be connected from an IP address with a number: 1.1.1.1
    • The assumption is that the system is autoscalable in relation to resources
    • Available system resources: 64 CPU / 256 GB RAM
  • Developers need help with the local environment for the application, and therefore need to be prepared:
    • Local environment based on docker-compose
    • The system locally should only operate using the https protocol
    • The local environment should also include a database in the form of a mysql server
  • For both local and Kubernetes-based environments, there is a need to perform tasks via scripts, tasks include:
    • Applying the changes to the kubernetes cluster
    • Local dockerfile build and image publishing with latest tag
    • Retrieving information about the deployed tag on the kubernetes cluster
    • Forward port 8080 directly from a Kubernetes-based application deployment
    • Complete local environment building

Architecture

As an additional task, prepare a microservice architecture responsible for processing the events generated by this system based on solutions such as:

  • Google Cloud PubSub
  • Google Cloud Functions
  • Google Cloud Storage
  • Google Cloud SQL

The task of this microservice is to receive information from the PubSub queue using Cloud Functions and write the payload to the CloudSQL database. Once a month, reports on the number of events are generated as a CSV file stored and versioned on Cloud Storage. The result of this additional task should be an architecture diagram and the preparation of an initial concept based on any IaC solution.

Additional information

The organisation for which we are carrying out a project using tools such as:

  • kustomize
  • helm
  • argocd
  • google kms
  • google secrets manager
  • terraform
  • terragrunt
  • gke

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages