2015-11-09

Выбор инструмента для быстрых микросервисов

Как известно, идеальных технологий не существует. Есть популярные в силу ряда причин (первые на рынке, удачный PR, хорошие менеджеры по продажам, даже реально классный код), есть незаслуженно забытые, есть продвинутые, но не для "простых смертных". Подбирая инструмент для решения какой-то задачи, мы обычно опираемся на собственный опыт (если есть) и на мнения других людей, желательно экспертов в исследуемой области. Проходя этот путь поиска я каждый раз ищу совершенство и каждый раз убеждаюсь, что его нет. Даже самый могучий ЯП и растопырчатый фреймворк имеют критиков с вескими аргументами.

Для реализации микросервисов, работа которых в том, чтобы пропускать через себя множество однотипных заданий и делать это быстро, я остановился на Go. Перечитал и пересмотрел много всего. Как питонщику он мне импонирует простотой и наличием встроенных батареек для решения повседневных задач, таких как работа с CSV и JSON, обработка HTTP-запросов и т.п. Авторы не ставили перед собой цель написать что-то концептуально новое, но сделать простой и годный инструмент, на котором писать просто, и работает быстро. Оно еще и компилируется моментально, что в процессе разработки чрезвычайно важно.

Что еще понравилось - так это статическая линковка, благодаря которой никаких зависимостей при деплое. Сервер с демонами может выглядеть как каталог с кучей бинарных файлов, файлом настроек и скриптом старта screen. Утрирую конечно, но как аккуратно получается! Вобщем, понравилось. Несколько экспериментов даже выложил на github:

Комментариев нет: