Если ваш стартап не умер... SRE для SaaS - наш стек продуктов

Если ваш стартап не умер (КОНГРАТС!), и набрал аудиторию, через пару лет он перестает быть маленьким и шустрым проектом и превращается во что-то гораздо большее, где задействованы десятки и сотни людей.

Над чем думает фуллстек программист нового проекта? Какой язык выбрать, bootstrap vs tailwind, react vs vue.js, сервисы или микросервисы, и так далее. "Как и чем строить продукт"? Эти дни, конечно же, замечательны, но приходит момент, когда быть на самом современном фреймворке - уже не так важно, как поддерживать надежность и стабильность всей системы многие годы, желательно без жестких факапов.

Сейчас, когда Бандеролька уже не может назвать себя стартапом, на первый план выходят не столько новые фичи, сколько SRE (Site Reliability Engineering) - обеспечение доступности, надежности и производительности продукта. Для кого-то может показаться, что это менее захватывающая часть разработки, но на мой взгляд именно готовность скрупулезно сидеть и расследовать какой-то инцидент в продакшне, анализировать, разматывать ниточки логов и восстанавливать события - делают из человека ценного сотрудника и настоящего инженера (и детектива).

У нас нет отдельных SRE людей - стартапом-то мы быть перестали, а до корпорации нам все еще бесконечно далеко. При возникновении проблем мы затыкаем эти дырки как можем: ребята из разработки, из тестирования, админы (devops), и я - все понемногу подключаются к этому процессу. В этой ситуации на первый план выходит стек продуктов, которые мы используем для мониторинга, анализа и управления нашими сервисами. Почему? Если для анализа проблемы каждый раз придется бежать на сервер и грепаться по логам из консоли - то никто этим заниматься не будет, это неудобно, к тому же это очень сильно сужает круг людей, кто этот анализ может проводить.

Так что там у нас?

1. Для мониторинга облачных и железных серверов, и алертов в телеграм, мы уже очень давно используем Zabbix, который позволяет нам отслеживать состояние серверов, сети и сервисов. Он не очень эргономичный в плане добавления новых хостов и создания алертов, честно скажу, много кликов и тыков - но справляется.

2. Все логи со всех серверов и сервисов стекаются на машину с ELK стеком (Elasticsearch, Logstash, Kibana) - оно с удовольствием жрет сотню гигов оперативы, но за последние пару лет оно ни разу не падало и не доставляло проблем.

3. Для SQL репортов мы пользуемся Metabase - это великолепный опенсорс продукт с классным дизайном, который позволяет нам делать запросы к базам данных и строить на их основе отчеты. (не забывайте в своей базе сделать read-only пользователя и ограничить выгрузку личных данных пользователей!)

4. Для мониторинга ошибок программного кода на проде мы используем Sentry.

Все эти продукты - бесплатные и open-source/open-core. Кроме облачного Sentry, который ОЧЕНЬ хорошо сделал свое облачное решение с точки зрения контроля трат (постоянные скачки на сотни тысяч ошибок в час не особенно плохо отражаются на нашем инвойсе), и стоит очень небольших денег относительно пользы которую он приносит.

Все эти продукты работают приемлемо или хорошо, и страшно подумать, сколько десятков тысяч долларов мы бы отгрузили, если бы брали "лучшее по рынку", как это делают более обеспеченные компании.

Например, Datadog и NewRelic - доминируют на рынке observability систем и log storage, и у них прекрасные инструменты, но это довольно дорого стоит - тысячи долларов в месяц. Самое страшное не то, что оно стоит дорого, а то, что это все может очень быстро выйти из под контроля, когда файлик лога случайно будет прирастать не на 1ГБ в сутки, а на 20ГБ в сутки. Когда у тебя десятки машин и сотни сервисов - ВСЕГДА какая-то фигня типа такого случается.

Какие продукты я бы брал, если бы сейчас стояла задача поддерживать организацию малого и среднего размера? Пожалуй, я бы взял всё то же самое, потому что я примерно знаю как это все работает, и все это бесплатно!

Но вот что хочется попробовать: Grafana + Loki для хранения логов (заменяет ELK, правда, говорят, там бывает многовато работы чтобы разметить логи лейблами), и Prometheus для мониторинга (в связке с графаной заменяет Zabbix). Это все тоже бесплатно, но оно более современное, производительное, и, возможно, более удобное.

Обсуждение, и больше постов про построение больших IT систем и запуск SaaS на зарубежных рынках - в моем телеграм канале @saas_founders

11
Начать дискуссию