Мы ( Octopus Deploy ) публикуют серию о нашем инженерном путешествии с осьминоги. Это история нашего запуска Облака осьминога на AWS, наши 100 тысяч долларов в месяц AWS, MVP и тестирование требований клиентов, расходуя на 6 месяцев инженерных усилий, а затем запустить службу в потере, проводить еще 9 месяцев восстановления его от Заземление, и из всех соображений, которые мы сделали при восстановлении осьминога облака V2, включая переход от AWS на Azure, собираясь все в Kubernetes и многое другое.
В этом первом посте в серии мы посмотрим на выбор дизайна, который мы сделали в V1, почему это стоят так много, и почему мы решили начать все сначала.
Около года назад Мы запустили Облако осьминога , SaaS-версия осьминога, в качестве эксперимента, чтобы увидеть, будет ли это значительное значение нашим клиентам и упростить их развертывание. Мы хотели уполномочить разработчикам сосредоточиться на их потребностях в развертывании и оставить нам в развертывании, но мы не имели идеи, насколько трудно было бы реализовать или сколько времени и денег стоило бы встать и бежать.
В целом, мы думаем, что это был огромный успех; Достаточно для нас инвестировать в прошлый год восстановить почти всю платформу с нуля. Я был частью команды, которая отправила нынешнюю версию осьминога облака, и я хотел занять некоторое время, чтобы отпраздновать несколько наших побед и размышлять о уроках, которые мы узнали, что сформировали наш редизайн.
Кто-нибудь его пользуется?
Идя в этот эксперимент, мы знали, что есть интерес к облачному решению, но было много вещей, которые мы не знали:
- Сколько клиентов на самом деле будет использовать это?
- Что все это будет стоить?
- Что мы должны взимать за это? Он собирается покрыть расходы на инфраструктуру?
Мы могли бы угадать большинство из них, но зная ответы невозможны. Инженерное время тоже очень дорого, и пришло время мы могли бы потратить добавление функций на наш самосоведный продукт. Мы не хотели проводить годы, разработав идеально оптимизированным облачным продуктом, если бы не было никакого спроса на него.
Мы решили построить MVP на основе наших лучших оценок и тестируйте рынок таким образом. Цель состояла в том, чтобы запустить что-то через 6 месяцев и тестировать, если бы спрос был там; И если это не было, мы только потратили только 6 месяцев. Мы решили оптимизировать, чтобы быстро добраться до рынка, а не беспокоиться о том, сколько это будет стоить.
Ну, спрос был там. В первые дни у нас было более 500 новых облачных испытаний. По мере того, как клиенты пришли на наш веб-сайт и решили, между ли судними осьминогами или осьминогим облаком, примерно наполовину решили пробный осьминог в облаке.
Архитектура V1
Чтобы быстро принести облако осьминога на рынок, мы сделали самую простое место; Мы взяли наш самоуверенный продукт Octopus Server и в комплекте его в экземпляр EC2 для каждого зарегистрированного зарегистрированного клиента. Мы должны были внести изменения в продукт, но в основном вокруг разрешений.
На самом деле у нас была внутренняя альфа осьминового облака V1, готовая в течение месяца или двух; Я помню, что команда делает Bug Bashes для проверки нашей безопасности. Что заняло больше времени, были все шагами, необходимыми для того, чтобы сделать что-то, что мы были счастливы, чтобы клиенты были использованы: упрочняющие безопасность, зацикливание, планирование для восстановления и т. Д.
Для обеспечения того, чтобы данные пользователя не было никаких способов смешивать с другим, каждый экземпляр облака имел свой собственный выделенный VM, базу данных и большое количество конфигураций безопасности для предотвращения любого забавного бизнеса. Вот диаграмма того, что все это выглядела. Обратите внимание, что мы фактически используем развертывание осьминога для обеспечения и развертывания каждого клиента Cloud V1 Octopus:
Пределы обслуживания
Вы знаете, что чувствуете, когда вы едете, и вы, кажется, ударили каждый красный светофор? Это вроде, что запускает облако осьминога; Только красные огни были ограничения услуг AWS! Мы быстро узнали, что все В AWS есть какой-то ограничение обслуживания, и мы ударили их всех. Клиенты подписались бы, мы бы ударили ограничение, мы бы попросили Amazon увеличивать его, мы настроили больше клиентов, и мы достигли другого предела. Каждый раз, когда мы думали, что мы были в ясном, мы достигли еще одного предела обслуживания, о которых мы не знали.
Это вызвало несколько вопросов, поскольку мы масштабировались, и в какой-то момент мы должны были приостановить новые регистрации, пока мы пытались обеспечить больше запасов.
Облачные вещи могут быть действительно дорогими
Экземпляр EC2 для каждого клиента добавляет вверх, и поскольку наши базы данных были сохранены Amazon RDS, мы были ограничены 30 базами данных на экземпляр RDS. Добавить хранение, сеть и т. Д. И мы тратили более 100 долларов в месяц, чтобы сохранить один экземпляр облака осьминога онлайн.
Клиенты Cloud Octopus могут начать бесплатную 30-дневную пробную версию, что означало, что те сотни судебных вычислений в месяц, каждая из которых стоит до 100 долларов США на проведение, быстро добавленное.
У нас также не было нашего ценообразования совершенно верно. Мы изначально запустили Облако осьминога с началом $ 10/месяц, с другой моделью ценообразования от того, который мы используем в настоящее время. К сожалению, это был один из самых болезненных уроков, которые мы узнали, потому что дефицит между тем, что мы обвиняем, и расходы увеличили чистое количество людей, использующих Облако осьминога; продолжающийся рост будет дальше усилить проблему.
Два месяца, мы начали серьезные разговоры о наших $ 100 тысяч долларов США ежемесячного AWS потратить, и тот факт, что у нас было очень мало доходов, чтобы компенсировать этот счет:
Мы должны объяснить, что Осьминог развертывается как компания не публично указан или финансируется VC. Мы были с гордостью загрузки и прибыльной, так как Octopus 1.0, и мы всегда запускаем бизнес консервативно и устойчиво. Мы вдруг оказались новым бизнесом, который стоил нам деньги в тревожном уровне.
Мы решили взять уроки, которые мы учились и начали огромное тело работы, которую мы позвонили Облако V2 ; Ремагинальное осьминовое облако, построенное в масштабе устойчиво.
Даже когда мы строили V1, команда знала, что это не идеальная архитектура. До того, как V1 даже запустил, в нашем расслаивании было много разговоров о том, следует ли портировать осьминог в Linux и запустить его на Kubernetes или посмотреть, сможем ли мы запустить его в Windows в Kubernetes или использовать Nomad by Hashicorp? И все это вернулось в начале 2018 года, когда все было взбито, а не так зрело, как и сегодня. Таким образом, стоимость единицы не была очень неожиданностью.
Что было удивительно, было спросом. Если бы только несколько клиентов подписались каждый месяц, мы могли бы легко носить расходы (и истина, мы все еще можем, мы все еще можем, осьминог на себя у нас есть большие поля!). Но с таким количеством клиентов подписываются, он стал гораздо более срочным. 100 тыс. Долл. США + в месяц составляет 1,2 млн долларов + в течение года, что для того, чтобы оправдать расходы инженерных усилий, чтобы привлечь его.
Начать сначала
Мы изучили все виды вариантов, чтобы снизить наши расходы, и первоначальный план был итерацией на архитектуру V1 и искать экономию затрат, и мы добились некоторых прогресса там, но в конечном итоге мы заключили лучший способ значительно снизить наши расходы (Без жертвующих характеристиками клиентов) включал некоторую существенную архитектуру и по сути, начиная с нуля.
В остальной части этой серии мы пойдем в каждую из решений, которые мы сделали, когда повторно инженерное облако осьминога для V2. Это включает:
- Переключение с AWS на Azure.
- Портирование осьминога сервера в Linux.
- Запуск осьминога в контейнерах и с использованием Kubernetes.
С Cloud Octopus V2, мы также поддерживаем себя, чтобы учиться и использовать много технологий на переднем краю хостинга и оркестрации. Террафом , Контейнеры , Кубернаны и Функции Azure Всего несколько пробелов, в которых мы работаем в настоящее время. Этот подход приносит свои собственные задачи, но он также будет питаться в следующем поколении Octopus Tooling, мы можем построить с опытом, который мы приобретеем по пути. Питье нашего собственного шампанского Уже улучшил тонну функциональности в осьминоге, поскольку мы стали одним из наших собственных крупнейших клиентов.
Заключение
Решив, чтобы восстановить что-то с нуля, это жестоко, он может чувствовать, что ваша предыдущая попытка была потрачена впустую время и усилие, и эта работа высажена. Также очень легко пойти в проект «MVP» сознательно, но затем привязывается к нему, предполагая, что это будет окончательная архитектура. Нам нужно было распознать, что второй шаг был возможен только потому, что первый шаг был предпринят, и каждый урок, извлеченный по пути, был важный вклад.
Строительство Cloud Octopus Cloud V2 было очень отличным от V1, где, прежде чем мы угадываем и летая слепой, на этот раз у нас есть реальные данные, мы можем проанализировать, чтобы ответить на некоторые вопросы, которые у нас есть: мы знаем, что пользователи будут тратить, мы знаем, что будет Стоимость, мы знаем, в каком потреблении ресурсов ожидают, а между этими вещами мы знаем, как сделать платформу, которая будет по-настоящему масштабировать.
Этот пост был первоначально опубликован в octopus.com .
Оригинал: «https://dev.to/robpearson/mvps-and-100k-aws-bills-reflections-on-the-launch-of-octopus-cloud-1-0-125l»