В рамках курса участники разработают микросервисное распределённое приложение крипто-банка вместе с инфраструктурой и CI/CD. Приложение будет полностью покрыто тестами и структурировано в рамках Vertical Slices Architecture. Цель — получение навыков написания поддерживаемых и гибких бекенд-приложений, используя современные технологии.
Также участники сильно продвинутся в области технологий контейнеризации и оркестрации: Kubernetes и Helm. Они изучат основные типы ресурсов и лучшие практики по их использованию, чтобы покрыть все потребности современных распределённых приложений. Курс раскроет глубокие детали устройства этих технологий.
Вся инфраструктура и CI/CD будут реализованы с использованием подхода Infrastructre-as-Code (IaC). Для этого участники используют Terraform, Ansible и GitHub Actions. Это позволит "одной кнопкой" создавать и обновлять разрабатываемое приложение на любом окружении. Кроме того, основные действия CI/CD будут сопровождаться прогоном всех автоматизированных тестов, чтобы гарантировать стабильную и корректную работу системы.
Ещё одна важная область, которую изучат участники — event-based и reactive data processing. Для этого будут использованы очереди сообщений (RabbitMq и Kafka), Web Sockets, SignalR, gRPC streams, async streams.
Участники продолжат изучение технологий блокчейна. В этот раз предстоит изучить и использовать Ethereum — второй по распространённости блокчейн. Это блокчейн второго поколения, которые даёт намного больше возможностей по сравнению с биткоином. Участники интегрируют его в разрабатываемое приложение.
Вот технологии и практики, которые предстоит изучить участникам:
- Microservices patterns
- Kubernetes
- Helm
- HTTP/2
- Data protocols
- gRPC
- Events based architecture
- RabbitMq
- Kafka
- WebSockets
- SignalR
- Nginx + ACME (Automated Certificate Management Environment)
- GitHub Actions для CI/CD
- Terraform
- Ansible
- Hetzner Cloud или подобное облако
- Observability (метрики, трейсинг, логгирование)
- Relational Databases in depth
- Ethereum