Skip to content

Исходный код простого приложения 'Заметки' (todo) для демонстрации возможностей Yandex Managed Service for Kubernetes®.

License

Notifications You must be signed in to change notification settings

yandex-cloud-examples/yc-demo-todo-application

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Тестовое приложение todo (заметки)

Назначение

Тестовое веб-приложение todo создано для использования в качестве полезной нагрузки в сценариях из документации Yandex Cloud. Приложение адаптировано для запуска в облачной инфраструктуре. В качестве среды выполнения приложения обычно используется управляемый кластер Kubernetes.

Состав

Приложение состоит из двух компонентов: фронтенд и бэкенд. Компоненты размещены в соответствующих каталогах: frontend и backend.

Фронтенд написан на React. Для публикации фронтенда используется веб-сервер Angie.

Бэкенд написан на языке Go, для его работы необходима СУБД PostgreSQL. В соответствии с рекомендациями по построению отказоустойчивой инфраструктуры в приложении реализована проверка доступности (Health Check), которая отслеживает доступность подключаемых ресурсов, в данном случае - кластера PostgreSQL. Также в бэкенде реализовано разделение подключений к СУБД для записи и чтения.

Сборка

Для сборки и упаковки компонентов приложения в состав репозитория включен манифест CI .gitlab-ci.yml. Для сборки используется Yandex Managed Service for GitLab.

Оба компонента упаковываются в контейнерные образы на базе образа distroless gcr.io/distroless/base-debian12, который обеспечивает максимальную компактность и безопасность.

Сборка вэб-сервера Angie для контейнерного образа фронтенда выполняется из исходного кода со статической линковкой.

Конфигурация и параметры

Бэкенд конфигурируется с помощью переменных окружения. Параметры подключения к мастеру базы данных:

  • DB_HOST
  • DB_PORT=6432
  • DB_DATABASE
  • DB_USER
  • DB_PASSWORD
  • DB_SSL_MODE=prefer
  • DB_TZ=UTC

И к реплике (необязательные):

  • RO_DB_HOST
  • RO_DB_PORT
  • RO_DB_DATABASE
  • RO_DB_USER
  • RO_DB_PASSWORD
  • RO_DB_SSL_MODE
  • RO_DB_TZ

Бэкенд поддерживает следующие параметры запуска:

  • migrate: создание необходимых для работы объектов БД
  • run: обслуживание запросов пользователей

Бэкенд имеет единственный CRUD эндпоинт /api/todos/.

Фронтенд не имеет параметров конфигурирования. Для работы фронтенда требуется работающий CRUD эндпоинт /api/todos/ (бэкенд) на том же домене.

Установка и запуск

Для установки и запуска приложения в кластере Kubernetes используется helm чарт. Пример использования чарта смотрите в репозитории Развертывание веб-приложения в отказоустойчивой конфигурации в Yandex Cloud.

About

Исходный код простого приложения 'Заметки' (todo) для демонстрации возможностей Yandex Managed Service for Kubernetes®.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published