Rockstat Essentials
Построение собственной Customer Data Platform на базе свободной платформы Rockstat. Создание конфигурации "под себя", организация хранилища, разработка реактивных микросервисов для обогащения данных, обработки запросов и стриминга.
С 14 дек 2019 по 02 май 2020
СБ 17:00
г. Москва, м. Маяковская
20 занятий по 5 ак. ч.
Дмитрий Родин
Преподаватель
17 лет в программировании, из которых 10 в индустрии маркетинговых технологий. Создатель открытой CDP (Customer Data Platform) Rockstat, основатель Digital God. Ранее: CEO Xeteq (Linkprofit Group), CTO Блондинка.ру, Nectarin, CPO Adventum, CMO Plazius (Сбербанк).
Что будет на курсе
Общее по теории:

  • Асинхронное программирование
  • Docker Hub: чем Python с Alpine лучше Python с Debian? Виды образов, отличие операционных систем.
  • Docker-compose
  • Travis-CI - автоматическая сборка сервисов
  • Параметры HTTP сервера caddy на примере ClickHouse-proxy
  • Описание структур данных, маршалинг, анмаршалинг
  • Использование моделей Pydantic
  • Использование потоков для запуска синхронного кода

Некоторые из тем по Rockstat:

  • Микросервисная архитектура Rockstat: протоколы и "язык" на котором общаются сервисы. Координация работы и оркестровка. Процесс обработки входящих запросов и роли участников
  • HTTP в Rockstat: определение сервисов, http сервер Caddy
  • Межсервисное взаимодействие RPC-Like, HTTP streaming
  • Лимиты и ограничения, выставляемые сервисам, Работа с существующими контейнерами
  • Коммуникациция с внешним миром (детали фронт сервича)
  • Выполнение задач по расписанию. Запуск синхронного кода в потоке, избегая блокировки
  • Контейнеры. Лекция про Docker и его возможности: персистентность, интерактивность, сеть
  • Front service. Структура и процесс внесения изменений. Использование автоматической системы сборки.
  • Web-SDK обзор архитектуры, внесение доработок
  • Карта путей на сервере
Программа курса
Большая часть материала не завязана на Rockstat, более того мы разберем, как решать задачи и без него. Материал по Rockstat, будет полезен не только при использовании платформы самой по себе, воспринимайте его как справочник архитектурных решений.
Занятие 1. Определение целей на курс, Архитектура Rockstat
  • Курс будет подстроен под задачи участников, поэтому первым делом изучим потребности.
  • Подробный рассказа о всех компонентах и взаимосвязях между ними.
  • Теория про устройство рокстат.
  • Подготовка версии для обучения (будем использовать последнюю секретную версию)
  • Конвертация данных из старых версий
Занятие 2. Обработка событий в реальном времени создания чат-бот-чата
  • Организация кода в микросервисе
  • Прием внешних событий
  • Введение в асинхронное программирование
Занятие 3. Сервисы, роли, PubSub, обогатители
  • Цикл обработки входящих запросов в Front service. Идеалогия PubSub.
  • Локация сервисов. определение получателей.
  • Оптимизатор тайм-аутов. Управление тайм-аутами на разных уровнях
  • Сервис обогащения входящих данных. Добавим собственную базу разбора user-agent или гео-кодинга или даже часть коллтрекинга (надо чтобы решили все)
Занятие 4. Ре-стриминг данных во внешнее хранилище/сервис
  • Принципы
  • Mixpanel или вроде того.
  • Место вакантно....
Занятие 5. Задания по расписанию, полноценная реализация OAuth авторизации
  • Полноценная OAuth авторизация c обработкой редиректов
  • Реализация асинхронного взаимодействия с API
  • ... Детали
Занятие 6. Smart API proxy для Yandex APIs
  • Идеальный OAuth, который избавит от головняка с авторизацией раз и навсегда, сразу для нескольких аккаунтов
  • Взаимодействие микросервисов по HTTP, на примере передачи здоровенных отчетов от одного к другому
  • Создаем свой прокси-сервис к апи, 100 раз успеет окупить временные затраты на него
Занятие 7. Сервис для работы с Google APIs, без библиотеки, асинхронно
  • Обрабатывать сразу много аккаунтов параллельно, не тратя ресурсы сервера
  • Детали...
Занятие 8. Прокачиваем границы. Строим сервис повтора запросов, для упрощения отладки в будущем
  • Детали...
Занятие 9. Собственный github. Процесс разработки и тестирования
  • Разворачиваем Gitea - собственный github
  • Организуем код в общие библиотеки для совместного использования в сервисах.
  • Процесс разработки и тестировании ПО
  • Создаем общие библиотеки при помощи gitea и режима разработки в pip
  • Тестирование: типы тестов и реализация
  • Теория:
  • Оркестровка, не в филармонии. Управление запуском и масштабированием микросервисом.
  • Встраивание приватного сервиса, доступ через поддомен
  • Встраивание стороннего модуля отслеживания (путь domain/some_url)
  • Организация автоматического размещения и конфигурации на сервере исталлятора: делаем, чтобы установка была автоматической через ansible
