Хакатон или Лунатон
Некоторое время назад мы сформировали обновленное техническое видение в Lineate с основным акцентом на Serverless - технологии и GraphQL. Эти технологии уже позволили нам реализовывать новые проекты для клиентов с повышенной эффективностью и встроенной гибкостью. С тех пор мы искали дополнительные способы повышения осведомленности инженеров внутренней линейки об этих новых инструментах, чтобы они были готовы к новым проектам.


История про первый в Lineate Serverless Technologies Hackathon.
Изначально мы хотели запустить внутреннюю продуктовую инициативу, которая бы способствовала бы реализации нашего нового видения. Однако, увеличенные оценки, вызванные скрытой неопределенностью в отношении этих новых технологий, замедлили процесс. И мы нашли более совершенный подход.


В конце июня мы провели Хакатон, который позволил нашим инженерам создавать быстрые и полезные прототипы, реализовывая при этом преимущества Serverless - технологий. Что такое Хакатон? Это соревнование по программированию с целью создания реальной работающей системы за очень ограниченное время. Перед каждой командой была поставлена не простая задача: разработать идею, которая помогла бы нашим клиентам, улучшила внутренние процессы / повысила осведомленность о работе распределенных команд. Мы предоставили каждому участнику учетную запись AWS и доступ к репозиторию git. Из-за нескольких часовых поясов - от Нью-Йорка до Западной Сибири, мы дали для работы целую неделю, в течение которой команды также занимались и своими рабочими проектами. За это время им нужно было полностью разработать и реализовать идеи и представить рабочее приложение.


В итоге были сформированы четыре команды, проделавшие масштабную работу по реализации своих идей. Первая команда - "Linecraft" создала прототип web-приложения для корпоративных квестов, в котором сотрудники могут соревноваться друг с другом и выигрывать призы.


Вторая команда разработала улучшенную версию Airbnb с тёплым названием "Lineate Home". Ребята смогли создать систему приёма объявлений о продаже недвижимости и собственный пользовательский интерфейс Mobile React для мгновенной аренды (по принципу каршеринга).


Две другие команды (в одной из которых я состоял) сосредоточили свои силы на создании систем, которые делают информацию о проектах Компании более доступной.


Мы выбрали несколько иной подход: моя команда создала slack - бота под названием "PCat", который предоставляет unix - подобные команды для обнаружения проектов (pcat ls) и распечатки всей соответствующей информации о них (pcat cat). Другая команда - Project Heaven решила создать web-интерфейс для поиска проектов и внедрила мощный AWS ElasticSearch.

Команды очень хорошо справилась с поставленными задачами и продемонстрировали рабочие приложения, удовлетворяющие заданным критериям. Судей больше всего впечатлила работа команды - победителя "Linecraft". Ребята стали счастливыми обладателями электрических роликовых коньков (Знаете ли вы, что это такое?!)

В проектных презентациях мы были рады увидеть, что команды смогли успешно использовать предложенные технологии и преодолели все трудности, связанные с обучением и работой с новыми технологиями. Давайте посмотрим, что было использовано и почему это было здорово.


Весь бэкэнд был реализован как бессерверный API или AppSync GraphQL, поддерживаемый лямбда-функциями. Сервисы были описаны как код с использованием SAM и Cloudformation. Основное преимущество, которое было получено при таком подходе - быстрое создание промежуточных сред и полная автоматизация развертывания. Как сообщалось, многие смогли установить темп в несколько развертываний в день и сосредоточиться на основной производственной части проектов без особых накладных расходов. Кроме того, у команд не возникло значительных трудностей с AWS permissions, несмотря на то, что наша команда была очень строга в отношении permissions при подготовке этих сэндбоксов.


Serverless and
Infrastructure as Code
Мы уже не впервой замечаем повышенный интерес к этому технологическому стеку, и хотя GoLang не является явной частью нашего технического видения, мы хотели бы, чтобы команды использовали его при желании.

Одна из команд, которая выбрала его для своих реализаций lambda, поделилась мнением о том, что его очень легко понять и начать использовать, хотя у них возникли проблемы с выбором правильной платформы GraphQL.


GraphQL APIs
Две команды использовали GraphQL и его преимущества "общения" на языке домена между интерфейсом и бэкендом. Мы получили положительные отзывы от одной из команд о гибкости, которая сделала работу более эффективной (чем при применении более классического подхода RESTful). Что касается моего проекта - PCat, мы подключили его к API Gateway (т.к. slack требует конечных точек REST), но позже поняли, как GraphQL может быть полезен в будущем для представления информации о наших сложных проектах.


GoLang


Я очень рад тому, что Хакатон прошел так круто. Командам понравилось работать вместе, понравилось реализовывать новое видение в работе. Мы получили огромный отклик от аудитории и запросы на организацию подобных мероприятий вновь.
Eugene Wechsler
Director of Solutions Architecture
ДРУГИЕ СТАТЬИ
Привет из Обнинска: как живут коллеги на удаленке
Best Lineate projects: adMarketplace Real-Time Dashboard Tech Summary
Пять колец и шесть команд: как прошел Lineate Open
Кто был, тот знает, как было хорошо. А для тех, кого не было — сейчас расскажем подробности.
>
Очерки Бена Энгбера
Best Lineate projects:
adMarketplace Real-Time Dashboard Tech Summary
Корпоративная игра: эмоциональный интеллект
Как вам идея, что во время настольной игры можно еще и развивать свои навыки, например, эмоциональный интеллект?