GithubHelp home page GithubHelp logo

disp-lab4's Introduction

Лабораторная работа #4

GitHub Classroom Workflow

Deploy to Cloud

Формулировка

На базе Лабораторной работы #2 выполнить деплой приложения в managed кластер k8s.

Требования

  1. Скопировать исходный код из ЛР #2 в проект.
  2. Развернуть руками свой Managed Kubernetes Cluster, настроить Ingress Controller (для публикации сервисов наружу можно использовать только Ingress).
  3. Собрать и опубликовать образы docker в Docker Registry.
  4. Описать манифесты для деплоя в виде helm charts, они должен быть универсальным для всех сервисов и отличаться лишь набором параметров запуска.
  5. В кластере k8s можно использовать один физический instance базы, но каждый сервис должен работать только со своей виртуальной базой данных. Задеплоить базу в кластер можно руками, либо использовать уже готовый helm chart.
  6. Код хранить на Github, для сборки использовать Github Actions.
  7. Для автоматических прогонов тестов в файле autograding.json и classroom.yml заменить <variant> на ваш вариант.
  8. В classroom.yml дописать шаги:
    1. сборка приложения;
    2. сборка и публикация образа docker (можно использовать docker compose build, docker compose push);
    3. деплой каждого сервиса в кластер k8s.

Пояснения

Т.к. развертывание полноценного кластера на виртуальным машинах очень сложный процесс, можно использовать Managed Kubernetes Cluster, т.е. готовый кластер k8s, предоставляемый сторонней платформой, например:

Платформ, которые предоставляют Kubernetes as a Service большое количество, вы можете сами исследовать рынок и выбрать другого провайдера услуг. Большинство провайдеров имеют бесплатный триальный период или денежный грант.

Для создания кластера достаточно 2-3 worker ноды 2Gb, 1CPU.

Прием задания

  1. При получении задания у вас создается fork этого репозитория для вашего пользователя.
  2. После того как все тесты успешно завершатся, в Github Classroom на Dashboard будет отмечено успешное выполнение тестов.

Варианты заданий

Распределение вариантов заданий аналогично ЛР #2.

disp-lab4's People

Contributors

maxermu avatar

Watchers

 avatar

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.