На конференції HighLoad++ 2016 Олег Облеухов розповів про не вимагає при зростанні навантаження втручання адміністратора архітектурі, яку він спланував і впровадив у компанії InnoGames.

Всім привіт. Буквально пару слів про мене. Мене звати Олег, до цього я працював у компанії «Яндекс», жив у Санкт-Петербурзі, чудовому місті. Зараз я переїхав в Німеччину і працюю в InnoGames. Компанія займається розробкою онлайн-ігор. На рахунку 150 мільйонів користувачів — досить велика компанія, ну, трохи менше, ніж «Яндекс», звичайно. І сьогодні ми поговоримо з вами про те, як зробити перевантажений сервіс без даних про навантаження, не знаючи її кількість.

Перш ніж ми почнемо. Тепер ви все знаєте про мене, я хотів би дізнатися трошки про аудиторії. Підніміть руку ті, хто використовує Docker на продакшне? Ну приблизно третина залу, добре. А тепер з тих, хто підняв руку, підніміть ті, хто задоволений використанням Docker на продакшне? Значно менше. А тепер ще більш складне питання. Ті, хто задоволений використанням Docker на продакшне, підніміть руку ті, хто сисадмін або інженер, або ще хтось не-розробник. Я бачу трьох. Окей.

Насправді ми не будемо сьогодні говорити про Docker. Але ми будемо розмовляти про CRM. Я вам розповім, що це таке, навіщо нам потрібна ця система.

Читати далі →



На конференції HighLoad++ 2016 керівник розробки «М-Тих» Вадим Мадисон розповів про зростання від системи, для якої сотня микросервисов здавалася величезним числом, до навантаженого проекту, де пара тисяч микросервисов — буденність.

Тема моєї доповіді — то, як ми запускали в продакшн микросервисы на досить навантаженому проекті. Це якийсь агрегований досвід, але оскільки я працюю в компанії «M-Тих», то давайте я пару слів розповім про те, хто ми.

Якщо коротко, то ми займаємося видеоотдачей — віддаємо відео в реальному часі. Ми є видеоплатформой для «НТВ-Плюс» і «Матч ТВ». Це 300 тисяч одночасних користувачів, які звертаються за 5 хвилин. Це 300 терабайт контенту, який ми віддаємо в годину. Це така цікава задача. Як це все обслужити?

Про що сама ця історія? Це про те, як ми росли, як проект розвивався, як відбувалося якесь переосмислення будь-яких його частин, якогось взаємодії. Так чи інакше, це про масштаб проекту, тому що це все — заради того, щоб витримати ще більше навантаження, надати клієнтам ще більше функціоналу і при цьому не впасти, не втратити ключових характеристик. Загалом, щоб клієнт залишився задоволений. Ну і трохи про те, який шлях ми пройшли. З чого ми починали.

Читати далі →



На конференції HighLoad++ 2016 Іван Круглов розповів про те, як сервіс Booking.com розвивав свій пошук — одну з центральних функцій системи інтернет-бронювання готелів.

Всім привіт! Я Ваня, пишу на Perl — можете мені поспівчувати. [Легкий сміх у залі і зі сцени.]

Гаразд. По-серйозному, мене звуть Іван Круглов, я з компанії Booking.com з міста Амстердам. Там я працюю останні 4 роки, де останні півтора року я працював у команді, яка робить наш пошук краще.

Почати я хочу трохи здалеку. Ось з цієї фрази:

Читати далі →



Петро Зайцев показує різницю між MySQL і MongoDB. Це — розшифровка доповіді з Highload++ 2016.

Якщо подивитися такий відомий DB-Engines Ranking, то можна побачити, що протягом багатьох років популярність open source баз даних зростає, а комерційних — поступово знижується.

Читати далі →

Ми знову публікуємо розшифровку доповіді конференції HighLoad++ 2016, яка проходила в підмосковному Сколково 7-8 листопада минулого року. Володимир Протасов розповідає, як розширити функціональність NGINX з допомогою OpenResty і Lua.

Всім привіт, мене звати Володимир Протасов, я працюю в Parallels. Розповім трохи про себе. Три чверті свого життя я займаюся тим, що пишу код. Став програмістом до мозку кісток в прямому сенсі: я іноді уві сні бачу код. Чверть життя — промислова розробка, написання коду, який йде прямо в продакшн. Код, яким деякі з вас користуються, але не здогадуються про це.

Щоб ви розуміли наскільки все було погано. Коли я був маленьким джуниором, я прийшов, і мені видали такі двухтерабайтные бази. Це зараз у всіх highload. Я ходив на конференції, запитував: «Хлопців, розкажіть, у вас big data, все круто? Скільки у вас там бази?» Мені відповідали: «У нас 100 гігабайт!» Я говорив: «Круто, 100 гігабайт!» А про себе думав, як би акуратненько зберегти покерфейс. Думаєш, так, хлопці круті, а потім повертаєшся і ковыряешься з цими многотерабайтными базами. І це — будучи джуниором. Уявляєте собі, який це удар?

