company_banner
  • Джентльменский набор сисадмина

      Админ — это тот человек, без которого ничего в ИТ-компании не заработает. А со счастливым и продуктивным админом, дело будет двигаться лучше и быстрее, поэтому комфортная рабочая атмосфера — забота компании. О том, с помощью каких инструментов сделать команду продуктивной, был доклад Антона Турецкого (banuchka) на Highload++ 2017.

      Антон любит инфраструктурные задачи и автоматизацию всего, что можно автоматизировать, поэтому его рассказ основан на примере настройки инфраструктуры в дата-центре и сопутствующих технологиях (Docker, Consul, Puppet...). Но аспекты, мешающие качественной работе и способы их решения максимально универсальны и подходят практически для любой исполнительной команды. Так что милости просим под кат за расшифровкой этого доклада.



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

      Хочу начать с провокации, которую, возможно, кто-то не поддержит:

      Админ — это главный человек в компании!

      Думаю, вы со мной согласитесь: админ — это тот человек, без которого ничего в компании не заработает: оборудование приезжает к нему, систему ставит он, выделяет новое оборудование опять же он. Поэтому я и считаю, что он — главный.


      Читать дальше →
    • Code review: вы делаете это неправильно


        Сегодня очень многие в разработке используют ревью кода. Практика полезная, нужная. Даже если вы не делаете ревью, вы наверняка знаете, что это такое.

        На рынке есть куча инструментов для ревью кода с готовыми сценариями использования, рекомендациями и правилами. GitHub, Phabricator, FishEye/ Crucible, GitLab, Bitbucket, Upsource — список можно долго продолжать. Мы в Badoo тоже в своё время с ними работали: в своей предыдущей статье  я рассказывал нашу историю ревью кода и о том, как мы пришли к изобретению собственного «велосипеда» — решения Codeisok.

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

        Именно поэтому другую часть айсберга можно и не заметить.
        Читать дальше →
      • Patch me if you can: как мы отлаживаемся на production. Часть 2

          В первой части своей статьи я рассказал о том, как мы в Badoo создали первую версию системы патчей. Если коротко, то нам нужно было найти способ исправления серьёзных ошибок прямо на production, доступный всем разработчикам. Однако первая версия была не без недостатков: мы использовали своеобразный способ раскладки, который не позволял гарантировать атомарность выкладок патчей и консистентность кода.

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


          Изображение: источник
          Читать дальше →
        • Безопасное взаимодействие в распределенных системах



            Привет Хабр!

            Меня зовут Алексей Солодкий, я PHP-разработчик в компании Badoo. И сегодня я поделюсь текстовой версией моего доклада для первого Badoo PHP Meetup. Видео этого и других докладов с митапа можно найти здесь.

            Любая система, состоящая хотя бы из двух компонентов (а если у вас есть и PHP, и база данных, то это уже два компонента), сталкивается с целыми классами рисков во взаимодействии между этими компонентами.

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

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

            Рассмотрим, что делать, когда сервис падает или тупит, как организовать сбор метрик и что делать, когда всё вышесказанное вас не спасёт.
            Читать дальше →
            • +62
            • 9,2k
            • 1
          • Patch me if you can: как мы отлаживаемся на production. Часть 1

              UPD: готова вторая часть статьи.

              Привет, Хабр! Меня зовут Александр Измайлов. В Badoo я возглавляю команду релиз-инженеров. Я знаю, что во многих компаниях можно присылать изменения кода специально обученному человеку, он их смотрит и добавляет куда следует (например, именно так происходит с кодом Git). А я хочу рассказать о том, как мы автоматизировали этот процесс у нас.

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


              Изображение: источник
              Читать дальше →
            • Видео с Badoo Techleads Meetup #3: о делегировании, онбординге, бизнесе и собеседованиях в IT



                Привет, Хабр!

                Публикуем видеоотчет о третьем Badoo Techleads Meetup — встрече тимлидов, руководителей отделов и CTO. Спасибо спикерам, гостям и зрителям трансляции!

                Под катом — слайды и записи докладов о построении бизнес-ориентированной разработки (ДомКлик), онбординге и делегировании (Badoo), процессе собеседования (Авито), а также запись панельной дискуссии о собеседовании разработчиков с участием представителей Яндекса, Авито, Badoo и Ins Ecosystem.
                Читать дальше →
                • +41
                • 7,4k
                • 2
              • Вредные советы: как превратить автоматизацию UI-тестов в кошмар

                • Перевод


                Привет! Меня зовут Артём, и я занимаюсь автоматизацией тестирования. Антипаттерны в разработке — довольно популярная тема. Но ведь в тестировании тоже есть свои "плохие советы", и они довольно забавно пересекаются с разработкой. Недавно мне на глаза попалась ироничная статья про антипаттерны в тестировании. Вашему вниманию!


                Мы стараемся как можно скорее доказать, что неправы, потому что только таким образом можем развиваться.
                Ричард Фейнман

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


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


                Итак, поехали.

                Читать дальше →
              • Lead Dev New York: обзор докладов и отзыв о конференции



                  Привет, Хабр!

                  Я Николай Крапивный, руководитель отдела server-side-разработки в Badoo.

                  Недавно мы дружной командой ездили на конференцию Lead Dev в Нью-Йорк, посвящённую управлению разработкой. Среди спикеров были представители Google, IBM, Slack и других компаний. По сложившейся у нас в отделе хорошей традиции хочу поделиться впечатлениями, мыслями, обзором докладов и некоторыми материалами, которые привёз с конференции.

                  Год назад я уже был на конференции Lead Dev в Лондоне, и она меня не очень впечатлила. Набор докладов показался мне далеко не самым сильным — было много «воды» и выступлений ни о чём. В этом году расписание выглядело гораздо внушительнее, включая доклад от Michael Lopp, VP Engineering Slack и автора книги Managing Humans, о которой наш коллега Дима Марущенко yojick отзывался исключительно восторженно. В общем, расписание интриговало, и за неимением большого количества конференций по техлидской тематике было решено дать Lead Dev ещё один шанс и заодно, что греха таить, воспользоваться возможностью посетить Нью-Йорк. В качестве спойлера скажу, что в этом году мне понравилось существенно больше (поэтому я и решил написать этот отчёт).
                  Читать дальше →
                  • +42
                  • 3,5k
                  • 1
                • Выстраиваем эффективное взаимодействие инженерной и продуктовой команд


                    @innubis

                    Реальность такова, что любой успешный продукт должен понимать, уметь предсказывать и чутко реагировать на новые потребности своей аудитории. И даже больше — задавать новые тренды. Это неизбежно накладывает обязательства на инженерную команду, которая участвует в развитии продукта: инженерам приходится постоянно погружаться в продуктовый процесс, проводить всяческие эксперименты и при этом сохранять эффективность на высоком уровне.

                    Мы в Badoo относительно небольшими силами (в моей команде 30 человек) ежемесячно деплоим порядка сотни новых востребованных фич, при этом не теряя в качестве кода, планирования и поддержки. Каким образом нам удаётся оставаться «на коне» и как у нас построено взаимодействие инженерной команды с продуктовой, я расскажу в этой статье.

                    Уверен, что наш опыт будет интересен и другим компаниям. И надеюсь, что подход, который мы выработали путём проб и постоянных улучшений, кому-то реально поможет (а в идеале — сэкономит время и силы при выстраивании процессов и даст нужный результат).
                    Читать дальше →
                  • Codeisok, или История code review в Badoo



                      Привет, читатель! Меня зовут Илья Агеев, я работаю в Badoo уже почти семь лет. Текущая моя должность называется Engineering Director Quality Assurance (директор по контролю качества), и по факту я занимаюсь много чем в компании: контроль качества, релиз-инжиниринг, процессы и методология разработки и даже немного информационная безопасность. Одна из сфер, которая входит в зону моей ответственности, — ревью кода. Об истории и результате нашего процесса (которым стал опенсорсный codeisok) я сегодня и расскажу.

                      Статья содержит историческое описание, технического сравнения различных инструментов для ревью кода в ней нет. Тем не менее я даю примеры таких инструментов, и если вы заинтересуетесь вопросом, то вполне можете попробовать самостоятельно установить и сравнить тулзы.
                      Давным-давно в Badoo не было code review. Практически. Первой попыткой обмена информацией об изменённом коде была простая рассылка изменений на почту. К слову, и Git тогда не использовалась.

                      Летом 2011 года, когда я только пришёл в компанию, для хранения версий кода использовалась SVN. Бывалые рассказывали, что до этого все работали в CVS и что была одна попытка перейти на Mercurial, но она провалилась. Почему — никто не помнит. Я подозреваю, что дело в том, что, когда решили попробовать Mercurial, особой надобности в переходе на другую VCS не было. Всё и так всех устраивало: работает, и ладно. А модный инструмент ради моды никому не нужен.
                      Читать дальше →
                    • 19 мая приглашаем на Badoo Techleads Meetup #3



                        Привет, Хабр!

                        19 мая приглашаем на третий Badoo Techleads Meetup для лидов, руководителей отделов и СТО.

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

                        Регистрация здесь. Обратите внимание, что нужно подождать подтверждения участия. Количество мест в нашем кафе ограничено, и надеемся на ваше понимание! Мы также сделаем онлайн-трансляцию.

                        Адрес: Цветной бульвар, 2 (м.Трубная)
                        Начало докладов в 11:30
                        Трансляция будет на нашем YouTube-канале и в группах VK и FB. Записи опубликуем там же и на Хабре.

                        Программа


                        Читать дальше →
                      • Заряжаем суперсилой Appium тесты на Android

                        • Перевод


                        Привет, Хабр!

                        Меня зовут Николай Абалов. Я работаю в лондонском офисе Badoo в команде Mobile QA Automation. Мой коллега Раждип Варма рассказал о том, как сделать Appium-тесты быстрее и надёжнее. Ниже перевод его статьи.

                        В последние годы Appium стал одним из самых популярных инструментов автоматизации в мобильной разработке. Однако наряду с преимуществами у него есть некоторые ограничения, в частности связанные с тем, что тестовый код полностью отделяется от кода приложения. В этой статье Раждип рассказывает, как вы можете наделить свой код суперсилой и решить самые неприятные проблемы автоматизации end-to-end-тестов для Android.
                        Читать дальше →
                        • +30
                        • 3,8k
                        • 4
                      • Видео с первого Badoo PHP Meetup 7.04.2018



                          Привет, Хабр!

                          7 апреля мы впервые собрали PHP-сообщество в офисе Badoo. Спасибо всем, кто пришел пообщаться, и тем, кто был с нами онлайн!

                          Похоже, пэхэпэшники изголодались по митапам. Встреча получилась ну очень душевной — разговоры за жизнь и PHP из afterpaty переместились в afterchat, который до сих пор активен (несмотря ни на что).

                          Но вернемся к нашим докладам. Под катом — записи выступлений, слайды, комментарии гостей и фотоотчет.
                          Читать дальше →
                          • +48
                          • 8,1k
                          • 3
                        • Побеждаем Android Camera2 API с помощью RxJava2 (часть 2)

                            image

                            Это вторая часть статьи, в которой я показываю, как использование RxJava2 помогает строить логику поверх асинхронного API. В качестве такого интерфейса я выбрал Android Camera2 API (и не пожалел!). Этот API не только асинхронен, но и таит в себе неочевидные особенности реализации, которые нигде толком не описаны. Так что статья нанесет читателю двойную пользу.

                            Для кого этот пост? Я рассчитываю, что читатель — умудрённый опытом, но всё ещё любознательный Android-разработчик. Очень желательны базовые знания о реактивном программировании (хорошее введение — здесь) и понимание Marble Diagrams. Пост будет полезен тем, кто хочет проникнуться реактивным подходом, а также тем, кто планирует использовать Camera2 API в своих проектах.  

                            Исходники проекта можно найти на GitHub.

                            Чтение первой части обязательно!
                            Читать дальше →
                            • +46
                            • 8,5k
                            • 5
                          • Знакомство с гео-библиотекой S2 от Google и примеры использования

                              Привет, Хабр!

                              Меня зовут Марко, я работаю в Badoo в команде «Платформа». Не так давно на GopherCon Russia 2018 я рассказывал, как работать с координатами. Для тех, кто не любит смотреть видео (и всех интересующихся, конечно), публикую текстовый вариант своего доклада.



                              Введение


                              Сейчас у большинства людей в мире есть смартфон с постоянным доступом в Интернет. Если говорить в цифрах, то в 2018 году смартфон будет у почти 5 млрд людей, и 60% из них пользуются мобильным Интернетом.

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

                              Всем нам известны компании типа Uber, игры, покорившие мир, такие как Ingress и Pokemon Go. Да что уж там, в любом банковском приложении есть возможность увидеть банкоматы или скидки поблизости.

                              Мы в Badoo также очень активно используем координаты, чтобы предоставлять своим пользователям лучший, актуальный и интересный для них сервис. Но о каком именно использовании идёт речь? Давайте посмотрим на примеры сервисов, которые у нас есть.
                              Читать дальше →
                            • Проблемы при работе с кэшем и способы их решения

                                Привет, Хабр!

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

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


                                Wild horses stampeding. Оригинал картинки.

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

                                При работе я исхожу из того, что рассматриваемая система состоит из приложения, базы данных и кэша для данных. Вместо базы данных может использоваться любой другой источник (например, какой-то микросервис или внешний API).
                                Читать дальше →
                              • Приглашаем на Badoo PHP Meetup 7 апреля



                                  UPD. Места уже расхватали, но будет трансляция. Приглашения участникам скоро вышлем!

                                  Привет, Хабр! Похоже, астрологи объявили неделю PHP митапов в апреле :)

                                  7 апреля мы проведем первый Badoo PHP Meetup в московском офисе компании!

                                  Мы безнадежно влюблены в PHP, уже много лет способствуем его развитию и приглашаем всех интересующихся пообщаться и провести субботу с пользой в приятной обстановке. В программе четыре доклада и дискуссии за чашкой кофе, а в продолжение — afterparty. Для тех, кто не в Москве, будет трансляция, а также опубликуем записи выступлений.

                                  Адрес: Цветной бульвар, 2 (м.Трубная)
                                  Начало докладов в 12:00
                                  Регистрация здесь
                                  Трансляция будет на нашем YouTube-канале и в группах VK и FB. Записи опубликуем там же и на Хабре.

                                  Читать дальше →
                                  • +58
                                  • 6,7k
                                  • 7
                                • Что ещё мы проверяем при помощи Selenium, кроме логики интерфейса

                                    Привет, Хабр!

                                    Меня зовут Виталий Котов, я работаю в отделе тестирования Badoo. Большую часть времени я работаю с Selenium. Этот замечательный инструмент мы используем для решения разнообразных задач: от тестирования функционала до упрощения работы с логами ошибок и проверки взаимодействия с API.

                                    О том, какие задачи нам помогает решать Selenium, и пойдёт речь в этой статье. Поехали! :)


                                    Читать дальше →
                                  • Go 1.10 Release Party @ Badoo: как это было. Видео, фото, отзывы



                                      Привет, Хабр!

                                      24 февраля мы устроили Go 1.10 Release Party @ Badoo по случаю свежего релиза. Спасибо всем, кто был с нами! Если вы пропустили встречу сообщества, под катом — видео выступлений, слайды, немного отзывов и фотоотчет.
                                      Читать дальше →
                                    • Обзор лучших европейских и не только QA-конференций этого года


                                        Привет, Хабр! Меня зовут Влад Романенко. Я работаю инженером по тестированию в Badoo, в команде iOS.

                                        Любите заводить новые знакомства, обмениваться знаниями и опытом и быть в тренде? Тогда предлагаю вам внести в свой календарь пару—тройку предстоящих мероприятий.

                                        Я начал посещать разные конференции и встречи несколько лет назад, ещё во время учёбы в университете. Конечно, они сильно отличались от тех, на которые я хожу сейчас. Но уже тогда я понимал, что сложно быть в курсе современных тенденций, не участвуя в профильных мероприятиях.

                                        В моём списке уже около 20 конференций. Среди них Международный день ГИС в Белорусском государственном университете, Конференция для пользователей и разработчиков ГИС с открытым исходным кодом в Москве и множество конференций по тестированию (например, эта и эта).

                                        Я заметил, что многие тестировщики и QA-инженеры почему-то избегают конференций. И напрасно. С одной стороны, есть вы со своими вопросами к сообществу, с другой — есть сообщество, которому интересен ваш опыт. И почему бы эти две стороны не объединить? Именно поэтому я решил поделиться своим мнением относительно предстоящих мероприятий и вдохновить вас на их посещение.
                                        Читать дальше →
                                        • +36
                                        • 6,6k
                                        • 6

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