Pull to refresh
109
17.5
Александр Сербул @AlexSerbul

Пользователь

Send message

Как мы построили BI-систему, изменили процессы разработки и создали 25 000 подов клиентов в Kubernetes

Level of difficultyMedium
Reading time8 min
Views1.9K

«Битрикс24» — продукт, который позволяет клиентам удобно управлять бизнес-процессами и эффективно использовать доступные данные для глубокой аналитики. В последнем особенно помогает «BI Конструктор» — внутреннее решение, с помощью которого можно реализовывать даже самую сложную аналитику и прозрачно контролировать все метрики.

Меня зовут Александр Сербул. Я руководитель больших данных, высоконагруженных систем и машинного обучения «Битрикс24». В этой статье я расскажу, как мы строили «BI Конструктор»: какие требования предъявляли к решению, как решали возникающие задачи и что получили в результате.

Статья подготовлена по мотивам моего доклада на VK Cloud Conf 24. Вы можете посмотреть его здесь.

Читать далее
Total votes 10: ↑10 and ↓0+18
Comments0

Контейнеры, разминаем мозги под Kubernetes – разговоры у костра

Level of difficultyEasy
Reading time21 min
Views4.6K

Привет, друзья! Разговоры у вечернего костра, у палатки, у реки, в спокойный, тихий вечер и в располагающей к технической честности и объективности атмосфере, а не «у пепелища дата-центра», как некоторым может показаться! 😊 Приготовьтесь погрузиться в захватывающую историю, как, но, важнее, почему мы сознательно пришли к активному использованию контейнеров и «доросли» до внедрения Kubernetes в высоконагруженном проекте «BI-конструктор». Но про Kubernetes в посте не будет не слова, будет только про контейнеры, но мы подготовим мозг к следующему посту, уже исключительно про Kubernetes, но тоже максимально доступно. Однако, я буду все рассказывать очень простыми (иногда техническими) словами, без ныряния в многоуровневый мат, уж простите. Я убежден, что когда ты все прочувствовал и выстрадал умом и сердцем, то сможешь этот опыт передать доступно и понятно другим, а когда сам не понимаешь, о чем говоришь, то и остальных просто запутаешь. И еще один момент – технических картинок и графиков по теме тоже не будет, они вызывают головную боль от растекания абстракций и их легко найти самостоятельно и в конце я дам рецепт где. Но, даже без них, не сомневайтесь, вы все поймете с первого раза. Итак, наливайте кофе, насыпайте попкорн, кладите в карман таблетку от головной боли (иногда будет сложно, но ради вашего же блага) и ныряйте «под кат».

Читать далее
Total votes 8: ↑5 and ↓3+4
Comments5

Перенести проверенную схему бэкапа больших данных из S3 в Yandex Cloud: опыт Битрикс24

Level of difficultyMedium
Reading time9 min
Views2.1K

Меня зовут Александр, я руковожу направлением больших данных в Битрикс24. Клиенты нашего сервиса хранят миллиарды файлов: от документов до фотографий, — а моя команда предоставляет возможность строить бизнес-аналитику на основе этого множества данных. И нам важно позаботиться об их сохранности.

Более 10 лет назад мы продумали необходимую нам схему репликации объектного хранилища в облаке. Затем файлы клиентов потребовалось перенести в другое облако, и нам очень хотелось также перенести все наши наработки в режиме «Ctrl+C, Сtrl+V».

В статье расскажу, как мы организовали резервирование данных в парадигме слабого связывания и как перенесли эту схему в Yandex Cloud без потери важных нам деталей.

Читать далее
Total votes 14: ↑14 and ↓0+17
Comments5

Как мы организовали высокоэффективное и недорогое DataLake и почему именно так

Reading time12 min
Views6.3K
Мы живем в удивительное время, когда можно быстро и просто состыковать несколько готовых открытых инструментов, настроить их с «отключенным сознанием» по советам stackoverflow, не вникая в «многобукв», запустить в коммерческую эксплуатацию. А когда нужно будет обновляться/расширяться или кто-то случайно перезагрузит пару машин — осознать, что начался какой-то навязчивый дурной сон наяву, все резко усложнилось до неузнаваемости, пути назад нет, будущее туманно и безопаснее, вместо программирования, разводить пчел и делать сыр.

Не зря же, более опытные коллеги, с посыпанной багами и от этого уже седой головой, созерцая неправдоподобно быстрое развертывание пачек «контейнеров» в «кубиках» на десятках серверов на «модных языках» со встроенной поддержкой асинхронно-неблокирующего ввода-вывода — скромно улыбаются. И молча продолжают перечитывать «man ps», вникают до кровоточения из глаз в исходники «nginx» и пишут-пишут-пишут юнит-тесты. Коллеги знают, что самое интересное будет впереди, когда «всё это» однажды станет ночью колом под Новый год. И им поможет только глубокое понимание природы unix, заученной таблицы состояний TCP/IP и базовых алгоритмов сортировки-поиска. Чтобы под бой курантов возвращать систему к жизни.
Читать дальше →
Total votes 10: ↑7 and ↓3+7
Comments3

Rust для веб-разработчика — быстрый старт и стремительный полет

Reading time21 min
Views29K
Всем привет! Сегодня хочу поделиться опытом изучения языка и быстрой реализации высоконагруженного сетевого проекта, использующего так популярные и востребованные сейчас неблокирующие асинхронные сетевые соединения, на новом, красивом, элегантном и очень эффективном языке Rust.
Особый упор в посте сделаю на быстрое и ясное объяснение возможностей языка и платформы специалистам, имеющим большой опыт в веб-разработке, ибо сам таким и являюсь. Существует заблуждение, что кривая вхождения в Rust — очень-очень крутая. Но я покажу, что это далеко не так. Наливаем кофе и погнали!
Читать дальше →
Total votes 59: ↑38 and ↓21+34
Comments172

Нагрузочное тестирование веб-проекта — без купюр

Reading time10 min
Views21K
Друзья, добрый день!

Продолжаем серию публикаций «без купюр» о проектах, связанных с разработкой, часто с приставкой «веб». Поговорим сегодня о нагрузочном тестировании. Проблема в том, что часто ни клиент, ни руководитель проекта не понимают, зачем оно нужно, какие риски оно позволяет снизить, как его организовать и как, а это самое, думаю, сложное, интерпретировать его результаты с пользой для бизнеса. Наливаем кофе и поехали…
Читать дальше →
Total votes 21: ↑18 and ↓3+15
Comments29

Борьба за качество в веб-приложениях, депрессия, драконы и Вестерос

Reading time10 min
Views3.8K
Веб-разработку никто, изначально, не планировал. Даже в страшном сне. В генеральном плане, при поддержке крупных корпораций и науки, люди воспринимали создание дорогостоящих IT-систем как близконаучный процесс, доступный избранным, в котором очень важно знать не только быстро забывающиеся большинством алгоритмы (я 5 раз заучивал с листочком принцип обхода красно-черного дерева — взгляд на покачивающиеся бедра ранней весной полностью стирает полученную информацию), но и внутренности железа. Это священнодействие, разумеется, нужно было правильно (слава великому Демингу) контролировать, измерять и тестировать и тестировать и во веки веков, аминь. Но что-то сразу пошло не туда и не так…
Читать дальше →
Total votes 9: ↑5 and ↓4+1
Comments6

Выбор технологий, архитектуры и проектирование в программных проектах — без купюр

Reading time11 min
Views6.3K
Друзья! Мы продолжаем серию публикаций «без купюр» о проектных процессах, IT-технологиях и о том, как работать эффективно. Сегодня поговорим об очень наболевшей теме, вызывающей изжогу в головном мозге — выборе технологий, языков программирования, роли архитекторов, аналитиков, тимлидов и экстрасенсов для решения эпической задачи: запустить программное решение, если возможно, в разумный срок. И отдельно остановимся, ну чтобы совсем не заскучать, на анализе корреляции размеров частей тела одной части коллектива с производительностью работы мозга другой. Наливайте кофе и поехали!
Читать дальше →
Total votes 23: ↑19 and ↓4+15
Comments2

Оценка и планирование в программных проектах — без купюр

Reading time10 min
Views6.9K
Друзья, добрый день!

Мы продолжаем серию публикаций «без купюр» о проектах, связанных с разработкой, часто с приставкой «веб». Сегодня поговорим о том, как наиболее правильно и быстро проводить оценки работ и планировать релизы программной системы. Скорее всего, начинающие менеджеры и энергичные и ищущие себя разработчики будут шокированы рекомендациями, но, поверьте — цель стоит одна и только одна: помочь и сделать из вас настоящего джедая, который и пользу компании приносит, и проекты двигает, да и людей развивает одновременно. Такого джедая, который искренне не заслуживает быть обнаруженным в виде мумии в темной серверной между стойками с веб-серверами и базами данных веб-проекта, летящего в будущее без душевно документированного кода, ТЗ — лишь на энергии чистого «ХЗ». Итак, поехали!
Читать дальше →
Total votes 21: ↑18 and ↓3+15
Comments1

Сбор требований к программному проекту — без купюр

Reading time11 min
Views7K
Разработка… она как наркотик — систему пишут, пишут, ведь «прет» же. А потом, вдруг оказывается — «алименты» нужно платить. А любое изменение системы влечет гору ошибок. А ведь еще в начале прошлого века великий Курт Гёдель предвидел это и строго доказал, что даже в арифметике у нас не хватает ума, чтобы выразить все ее законы без противоречий. А в программировании и подавно — мы начнем наступать себе на ноги и запутываться. Что, в общем-то, и происходит: то ноутбук ночью включается и перезагружается, то мобильные приложения сыпят ошибками так, что они из кармана начинают выпадать и разбегаться, бранясь и попискивая, по полу.

А как вам модные нынче бета-версии всего и вся? Cкоро самолеты начнут выходить в альфа-бета версиях, похоже.

Но ведь можно же программировать без ошибок, чтобы душа радовалась и пиво попить с клиентом было не только приятно, но и безопасно!


В этом цикле публикаций на тему разных аспектов разработки ПО я постараюсь сформировать минималистичный набор ценностей и правил, которые, во-первых, помещаются в голове у среднего человека, а, во-вторых, обычно, позволяют… побеждать с наименьшими затратами и сроками. Сегодня откровенно поговорим о сборе требований к программной системе.
Читать дальше →
Total votes 23: ↑20 and ↓3+17
Comments54

Какой язык программирования учить в 2018 году и почему именно его?

Reading time10 min
Views44K
Если Вы настойчиво хотите попасть в команду разработчиков компилятора или в «мир Дикого Запада» — то смело выбирайте и учите топовый язык программирования из TIOBE и лучше всего: на уровне его спецификации. А если серьезно, то сейчас в отрасли все так запутанно с логикой и выводами, столько маркетинга и воды, что самая выигрышная стратегия — включить свои собственные мозги и сделать экспресс-переоценку технических ценностей, к которым мы так привыкли. В посте я постараюсь максимально ясно сориентировать начинающих свою карьеру разработчиков по рискам выбора технологий и сделать правильные и далеко (далеко-далеко) идущие выводы.
Читать дальше →
Total votes 134: ↑59 and ↓75-16
Comments310

Bigdata, машинное обучение и нейросети – для руководителей

Reading time11 min
Views15K

Если менеджеру попытаться разобраться в этой области и получить конкретные бизнес-ответы, то, скорее всего, страшно заболит голова и екнет сердце от ощущения ежеминутно упускаемой выгоды.


