SDCast

SDCast #72: в гостях Ильяс Салихов, директор по технологиям в компании Intaro и проекте retailCRM


Listen Later

У меня в гостях Ильяс Салихов, директор по технологиям в компании Intaro и проекте retailCRM. В этом выпуске мы с Ильясом обсуждаем различные аспекты разработки, начиная от технических составляющих и заканчивая различными “soft skills” темами.
В начале Ильяс рассказал про проект retailCRM, как он появился, какие решает задачи, как устроен и работает. Обсудили мы архитектуру проекта и используемые технологии. Под капотом проекта используются: PHP/Symfony/Doctrine, PostgreSQL, Redis, сервисы на Python и Go и много чего ещё.
RetailCRM — это SaaS с большим количеством пользователей, где под пользователями понимается не конкретный человек, а целая компания, использующая retailCRM, внутри которой уже работает некоторое количество человек-пользователей. Сейчас сервис используют порядка 5000 магазинов, то есть пользователей-компаний, 30 млн хитов в сутки.
Ильяс рассказал, как они организуют хранение разных пользователей-компаний в базе данных и как организована работа бэкенда с этими данными. Забегая вперёд скажу, что retailCRM — это по большому счёту монолит на PHP/Symfony, где каждый пользователь-компания живёт на своём поддомене, однако все запросы обрабатываются этим самым монолитным приложением, а данные каждого пользователя-компании — это отдельная схема в базе данных PostgreSQL.
Также Ильяс рассказал про архитектуру и программные компоненты всей системы в целом. Обсудили мы вопросы миграции данных и выкладки новых версий компонентов, задачи мониторинга и обслуживания и другие сопутствующие вопросы.
Не обошли мы стороной и различные около технические темы в разработке, такие организация и инструменты командной разработки, вопросы найма и оценки квалификации программистов, расширение кругозора и обмен знаниями внутри компании.
Ссылки на ресурсы по темам выпуска:
* Beanstalkd (https://github.com/kr/beanstalkd) — простое решение для организации очередей
* Доклад Ильяса про варианты кеширования в Doctrine и тегированный кеш “Extended Doctrine Cache” (https://www.youtube.com/watch?v=haZ1BS1QoCM)
* Статья Андрея Смирнова “ (http://smira.ru/posts/20081028web-caching-memcached-4.html)Проблема одновременного перестроения кэшей” (http://smira.ru/posts/20081028web-caching-memcached-4.html#)
* Доклад Ильяса “Особенности построения SaaS-сервиса на Symfony2” (https://www.youtube.com/watch?v=VNGuS-UB6DM)
* GoSSHa (https://github.com/YuriyNasretdinov/GoSSHa) — утилита быстрого параллельного выполнения команд на тысячах серверов
* dplr (https://github.com/muxx/dplr) — обертка над GoSSHa на PHP
* Pinba (http://pinba.org/) — MySQL storage engine that acts as a realtime monitoring/statistics server for PHP
* Intaro Pinboard (https://github.com/intaro/pinboard) — Realtime PHP monitoring system which aggregates and displays Pinba data
* pinba-bundle (https://github.com/intaro/pinba-bundle) — Symfony bundle for pinba timers sending with time of operations execution for Doctrine, Twig and Memcache
* custom-index-bundle (https://github.com/intaro/custom-index-bundle) — создание нестандартных индексов (например, индексы на выражение, partial-индексы, gist/gin-индексы) в PostgreSQL через аннотации в Doctrine
* twig-injection-bundle (https://github.com/intaro/twig-injection-bundle) — бандл позволяет добавить событийную модель в twig для слабой связности шаблонов
* Канал Intaro Development на Youtube (https://www.youtube.com/channel/UCU1-Ee0E9PhZVJeibRea3eA) с записями докладов с митапов Intaro
Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon) а так же ретвитом, постом и просто рассказом друзьям!
...more
View all episodesView all episodes
Download on the App Store

SDCastBy Konstantin Burkalev

  • 4.1
  • 4.1
  • 4.1
  • 4.1
  • 4.1

4.1

7 ratings