Создаем Cloud native приложение с помощью Kubernetes
Материал для тех, кто собирается развернуть свое первое приложение в Kubernetes. Пошагово разбираем процесс деплоя — разворачиваем GitLab и показываем, как выстроить пайплайн сборки и запуска приложения. Смотрите видеозапись практического занятия с демонстрацией, а также читайте обзоры и инструкции по Cloud native и Kubernetes.
Что такое Cloud Native
Cloud Native — архитектурный подход к разработке ПО, в котором применяются облачные вычисления. Приложения, созданные в этой концепции, быстро масштабируются, обладают устойчивостью и простотой в управлении. При этом изменения не влияют на качество и скорость работы сервиса. Чтобы создать такое приложение, нужно соблюдать ключевые принципы.
В Академии Selectel есть видеозапись практического занятия, в начале которого мы кратко разобрали, что такое Cloud native. Посмотрите, чтобы узнать, как создаются современные архитектуры приложений с использованием PaaS-продуктов: Managed Kubernetes, Container Registry и DBaaS.
Подробнее об особенностях Cloud Native приложений и роли Kubernetes в этом подходе можно почитать в материале «Из чего строят Cloud Native приложения в 2023 году».
Как развернуть приложение в Kubernetes
После знакомства с подходом Cloud native переходим к построению процесса CI/CD — комбинации непрерывной интеграции и развертывания.
Описание технологии простыми словами вы найдете в тексте «Что такое методология разработки CI/CD».
На видео наш разработчик разворачивает GitLab и показывает, как выстроить пайплайн сборки и деплоя приложения. Пайплайн — это визуализация процесса, который в нашем случае состоит из этапов:
- проверки окружения,
- использования линтеров,
- тестов кода,
- покрытия тестами,
- сборки образа,
- проверки окружения,
- валидации манифеста Kubernetes,
- запуска кода в стейдже.
→ Смотрите видео с демонстрацией.
→ Ищите на GitHub все необходимые манифесты Terraform и инструкции по подготовке инфраструктуры.
→ А если вы еще не работали с Terraform, читайте инструкцию «Как развернуть свое приложение в Kubernetes».
В конце занятия мы ответили на вопросы о способах мониторинга безопасности, хранении секретов и работе с высоконагруженными приложениями.