Занятие 10. Система установки Ansible, Docker, оркестровка. Кейс: Postgres как Rest HTTP API
  • Подготовим и накатим контейнер с PostgreSQL, попутно разбираясь в нюансах docker.
  • Запустим еще один контейнер, реализующий REST API для Postgres
  • Автоматизируем процесс на случай обновления / повторной установки при помощи Ansible.
  • Сделаем сервис частью экосистемы Rockstat: свой поддомен, авторизация, локация
Занятие 11. Сервис сегментации пользователей. Real-time, с прокидыванием данных в браузер
  • Поднятие истории пользователя из ClickHouse
  • Процессинг данных о пользователе
  • Эффективное поднятие истории скоупом.
  • Логика обработки онлайн запросов, от юзеров
  • Дофига всего
Занятие 12. Виртуальные сети и 5 кругов iptables, VPN сервис, сервис со статикой Tabix.
  • Устройство сетей в Linux: маршрутизация, интерфейсы
  • Правила фильтрации и преобразования адресов. Nat и обеспечение доступа
  • Протаскивание сервисов наружу
  • Ограничение доступа по ip адресу
  • Настройка применения правил в bootstrap
  • Орагнизация доступа с дополгнительной авторизацией к ClickHouse серверу
  • Отдача статики и регистрация сервиса. Делаем статический http сервис с tabix, не забывая про авторизацию.
  • Подберем контейнер VPN и впишем его в обую архитекстуру
  • Приготовим контейнер сервиса с tablix для использования с собственным сервером.
  • Параллельно изучаем все нюансы докера, ansible
Занятие 13. Открыто
Занятие 14. Своя альтернатива GTM, стриминг данных GA
  • Контроль версий и публикация
  • Доступ по HTTP
  • Обработка путей и доменов
  • Способы взаимодействия с сервером
  • Стриминг данных Google Analytics к себе в хранилище при помощи разработанного плагина
  • Создание кастомной таблицы под данные GA, использование автозаписи
  • Создание кастомной таблицы и самостоятельная запись данных чанкам
Занятие 15. Делаем backend для Email рассылок
  • Получение данных форм
  • Обработка форм, рассыка писем с подтверждением (при необходимости)
  • Отслеживание открытий пикселем
  • Сопоставление с UID на сайте
  • Использование конструкторов писем
  • Генерация и рассылка писем
  • Вычисление показателей эффективности рассылки
Занятие 16. Собираем frontend для Email рассылок на TypeScript.
  • Устройство сервисов с frontend, набор технологий используемых для создания сборки фронта
  • JavaScript и TypeScript
  • React, Preact и Vue
  • MaterialUI, Blueprint.js
  • Изоморфные приложения и статика
  • Делаем виджет для подписки, отписки
  • Взаимодействие с сервером
  • Webpack и сборка приложения
Занятие 17. Сбор и рассылка пушей
  • Фронтенд, бекенд, вебворкер.
  • ... Детали
Занятие 18. Мобильная аналитика
  • Устройство сферы, какие есть решения
  • Изучаем опенсорсный SDK от mixpanel под мобильные устройства
  • Собираем (быстро по инструкции) iOs приложение, предварительно модифицировав адрес пункта назначения данных mixpanel на свой;
  • Организуем удобное хранение данных мобильной аналитики;
Занятие 19. Открыто
Занятие 20. Сервис авторизации для управления учетками для предоставления доступа к закрытым сервисам.
  • Админка для управления пользователями, группами и разрешениями.
  • Поддержка поддержка этих данных в http сервере Caddy
  • Создание своего OAuth провайдера для использования на сайтах и разграничения уровня доступа к данным
  • Прочая поебегь
Очное участие
Статус: С 14 дек 2019 по 02 май 2020
Дни занятий: СБ 17:00
Место проведения: г. Москва, м. Маяковская
Инкубатор Digital God на весь период обучения с 45 мин. персональный консультаций в неделю

5 часов 1 раз в неделю: 55м + 10м перерыв + 55м + 1 час перерыв + 55м + 10м перерыв + 55м
Всем участникам выделяется место в инкубаторе Digital God, предоставляется блок 45 мин в неделю.
Стоимость 0
Запуски

Дима
Оправдание "нет времени" оставьте для детей, мы то знаем, что его не становится больше.
Истории наших выпускников
Кто они такие и зачем им потребовалось программирование
Смотреть видео ►
Все финалисты ↗︎
С 14 дек 2019 по 02 май 2020
20 занятий по 5 ак. ч. г. Москва, м. Маяковская

Digital God
Москва, Резиденция «Дом на Маяковке»

Благовещенский пер. 1А, офис 302
м. Маяковская / Пушкинская
+7 (496) 266-62-06, TG @digitalgodbe