"AlphaGo обыграл чемпиона по Go" впервые за всю историю человечества, скоро наши улицы заполонят беспилотные автомобили, распознавание лиц и голоса теперь в порядке вещей, а в квартиру к нам завтра постучатся AI-секс-куклы с грудью наивысшего размера с шампанским под мышкой и настраиваемым уровнем интенсивности и продолжительности оргазма.


Все оно так, но что делать-то прямо сейчас. Как на этом заработать в краткосрочной перспективе? Как заложить прочный фундамент на будущее?


Постараюсь дать исчерпывающие ответы на все мучающие вас вопросы, «вскрыть» подводные камни и, главное — здраво оценить риски в AI и научиться ими правильно управлять. Ведь то, что не понимаем, то и не “танцуем”.

Читать дальше →
Total votes 35: ↑18 and ↓17+1
Comments11

Как нам помогают нейронные сети в технической поддержке

Reading time7 min
Views15K
Несмотря на всеобщий хайп вокруг машинного обучения и нейронных сетей, несомненно, сейчас на них действительно стоит обратить особое внимание. Почему? Вот ключевые причины:

  1. Железо стало гораздо быстрее и можно легко обсчитывать модели на GPU
  2. Появилась куча неплохих бесплатных фреймворков для нейросетей
  3. Одурманенные предыдущим хайпом, компании стали собирать бигдату — теперь есть на чем тренироваться!
  4. Нейронки в некоторых областях приблизились к человеку, а в некоторых — уже превзошли в решении ряда задач (где тут лопаты продают, надо срочно бункер рыть)

Но управлять этим, по прежнему, сложно: много математики, высшей и беспощадной. И либо ты из физмата, либо сиди и решай 2-3 тысячи задачек в течении двух-трех лет, чтобы понимать, о чем идет речь. Разобраться по дороге на собеседование в электричке, полистав книжку «Программирование на PHP/JavaScript за 3 дня» — не получится, ну никак, и списать никто не даст (даже за ящик водки).


Вам не дадут «списать» модель нейросети даже за ящик водки. Часто именно на Ваших данных публично доступная модель работает внезапно плохо и придется разбираться в тервере и матане

Но зато, ууУУ, овладев основами, можно строить разные предсказательные модели, реализующие интересные и мощные алгоритмы. И вот тут язык начинает заворачиваться и выпадать изо рта, цепляя левый глаз…
Читать дальше →
Total votes 30: ↑22 and ↓8+14
Comments33

Грехи и добродетели — в веб-разработке

Reading time7 min
Views6.4K
Это, конечно, слабость, но сильная любовь к программированию, компьютерным системам и алгоритмам сжигает меня и заставляет иногда саморазрушаться и совершать глупости. Никогда нельзя забывать, что именно лень — двигатель прогресса и умение лениться и не писать лишний код — важное и ценное умение современного разработчика.
Читать дальше →
Total votes 35: ↑14 and ↓21-7
Comments42

Agile в небольших командах — как красиво сломать себе шею

Reading time6 min
Views30K
Я весело вещал на киевской партнерке про Agile в небольших командах. Но… недовещал, а только разогрел. Хочется, все таки, закончить повествование и рассказать, наконец, правду-матку о том, как все таки красиво Agile ломает шеи разработчикам и менеджерам! Наливаем кофе и ныряем под кат, будет очень весело.
Читать дальше →
Total votes 43: ↑26 and ↓17+9
Comments120

Расширенная регуляризация нейронных сетей в интернет-магазинах — с помощью… напалма

Reading time9 min
Views10K
Подмигнув дедушке Энштейну, поправив ранец с напалмом и пригладив стильную черную маечку с изображением формулы закона нормального распределения, ведущий аналитик распахнул двери PR-отдела, блистательно улыбнулся и спросил: «Ребят, продолжаете собирать e-mail клиентов в эксельках и креативите методом блуждания левой руки с закрытыми глазами?». Получив радостное «ага :-)», боец мысленно поблагодарил Джона Непера за проделанную работу на благо просвещения человечества и сокращение рутинного труда и… бодро нажал на гашетку.

