company_banner
  • Тюним память и сетевой стек в Linux: история перевода высоконагруженных серверов на свежий дистрибутив

      image

      До недавнего времени в Одноклассниках в качестве основного Linux-дистрибутива использовался частично обновлённый OpenSuSE 10.2. Однако, поддерживать его становилось всё труднее, поэтому с прошлого года мы перешли к активной миграции на CentOS 7. На подготовительном этапе перехода для CentOS были отработаны все внутренние процедуры, подготовлены конфиги и политики настройки (мы используем CFEngine). Поэтому сейчас во многих случаях миграция с одного дистрибутива на другой заключается в установке ОС через kickstart и развёртывании приложения с помощью системы деплоя нашей разработки — всё остальное осуществляется без участия человека. Так происходит во многих случаях, хотя и не во всех.

      Но с самыми большими проблемами мы столкнулись при миграции серверов раздачи видео. На их решение у нас ушло полгода.
      Читать дальше →
    • Загрузка видео «без единого разрыва»

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

        В чем проблема? — спросите вы. Ставишь серваки с большими дисками, настраиваешь балансировщик — и понеслась. Однако опытный видео-ниндзя знает, что проблем тут целый ворох:
        • В процессе загрузки у пользователя может пропадать соединение с нашим порталом (закрыл ноут, вошел в планшетом в лифт, сел аккумулятор на телефоне и т.п.)
        • Старые устройства не поддерживают современные технологии загрузки (а у нас миллионы пользователей имеют слабые смартфоны или древние браузеры)
        • При том количестве пользователей, которые есть у нас, задача о стабильной заливке видео превращается в задачу о стабильной загрузке видео в огромных объемах.


        Да, это



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

        Видеосервис Одноклассников в деталях
      • Класс дедлоков про дедлок классов



          Знаете ли вы, как избежать дедлоков в своей программе? Да, этому учат, про это спрашивают на собеседованиях… И тем не менее, взаимные блокировки встречаются даже в популярных проектах серьёзных компаний вроде Google. А в Java есть особый класс дедлоков, связанный с инициализацией классов, простите за каламбур. Такие ошибки легко допустить, но трудно поймать, тем более, что сама виртуальная машина вводит программиста в заблуждение.

          Сегодня пойдёт речь про взаимные блокировки при инициализации классов. Я расскажу, что это такое, проиллюстрирую примерами из реальных проектов, попутно найду багу в JVM, и покажу, как не допустить такие блокировки в своём коде.

          Читать дальше →
        • Как мы кластеризуем подарки в ОК

            Всем привет! Меня зовут Артур, я аналитик в отделе анализа данных департамента рекламных технологий Mail.Ru Group. И я попробую рассказать о том, как мы используем кластеризацию в своей работе.

            Чего в этой статье не будет: я не буду рассказывать об алгоритмах кластеризации, об анализе качества или сравнении библиотек. Что будет в этой статье: я покажу на примере конкретной задачи, что такое кластеризация (с картинками), как ее делать если данных действительно много (ДЕЙСТВИТЕЛЬНО много) и что получается в результате.


            Читать дальше →
          • История «Титанов», часть 2



              Первая часть истории «Титанов» закончилась на том, что мы завершили разработку новой социальной мидкорной стратегии. Игра в тестовом режиме была запущена в Одноклассниках, а полноценный запуск состоялся 15 августа. Почти целый месяц после релиза мы изучали статистику, и можно сказать, что запуск прошел вполне успешно. Сегодня я предлагаю вам посмотреть на реальную статистику современной социальной игры, а также попробовать на её основе сделать предположения о возможных изменениях в игре.
              Читать дальше →
            • Конкурс дизайна футболок участников RDC



                Вчера закончился отборочный тур конкурса Russian Design Cup, организатором которого является Mail.Ru Group. Из 118 участников в следующий тур перешли 20 человек. С самого начала им была предложена непростая задача:
                20XX год. Социальные сети замедлили свой рост. Людям уже не так важно делиться каждым своим шагом со всем миром. Им надоело делать репосты новостей, котиков, демотиваторов и больных детей. Социальные сети стали заложником огромного числа своих пользователей и любые крупные изменения связаны с серьезными рисками. В одной из трех крупнейших соцсетей России, руководство решило кардинально переработать свой продукт. Вас пригласили на встречу самых главных людей компании, и сказали, что готовы рискнуть и взглянуть по-новому на то, чем может быть социальная сеть. У вас есть время до 11 августа, чтобы предложить решение этой задачи. Проиллюстрируйте ваши идеи, проработайте один из сценариев использования, который покажет как ваш подход наносит пользу миллионам людей.

                Подход к решению задачи у всех победителей тура был весьма интересным и зачастую неординарным — потому они и победили. Наибольший средний балл получили работы Доминика Левицкого, Алексея Кипина, Андрея Столешникова, Дмитрия Алябьева и Виталия Якимчука.

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

                Параллельно с отборочным туром мы решили провести дополнительный мини-конкурс на дизайн официальной футболки RDC. Всего конкурсанты прислали 33 работы, из которых члены жюри выделили самые, на их взгляд, удачные работы.
                Много картинок
                • +45
                • 13,2k
                • 4
              • История «Титанов»



                  Всем привет, меня зовут Иван Григорьев, я работаю в компании What Games. 9 июля в Одноклассниках в режиме мягкого старта вышла наша новая игра — «Титаны». Во время разработки такого большого и сложного проекта свежая информация «с полей» обычно оказывается очень полезной. К сожалению, из-за общей закрытости нашей индустрии обмен положительным опытом между разработчиками сейчас крайне затруднен. Серией своих постов мы намерены переломить сложившуюся традицию и в режиме реального времени максимально честно рассказать о разработке современной социальной игры.
                  Читать дальше →
                • Улучшение почты: решения задачи Russian Design Cup 2013

                    Продолжаем разбирать задачи прошлого года, и на очереди задача про почту.

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

                    Несколько решений прокомментировали главные дизайнеры трёх крупнейших почт в России: Томилов Сергей (Яндекс), Алексей Кандауров (Mail.Ru) и Александр Ковбович, разработавший последнюю версию дизайна Рамблер Почты. Давайте посмотрим, что сказали профи нашим конкурсантам.

                    Антон Тюленев



                    Всё решение
                    Читать дальше →
                    • +35
                    • 15,3k
                    • 7
                  • Разбор задач Russian Design Cup 2013. Задача про умные часы

                      В преддверии Russian Design Cup 2014 мы предлагаем вспомнить и проанализировать задачи и решения прошлогоднего чемпионата. В частности, мы расскажем о самых интересных работах и их авторах.

                      Сила Хабра в том, что его сообщество состоит из множества различных специалистов: дизайнеров и верстальщиков, фронтэнд- и бекенд-программистов. Мы предлагаем вам обсудить лучшие решения задач вместе с участниками RDC. Дизайнеры расскажут о своих находках и том, как они к ним пришли, о сложностях, с которыми они сталкивались. Мы пройдемся по трем самым интересным задачам Кубка, и сегодня начнем c задачи о часах.

                      «Крупные компании представили новые устройства, так называемые «умные» часы. Они взаимодействуют со смартфонами через Bluetooth LE. Также известно, что многие покупатели уже возвращают их обратно, не находя им применения. Представьте концепт приложения любой социальной сети для таких часов, чтобы люди не захотели их возвращать. Какие функции и возможности вы вынесете на часы? Ок, про уведомления о новых сообщениях мы уже в курсе».

                      1. Айрат Гафиятуллин, топ 10 участников.

                      Читать дальше →
                    • Геймификация багфикса. Как мы превратили исправление ошибок в увлекательную многопользовательскую online-игру

                        Автор: maxim_korobtsev, WorkAndPlay.Ru

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

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

                        Как все начиналось?


                        Все началось за несколько месяцев до Багатлона, когда мы, Work&Play, вместе с OK придумывали игровые механики и само соревнование. Родилась достаточно неплохая идея: расфасовать все множество накопившихся низкоприоритетных багов по группам (коробкам с багами). Для каждого бага заранее указать навыки, которые он прокачивает у того, кто его фиксит или проверяет. Далее раз в несколько месяцев устраивать соревнование. Причем, победителем будет не тот, кто больше пофиксил, а тот, кто больше всех прокачался пока багфиксил. Также хотелось, чтобы вся игра проходила без отрыва от работы(в рабочие дни), по тикетам из багтрекера и доступ к ней был прямо из Jira.

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

                        Что у нас получилось в итоге?


                        В результате, после нескольких месяцев работы над плагином, у нас получилось вот это:
                        главный экран jira модуля для геймификации багфикса
                        Читать дальше →

                      Самое читаемое