Почему облака — это дёшево, чертовски дешево
Раньше я считал, что публичные облака дорогие, и как я заблуждался! Да что говорить, многие мои знакомые так и считают. Но я попробую объяснить, почему это совсем не так и я изменил свое мнение!
Cразу сделаю оговорку — все очень сильно зависит от вашего проекта. Но постановку вопроса это не меняет — так как облака, как правило, дорогие для тех проектов, где они не нужны. А какая разница, сколько стоит продукт, который вам не нужен! Но стоит вам начать реализовывать сложный проект, как раз в этот момент облачные сервисы и оказываются полезны.
Давайте представим такой проект. SaaS-сервис. У вас 20 — 25 микросервисов. Некоторые из них масштабируются горизонтально, количеством инстансов. Основная база данных — PostgreSQL. Проект — прод, вам нельзя эту базу данных потерять. Плюс, вы пишете логи в Elastic, запускаете приложения в Kubernetes и используете брокер очередей сообщений Kafka. Да, это не монолит, который можно на VPS/железном сервере запустить, но и не космический корабль c несколькими зонами доступности и тысячами приложений.
А теперь посчитаем, где и за сколько это можно развернуть. Допустим, проект потребляет 100 vCPU, 400 Гб ОЗУ и 2 Тб SSD. Вернее, потребляет он меньше, но нужно брать с запасом.
Если взять любое публичное облако, получим очень примерно 70 000 руб. за CPU, 80 000 руб. за ОЗУ и 20 000 руб. за диск. Добавим еще 10 000 руб. на бэкапы и 50 000 руб. на managed PostgreSQL, Kafka, Kubernetes и OpenSearch. Итого получилось 230 т.р./месяц. Кажется, что это очень много.
А теперь попробуем это сделать на своем железе. Старый ноутбук или одноплатник с алиэкспресса тут не подойдут.
Если вам нужен новый (а смысл брать старый нет) сервер со 100 vCPU, 400 Гб ОЗУ и 2 Тб SSD это вам выйдет в 1,2-1,5 млн. руб. Хорошо, хорошо, вы нашли дешевле и взяли за 700 000 руб.
Решили развернуть на нем все сразу. И сразу столкнулись с тем, что Kubernetes нужно ставить на 3 ноды минимум. Это значит, вам надо либо на вашей железке поднять несколько виртуальных машин, либо использовать что-то вроде minikube, который можно и на одной запустить.
Железку нужно где-то ставить. Арендуем колокейшн на 2U за 10 000 -15 000 руб./месяц.
Ставим Elastiс и понимаем, что мощности не хватает. Плюс еще нужен стейджинг. Идем и покупаем еще один сервер за 700 000 руб.
Но вы получили не отказоустойчивое решение. Любой сбой и все пропало. Особенно это касается дисков.
Тогда вы идете и докупаете еще пару серверов за 700 000 руб. Нарезаете виртуалки, настраиваете сеть, поднимаете Ceph …
И вот, наконец, у вас спустя пол года и 2,8 млн. рублей почти отказоустойчивая инфраструктура. Если учесть, что года через 3-4 вы их спишите, то стоимость владения с учетом инфляции будет около 60 000 руб. в месяц.
И за колокейшн вы платите каких-то «жалких» 60 000 руб. в месяц.
Но есть нюанс. За железными серверами надо следить. Вдруг диск полетит, надо заменить, да и много что может случиться. И для этого вы выделяете половину времени одного из членов команды. Зарплаты бывают разными. Но мы же экономим, поэтому заложим “всего” 75 т.р. в месяц.
Итог — мы получили сумму, аналогичную публичному облаку.
Но давайте будем честны, самостоятельно развернуть Kubernetes, Ceph, Kafka, PostgreSQL c бэкапами и т.д. проблематично. Вам понадобится пару инфраструктурных/DevOps инженеров. Хорошо, один “сын маминой подруги” за 300 000 руб/месяц.
Это я не говорю, что услуги по сопровождению и построению инфраструктуры могут и 1 млн. руб. в месяц стоить.
Но даже если брать по минимуму, мы получим 495 000 руб/мес против 230 000 руб/мес за публичное облако.
Тогда может брать сервера в аренду?
Сразу скажу, что получится еще дороже. Сейчас стоимость аренды примерно равна стоимости публичного облака.
Из плюсов своих серверов вы получите
А из минусов
Но не работают же облака в минус? Нет, конечно. Просто самые большие затраты это администрирование и построение общей инфраструктуры. А эти затраты теряются на масштабах провайдеров. Для них себестоимость чуть выше стоимости владения железом. Но «что позволено Юпитеру, не позволено быку», поэтому, пока ваш бюджет на инфраструктуру не миллиард в месяц, баланс затрат себестоимости будет не в вашу пользу если вы решите сделать что-то подобное самостоятельно.
Но давайте вернемся к вопросу — а вам облако реально нужно?
Публичные облачные провайдеры берут деньги за то, что снимают с вас тяжесть развертывания и администрирования сложных инфраструктурных сервисов, разделяя эти издержки на множество клиентов. Если вы решите все делать самостоятельно, делить эти издержки будет не с кем. И на самом деле на выходе вы получаете относительно «дешевый» продукт. А сравнивать облако просто со стоимостью покупки железного сервера, это как сравнивать стоимость автомобиля со стоимостью металла, из которого он сделан. Но выбор, где разворачивать сервисы, за вами.
amvera.ru
Cразу сделаю оговорку — все очень сильно зависит от вашего проекта. Но постановку вопроса это не меняет — так как облака, как правило, дорогие для тех проектов, где они не нужны. А какая разница, сколько стоит продукт, который вам не нужен! Но стоит вам начать реализовывать сложный проект, как раз в этот момент облачные сервисы и оказываются полезны.
Раскрытие информации: я основатель облака Amvera, в котором можно развернуть проект через git push, введя три команды в терминале. Потому я могу быть предвзят в этом вопросе и рассмотрю кейс, не относящийся к нашему облаку.
Давайте представим такой проект. SaaS-сервис. У вас 20 — 25 микросервисов. Некоторые из них масштабируются горизонтально, количеством инстансов. Основная база данных — PostgreSQL. Проект — прод, вам нельзя эту базу данных потерять. Плюс, вы пишете логи в Elastic, запускаете приложения в Kubernetes и используете брокер очередей сообщений Kafka. Да, это не монолит, который можно на VPS/железном сервере запустить, но и не космический корабль c несколькими зонами доступности и тысячами приложений.
А теперь посчитаем, где и за сколько это можно развернуть. Допустим, проект потребляет 100 vCPU, 400 Гб ОЗУ и 2 Тб SSD. Вернее, потребляет он меньше, но нужно брать с запасом.
Если взять любое публичное облако, получим очень примерно 70 000 руб. за CPU, 80 000 руб. за ОЗУ и 20 000 руб. за диск. Добавим еще 10 000 руб. на бэкапы и 50 000 руб. на managed PostgreSQL, Kafka, Kubernetes и OpenSearch. Итого получилось 230 т.р./месяц. Кажется, что это очень много.
А теперь попробуем это сделать на своем железе. Старый ноутбук или одноплатник с алиэкспресса тут не подойдут.
Если вам нужен новый (а смысл брать старый нет) сервер со 100 vCPU, 400 Гб ОЗУ и 2 Тб SSD это вам выйдет в 1,2-1,5 млн. руб. Хорошо, хорошо, вы нашли дешевле и взяли за 700 000 руб.
Решили развернуть на нем все сразу. И сразу столкнулись с тем, что Kubernetes нужно ставить на 3 ноды минимум. Это значит, вам надо либо на вашей железке поднять несколько виртуальных машин, либо использовать что-то вроде minikube, который можно и на одной запустить.
Железку нужно где-то ставить. Арендуем колокейшн на 2U за 10 000 -15 000 руб./месяц.
Ставим Elastiс и понимаем, что мощности не хватает. Плюс еще нужен стейджинг. Идем и покупаем еще один сервер за 700 000 руб.
Но вы получили не отказоустойчивое решение. Любой сбой и все пропало. Особенно это касается дисков.
Тогда вы идете и докупаете еще пару серверов за 700 000 руб. Нарезаете виртуалки, настраиваете сеть, поднимаете Ceph …
И вот, наконец, у вас спустя пол года и 2,8 млн. рублей почти отказоустойчивая инфраструктура. Если учесть, что года через 3-4 вы их спишите, то стоимость владения с учетом инфляции будет около 60 000 руб. в месяц.
И за колокейшн вы платите каких-то «жалких» 60 000 руб. в месяц.
Но есть нюанс. За железными серверами надо следить. Вдруг диск полетит, надо заменить, да и много что может случиться. И для этого вы выделяете половину времени одного из членов команды. Зарплаты бывают разными. Но мы же экономим, поэтому заложим “всего” 75 т.р. в месяц.
Итог — мы получили сумму, аналогичную публичному облаку.
Но давайте будем честны, самостоятельно развернуть Kubernetes, Ceph, Kafka, PostgreSQL c бэкапами и т.д. проблематично. Вам понадобится пару инфраструктурных/DevOps инженеров. Хорошо, один “сын маминой подруги” за 300 000 руб/месяц.
Это я не говорю, что услуги по сопровождению и построению инфраструктуры могут и 1 млн. руб. в месяц стоить.
Но даже если брать по минимуму, мы получим 495 000 руб/мес против 230 000 руб/мес за публичное облако.
Тогда может брать сервера в аренду?
Сразу скажу, что получится еще дороже. Сейчас стоимость аренды примерно равна стоимости публичного облака.
Из плюсов своих серверов вы получите
- Запас по вычислительной мощности.
- DevOps в штате. Есть вероятность, что специалист будет вам полезен и при использовании публичного облака.
А из минусов
- Неэластичность. Докинуть железный сервер в кластер, не то же, что виртуалку у провайдера.
- Вы маловероятно настроите инфраструктуру также хорошо, как провайдеры с сотнями клиентов на которых они набили шишки. И все обязательно упадет, возможно, просто еще время не пришло…
- В облаке вы получаете множество скрытых преимуществ из разряда защиты от DDoS, пулов IP, геораспределенности, нормальных бэкапов и много другого, что очень сложно реализовать самостоятельно.
Но не работают же облака в минус? Нет, конечно. Просто самые большие затраты это администрирование и построение общей инфраструктуры. А эти затраты теряются на масштабах провайдеров. Для них себестоимость чуть выше стоимости владения железом. Но «что позволено Юпитеру, не позволено быку», поэтому, пока ваш бюджет на инфраструктуру не миллиард в месяц, баланс затрат себестоимости будет не в вашу пользу если вы решите сделать что-то подобное самостоятельно.
Но давайте вернемся к вопросу — а вам облако реально нужно?
- Если у вас небольшой сайт, и вы редко вносите в него изменения, проще воспользоваться простым хостингом. Хостинг в несколько раз дешевле виртуалки у PaaS облачного провайдера.
- Если нагруженный сайт, но шаблонный, и вы не вносите много изменений, ваш выбор — хостинг или аренда железного сервера плюс настройка бэкапа в другое место.
- Если вы банк, вам безопасники не дадут в облаке развернуться.
- Если у вас стартап с частыми изменениями и вам нужно легко все развертывать из коробки и каждый день доставлять обновления, воспользуйтесь Heroku, или нашим сервисом Amvera;) Это даст вам сразу CI/CD, бэкапы, алерты и максимально абстрагирует от инфраструктуры.
- И вот только если у вас сложный сервис, который должен работать в разных регионах или использовать сложную, нагруженную инфраструктуру, вам путь в классические, публичные облака.
Публичные облачные провайдеры берут деньги за то, что снимают с вас тяжесть развертывания и администрирования сложных инфраструктурных сервисов, разделяя эти издержки на множество клиентов. Если вы решите все делать самостоятельно, делить эти издержки будет не с кем. И на самом деле на выходе вы получаете относительно «дешевый» продукт. А сравнивать облако просто со стоимостью покупки железного сервера, это как сравнивать стоимость автомобиля со стоимостью металла, из которого он сделан. Но выбор, где разворачивать сервисы, за вами.
amvera.ru