Pull to refresh
20
0
Александр Тарасов @aatarasoff

Director of Engineering @ ANNA Money

Send message

Разбор игры от Одноклассников на Joker 2018

Reading time 5 min
Views 6.5K

Всем привет! Несколько дней назад мы выкладывали пост про задачки, которые давали на конференции Joker 2018. Но это еще не всё! В этом году специально для Joker мы сделали целую игру с не менее интересными задачками по Java (и не только), про которую и расскажем сегодня.
Читать дальше →
Total votes 32: ↑31 and ↓1 +30
Comments 6

Разбор задачек Joker 2018

Reading time 4 min
Views 11K


Алоха!

Вот и закончилась одна из самых хардкорных конференций в мире Java — Joker 2018, которая традиционно проходит в Санкт-Петербурге в «Экспофоруме». В этом году в конференции участвовало рекордное количество участников. «Одноклассники» традиционно предложили помочь нашим разработчикам решить нетривиальные задачи, которые возникают при создании одного из самых высоконагруженных проектов на Java.

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

Поехали!
Читать дальше →
Total votes 39: ↑37 and ↓2 +35
Comments 6

NewSQL = NoSQL+ACID

Reading time 15 min
Views 33K

До недавнего времени в Одноклассниках около 50 ТБ данных, обрабатываемых в реальном времени, хранилось в SQL Server. Для такого объема обеспечить быстрый и надежный, да еще и устойчивый к отказу ЦОД доступ, используя SQL СУБД, практически невозможно. Обычно в таких случаях используют одно из NoSQL-хранилищ, но не всё можно перенести в NoSQL: некоторые сущности требуют гарантий ACID-транзакций.

Это подвело нас к использованию NewSQL-хранилища, то есть СУБД, предоставляющей отказоустойчивость, масштабируемость и быстродействие NoSQL-систем, но при этом сохраняющей привычные для классических систем ACID-гарантии. Работающих промышленных систем этого нового класса немного, поэтому мы реализовали такую систему сами и запустили ее в промышленную эксплуатацию.

Как это работает и что получилось — читай под катом.
Читать дальше →
Total votes 61: ↑60 and ↓1 +59
Comments 60

Белый ящик Пандоры

Reading time 15 min
Views 14K
Обсуждая тестирование, чаще всего спикеры говорят об особенностях подхода, известного как «черный ящик». Но здесь мы поговорим о противоположном сценарии — «белом ящике», позволяющем формулировать вопросы к коду, понимая его внутреннюю структуру.



В основе статьи — расшифровка доклада Никиты Макарова (Одноклассники) с нашей декабрьской конференции Heisenbug 2017 Moscow.
Total votes 33: ↑32 and ↓1 +31
Comments 1

Щи, или Распознавание 330 млн лиц на скорости 400 фото / сек

Reading time 11 min
Views 42K

Распознаванием лиц в 2018 году никого не удивишь – каждый студент, может, даже школьник, его делал. Но всё становится немного сложнее, когда у вас не датасет на 1 млн пользователей, а:


  • 330 миллионов пользовательских аккаунтов;
  • ежедневно заливается 20 млн пользовательских фотографий;
  • максимальное время на обработку одного фото не должно превышать 0.2 сек;
  • ограниченные объемы оборудования для решения задачи.


В этой статье мы поделимся опытом разработки и запуска системы распознавания лиц на пользовательских фотографиях в социальной сети Одноклассники и расскажем про все ”от А до Я”:


  • математический аппарат;
  • техническую реализацию;
  • результаты запуска;
  • и акцию StarFace, которую мы использовали для PR-а нашего решения.

Распознавание лиц Одноклассников в деталях
Total votes 65: ↑63 and ↓2 +61
Comments 25

Обзор программы Java-конференции JBreak 2018: абсолютный баланс

Reading time 17 min
Views 5.9K

Конференция: JBreak 2018
Суть: Единственная Java‑конференция в Сибири
Дата: 4 марта 2018
Место: Новосибирск, Экспоцентр, Станционная ул., 104

Меньше, чем через 2 недели, состоится JBreak 2018. В этот раз я смог поучаствовать в Программном комитете и могу не просто пересказывать чужие слова, а поделиться впечатлениями.


Это будет очень круто. Этот JBreak обещает быть чуть ли не самым сбалансированным по сочетанию хардкора, практики и смузи. Причём доклады выбраны так, чтобы как можно меньше пересекаться с JPoint (она будет через месяц). Например, Никита Коваль будет и на JBreak, и на JPoint — но с двумя совершенно разными темами. Это важно, например, для тех, кто хочет побывать на JBreak вживую, а на JPoint — в онлайне.


