Программист практик | уроки программирования | подготовка к собеседованию
134 subscribers
126 photos
3 videos
1 file
21 links
разбор собесов, ответы на вопросы, решение задач

Для связи со мной:
@IvanReshet
Download Telegram
Коллеги, доброе утро!)
На этой неделе нашей команде предстоит первый деплой проекта🌋
Поэтому, самое время поговорить об этом) Что это такое и как оно готовится!) Ждите об этом постик!)
🔥104👍1👏1
Начнем с того, что такое деплой.
Деплой (deploy) - это процесс развертывания на сервере приложения.
Его можно разбить на несколько этапов:
1. Подготовка окружения. Настройка облачного или локального сервера, установка всех необходимых библиотек и фреймворков.
2. Настройка бд. Создание структуры таблиц, настройка связей и начальных данных, а также прав для доступа.
3. Сборка приложения. Компиляция кода и подготовка его к запуску. Также сюда можно отнести и настройку процесса обновления кода из git.
4. Тестирование. Включение юнит и интергационных тестов. А также тестирование UI.
5. Деплой. Развертыванин приложения. Обычно настраивают так, чтобы это происходило автоматизированно ( CI/CD)
6. Мониторинг и поддержка. Для отслеживания работы приложения и поиска проблем есть различные инструменты (например Grafana)
7. Обратная связь и интеграции. Получение обратной связи от пользователей позволяет оперативно реагировать на проблемы использования продукта и вносить вовремя улучшения.
👍9❤‍🔥4💋1
▎Реализации первого этапа

При реализации первого этапа я столкнулся с важным выбором: развернуть сервер локально или воспользоваться облачными решениями.

Сначала я подумал о локальном сервере. Однако, у этого варианта есть несколько нюансов:

1. Непрерывная работа: Мне нужен был компьютер, который работал бы нон-стоп.

2. Безопасность данных: Необходимо было обеспечить защиту данных (репликация, фаервол и другие меры безопасности).

3. Удалённый доступ: Потребовался бы статический IP-адрес для постоянного доступа к машине.

После размышлений я понял, что это слишком много геморроя. Поэтому решил поискать варианты в интернете, что-то вроде хостинга. Однако стандартные варианты хостинга для сайтов не подходили, поскольку мне нужно было развернуть целое приложение на микросервисах с использованием Kubernetes и Jenkins (об этом мы поговорим позже).

Хотя облачные решения предлагают такие возможности, цены на них были довольно высокими. А мне нужно было что-то бесплатное! 😁 Кроме того, я хотел сам поковырять весь процесс DevOps.

В итоге мой выбор пал на VPS (Virtual Private Server). Это ресурсы ПК, предоставляемые провайдером хостинга через интернет, обычно с установленной ОС (в нашем случае Linux Server) и статическим IP-адресом.

После долгих поисков я наткнулся на облачное решение от Сбера — их "Free Tier". У него были неплохие стартовые ресурсы:

Количество vCPU: 2

Объем RAM: 4 ГБ

Диск NVMe: 30 ГБ

Это выглядело очень привлекательно. Единственным минусом оказалось то, что за статический IP-адрес пришлось заплатить около 150 рублей в месяц. Но это копейки по сравнению с тем, что предлагали другие компании за аналогичные ресурсы.

Я выкупил эту услугу, настроил сервер и установил MicroK8s (позже расскажу, почему выбрал его вместо стандартного Kubernetes). Потребовалось немало усилий, чтобы настроить графический интерфейс для Kubernetes и обеспечить удалённый доступ.

Но вскоре я узнал, что если я не буду постоянно оплачивать статический IP, все мои данные удалят спустя месяц.

После этой информации я решил плюнуть на VPS — не хочу зависеть от других! Вернусь к плану А и разверну свой сервер локально. И понеслась...

Но это уже другая история! Продолжение следует...
🔥131