Альберт Энштейн всегда вдохновлял аналитиков на внедрение передовых алгоритмов

Спустя 5 минут топливо в ранце уже закончилось, было довольно тепло, если не сказать — жарко, но коллеги (?) ничего не замечали и продолжали считать лайки под своими постами в соцсетях.
Читать дальше →
Total votes 15: ↑12 and ↓3+9
Comments10

Искусственный интеллект, вызовы и риски – глазами инженера

Reading time11 min
Views18K
Добрый день, коллеги. Сегодня хочется трезво посмотреть глазами инженера на так популярные сейчас искусственный интеллект и Deep learning, упорядочить, выстроить факты и выработать выигрышную стратегию – как с этим … взлететь, пролететь и не упасть кому-нибудь на голову? Потому-что, когда дело от лабораторных моделей на python/matplotlib/numpy или lua доходит до высоконагруженного production в клиентском сервисе, когда ошибка в исходных данных сводит на нет все усилия – становится не то, что весело, а даже начинается нумерологический средневековый экстаз и инженеры начинают сутки напролет танцевать, в надежде излечиться от новомодной чумы )


Танцующие инженеры, тщетно надеющиеся исцелиться
Читать дальше →
Total votes 36: ↑29 and ↓7+22
Comments31

Deep Learning — что же делать, кого бить

Reading time3 min
Views22K
Нигде, наверно, нет такой насущной необходимости в синергии знаний разных областей науки — как в области машинного обучения и Deep Learning. Достаточно открыть капот TensorFlow и ужаснуться — огромное количество кода на python, работающее с тензорами внутри… C++, вперемешку с numpy, для выкладки в продакшн требующее чуток покодить «на плюсах», вприкуску с bazel (это так волнует, всю жизнь мечтал об этом!). И другая крайность — ребята из Deeplearning4j прокляли python к чертовой матери и вращают тензоры на старой и доброй java. Но дальше всех ушли, похоже, студенты из университета Нью-Йорка — люди, причем не только студенты, причем давно и серьезно жгут на Luajit + nginx (аминь по католически). Ситуация осложняется недавним демаршем Google DeepMind в отношении «дедушки torch»: все проекты переводят на свой внутренний движок, родившийся из DistBelief.
Полнейший хаос и бардак.
Читать дальше →
Total votes 41: ↑28 and ↓13+15
Comments52

Коммуникации в программировании — во сне и наяву

Reading time9 min
Views12K
В детстве я считал библейскую историю про Вавилонскую башню — странноватой сказкой, пока не начал сталкиваться с аномалией непонимания людьми друг друга чуть ли не каждый день в программных проектах. Простыми словами суть истории про башенку такая: люди «кодили» большую, страшшшшную, мощщщную систему и до того усложнили архитектуру и заумничались — что стали запутываться, наступать друг другу на ноги, руки и головы и вся конструкция стала колом к чертовой матери — команда развалилась и переругалась, «фрилансеры» с дубинами в руках, глиняными дощечками (вместо ноутов) под мышкой и запасами копченого мяса разбрелись по земле.


Читать дальше →
Total votes 22: ↑15 and ↓7+8
Comments9

Юмор в программировании: P, NP и машины Тьюринга

Reading time5 min
Views5K
Чем мы занимаемся большую часть времени? Пишем код — прикладываем математику к реальности, крутим алгебру конструкциями языка и создаем новое и интересное.

Но почему-то часто забываем, что законами отношений чисел друг к другу и изученными алгоритмами — мир не заканчивается и реальность намного сложнее и многограннее. Особенно хорошо это заметно в условиях нечетких требований, сжатых сроков и меняющегося рынка.

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

А иногда люди придумывают вещи, сильно оторванные от реальности — типа недетерминированной машины Тьюринга и вопрос — зачем? :-)

Читать дальше →
Total votes 22: ↑5 and ↓17-12
Comments5

Information

Rating
418-th
Location
Раменское, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity