Как вы запускаете свои веб-продукты?
Кластеры Kubernetes? Балансировщики нагрузки в нескольких облачных регионах? Сине-зеленое развертывание с нулевым щелчком на основе показателей в реальном времени из конвейера непрерывного развертывания?
Это все действительно круто. А если вы проводите много времени в Hacker News или читаете последние трактаты мастеров FAANG DevOps, вы убедитесь, что все это абсолютно необходимо для вашего сайта. Но все это кошмар. Настройка всего этого - сложная трата времени. А если не хочешь раскатывать все самостоятельно, это опасно дорого. Даже тогда это все еще кошмар, вы только что заплатили за привилегию этого кошмара.
Хорошие новости? Вам это не нужно *.
(* вам нужно немного ... но гораздо меньше, чем вы думаете)
В Twitter Pieter Levels - многократного победителя конкурса Product Hunt Maker of the Year, основателя постоянно растущего списка сайтов, приносящих тысячи доходов в месяц и, по сути, бога сообщества Indie Maker - спросили , что за инфраструктура он раньше принимал у себя все свои безумно успешные инди-проекты?.
Ответ? Просто… одиночный Linode VPS.
Https://twitter.com/levelsio/status/1101581928489078784
Я не говорю, что точно знаю, какая инфраструктура у Питера. Но это довольно твердое предположение, что нет ни сложных групп автоматического масштабирования, ни парка дорогих облачных машин, за которые нужно платить, ни сложных кластеров Kubernetes.
Хотите прочитать эту историю позже? Спаси его в пору расцвета.
Ваша цель при запуске продукта - создать продукт, который решит проблему для ваших пользователей. Не создавайте самые причудливые конвейеры развертывания или многозонную, многорегиональную и многооблачную настройку высокой доступности Nuclear Winter. Я понял, что каждая минута, потраченная на инфраструктуру, - это на минуту меньше затрат на доставку функций. Очевидно, что это не совсем так; вы не можете отправлять функции, если у вас нет сервера или какой-либо способ перенести ваши функции на свой сервер (и желательно оставить их там, по крайней мере, на некоторое время). Но это неплохой образ мышления. Вам нужна самая простая и наименее затратная по времени инфраструктура, которая поможет вам достичь этого.
Когда я создавал свой побочный проект Curated Design Boutique, я потратил часов на настройку простого и бесплатного конвейера непрерывного развертывания. Зафиксируйте в git, Semaphore CI создает образ Docker, загружает образ в реестр контейнеров, затем извлекает и перезапускает контейнер на моем сервере. Это действительно круто. Я почувствовал себя волшебником, когда он заработал… и он стал бесплатным! Я на самом деле сел здесь, чтобы написать все о том, как сделать это самостоятельно, пока не понял, сколько времени я потратил на это и какую ценность это принесло моим пользователям (и, как результат: сколько денег он положил на мой банковский счет) - абсолютно ничего. Конечно, автоматическое создание и загрузка в реестр? Большой! Избавляет меня от множества повторяющихся ошибок, связанных с тегами и набором текста. Но действительно трудоемкой, неудобной и ненадежной частью системы было автоматическое развертывание. Запуск сценария `docker-compose` вручную на моем сервере ничего не стоит (и я обращаю внимание, когда это делаю, поэтому мне не нужна дополнительная инфраструктура автоматического мониторинга, чтобы сообщать мне, когда я я все облажался).
Ваши пользователи не заботятся, как ваш код попадает на ваш сервер. В 99,9% случаев они также не заботятся о вашей фантастической настройке высокой доступности. Очевидно, что если вы работаете на уровне FAANG или на каком-то установленном сайте, где 0,1% простоя переводится в огромное количество денег, исчезающих из ваших книг, все это замечательно. У вас есть средства, чтобы делать все «правильно». Ваша модная система непрерывного развертывания с нулевым щелчком экономит вам тысячи / миллионы в год. Но у инди-мейкера: «Эй, посмотрите на эту классную штуку, которую я построил… пожалуйста, пожалуйста, кто-нибудь посмотрите на нее (и проголосуйте за нее тоже в Product Hunt, спасибо)» - шкале почти каждого сайта в сети - 0,1% исчезающе несущественно.
«Инженеры отвлекаются на вещи, которые волнуют инженеров, а не на решение реальных проблем для пользователей» - все это мы слышали раньше. Здесь нет шокирующего откровения (в конце концов, вы на Medium.com…). Но, похоже, существует повсеместное ощущение, что вы не можете запустить продукт без кластера K8s или двух, с балансировкой нагрузки в нескольких регионах, о, и если вам нужно развернуть что-то вручную, как вы можете рассчитывать на получение прибыли?
Итак, наконец, воплотили эту следующую идею Unicorn в код? Вам не нужна вся запланированная вами инфраструктура.
📝 Сохраните эту историю в Расцвете.