Как стать автором
Обновить
20
0
Александр Тарасов @aatarasoff

Director of Engineering @ ANNA Money

Отправить сообщение

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

Время на прочтение5 мин
Количество просмотров6.5K

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

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

Время на прочтение4 мин
Количество просмотров11K


Алоха!

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

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

Поехали!
Читать дальше →
Всего голосов 39: ↑37 и ↓2+35
Комментарии6

NewSQL = NoSQL+ACID

Время на прочтение15 мин
Количество просмотров33K

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

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

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

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

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



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

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

Время на прочтение11 мин
Количество просмотров43K

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


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


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


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

Распознавание лиц Одноклассников в деталях
Всего голосов 65: ↑63 и ↓2+61
Комментарии25

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

Время на прочтение17 мин
Количество просмотров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 с описанием докладов и фоточками спикеров. В самом конце статьи будет ссылка на регистрацию. Поехали!

Читать дальше →
Всего голосов 42: ↑40 и ↓2+38
Комментарии9

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

Время на прочтение5 мин
Количество просмотров51K


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

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

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

Всего голосов 77: ↑75 и ↓2+73
Комментарии14

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

Время на прочтение22 мин
Количество просмотров21K


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


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

Читать дальше →
Всего голосов 42: ↑41 и ↓1+40
Комментарии7

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

Время на прочтение2 мин
Количество просмотров5.3K

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


Всего голосов 24: ↑23 и ↓1+22
Комментарии2

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

Время на прочтение13 мин
Количество просмотров18K


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


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


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

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

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

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

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

Время на прочтение13 мин
Количество просмотров29K
Что значит имя? Роза пахнет розой,
Хоть розой назови ее, хоть нет.

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

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


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


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


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


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

Читать дальше →
Всего голосов 75: ↑69 и ↓6+63
Комментарии53

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

Время на прочтение9 мин
Количество просмотров20K


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

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

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

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

Время на прочтение7 мин
Количество просмотров7.4K


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

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

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

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

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


Всего голосов 9: ↑9 и ↓0+9
Комментарии6

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

Время на прочтение10 мин
Количество просмотров6.1K


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

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

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

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

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

Время на прочтение8 мин
Количество просмотров6.6K

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


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


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

Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии0

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

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


Читать дальше →
Всего голосов 29: ↑26 и ↓3+23
Комментарии2

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

Время на прочтение44 мин
Количество просмотров213K


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

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

Время на прочтение12 мин
Количество просмотров35K


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

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

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


– Почему вы стали использовать Docker?
Читать дальше →
Всего голосов 52: ↑47 и ↓5+42
Комментарии59
1

Информация

В рейтинге
Не участвует
Откуда
Железнодорожный (Московск.), Москва и Московская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность