Новости

Расширение Apache CloudStack для гибридной шины событий

logo
Сегодня мы хотели бы поделиться новым подключаемым модулем шины событий (Event Bus) – гибридной шиной событий, который объединяет в себе шины событий inMemory – для обработки событий внутри CloudStack, и Kafka или RabbitMQ – для взаимодействия с внешними обработчиками.

Мы используем Kafka Event Bus в наших установках CloudStack. Недавно, после начала тестирования нового подключаемого модуля в продуктовой среде, мы обнаружили, что у этой шины нет функциональности подписки на события: внутренние приемники событий не могут подписываться на события, поскольку просто отсутствует реализация.

Это довольно неприятная вещь, поскольку она ограничивает API CloudStack. Практически невозможно прогнозировать, кто хотел бы подписаться на события даже внутри ядра CloudStack, например, для осуществления отложенной обработки. Используя стандартную Kafka Event Bus, часть возможностей шины событий перестает быть доступна, и обнаружение данной регрессии весьма затруднительно. Чтобы преодолеть это, мы реализовали «гибридную» шину, которая использует шину inMemory для внутренних целей и шины Kafka или RabbitMQ для внешних коммуникаций.

Вы можете найти расширение на GitHub. Лицензия: Apache 2

Успешное завершение проекта по созданию рекламной платформы персонализированных объявлений

После шести месяцев разработки успешно завершился проект компании ОНЭЛИЯ, в котором наша команда выступала в качестве ключевого субподрядчика. Цель проекта – создание рекламной платформы, предназначенной для генерации персонализированных рекламных предложений, основанных на автоматическом анализе поведения пользователей на сайтах и мобильных приложениях. В этом проекте нам удалось проявить не только наши известные способности по разработке высокопроизводительных, масштабируемых платформ доставки рекламы, но и применить современные подходы, основанные на машинном обучении и анализе данных в режиме реального времени.

В проекте с нашей стороны участвовала команда, состоящая из шестнадцати специалистов:

  • два проектных менеджера;
  • три инженера backend;
  • два инженера frontend;
  • три инженера QA;
  • три инженера ML;
  • системный аналитик;
  • технический писатель;
  • DevOps эксперт.

Трудозатраты: более шести человеко-лет.

Ключевые технологии:

  • Языки: Scala/Akka, Python3, TypeScript;
  • Хранилища: Apache Cassandra, Elasticsearch, HDFS, RocksDB;
  • Очередь сообщений: Apache Kafka;
  • Фреймворки для больших данных: Apache Spark, PySpark;
  • СУБД: PostgreSQL, Liquibase;
  • UI: Angular 6, Fingerprint2, Swagger;
  • Инфраструктура: Ansible, DC/OS, Docker, HAProxy, NGINX;
  • Автоматизация E2E QA: Postman, Protractor;
  • Управление: Gitlab, Gitlab CI, Atlassian JIRA, Atlassian Confluence.

Практики:

  • Agile/Scrum;
  • непрерывная интеграция, непрерывная доставка;
  • Git-flow;
  • автоматизированное тестирование backend, frontend, ML;
  • инфраструктура как код.


Расширение Apache CloudStack для управления журналами виртуальных машин

logo
C 2017 года мы активно участвуем в развитии системы управления виртуальной инфраструктурой Apache CloudStack. За это время мы создали современный интерфейс пользователя CloudStack-UI, предложили несколько улучшений CloudStack и исправили ряд ошибок. CloudStack – расширяемый продукт с развитым интерфейсом расширений, который позволяет создавать подключаемые модули, изменяющие поведение системы или включающие новые функции.

Сегодня мы представляем первую версию расширения для службы централизованного сбора, хранения и обработки журналов служб, интегрированную с CloudStack. С помощью расширения cloud-vm-logs, администраторы могут собирать записи журналов с виртуальных машин и получать к ним доступ через API CloudStack. Для сбора и хранения записей журналов используется широко применяемый масштабируемый стек, основанный на Filebeat, Logstash, Elasticsearch.

Расширение позволяет пользователю фильтровать записи по времени, файлам журналов и ключевым словам. В следующей версии плагина мы планируем предоставить пользователю консольную утилиту для доступа к журналам, получение статистики журнала и настраиваемое время хранения записей.

Расширение предоставляется под лицензией Apache License 2. Исходный код расширения реализован на Java и доступен на GitHub. Если расширение окажется полезным для вас, будем рады обратной связи и предложениям улучшений.

Программа переобучения Битворкс

Мы обладаем положительным опытом переобучения разработчиков с различных технологий на другие. В 2008м мы перешли с Perl на Java, Python и PHP5, а в 2014м с PHP5 на Scala.

Наш переход был обусловлен тем, что прибыльность в сегментах падала, а нашим клиентам больше не требовались услуги разработчиков PHP5. Индустрия все время в движении: технологии становятся проще для потребителя, компании и специалисты, которые не хотят адаптироваться, вылетают с рынка. Так произошло с Adobe Flash, Flex, так сейчас происходит с компаниями, которые создают небольшие сайты и контентные проекты.

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

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

Пример нашей вакансии на HH позволит понять в каких условиях Вы будете работать в Битворкс.

Вакансия для Java разработчика в Битворкс

В один из проектов, которые ведет наша компания – NYiAX (https://www.nyiax.com/) требуется разработчик для участия в бэкенд-команде. Проект представляет собой финтех решение, которое разрабатывается совместно с NASDAQ для торговли контрактами на рекламу и другими финансовыми контрактами.

Мы ищем инженера, чьей основной специализацией является разработка сложных бэкенд-систем на языке Java. В проекте в настоящий момент используется Java 8, Spring, RabbitMQ, PostgreSQL и технологии NASDAQ для трейдинга. В настоящий момент в команде R&D участвует 22 инженера различных специализаций, вся команда находится в Томске.

Кликните по ссылке вакансии (HeadHunter), чтобы подробнее узнать об условиях работы и откликнуться.