Как мы перешли с 30 серверов на 2: Go
Когда мы выпустили первую версию IronWorker около 3 лет назад, она была
написана на Ruby, а API было написано на Rails. Через некоторое время
нагрузка стала быстро расти и мы быстро достигли предела возможностей
наших Ruby приложений. Короче говоря, мы перешли на Go. И если вы хотите
узнать подробности — продолжайте читать…
Первая версия
Во-первых, немного истории: мы написали первую версию IronWorker,
первоначально названную SimpleWorker (неплохое название, не так ли?) на
Ruby. Мы были консалтинговой компанией, создающей приложения для других
компаний, и в то время были 2 популярные вещи: Amazon Web Services и
Ruby On Rails. И таким образом мы создавали приложения, используя Ruby
on Rails и AWS, и привлекали новых клиентов. Причина по которой мы
создали IronWorker была в том чтобы «почесать там где чешется». У нас
было несколько клиентов, использующих устройства, которые постоянно
отправляли данные в режиме 24/7 и нам приходилось эти данные принимать и
преобразовывать во что-то полезное. Решалась эта задача путем запуска
тяжелых процессов по расписанию, которые каждый час, каждый день и так
далее обрабатывали данные. Мы решили создать что-то, что мы сможем
использовать для всех наших клиентов, без необходимости постоянно
поднимать и поддерживать отдельную инфраструктуру для каждого из них,
чтобы обрабатывать его данные. Таким образом мы создали «обработчик как
сервис», который мы сначала использовали для своих задач, а затем мы
решили, что, возможно, кому то еще понадобится подобный сервис и мы
сделали его публичным. Так и родился IronWorker.
Читать далее |