ГЛАВНАЯ · Технологии

Наши технологии

Мы делаем сервис, который приносит пользу миллионам людей. Здесь мы рассказываем, с помощью каких технологий мы это делаем
Наш проект пишется на PHP с самого его создания. Мы пережили несколько миграций и совсем скоро завершим очередную — в этот раз на PHP 7.
В качестве основных БД мы используем MySQL, а точнее его форк — MariaDB 10. В них мы храним все важные операционные данные, целостность которых для нас важна. Естественно, у каждой базы есть реплики, а общий объем наших баз приближается к 1ТБ.
Мы очень любим данные. Они помогают находить множество точек роста и осознанно двигаться вперед. Для сбора и обработки аналитических данных мы используем ElasticSearch — пока версии 1.7, но вот-вот уже перейдем на 2.3. За последний год мы собрали уже больше миллиарда событий.
Для хранения больших объемов не очень структурированных данных мы используем MongoDB 3 с новым движком WiredTiger, который позволяет нам эффективно оказывать множество полезных дополнительных услуг нашим клиентам. И да, если к нам попала какая-то полезная информация, она остается у нас навсегда ;–)
На чем пишем
Наши базы даных
Cбор и обработка аналитических данных
Хранение больших объемов данных
Свои мобильные приложения для iOS мы разрабатываем на языке Swift. Конечно, не забываем и про наработки из CocoaPods. Тестируем код приложений при помощи XCTest Framework.
Для сбора метрик и анализа производительности своих систем у нас настроено более 50 дашбордов Grafana на основе более 100К метрик в Graphite.
Наш фронтенд мы строим на компонентном подходе. Костяк сейчас основан на React + Redux, компоненты пишутся на TypeScript, оформляются при помощи Less, а собирается все это добро Webpack-ом. Хотя завтра все эти слова могут стать совсем другими J Кстати, на сервере все это тоже рендерится - как на NodeJS, так и на экзотическом php-v8js.
Приложения для IOS
Сбор метрик и анализ
производительности
Фронтенд
Каждый наш релиз проходит тестирование при помощи 1000+ автоматизированных TestCase-ов на ферме агентов Selenium-а.
Тестирование
Логи наших сервисов собираются при помощи пар Redis и LogStash, сохраняются в ElasticSearch, а смотрим мы их через интерфейсе Kibana.
У нас создана и развернута инфраструктура для создания, тестирования и выкладки микросервисов в виде Docker-контейнеров, которые взаимодействует через шину, основанную на RabbitMQ. Для разработки микросервисов мы используем Vagrant, а для тестирования и выкладки - Atlassian Bamboo. Один наш продакшн-проект работает, используя исключительно такой подход.
Логи сервисов
Микросервисы