Я знаю більше 20 мов програмування. Це те, чим мені довелося розібратися в процесі роботи. Тобі видають код на Erlang, C, С++, на Lua, Python, Ruby, на чомусь ще, і тобі треба це все пиляти. Загалом довелося. Точну кількість порахувати так і не вдалося, але десь на 20 число загубилося.

Читати далі →

Історія успіху «Яндекс.Пошти» з PostgreSQL

Володимир Бородін, системний адміністратор групи експлуатації систем зберігання даних в «Яндекс.Поштою», знайомить зі складнощами міграції великого проекту з Oracle Database на PostgreSQL. Це — розшифровка доповіді конференції HighLoad++ 2016.

Всім привіт! Мене звуть Вова, сьогодні я буду розповідати про бази даних «Яндекс.Пошти».

Спочатку кілька фактів, які будуть мати значення в майбутньому. «Яндекс.Пошта» — сервіс досить старий: він був запущений в 2000 році, і тому ми накопичили багато legacy. У нас — як це прийнято і модно говорити — цілком собі highload-сервіс, більше 10 мільйонів користувачів на добу, якісь сотні мільйонів. У бекенд нас прилітає більше 200 тисяч запитів в секунду в піке. Ми складаємо більше 150 мільйонів листів на добу, що пройшли перевірки на спам та віруси. Сумарний обсяг листів за всі 16 років — більше 20 петабайт.

Про що піде мова? Про те, як ми перевезли метадані з Oracle в PostgreSQL. Метаданих там не петабайты — їх трохи більше трьохсот терабайт. В бази влітає понад 250 тисяч запитів в секунду. Треба мати на увазі, що це маленькі OLTP-запити, здебільшого читання (80%).

Це — не перша наша спроба позбутися від Oracle. На початку нульових була спроба переїхати на MySQL, вона провалилася. В 2007 або 2008 була спроба написати щось своє, вона теж провалилася. В обох випадках був провал не стільки технічно причин, скільки з організаційних.

Читати далі →

Порівняння рішень по балансуванню високонавантажених систем

І знову ми публікуємо розшифровки виступів з конференції HighLoad++, яка пройшла в підмосковному Сколково 7-8 листопада 2016 року. Сьогодні Євген Півень знайомить з рішеннями балансування в хмарах.

Мене звати Женя, я працюю в компанії IPONWEB. Сьогодні ми поговоримо про розвиток наших рішень в балансуванні високонавантажених систем.

Спочатку я пробегусь за поняттями, якими буду оперувати. Почнемо з того, чим ми займаємося: RTB, Real Time Bidding — показ реклами з аукціоном в реальному часі. Дуже спрощена схема того, що відбувається, коли ви заходите на сайт:



Для того, щоб показати рекламу, йде запит на RTB-сервер, який запитує у рекламних серверів їх ставки і потім вирішує, яку рекламу вам показати.

Читати далі →

Балансування навантаження і відмовостійкість в «Однокласниках»

Ми продовжуємо пости з розшифровками виступів на конференції HighLoad++, яка проходила в підмосковному Сколково 7-8 листопада 2016 року.

Доброго дня, мене звуть Микита Духовний, і я працюю провідним системним адміністратором в проекті «Однокласники».

На даний момент інфраструктура «Однокласників» розташовується більш ніж на 11 тисячах фізичних серверів. Вони розташовані в 3-х основних дата-центрах в Москві. Також у нас є точки присутності CDN. За останніми даними в годину пік ми віддаємо нашим користувачам понад 1 терабіта трафіку в секунду.

У відділі системного адміністрування ми розробляємо і розвиваємо системи автоматизації. Ми займаємося багатьма дослідницькими завданнями. Ми допомагаємо розробникам запускати нові проекти.

Сьогодні ми поговоримо про балансування навантаження і стійкості на прикладі нашої соціальної мережі.

Читати далі →

Підтримка высоконагруженного проекту



Євген Потапов ( eapotapov
Доповідь про те, що робити з проектом після того, як ми його запустили. Ви спланували архітектуру проекту, ви продумали, як у нього буде працювати інфраструктура, продумали, як будете балансувати навантаження, нарешті, його запустили. Що робити далі? Як підтримувати, як зробити так, щоб проект продовжував працювати, і як зробити так, щоб нічого, зрештою, не впало?

Читати далі →

Продуктивність запитів для PostgreSQL – крок за кроком



Ілля Космодемьянский (
hydrobiont
Для початку відразу пару слів про те, про що піде мова. По-перше, що таке оптимізація запитів? Люди рідко формулюють і, буває так, що часто недооцінюють розуміння того, що вони роблять. Можна намагатися прискорити якийсь конкретний запит, але це не обов'язково буде оптимізацією. Ми трохи на цю тему потеоретизируем, потім поговоримо про те, з якого кінця до цього питання підходити, коли починати оптимізувати, як це робити, і як зрозуміти, що будь-який запит або набір запитів ніяк не можна оптимізувати – такі випадки теж бувають, і тоді потрібно просто переробляти. Як не дивно, я майже не буду наводити прикладів того, як запити оптимізувати, тому що навіть 100 прикладів не наблизять нас до розгадки.

Читати далі →