Anton Sidorov homepage

Bookmark this to keep an eye on my project updates!

Follow me on GitHub

DevOps

Зачем

DevOps (development и operations):

  • это методология автоматизации технологических процессов сборки, настройки и развёртывания программного обеспечения
  • позволяет выстроить конвейер, на котором разработчики, тестировщики и сисадмины работают в едином потоке и вместе отвечают за результат — код, выпущенный в релиз для пользователей
  • CI - процесс обеспечения процесса непрерывной интеграции
  • CD - процесс доставки, развертывания

tech

Этапы процесса (Pipeline)

Code

  • VCS: Git, GitLab, GitHab
  • Jira
  • Git Flow, Управление branch

CI

Build Сборка

  • Maven, SBT
  • Запускается по Trigger:
    • push: This workflow is initiated when changes are pushed to the repository
    • branches: It runs when changes are pushed to the “main” branch

Test

  • Авто тесты Tests: Unit, E2E
  • Code Style
  • Integration Tests

Release

CD

Deploy Развертывание

Operate

Monitor

Мобильные приложения Pipeline

  • Старт разработки
  • Создание аккаунтов в Store
  • Подготовка
  • Финальная проверка сборки
    • имитировать установку приложения из Store
      • Для Android-сборок мы можем использовать, к примеру, FireBase. У них есть раздел App Distribute. Для iOS-сборок есть TestFlight.
  • Отправка сборки на проверку в Store
  • Финал разработки
  • Публикация Deploy сборки Release в Store: fastlane IOS
  • Примеры

Паттерны

Сколько сервисов(BC) в одном контейнере

Each container should do one thing and do it well. A few reasons:

  • There’s a good chance you’d have to scale APIs and front-ends differently than databases.
  • Separate containers let you version and update versions in isolation.
  • While you may use a container for the database locally, you may want to use a managed service for the database in production. You don’t want to ship your database engine with your app then.
  • Running multiple processes will require a process manager (the container only starts one process), which adds complexity to container startup/shutdown.

Auto Scaling

Naming Convention

  • Namespace
    • env
  • Label - key\value
    • key - alphanumeric character [a-z0-9A-Z] with dashes (-), underscores (_), dots (.), and alphanumerics between, max length 253
    • value - max length 63
    • Reserved prefixes
      • kubernetes.io
      • kubernetes.azure.com
      • k8s.io
    • примеры
      • release : stable, release, canary
      • kubernetes.io/os : debian, linux
      • kubernetes.azure.com/cluster : cl1
      • kubernetes.io/part-of : родительская ИС\сервис
      • kubernetes.io/version : semver format
      • [sec./tenant-id](https://www.helpnetsecurity.com/2021/05/26/kubernetes-security/) : tenant-uid
  • Tenant-Type service-Name Service-Type Component-Name Component-Technology Stack-Name module
    • Type service: категория ИС: LK, CRM, IDM
    • Technology Stack: PHP, .NET, Python, NodeJS, Java
    • Type Component - Tier: api, db, cache, frontend, backend
      • db: mssql, mysql
      • api:
      • cache: redis, memcached