Доклады очень разноплановые: если вам хочется погрузиться в кромешный ад внутренностей JVM, к нам приедут Крис Талингер и Фолькер Симонис — известные специалисты в этом самом. Если хочется узнать про будущее Java, об этом есть доклад замдиректора Азула, Саймона Риттера (правда, там тоже не всё так просто — придётся погрузиться в кучу JEP'ов, релизную политику, современные тренды развития платформы и так далее). Если же хочется поучаствовать в лёгком, ярком, стремительном шоу с использованием трендовых технологий типа Apache Kafka, Kafka Connect и KSQL — для этого к нам прилетит Витя gAmUssA Гамов сооснователь и лидер любимого многими программистами правильного подкаста «Разбор Полётов» (по совместительству является Solution Architect в компании Confluent).


Чтобы не верить мне на слово, под катом будут освещены основные вопросы и приведена полная программа JBreak 2018 с описанием докладов и фоточками спикеров. В самом конце статьи будет ссылка на регистрацию. Поехали!

Читать дальше →
Total votes 42: ↑40 and ↓2 +38
Comments 9

Лекции Технополиса. Проектирование высоконагруженных систем (осень 2017)

Reading time 5 min
Views 51K


Мы начинаем публиковать курсы лекций Технополиса — образовательного проекта команды Одноклассников в Санкт-Петербургском Политехническом университете Петра Великого. Создание высоконагруженных приложений — это не только проектирование и написание кода, но и огромное количество других аспектов на всём протяжении жизненного цикла продукта. Мы пройдём по всему процессу создания и использования высоконагруженной системы. Особое внимание будет уделено особенностям эксплуатации, сетям, балансировке нагрузки, иерархии памяти, повседневным инструментам. Также поговорим о мониторинге, аудите и многом другом. Лекции курса читает команда экспертов под руководством ведущего разработчика в Одноклассниках Вадима Цесько.

Список лекций:

  1. Введение (Вадим Цесько incubos)
  2. Типовые архитектуры (Александр Христофоров)
  3. Эксплуатация (Илья Щаников)
  4. Сетевой стек (Дмитрий Самсонов dmitrysamsonov)
  5. Балансировка (Андрей Домась)
  6. Процессоры и память (Алексей Горбов)
  7. Хранилища данных (Сергей Егоричев)
  8. JVM (Андрей Паньгин apangin)
  9. Мониторинг (Сергей Шарапов Sharapoff)
  10. Облака (Леонид Талалаев)

Total votes 77: ↑75 and ↓2 +73
Comments 14

One-cloud — ОС уровня дата-центра в Одноклассниках

Reading time 22 min
Views 21K


Алоха, пипл! Меня зовут Олег Анастасьев, я работаю в Одноклассниках в команде Платформы. А кроме меня, в Одноклассниках работает куча железа. У нас есть четыре ЦОДа, в них около 500 стоек более чем с 8 тысячами серверов. В определенный момент мы поняли, что внедрение новой системы управления позволит нам более эффективно загрузить технику, облегчить управление доступами, автоматизировать (пере)распределение вычислительных ресурсов, ускорить запуск новых сервисов, ускорить реакции на масштабные аварии.


Что же из этого получилось?

Читать дальше →
Total votes 42: ↑41 and ↓1 +40
Comments 7

Kotlin Night Moscow — видео, фото, презентации

Reading time 2 min
Views 5.3K

Вот и прошла первая встреча Kotlin Night в Москве при поддержке JetBrains. В офисе Avito собрался полный зал тех, кто интересуется этим языком программирования, ещё несколько сотен разработчиков присоединились к видеотрансляции, а Belarus Kotlin User Group даже организовали совместный просмотр митапа. Встреча удалась! Под катом делимся видеозаписями выступлений, ссылками на фотоотчёт и слайды.


Total votes 24: ↑23 and ↓1 +22
Comments 2

Как не положить тысячи серверов с помощью системы централизованного управления конфигурацией на примере CFEngine

Reading time 13 min
Views 18K


Привет, Хабр! Меня зовут Дмитрий Самсонов, я работаю ведущим системным администратором в Одноклассниках. Основные сферы моей компетенции — Zabbix, CFEngine и оптимизация Linux. У нас более 8 тыс. серверов и 200 приложений, которые в различной конфигурации формируют 700 различных кластеров. Тема этой статьи исчерпывающе описана в заголовке.


Сразу хочу оговориться:


  • Я буду предвзят, потому что участвовал во внедрении CFEngine в Одноклассниках.
  • Я пользовался CFEngine только версий 3.3—3.4.
  • Я не питаю никаких иллюзий по поводу CFEngine, это значимый игрок, но не лидер рынка и не его аутсайдер. В статье не будет сравнений работы CFEngine с другими системами.
  • Из систем конфигурации у меня есть опыт использования только CFEngine и Ansible.
Читать дальше →
Total votes 58: ↑58 and ↓0 +58
Comments 26

Работа с ресурсами, или как я пропихивал @Cleanup

Reading time 15 min
Views 7.1K
Это вымышленная история, и все совпадения случайны.

Наконец-то команда разработки компании Unknown Ltd. выпустила релиз вовремя. Руководитель отдела разработки Эндрю, системный архитектор Юг и простой рядовой разработчик Боб собрались на планирование.
Читать дальше →
Total votes 16: ↑12 and ↓4 +8
Comments 15

Data Science: Про любовь, имена и не только

Reading time 13 min
Views 29K
Что значит имя? Роза пахнет розой,
Хоть розой назови ее, хоть нет.

• Шекспир "Ромео и Джульетта" (пер. Пастернака)

Ромео и Джульетта


Данная статья не может служить поводом для выражения нетолерантности или дискриминации по какому-либо признаку.


В этой статье я расскажу о том, что несмотря на то, каким бы странным это не казалось для образованного человека, вероятность быть одинокой/одиноким зависит от имени. То есть, по сути, мы поговорим про любовь и отношения.


Это примерно все равно, что сказать: вероятность быть сбитым машиной, если тебя зовут Сережа, выше, чем если бы тебя звали Костя! Звучит довольно дико, не правда ли? Ну, как минимум, ненаучно. Однако социальные сети сделали возможным сравнительно просто проверить приведенное выше утверждение.


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

Читать дальше →
Total votes 75: ↑69 and ↓6 +63
Comments 53

«Java-разработчики не осознают проблему с профайлерами»: Андрей Паньгин и Нитсан Вакарт о Java-профилировании

Reading time 9 min
Views 20K


Легко подумать, что от профилирования не стоит ожидать больших новостей: поскольку разработчики профилируют уже десятилетиями, до чего там можно было ещё не додуматься? Но в Java-профилировании кроются серьёзные подводные камни вроде safepoint bias, и появляются новые инструменты для решения подобных проблем.

Андрей apangin Паньгин (Одноклассники) недавно создал один из таких инструментов: на конференции JPoint в апреле он представил опенсорсный проект async-profiler, которому safepoint bias не страшен. Другой эксперт в этой теме — Нитсан Вакарт: о той же проблеме с safepoints многие узнали благодаря его блог-посту «Why (Most) Sampling Java Profilers Are Fucking Terrible».

Мы решили поговорить с ними обоими сразу, начав разговор с последних новостей об async-profiler, а позже перейдя к состоянию Java-профилирования в целом.
Читать дальше →
Total votes 51: ↑50 and ↓1 +49
Comments 11

«Есть плюсы как для админов, так и для разработчиков»: Олег Анастасьев про облако Одноклассников

Reading time 7 min
Views 7.4K


Публичными облаками давно никого не удивить, и про них вряд ли требуется что-то объяснять. С частными другая история: все знают об их существовании, но далеко не всем доводилось иметь с ними дело, так что чужой опыт интереснее.

Поэтому переход Одноклассников от подхода «каждый сервер занимается своей задачей» к облачному подходу «единый пул ресурсов распределяется по необходимости» вызвал у нас вопросы. Мигрировать такой большой проект с 11-летней историей на новую систему непросто — что именно побудило пойти на эти трудозатраты? Чем использование облака в Одноклассниках отличается от использования публичных сервисов? Почему проекту не подходят стандартные решения вроде Mesos и Kubernetes, и было сделано собственное one-cloud?

На эти и другие вопросы нам ответил ведущий разработчик Одноклассников Олег Анастасьев, уже знакомый читателям Хабра.
Читать дальше →
Total votes 21: ↑21 and ↓0 +21
Comments 6

Олег Ненашев, Кирилл Толкачёв и Александр Тарасов про Groovy DSL и Pipeline в Jenkins на jug.msk.ru

Reading time 3 min
Views 6.1K
27 июля 2017 года прошла совместная встреча сообществ jug.msk.ru и Jenkins MSK. На встрече с докладами о Jenkins выступили Олег Ненашев («Groovy DSL в Jenkins и Pipeline. Как оно работает?») и Кирилл Толкачёв с Александром Тарасовым («DSL много не бывает. Мигрируем со Scripted Pipeline на Declarative (Live)»).


Total votes 9: ↑9 and ↓0 +9
Comments 6

«Необходимость возникает с обеих сторон»: программный комитет DevOops о конференции и о DevOps

Reading time 10 min
Views 6.1K


Хотя понятие DevOps на слуху уже далеко не первый день, о нём до сих пор не прекращаются споры, начиная с вопроса «что это вообще такое». Словосочетание «DevOps-конференция» тоже порождает вопросы: например, если тут сходятся «dev» и «ops», то мероприятие рассчитано на зрителей с бэкграундом в разработке или в администрировании?

Есть круг людей, знающих обо всём этом не понаслышке: программный комитет нашей конференции DevOops, которая впервые пройдёт этой осенью в Петербурге. От них зависит, какими окажутся доклады на мероприятии, поэтому мы решили расспросить их и о DevOps, и о самой конференции — чтобы всем стало яснее, чего от неё ждать. В беседе поучаствовали:

  • Барух Садогурский (JFrog)
  • Олег Анастасьев (Одноклассники)
  • Алексей Акопян (Dell EMC)
  • Кирилл Толкачёв (Альфа-Лаборатория)
  • Александр Тарасов (Одноклассники)

А в ходе обсуждения спонтанно возник вопрос к вам всем — так что при чтении этого текста вы можете ещё и лично повлиять на программу конференции!
Читать дальше →
Total votes 29: ↑28 and ↓1 +27
Comments 10

Скрестить ежа (Marathon) с ужом (Spring Cloud). Эпизод 1

Reading time 8 min
Views 6.6K

При переходе к распределённым системам с большим количеством инстансов сервисов в полный рост встают проблемы их обнаружения (service discovery) и балансировки запросов (load balancing) между ними. Как правило, для их решения используются такие специализированные инструменты как Consul, Eureka или старый добрый Zookeeper, в сочетании с Nginx, HAProxy и некоторым мостом между ними (см. registrator).


Основная проблема в подобном подходе это большое количество интеграций, и, как следствие, точек где что-то может пойти не так. Ведь помимо вышеупомянутых решений наверняка будет использоваться локальный маленький PaaS (например Mesosphere Marathon или Kubernetes). Последние, к слову, уже хранят необходимую конфигурацию об окружении (ведь через них идёт весь деплоймент). И встаёт вопрос, а можем ли мы отказаться от специализированных инструментов для service discovery и переиспользовать тот же Marathon для этой задачи?


Краткий ответ — можем. Если интересно как — читайте дальше.

Читать дальше →
Total votes 13: ↑12 and ↓1 +11
Comments 0

Тестирование: простая дорожка в IT или серьезная затея?

Reading time 11 min
Views 13K
Порой даже в авторитетных источниках проскальзывает снисходительное отношение к тестированию программных продуктов и, соответственно, к людям, занятым в этом направлении. Там, дескать, и требования к работникам ниже, и сами кадры — так себе, и денег особо не заработаешь. О том, как на самом деле выглядит тестирование изнутри, мы поговорили с Никитой Макаровым, занимающимся в «Одноклассниках» одновременно и ручным, и автоматизированным тестированием.


Читать дальше →
Total votes 29: ↑26 and ↓3 +23
Comments 2

50 оттенков Go: ловушки, подводные камни и распространённые ошибки новичков

Reading time 44 min
Views 211K


Go — простой и забавный язык. Но в нём, как и в любых других языках, есть свои подводные камни. И во многих из них сам Go не виноват. Одни — это естественное следствие прихода программистов из других языков, другие возникают из-за ложных представлений и нехватки подробностей. Если вы найдёте время и почитаете официальные спецификации, вики, почтовые рассылки, публикации в блогах и исходный код, то многие из подводных камней станут для вас очевидны. Но далеко не каждый так начинает, и это нормально. Если вы новичок в Go, статья поможет сэкономить немало часов, которые вы бы потратили на отладку кода. Мы будем рассматривать версии Go 1.5 и ниже.
Читать дальше →
Total votes 80: ↑76 and ↓4 +72
Comments 270

Docker in production: «Когда ты это кушаешь, тебе, как минимум, не противно, особенно если знаешь, как готовить»

Reading time 12 min
Views 35K


Идея контейнеризации появилась уже давно, однако Docker оказался первой технологией, которая смогла достичь массовой популярности. О том, почему это случилось, насколько Docker «повзрослел» за 3 года, а заодно о том, когда можно перестать волноваться и начать использовать Docker в своем production приложении, мы поговорили с нашими экспертами:

Александр aatarasoff Тарасов — Software Architect в Альфа-Лаборатории. В настоящее время внедряет микросервисную архитектуру и двигает направление DevOps, а больше года назад рассказывал про свой опыт внедрения Docker в Альфа-Банке.

Docker in production: Нельзя использовать инструмент только потому, что он модный


– Почему вы стали использовать Docker?
Читать дальше →
Total votes 52: ↑47 and ↓5 +42
Comments 59
1

Information

Rating
Does not participate
Location
Железнодорожный (Московск.), Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity