Последние публикации

Атлас глобальных конфигурационных переменных Apache CloudStack, задаваемых на уровне всей системы

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

Версия CloudStack: 4.11.1

Поменять параметры можно в разделе: Global Settings

Подробнее ...

Атлас глобальных конфигурационных переменных Apache CloudStack, задаваемых на уровне хоста KVM

В статье описаны не все параметры, а только те, которые обычно требуется изменять при конфигурировании новых облаков CloudStack, использующих гипервизор KVM. Параметры для хоста KVM применяются при конфигурировании хоста и после каждой перезагрузки агента cloudstack-agent.

Версия CloudStack: 4.11.1

Поменять параметры можно в конфигурационном файле на узле виртуализации: /etc/cloudstack/agent/agent.properties

Многие параметры описаны в документации Apache CloudStack. Полный список параметров с комментариями можно посмотреть в Git-репозитории CloudStack. Поскольку не все параметры задокументированы, то их часть можно посмотреть в исходном коде. Описанные далее параметры рекомендуется указывать уже после успешного добавления хоста к облаку, но до выделения виртуальных машин.

Подробнее ...

Атлас глобальных конфигурационных переменных Apache CloudStack, задаваемых на уровне кластера

В статье описаны не все параметры, а только те, которые обычно требуется изменять при конфигурировании новых облаков CloudStack. Параметры для кластера применяются без перезагрузки серверов управления CloudStack и влияют только на тот кластер, для которого установлены.

Версия CloudStack: 4.11.1

Поменять параметры можно в разделе: Infrastructure / Clusters / Cluster Name / вкладка Settings

Подробнее ...

Расширение 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;
  • инфраструктура как код.