Skip to content

deribinvladimir microservices repository

License

Notifications You must be signed in to change notification settings

Otus-DevOps-2019-11/deribinvladimir_microservices

Repository files navigation

Status of master branch builds: Build Status

deribinvladimir_microservices

kubernetes-5

What's been done during this homework:
  • ingress-controller was installed using helm chart
  • prometheus was downloaded locally and installed with our custom values to gke k8s cluster
  • kubeStateMetrics and nodeExporter were turned on and prometheus config was updated to get metrics from our reddit app with different circumstances
  • grafana was installed using helm, and our templates were added and modified to add choice of env
  • * alertmanager was enabled and alerting to slack was added in case of nodes down
  • * prometehus operator was installed to different namespace and updated to get metrics from comment app
  • EFK stack was installed to log our reddit app and * helm-chart was created for it
Additional resources used during this homework:

kubernetes-4

What's been done during this homework:
  • helm chart with helpers, dependencies and templates was created for our reddit microservices
  • helm3 and different tiller modes were tested
  • gitlab was installed to gke and our projects were created in it
  • CI pipeline was created for our services
  • pipelines were developed with different deploy modes (helm2, helm3, tiller-as-plugin)
  • pipeline for master branch was modified to deploy to prod after commit to master

kubernetes-3

What's been done during this homework:
  • kube-dns service was tested
  • different types of network services were tested (NodePort, LoadBalancer, Ingress)
  • tls termination with tls secret was added and yaml-manuifest was created for secret (*)
  • network policy with yaml-manifest was created and tested
  • different types of volumes were created and tested with appropriate yaml-manifests
Additional resources used during this homework:

kubernetes-2

What's been done during this homework:
  • yaml-manifests for reddit app were created and tested with minikube and gke
  • yaml-manifests for gke dashboard were created
  • terraform config was created to deploy kubernetes cluster in gcp
Additional resources used during this homework:

kubernetes-1

What's been done during this homework:
  • comment-deployment.yml, mongo-deployment.yml, post-deployment.yml and ui-deployment.yml manifests were created for our reddit microservice
  • kubernetes cluster was created using "Kubernetes The hard way" manual and our manifests were checked on it
  • ansible configs were created to deploy KTHW
Additional resources used during this homework:

logging-1

What's been done during this homework:
  • docker-compose-logging.yml was created to use elastic stack
  • fluentd was set up, code of our app was updated to send logs and fluentd was added to services configs as logging driver
  • logging in kibana was checked
  • some different filters were added in fluentd config and checked in kibana
  • logging for ui and parsing rules were added and checked in kibana
  • grok-templates were added and checked
  • zipkin was added to all our services and some traces were checked
  • * another grok-template was added to fluentd config
  • * bugged app was traced by zipkin and error was found
Additional resources used during this homework:

monitoring-2

What's been done during this homework:
  • docker-compose.yml was splitted to tow different parts - for apps and for monitoring services
  • grafana was installed with some dashboards and different requests
  • business logic monitoring dashboard was added
  • alertmanager was added and integration set up with slack
  • Makefile was updated for new services
  • * docker was configured to send metrics to prometheus and dashboard was added in grafana for it
  • * telegraf was added to get metrics from docker host and appropriate dashboard was added to grafana
  • * some metrics with using procentile were added
  • * alertmanager was set up to send alerts through email too
  • ** grafana config was recreated to install and run our dashboards automatically during deploy
  • ** metrics to check ui time response and timeout of any our services were added
  • ** metrics from stackdriver were added
  • *** trickster was added and grafana was reconfigured successfully to use trickster as data source
Additional resources used during this homework:

monitoring-1

What's been done during this homework:
  • docker host was created and prometheus installed and explored onto it
  • new structure was created in repo and docker image was created with prometheus configuration to monitor our services
  • our service with prometheus were set up and explored with prometheus monitoring
  • habitation of prometheus was checked with diffrenet stopped services
  • node exporter was added to monitor our docker host
  • * percona mongodb exporter was added to monitor mongodb state
  • * google cloudprober was added to check availability of our services
  • * Makefile was created to build and push images, and to stop/run our services
Additional resources used during this homework:

gitlab-ci-1

What's been done during this homework:
  • gitlab ci was installed and prepared to use
  • ci/cd pipeline was created to build, test and deploy services with different envs, include dynamic ones
  • build of docker containers in dind mode was tested
  • * docker container creation was added to build step for reddit app
  • * deploy of created container was tested to server with gitlab ci using gitlab runner in shell executor mode
  • * deploy of created container was tested to external instance using terraform + ansible with dynamic inventory
  • * integration for our gitlab ci with our personal slack channel was added: https://devops-team-otus.slack.com/archives/CBJESDZPH
  • * automation of creation many instances with runner in shell executor mode using terraform and ansible was created and tested
  • * automation of creation many instances with runner in docker mode in docker container using terraform and ansible was created and tested
Additional resources used during this homework:

docker-4

What's been done during this homework:
  • different network drivers were tested and compared using joffotron/docker-net-tools image
  • usage of different bridge networks was implemented and tested for the same and different containers
  • docker-compose was installed and tested using simple docker-compose.yml
  • docker-compose.yml was updated to use few networks and network aliases and parametrized variables using .env file
  • base name, which uses as prefix for container names by docker compose, usually corresponds to folder name where docker-compose runs; it can be overriden by COMPOSE_PROJECT_NAME environment variable in .env file or by '-p / --project-name' command line option
  • docker-compose.overriden.yml was created to add abilities to change app code without rebuilding images and to run puma in debug mode
Additional resources used during this homework:

docker-3

What's been done during this homework:
  • downloaded, installed and builded application with microservices architecture
  • network was created and application was run and checked on the docker-host
  • containers were restarted with new network aliases using --env commandline parameter
  • Dockerfiles were optimized for ui and comment using ruby:alpine3.10 images
  • docker volume was created and checked with destroy and recreate containers that posts and comments still alive
Additional resources used during this homework:

docker-2

What's been done during this homework:
  • new project was created, integration with travis and slack was added
  • docker was installed and tested with base image "hello world" and base commands like run, ps, start, attach etc with options
  • test container was created from ubuntu image, then images was created and log was written to docker-1.log was created from it
  • docker inspect from image and from container was compared and results of comparison were added to docker-1.log
  • new project was created in gce for microservice homeworks
  • docker-machine was installed to use gce for VMs
  • new instance was created in gce with docker by docker-machine and tested for creation of container with reddit app
  • new account was created in Docker Hub and our new image with reddit app was uploaded into it and checked for run from it in another console
    • small sample of infrastructure was developed to create some instances with docker in gcp to run reddit app containers in it
Additional resources used during this homework:

About

deribinvladimir microservices repository

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published