Главное Авторские колонки Вакансии Образование
Выбор редакции:
240 0 В избр. Сохранено
Авторизуйтесь
Вход с паролем

Управлять сложной IT-инфраструктурой приложения из веб-интерфейса? Легко

Если вы работаете с быстрорастущим проектом, то знаете, что он требует управляемой ИТ-инфраструктуры. Все время приходится поднимать тестовые хосты, постоянно что-то разворачивать, обновлять исходники, добавлять ресурсы и распределять нагрузку. Все это — рутинные задачи DevOps-специалиста, а если не повезло, то самого разработчика.В общем, работа с IT-инфраструктурой приложения отнимает кучу времени специалистов. Нас это не радовало, и мы придумали свою платформу, которая сложные операции сводит к паре кликов мыши.
Мнение автора может не совпадать с мнением редакции

b_5a15808e4d08d.jpg

Платформа, которую мы сделали, называется D2C. Она помогает автоматизировать рутинные задачи разработчика по настройке и масштабированию серверной архитектуры, а также развертыванию приложений.

Ближайший по похожести к нам сервис, наверное, Heroku. Однако назвать нас аналогами трудно: мы хоть и решаем одинаковые задачи, но совсем неодинаковым способом. В частности, у нас фокус на работе через веб интерфейс, также можно использовать собственные сервера или сервера облачных провайдеров.

b_5a1581039ed74.jpg

Чтобы привязать свой хост понадобится выполнить команду на сервере. Так же сервер должен соответствовать требованиям

b_5a16866522fdc.jpg

Чтобы привязать облачного провайдера, достаточно указать API токен или Access ID с Secret Key, если это Amazon.

В общем-то, мы и не стремились сделать «чуть улучшенный свой» аналог Heroku. Просто делали проект, в котором была куча рутины по администрированию собственных серверов и хостов в «облаке», а количество рук в команде и финансовых возможностей было строго ограниченное количество. По обозначенным причинам большинство решений нам никак не подходило, и мы сделали своё, а потом доработали его до PaaS сервиса

Какие задачи решает D2C и что умеет

В основном D2C помогает решать 7 основных задач, связанных с управлением IT-инфраструктурой:

1. Поднимать рабочую среду для работы приложения. Например, приложение — сайт. Требуется поднять веб-сервер и базу данных. В D2C для этого достаточно выбрать нужные сервисы, задать хосты и указать зависимости. В примере ниже используются хосты на Амазоне, но можно использовать других облачных провайдеров или собственные сервера.

На видео пользователь добавляет NGIN в качестве фронтенда и «привязывает» его к NodeJS. В качестве базы используется MongoDB.

2. Разворачивать и обновлять приложение из исходников. Например, можно развернуть приложение прямо из исходников в Git репозитории. Достаточно один раз настроить и останется только обновлять при изменениях.

b_5a1efb6327d54.jpg

В данном случае приложение разворачивается из Гитлаба через SSH, но можно указать FTP/HTTP ссылку на исходники или загрузить через Upload.

3. Конфигурировать систему. Наши настройки по-умолчанию будут работать в большинстве случаев, но их можно оптимизировать под конкретную архитектуру и нагрузки.

b_5a1efb9b1f488.jpg

На скриншоте конфигурация NGINX для работы с PHP в режиме редактирования

4. Масштабировать инфраструктуру. В D2C можно масштабировать приложение как вертикально, так и горизонтально. В первом случае, платформа умеет добавлять ресурсы у облачных провайдеров. Для горизонтального масштабирования достаточно нажать «Scale» и платформа поднимет контейнеры на новых хостах, после чего можно будет добавить балансировщик нагрузки. При апдейтах приложение будет разворачиваться на всех задействованных хостах.

Демонстрация горизонтального масштабирования с добавлением балансировщика нагрузки

5. Мигрировать конфигурацию. Например, потребовалось перенести базу целиком со всеми репликами и настройками с хостов Амазона на Диджитал Оушен. В нашей платформе это делается бстро:

b_5a1f1234a60a2.jpg

6. Мониторить всю систему целиком. Все логи и графики использования ресурсов системы в целом, отдельных хостов и даже контейнеров сливаются в одну панель. Поэтому если где-то появится проблема, её можно будет легко найти.

b_5a1f124a9f09b.jpg

7. Быстро разворачивать типовую среду с помощью готовых стеков.Для создания среды с типовой конфигурацией можно создать стек в формате yaml. Таким образом для частых задач не придется каждый раз с нуля настраивать сервисы. Достаточно импортировать файл и с минимумом действий поднять готовую среду для приложения.

Также мы регулярно пополняем наш Stackhub готовыми решениями. Ими тоже можно пользоваться.

Пример разворачивания типовой среды

С чего начать

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

Также мы проводим онлайн-демонстрации продукта. Если вы хотите, чтобы показал, рассказал и ответил на вопросы живой человек, надо зарегистрироваться на демо. Рекомендую это сделать как можно быстрее, так как пока нам еще позволяют ресурсы проводить презентации в индивидуальном порядке, но так будет не всегда.

Сходить в документацию и узнать в технических подробностях, что можно и нельзя делать в D2C.

Почитать нашу базу знаний с готовыми рецептами по строительству IT-инфраструктуры. Сейчас статей не очень много, но они будут постоянно добавляться. Что-то будем публиковать на Хабре, но не всё.

В качестве постскриптума: если D2C чего-то еще не умеет

D2C пока умеет не всё, но в скором времени научится. Чтобы было удобно следить за нашими планами, мы сделали дорожную карту. Если у вас появятся предложения, опишите их в нашем Trello. Возможно, мы это добавим, но это не точно.

0
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Комментарии
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать

Spark использует cookie-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.