SlideShare une entreprise Scribd logo
1  sur  49
Криминальное
чтиво
Андрей Аксёнов, Sphinx
v.2.0, HighLoad, Мск, 2015
Зачем вообще доклад
• Я уже говорил всякие общие слова
“как именно хорошо бы уметь”
• Хочу сказать всякие более конкретные
“что именно надо бы изучать” (мегазамах)
• ВУЗы типично канают слабо, поэтому
первый драфт учебного плана жахнем тут
• Плюс, возможно, собеседования!!!
• Тот раз в пять лет, где сложный алгоритм!!!
4/38
Disclaimers
• Слов много, времени мало, продолжать
трындеть можно на afterparty в будке!
• Некоторые будут нехорошие, дети до 16 и
ханжи за 30, покиньте зал
• Обычно я стараюсь хоть одной вещи да
научить, но сегодня – только запутать!!!
5/38
“Как именно хорошо бы уметь”
• Религия, тезисно
• Системы уже сложные – и будут сложнее
• Commander Keen … Doom 1 … UE4
• DOS … Windows 3.x … Windows 10
• Lynx … IE4 … Chrome
• CSV … MySQL … ???
• index.html … LAMP guestbook … Google
• Проблемы в них тоже – и будут сложнее
• Отчизна требует героев! 6/38
q.e.d.
• Про картинку #2 еще могут быть сомнения
– система, на самом деле, не очень сложна!
• Про картинку #3 уже нет, совершенно
очевидно, герои – необходимы…
• Заметьте, идеал – всегда картинка #1
Ну так каких ещё героев?!
• Религия вкратце: я за универсалов!
• Иначе невозможно решать проблемы на стыке
• Иначе невозможно придумывать решения
• Широкий кругозор, не менее 3го размера!
• Антирелигия: универсалы чмо, спецы сила!
• Универсалы всё знают одинаково плохо
• Чем уже спец, тем приятнее эээ разработка
• Противоречия, на самом деле, (пока) нет
11/38
Чем мерить героизм [1/3]
• Радиус туннельного зрения
• Можно уметь верстать HTML+CSS – и всё
• Можно уметь пользовать LAMP стек – и всё
• Или представлять устройство разного софта
• Или разных уровней железа
• Идеально “знать” вообще всё – невозможно
• Однако представлять в общем – таки да
• Как следствие, внезапно…
12/38
Чем мерить героизм [2/3]
• Радиус туннельного зрения
• Понимание границ незнания
• “Культура это палимпсест”
• Я не помню, как умножать кватернионы :(
• Я не знаю, как писать на Angular.js или Django
• Я не знаю, как устроен RTMP
• Да и php programmerus vulgaris не отсобеседую
• “Но есть нюанс…”
13/38
Чем мерить героизм [3/3]
• Радиус туннельного зрения
• Понимание границ незнания
• Способность самостоятельно действовать
• Не надо “думать”, надо прыгать!
• Думать иногда надо, но лучше бы пореже
14/38
Чем мерить героизм
• Радиус туннельного зрения
• Понимание границ незнания
• Способность самостоятельно действовать
• Плюс собеседования!!!
• Вопрос на засыпку: а зачем вообще нужны
собеседования?
15/38
Хочу всё знать! А что “всё”?
• Проверочные вопросы
• “Я в целом понимаю, как устроен X”
• “Я знаю ряд деталей и могу тюнить/чинить X”
• “Я и сам могу сделать этот ваш X”
• “Толкиен дурак, Сильм лажа, не так всё было”
• X = {процессор 8086, самый первый тетрис,
гастевуха штоп пасрать, TCP стек, всё ядро, …}
• Надо бы понимать все уровни!
• От клика мышкой до пикселов на экране
16/38
Собственно, ключевые слова
• Железо. Обязательно CPU, RAM, диск, сеть.
Бонусом про видео, звук, периферию, USB,
PCI, IB/FC, про энергопотребление. Что есть,
как внутри устроено, как снаружи работает,
чего может.
• Иногда ещё как влияет на софт: SSD vs HDD,
GPU акселерация, тупо SIMD, виртуализация,
итп.
17/38
Собственно, ключевые слова
• Софт L1. Ассемблер. Инструкции, стеки,
бранчи и цены, прерывания. Битики,
байтики, форматы int/float, откуда берутся
указатели. Частоты, латентности, кеши.
Защищенный режим, переключения
контекстов, ядра, треды, GPF vs TLB vs
mwahaha. Про SIMD. Бонусом про Intel,
ARM, muops, энергию, прочий ад.
18/38
Собственно, ключевые слова
• Софт L2. OS. Менеджмент ресурсов
(память, диск, файлы, сокеты, треды, …),
syscalls, IPC (shm, mmap, pipes, signals, …),
ценники. Как что профайлить, трейсить,
джентльменский набор vmstat, iostat,
strace, oprofile, gperf итп. Виртуализация,
гори она в аду. Бонусом устройство FS,
IP/TCP/UDP.
19/38
Собственно, ключевые слова
• Софт L3. Middleware. Базы, OLTP, OLAP, DW,
в широком смысле (+memcache итп). Веб,
аппсервера. Бонусом обработка картинок,
видео, звук, поиск, компзрение, сжатие,
машобучение, bigdata, облачные хранилки
и выполнялки (hadoop hadoop hadoop!) и
т.п. как бы спецтемы и спецсофт.
• Каждый пункт – отдельная большая наука, ага
20/38
Собственно, ключевые слова
• Софт L4. Языки. Про скрипты, нативный
код, VM и байткод, JIT. Императивные,
функциональные, типизированные и нет.
Отладка тулзами, отладка логами,
профайлинг. Статический и динамический
анализ, рефакторинг, VCS, DVCS.
21/38
Экватор!
Ровно 0.5 списка ключевиков.
Щаз наконец будет и про код.
Собственно, ключевые слова
• Софт L5. Базовый код: методы. Базовые
структуры данных: массивы, вектора, хеши,
списки, деревья, очереди. Манипуляции с
ними, комбинации их, родных. Базовые
алгоритмы: сортировки, поиски, эээ, упс.
Вычислительная сложность.
• Юнит-тесты, моки, ассерты, логи,
внезапный отладчик.
• Комментарии, @#$
24/38
Собственно, ключевые слова
• Софт L6. Код повыше: классы и потоки.
ООП, паттерны. ФП, хоть чуть. Стандартные
техники: regexp, генераторы парсеров,
прочий автоген, DSL.
• Потоки, файберы. Синхронизация (mutex,
rwlock, прочий IPC), atomic, lockfree
структуры. Races, deadlocks, отлов, борьба,
недопущение. Внезапно снова ФП и
пуризм.
25/38
Собственно, ключевые слова
• Софт L7. Код сбоку: спецтемы. Сжатие
данных; работа с картинками, видео,
звуком; прочий DSP; встроенные системы;
интерпретаторы и компиляторы; 3D
графика; компьютерное зрение; “гигазы
варёза” и неизбежный MapReduce;
машинное обучение; HPC; мобилы; …
• Каждый пункт – отдельная наука опять!!!
26/38
Собственно, ключевые слова
• Софт L8. Код еще выше: системы. Модули,
внешние и внутренние API, спеки, тесты
(приемка, регрессии, перф, итп). Форматы,
версии, совместимость API/данных. Беды
распределенных систем, методы борьбы.
Билды и беды с ними, прочий CI,
поддержка деплоя.
27/38
Собственно, ключевые слова
• Инфраструктура. Билды и беды с ними, CI,
деплой – теперь без кода. Бэкапы,
восстановление. Логи, мониторинг,
реакция на аварии, аналитика. Стресс-
тесты, планирование емкости.
Автоматизация этого всего, типа devops.
28/38
Preemptive FAQ
• Q: ...ать, это ж минима 37 томов читать.
A: Наверное больше, плюс наколка: читать
мало, надо стремиться их уметь написать.
• Q: ...уй и зачем же мне это всё, я херачу на
PHP тупо, плюс у меня стоянка, капает кеш.
A: Строго из личного интереса, мыгыгы, но
может случайно появиться и бабло.
• Q: Да ты сам небось ни …ра не знаешь!
A: Разумеется!!!
29/38
И для разнообразия о приятном
• Всё подряд и идеально (см. эксперт) знать
вообще невозможно – но и не нужно
• Часть – вы знаете уже
• Часть – особо малоприменима
• Часть – лично неинтересна
• Порядок – может быть любой
• Список неполон, но понятен – действуй!!!
30/38
Читай книжки, например
• Но лучше не читай; можно зачитаться
• Оптимально позже; штоп проверить книжку
• Читай маны, читай код, читай гугель
• Сначала ПИШИ, потом уже всякое читай,
не читать учимся
• Про подъем штанги еще сцуко почитай!!!
31/38
Пиши код, например
• Начинай с простого, и быстрые итерации
• ВЕЗДЕ есть развлечения на полчаса, ну или
максимум на вечер
• НИГДЕ нету невообразимой rocket science,
всегда очень много можно спрототипить в
очень мало строк
32/38
Пиши код, например
• L1, asm. Напиши Win32 hello world. Залей
окошко gray(x xor y). А теперь на MMX. А
теперь померь скорость.
• L2, OS. Побенчмаркай malloc(). Позырь
strace, поудивляйся. Почитай ext4 какой.
• L3, middle. Напиши простенький calcd. А
теперь простенький in-mem KV. А теперь
чуть сложнее с диском, Btree, libevent.
33/38
Пиши код, например
• L4, lang. Выбери новый язык, напиши чего.
Посмотри дизасм, в том числе байткода.
• L5, methods. Напиши хеш. Скрести его с
чем. А теперь radixsort. А теперь SIMD.
• L6, classes/threads. Перепиши calcd на yacc.
А теперь многопоточно. А теперь без сайд
эффектов, just because fuck you.
• L7, specials. Напиши JPEG декодер. Напиши
рейтрейсер. Затекстурируй треугольник.
34/38
Пиши код, например
• Экспериментируй смело, чморить некому!!!
• Пробуй разное, но не распыляйся
• Фейлись много и с удовольствием, но чини
• Не забывай учиться, в третий раз… не пацан
• Доводи до конца, не работает => не сделал
• Переделывай N раз, на целевые LOC/время
• Если ничо никак не идет, меняй индустрию!
35/38
Пиши код, например
• Самое главное.
• Напиши себе свой личный список.
• Мой неполный, кривой, biased и вообще.
• Не жди никакого внезапного мега-толка.
• Его не будет все равно, муахаха.
36/38
Сверхцель всего процесса
• Мысль про магию
• Байка про ниндзю
• Шутка про зарплату!!!
37/38
Вопросы?
(Не в церкви, не обманут.)
shodan.ru/ppt
shodan@sphinxsearch.com
Опа, бонус-трек!
(если вдруг останется время)
39/49
Про хайлоад
Есть ли специфика?
• А у вас какой хайлоад?
• Длинный или толстый?
• Кривой? Это у всех, это ничего; “мы с мамой
подумали, нам из него не стрелять...”
• Длинный == “много” “быстрых” запросов
• Толстый == “мало” “тяжелых” запросов
• “Оптимизировать нельзя скейлить”
Длинный highload
• “Оптимизировать нельзя! => Скейлить”
• Но аккуратно тут, может быть иллюзией
• Распределенные системы в целом
• Middleware в частности
• Железо, борьба со сбоями, боттлнеки
Толстый highload
• “Оптимизировать! => Нельзя скейлить”
• Т.к. смысла нет, сначала хоть POC
• Локальная оптимизация в целом
• Middleware в частности! mwahaha
• Железо, боттлнеки
Про собеседования
Но.. Но.. Но как же собеседования?
• И причем тут вообще все эти мегасписки!?
• Давайте поговорим про собеседования!
• Что вы хотите узнать? 
Большая тайна собеседований!
• Вариантов реализации много!
• Маленькая боевая задача
• FizzBuzz, strrev(), strdup(), …
• IndustrialRPN
• “Интервью имени Баткина” (c)
http://blog.gamedeff.com/?p=64 вроде
• G, F, B, Y и их никогда не нужные загадки
• А сверхцель одна!!!
• А обобщенный критерий один!!!
Большая тайна собеседований!
• Тезис раз, всем в целом похер твой React,
Objective-C или успехи на почве Clojure
• Тезис два, чем больше покрытие списка,
тем больше общих тем (плюс лексикон)
• Тезис три, надо уметь писать простой код,
сложный надо уметь не писать
• Плюс, собственно, можно ведь... готовиться
Теперь совсем всё.
Упс.
shodan.ru/ppt
shodan@sphinxsearch.com

Contenu connexe

Tendances

Cоциальный граф "Одноклассников" в myTarget
Cоциальный граф "Одноклассников" в myTargetCоциальный граф "Одноклассников" в myTarget
Cоциальный граф "Одноклассников" в myTargetOleg Tsarev
 
Vsevolod Solovyov "How to debug. Everything"
Vsevolod Solovyov "How to debug. Everything"Vsevolod Solovyov "How to debug. Everything"
Vsevolod Solovyov "How to debug. Everything"Fwdays
 
А. Аксенов "Как мы разрабатываем Сфинкс", DUMP-2014
А. Аксенов "Как мы разрабатываем Сфинкс", DUMP-2014А. Аксенов "Как мы разрабатываем Сфинкс", DUMP-2014
А. Аксенов "Как мы разрабатываем Сфинкс", DUMP-2014it-people
 
BlackBox testing
BlackBox testingBlackBox testing
BlackBox testingbeched
 
Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo)
 Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo) Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo)
Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo)Ontico
 
Andrew Aksyonoff "Архитектура вокруг поиска"
Andrew Aksyonoff "Архитектура вокруг поиска"Andrew Aksyonoff "Архитектура вокруг поиска"
Andrew Aksyonoff "Архитектура вокруг поиска"Fwdays
 
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
"Мы два месяца долбались, а потом построили индекс" (c) АксеновAlex Chistyakov
 
Как устроена MySQL-репликация, Андрей Аксенов (Sphinx)
Как устроена MySQL-репликация, Андрей Аксенов (Sphinx)Как устроена MySQL-репликация, Андрей Аксенов (Sphinx)
Как устроена MySQL-репликация, Андрей Аксенов (Sphinx)Ontico
 
Демократизация машинного обучения
Демократизация машинного обученияДемократизация машинного обучения
Демократизация машинного обученияДмитрий Колодезев
 
Tk conf daniel-podolsky-sqlvsnosql
Tk conf daniel-podolsky-sqlvsnosqlTk conf daniel-podolsky-sqlvsnosql
Tk conf daniel-podolsky-sqlvsnosqlDaniel Podolsky
 
Как сделать контрибут в Ruby on Rails
Как сделать контрибут в Ruby on RailsКак сделать контрибут в Ruby on Rails
Как сделать контрибут в Ruby on RailsYaroslav Markin
 
Про качественный поиск
Про качественный поискПро качественный поиск
Про качественный поискAndrew Aksyonoff
 
My talk on Graphite stack on 58it.ru
My talk on Graphite stack on 58it.ruMy talk on Graphite stack on 58it.ru
My talk on Graphite stack on 58it.ruAlex Chistyakov
 
Максим Вишнівецький “Scrum у державному секторі: щоденник тих, хто вижив”
Максим Вишнівецький “Scrum у державному секторі: щоденник тих, хто  вижив”Максим Вишнівецький “Scrum у державному секторі: щоденник тих, хто  вижив”
Максим Вишнівецький “Scrum у державному секторі: щоденник тих, хто вижив”Lviv Startup Club
 
Перевірка і оптимізація верстки
Перевірка і оптимізація версткиПеревірка і оптимізація верстки
Перевірка і оптимізація версткиStfalcon Meetups
 
Плюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовПлюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовYandex
 
14 HappyDev-lite-2015 autumn. Дмитрий Вахрушев. Зачем вам изучать Python?
14 HappyDev-lite-2015 autumn. Дмитрий Вахрушев. Зачем вам изучать Python?14 HappyDev-lite-2015 autumn. Дмитрий Вахрушев. Зачем вам изучать Python?
14 HappyDev-lite-2015 autumn. Дмитрий Вахрушев. Зачем вам изучать Python?HappyDev-lite
 
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...IT-Portfolio
 
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...Ontico
 
Database First! О распространённых ошибках использования РСУБД
Database First! О распространённых ошибках использования РСУБДDatabase First! О распространённых ошибках использования РСУБД
Database First! О распространённых ошибках использования РСУБДNikolay Samokhvalov
 

Tendances (20)

Cоциальный граф "Одноклассников" в myTarget
Cоциальный граф "Одноклассников" в myTargetCоциальный граф "Одноклассников" в myTarget
Cоциальный граф "Одноклассников" в myTarget
 
Vsevolod Solovyov "How to debug. Everything"
Vsevolod Solovyov "How to debug. Everything"Vsevolod Solovyov "How to debug. Everything"
Vsevolod Solovyov "How to debug. Everything"
 
А. Аксенов "Как мы разрабатываем Сфинкс", DUMP-2014
А. Аксенов "Как мы разрабатываем Сфинкс", DUMP-2014А. Аксенов "Как мы разрабатываем Сфинкс", DUMP-2014
А. Аксенов "Как мы разрабатываем Сфинкс", DUMP-2014
 
BlackBox testing
BlackBox testingBlackBox testing
BlackBox testing
 
Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo)
 Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo) Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo)
Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo)
 
Andrew Aksyonoff "Архитектура вокруг поиска"
Andrew Aksyonoff "Архитектура вокруг поиска"Andrew Aksyonoff "Архитектура вокруг поиска"
Andrew Aksyonoff "Архитектура вокруг поиска"
 
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
 
Как устроена MySQL-репликация, Андрей Аксенов (Sphinx)
Как устроена MySQL-репликация, Андрей Аксенов (Sphinx)Как устроена MySQL-репликация, Андрей Аксенов (Sphinx)
Как устроена MySQL-репликация, Андрей Аксенов (Sphinx)
 
Демократизация машинного обучения
Демократизация машинного обученияДемократизация машинного обучения
Демократизация машинного обучения
 
Tk conf daniel-podolsky-sqlvsnosql
Tk conf daniel-podolsky-sqlvsnosqlTk conf daniel-podolsky-sqlvsnosql
Tk conf daniel-podolsky-sqlvsnosql
 
Как сделать контрибут в Ruby on Rails
Как сделать контрибут в Ruby on RailsКак сделать контрибут в Ruby on Rails
Как сделать контрибут в Ruby on Rails
 
Про качественный поиск
Про качественный поискПро качественный поиск
Про качественный поиск
 
My talk on Graphite stack on 58it.ru
My talk on Graphite stack on 58it.ruMy talk on Graphite stack on 58it.ru
My talk on Graphite stack on 58it.ru
 
Максим Вишнівецький “Scrum у державному секторі: щоденник тих, хто вижив”
Максим Вишнівецький “Scrum у державному секторі: щоденник тих, хто  вижив”Максим Вишнівецький “Scrum у державному секторі: щоденник тих, хто  вижив”
Максим Вишнівецький “Scrum у державному секторі: щоденник тих, хто вижив”
 
Перевірка і оптимізація верстки
Перевірка і оптимізація версткиПеревірка і оптимізація верстки
Перевірка і оптимізація верстки
 
Плюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовПлюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Плюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
 
14 HappyDev-lite-2015 autumn. Дмитрий Вахрушев. Зачем вам изучать Python?
14 HappyDev-lite-2015 autumn. Дмитрий Вахрушев. Зачем вам изучать Python?14 HappyDev-lite-2015 autumn. Дмитрий Вахрушев. Зачем вам изучать Python?
14 HappyDev-lite-2015 autumn. Дмитрий Вахрушев. Зачем вам изучать Python?
 
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
 
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
 
Database First! О распространённых ошибках использования РСУБД
Database First! О распространённых ошибках использования РСУБДDatabase First! О распространённых ошибках использования РСУБД
Database First! О распространённых ошибках использования РСУБД
 

En vedette

Андрей Аксёнов, Sphinx Technologies Inc.
Андрей Аксёнов, Sphinx Technologies Inc.Андрей Аксёнов, Sphinx Technologies Inc.
Андрей Аксёнов, Sphinx Technologies Inc.Ontico
 
PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)
PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)
PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)Ontico
 
PostgreSQL в высоконагруженных проектах
PostgreSQL в высоконагруженных проектахPostgreSQL в высоконагруженных проектах
PostgreSQL в высоконагруженных проектахAlexey Vasiliev
 
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...Ontico
 
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)Ontico
 
Spilo, отказоустойчивый PostgreSQL кластер / Oleksii Kliukin (Zalando SE)
Spilo, отказоустойчивый PostgreSQL кластер / Oleksii Kliukin (Zalando SE)Spilo, отказоустойчивый PostgreSQL кластер / Oleksii Kliukin (Zalando SE)
Spilo, отказоустойчивый PostgreSQL кластер / Oleksii Kliukin (Zalando SE)Ontico
 
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
PostgreSQL: практические примеры оптимизации SQL-запросов /  Иван Фролков (Po...PostgreSQL: практические примеры оптимизации SQL-запросов /  Иван Фролков (Po...
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...Ontico
 
Опыт совместной работы хостера (Webzilla) и клиента (CityADS) над достижением...
Опыт совместной работы хостера (Webzilla) и клиента (CityADS) над достижением...Опыт совместной работы хостера (Webzilla) и клиента (CityADS) над достижением...
Опыт совместной работы хостера (Webzilla) и клиента (CityADS) над достижением...Ontico
 
Frontera распределенный робот для обхода веба в больших объемах / Александр С...
Frontera распределенный робот для обхода веба в больших объемах / Александр С...Frontera распределенный робот для обхода веба в больших объемах / Александр С...
Frontera распределенный робот для обхода веба в больших объемах / Александр С...Ontico
 
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)Ontico
 
Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Dmitry Samsonov
 
На пути к 100% uptime
На пути к 100% uptimeНа пути к 100% uptime
На пути к 100% uptimeStanislav Osipov
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...odnoklassniki.ru
 
Deep dive into PostgreSQL internal statistics / Алексей Лесовский (PostgreSQL...
Deep dive into PostgreSQL internal statistics / Алексей Лесовский (PostgreSQL...Deep dive into PostgreSQL internal statistics / Алексей Лесовский (PostgreSQL...
Deep dive into PostgreSQL internal statistics / Алексей Лесовский (PostgreSQL...Ontico
 
Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»
Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»
Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»DevDay
 
Курс высокие нагрузки и надежность: отрывок
Курс высокие нагрузки и надежность: отрывокКурс высокие нагрузки и надежность: отрывок
Курс высокие нагрузки и надежность: отрывокAndrey Smirnov
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Ontico
 
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)Ontico
 
Опыт построения и эксплуатации большого файлового хранилища / Даниил Подольск...
Опыт построения и эксплуатации большого файлового хранилища / Даниил Подольск...Опыт построения и эксплуатации большого файлового хранилища / Даниил Подольск...
Опыт построения и эксплуатации большого файлового хранилища / Даниил Подольск...Ontico
 

En vedette (20)

Deep C
Deep CDeep C
Deep C
 
Андрей Аксёнов, Sphinx Technologies Inc.
Андрей Аксёнов, Sphinx Technologies Inc.Андрей Аксёнов, Sphinx Technologies Inc.
Андрей Аксёнов, Sphinx Technologies Inc.
 
PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)
PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)
PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)
 
PostgreSQL в высоконагруженных проектах
PostgreSQL в высоконагруженных проектахPostgreSQL в высоконагруженных проектах
PostgreSQL в высоконагруженных проектах
 
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
 
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
 
Spilo, отказоустойчивый PostgreSQL кластер / Oleksii Kliukin (Zalando SE)
Spilo, отказоустойчивый PostgreSQL кластер / Oleksii Kliukin (Zalando SE)Spilo, отказоустойчивый PostgreSQL кластер / Oleksii Kliukin (Zalando SE)
Spilo, отказоустойчивый PostgreSQL кластер / Oleksii Kliukin (Zalando SE)
 
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
PostgreSQL: практические примеры оптимизации SQL-запросов /  Иван Фролков (Po...PostgreSQL: практические примеры оптимизации SQL-запросов /  Иван Фролков (Po...
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
 
Опыт совместной работы хостера (Webzilla) и клиента (CityADS) над достижением...
Опыт совместной работы хостера (Webzilla) и клиента (CityADS) над достижением...Опыт совместной работы хостера (Webzilla) и клиента (CityADS) над достижением...
Опыт совместной работы хостера (Webzilla) и клиента (CityADS) над достижением...
 
Frontera распределенный робот для обхода веба в больших объемах / Александр С...
Frontera распределенный робот для обхода веба в больших объемах / Александр С...Frontera распределенный робот для обхода веба в больших объемах / Александр С...
Frontera распределенный робот для обхода веба в больших объемах / Александр С...
 
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)
 
Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...
 
На пути к 100% uptime
На пути к 100% uptimeНа пути к 100% uptime
На пути к 100% uptime
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
 
Deep dive into PostgreSQL internal statistics / Алексей Лесовский (PostgreSQL...
Deep dive into PostgreSQL internal statistics / Алексей Лесовский (PostgreSQL...Deep dive into PostgreSQL internal statistics / Алексей Лесовский (PostgreSQL...
Deep dive into PostgreSQL internal statistics / Алексей Лесовский (PostgreSQL...
 
Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»
Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»
Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»
 
Курс высокие нагрузки и надежность: отрывок
Курс высокие нагрузки и надежность: отрывокКурс высокие нагрузки и надежность: отрывок
Курс высокие нагрузки и надежность: отрывок
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
 
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
 
Опыт построения и эксплуатации большого файлового хранилища / Даниил Подольск...
Опыт построения и эксплуатации большого файлового хранилища / Даниил Подольск...Опыт построения и эксплуатации большого файлового хранилища / Даниил Подольск...
Опыт построения и эксплуатации большого файлового хранилища / Даниил Подольск...
 

Similaire à Учебный план для highload гуру / Андрей Аксёнов (Sphinx Technologies Inc.)

Sphinx 3.0, поиск 15 лет спустя / Андрей Аксенов (Sphinx)
Sphinx 3.0, поиск 15 лет спустя / Андрей Аксенов (Sphinx)Sphinx 3.0, поиск 15 лет спустя / Андрей Аксенов (Sphinx)
Sphinx 3.0, поиск 15 лет спустя / Андрей Аксенов (Sphinx)Ontico
 
С одним плюсом (Андрей Аксёнов)
С одним плюсом (Андрей Аксёнов)С одним плюсом (Андрей Аксёнов)
С одним плюсом (Андрей Аксёнов)Unigine Corp.
 
Александр Сербул. Прикладное XP в «1С-Битрикс»: как развивать продукт более 1...
Александр Сербул. Прикладное XP в «1С-Битрикс»: как развивать продукт более 1...Александр Сербул. Прикладное XP в «1С-Битрикс»: как развивать продукт более 1...
Александр Сербул. Прикладное XP в «1С-Битрикс»: как развивать продукт более 1...ScrumTrek
 
Почему оно не находится! / Андрей Аксенов (Sphinx)
Почему оно не находится! / Андрей Аксенов (Sphinx)Почему оно не находится! / Андрей Аксенов (Sphinx)
Почему оно не находится! / Андрей Аксенов (Sphinx)Ontico
 
Компания навыворот (Андрей Аксенов)
Компания навыворот (Андрей Аксенов)Компания навыворот (Андрей Аксенов)
Компания навыворот (Андрей Аксенов)Ontico
 
Как управлять командами в IT?
Как управлять командами в IT?Как управлять командами в IT?
Как управлять командами в IT?iQSpace
 
How to Put Automation Engineers Down
How to Put Automation Engineers DownHow to Put Automation Engineers Down
How to Put Automation Engineers DownÞorgeir Ingvarsson
 
Цена абстракции, Андрей Аксёнов (Sphinx)
Цена абстракции, Андрей Аксёнов (Sphinx)Цена абстракции, Андрей Аксёнов (Sphinx)
Цена абстракции, Андрей Аксёнов (Sphinx)Ontico
 
Олег Годовых - Как учёба в универе и олимпиады не сделали мою жизнь хуже | Ha...
Олег Годовых - Как учёба в универе и олимпиады не сделали мою жизнь хуже | Ha...Олег Годовых - Как учёба в универе и олимпиады не сделали мою жизнь хуже | Ha...
Олег Годовых - Как учёба в универе и олимпиады не сделали мою жизнь хуже | Ha...HappyDev
 
Демонизированный PHP - before it was cool
Демонизированный PHP - before it was coolДемонизированный PHP - before it was cool
Демонизированный PHP - before it was coolAndrey Tokarchuk
 
RTB DSP на языке Go укрощение buzzwords / Даниил Подольский (Qmobi.Com)
RTB DSP на языке Go укрощение buzzwords /  Даниил Подольский (Qmobi.Com)RTB DSP на языке Go укрощение buzzwords /  Даниил Подольский (Qmobi.Com)
RTB DSP на языке Go укрощение buzzwords / Даниил Подольский (Qmobi.Com)Ontico
 
Erlang for Yandex
Erlang for YandexErlang for Yandex
Erlang for YandexMax Lapshin
 
Мария Кочакова: Методы приручения сценариста, или как заставить их писать хор...
Мария Кочакова: Методы приручения сценариста, или как заставить их писать хор...Мария Кочакова: Методы приручения сценариста, или как заставить их писать хор...
Мария Кочакова: Методы приручения сценариста, или как заставить их писать хор...DevGAMM Conference
 
The Making of Quad (or What I Learned That You (and Your Game!) Can Benefit F...
The Making of Quad (or What I Learned That You (and Your Game!) Can Benefit F...The Making of Quad (or What I Learned That You (and Your Game!) Can Benefit F...
The Making of Quad (or What I Learned That You (and Your Game!) Can Benefit F...Francesco Maisto
 
Максим Лапшин. Erlang production
Максим Лапшин. Erlang productionМаксим Лапшин. Erlang production
Максим Лапшин. Erlang productionAlina Dolgikh
 
Гибкое прототипирование для гибкой разработки (Максим Гапонов)
Гибкое прототипирование для гибкой разработки (Максим Гапонов)Гибкое прототипирование для гибкой разработки (Максим Гапонов)
Гибкое прототипирование для гибкой разработки (Максим Гапонов)Ontico
 
Bank.Bot-2016. 14 digitalx
Bank.Bot-2016. 14 digitalxBank.Bot-2016. 14 digitalx
Bank.Bot-2016. 14 digitalxBankir_Ru
 

Similaire à Учебный план для highload гуру / Андрей Аксёнов (Sphinx Technologies Inc.) (20)

Sphinx 3.0, поиск 15 лет спустя / Андрей Аксенов (Sphinx)
Sphinx 3.0, поиск 15 лет спустя / Андрей Аксенов (Sphinx)Sphinx 3.0, поиск 15 лет спустя / Андрей Аксенов (Sphinx)
Sphinx 3.0, поиск 15 лет спустя / Андрей Аксенов (Sphinx)
 
С одним плюсом (Андрей Аксёнов)
С одним плюсом (Андрей Аксёнов)С одним плюсом (Андрей Аксёнов)
С одним плюсом (Андрей Аксёнов)
 
Александр Сербул. Прикладное XP в «1С-Битрикс»: как развивать продукт более 1...
Александр Сербул. Прикладное XP в «1С-Битрикс»: как развивать продукт более 1...Александр Сербул. Прикладное XP в «1С-Битрикс»: как развивать продукт более 1...
Александр Сербул. Прикладное XP в «1С-Битрикс»: как развивать продукт более 1...
 
Почему оно не находится! / Андрей Аксенов (Sphinx)
Почему оно не находится! / Андрей Аксенов (Sphinx)Почему оно не находится! / Андрей Аксенов (Sphinx)
Почему оно не находится! / Андрей Аксенов (Sphinx)
 
JBatch
JBatchJBatch
JBatch
 
Компания навыворот (Андрей Аксенов)
Компания навыворот (Андрей Аксенов)Компания навыворот (Андрей Аксенов)
Компания навыворот (Андрей Аксенов)
 
Как управлять командами в IT?
Как управлять командами в IT?Как управлять командами в IT?
Как управлять командами в IT?
 
How to Put Automation Engineers Down
How to Put Automation Engineers DownHow to Put Automation Engineers Down
How to Put Automation Engineers Down
 
WepPerfomance,
WepPerfomance, WepPerfomance,
WepPerfomance,
 
Цена абстракции, Андрей Аксёнов (Sphinx)
Цена абстракции, Андрей Аксёнов (Sphinx)Цена абстракции, Андрей Аксёнов (Sphinx)
Цена абстракции, Андрей Аксёнов (Sphinx)
 
Олег Годовых - Как учёба в универе и олимпиады не сделали мою жизнь хуже | Ha...
Олег Годовых - Как учёба в универе и олимпиады не сделали мою жизнь хуже | Ha...Олег Годовых - Как учёба в универе и олимпиады не сделали мою жизнь хуже | Ha...
Олег Годовых - Как учёба в универе и олимпиады не сделали мою жизнь хуже | Ha...
 
Демонизированный PHP - before it was cool
Демонизированный PHP - before it was coolДемонизированный PHP - before it was cool
Демонизированный PHP - before it was cool
 
RTB DSP на языке Go укрощение buzzwords / Даниил Подольский (Qmobi.Com)
RTB DSP на языке Go укрощение buzzwords /  Даниил Подольский (Qmobi.Com)RTB DSP на языке Go укрощение buzzwords /  Даниил Подольский (Qmobi.Com)
RTB DSP на языке Go укрощение buzzwords / Даниил Подольский (Qmobi.Com)
 
Erlang for Yandex
Erlang for YandexErlang for Yandex
Erlang for Yandex
 
Мария Кочакова: Методы приручения сценариста, или как заставить их писать хор...
Мария Кочакова: Методы приручения сценариста, или как заставить их писать хор...Мария Кочакова: Методы приручения сценариста, или как заставить их писать хор...
Мария Кочакова: Методы приручения сценариста, или как заставить их писать хор...
 
The Making of Quad (or What I Learned That You (and Your Game!) Can Benefit F...
The Making of Quad (or What I Learned That You (and Your Game!) Can Benefit F...The Making of Quad (or What I Learned That You (and Your Game!) Can Benefit F...
The Making of Quad (or What I Learned That You (and Your Game!) Can Benefit F...
 
Максим Лапшин. Erlang production
Максим Лапшин. Erlang productionМаксим Лапшин. Erlang production
Максим Лапшин. Erlang production
 
Гибкое прототипирование для гибкой разработки (Максим Гапонов)
Гибкое прототипирование для гибкой разработки (Максим Гапонов)Гибкое прототипирование для гибкой разработки (Максим Гапонов)
Гибкое прототипирование для гибкой разработки (Максим Гапонов)
 
Joker2014
Joker2014Joker2014
Joker2014
 
Bank.Bot-2016. 14 digitalx
Bank.Bot-2016. 14 digitalxBank.Bot-2016. 14 digitalx
Bank.Bot-2016. 14 digitalx
 

Plus de Ontico

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...Ontico
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Ontico
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Ontico
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Ontico
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Ontico
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)Ontico
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Ontico
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Ontico
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)Ontico
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)Ontico
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Ontico
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Ontico
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Ontico
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Ontico
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)Ontico
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Ontico
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Ontico
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...Ontico
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Ontico
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Ontico
 

Plus de Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 

Учебный план для highload гуру / Андрей Аксёнов (Sphinx Technologies Inc.)

  • 2.
  • 3.
  • 4. Зачем вообще доклад • Я уже говорил всякие общие слова “как именно хорошо бы уметь” • Хочу сказать всякие более конкретные “что именно надо бы изучать” (мегазамах) • ВУЗы типично канают слабо, поэтому первый драфт учебного плана жахнем тут • Плюс, возможно, собеседования!!! • Тот раз в пять лет, где сложный алгоритм!!! 4/38
  • 5. Disclaimers • Слов много, времени мало, продолжать трындеть можно на afterparty в будке! • Некоторые будут нехорошие, дети до 16 и ханжи за 30, покиньте зал • Обычно я стараюсь хоть одной вещи да научить, но сегодня – только запутать!!! 5/38
  • 6. “Как именно хорошо бы уметь” • Религия, тезисно • Системы уже сложные – и будут сложнее • Commander Keen … Doom 1 … UE4 • DOS … Windows 3.x … Windows 10 • Lynx … IE4 … Chrome • CSV … MySQL … ??? • index.html … LAMP guestbook … Google • Проблемы в них тоже – и будут сложнее • Отчизна требует героев! 6/38
  • 7.
  • 8.
  • 9.
  • 10. q.e.d. • Про картинку #2 еще могут быть сомнения – система, на самом деле, не очень сложна! • Про картинку #3 уже нет, совершенно очевидно, герои – необходимы… • Заметьте, идеал – всегда картинка #1
  • 11. Ну так каких ещё героев?! • Религия вкратце: я за универсалов! • Иначе невозможно решать проблемы на стыке • Иначе невозможно придумывать решения • Широкий кругозор, не менее 3го размера! • Антирелигия: универсалы чмо, спецы сила! • Универсалы всё знают одинаково плохо • Чем уже спец, тем приятнее эээ разработка • Противоречия, на самом деле, (пока) нет 11/38
  • 12. Чем мерить героизм [1/3] • Радиус туннельного зрения • Можно уметь верстать HTML+CSS – и всё • Можно уметь пользовать LAMP стек – и всё • Или представлять устройство разного софта • Или разных уровней железа • Идеально “знать” вообще всё – невозможно • Однако представлять в общем – таки да • Как следствие, внезапно… 12/38
  • 13. Чем мерить героизм [2/3] • Радиус туннельного зрения • Понимание границ незнания • “Культура это палимпсест” • Я не помню, как умножать кватернионы :( • Я не знаю, как писать на Angular.js или Django • Я не знаю, как устроен RTMP • Да и php programmerus vulgaris не отсобеседую • “Но есть нюанс…” 13/38
  • 14. Чем мерить героизм [3/3] • Радиус туннельного зрения • Понимание границ незнания • Способность самостоятельно действовать • Не надо “думать”, надо прыгать! • Думать иногда надо, но лучше бы пореже 14/38
  • 15. Чем мерить героизм • Радиус туннельного зрения • Понимание границ незнания • Способность самостоятельно действовать • Плюс собеседования!!! • Вопрос на засыпку: а зачем вообще нужны собеседования? 15/38
  • 16. Хочу всё знать! А что “всё”? • Проверочные вопросы • “Я в целом понимаю, как устроен X” • “Я знаю ряд деталей и могу тюнить/чинить X” • “Я и сам могу сделать этот ваш X” • “Толкиен дурак, Сильм лажа, не так всё было” • X = {процессор 8086, самый первый тетрис, гастевуха штоп пасрать, TCP стек, всё ядро, …} • Надо бы понимать все уровни! • От клика мышкой до пикселов на экране 16/38
  • 17. Собственно, ключевые слова • Железо. Обязательно CPU, RAM, диск, сеть. Бонусом про видео, звук, периферию, USB, PCI, IB/FC, про энергопотребление. Что есть, как внутри устроено, как снаружи работает, чего может. • Иногда ещё как влияет на софт: SSD vs HDD, GPU акселерация, тупо SIMD, виртуализация, итп. 17/38
  • 18. Собственно, ключевые слова • Софт L1. Ассемблер. Инструкции, стеки, бранчи и цены, прерывания. Битики, байтики, форматы int/float, откуда берутся указатели. Частоты, латентности, кеши. Защищенный режим, переключения контекстов, ядра, треды, GPF vs TLB vs mwahaha. Про SIMD. Бонусом про Intel, ARM, muops, энергию, прочий ад. 18/38
  • 19. Собственно, ключевые слова • Софт L2. OS. Менеджмент ресурсов (память, диск, файлы, сокеты, треды, …), syscalls, IPC (shm, mmap, pipes, signals, …), ценники. Как что профайлить, трейсить, джентльменский набор vmstat, iostat, strace, oprofile, gperf итп. Виртуализация, гори она в аду. Бонусом устройство FS, IP/TCP/UDP. 19/38
  • 20. Собственно, ключевые слова • Софт L3. Middleware. Базы, OLTP, OLAP, DW, в широком смысле (+memcache итп). Веб, аппсервера. Бонусом обработка картинок, видео, звук, поиск, компзрение, сжатие, машобучение, bigdata, облачные хранилки и выполнялки (hadoop hadoop hadoop!) и т.п. как бы спецтемы и спецсофт. • Каждый пункт – отдельная большая наука, ага 20/38
  • 21. Собственно, ключевые слова • Софт L4. Языки. Про скрипты, нативный код, VM и байткод, JIT. Императивные, функциональные, типизированные и нет. Отладка тулзами, отладка логами, профайлинг. Статический и динамический анализ, рефакторинг, VCS, DVCS. 21/38
  • 22. Экватор! Ровно 0.5 списка ключевиков. Щаз наконец будет и про код.
  • 23.
  • 24. Собственно, ключевые слова • Софт L5. Базовый код: методы. Базовые структуры данных: массивы, вектора, хеши, списки, деревья, очереди. Манипуляции с ними, комбинации их, родных. Базовые алгоритмы: сортировки, поиски, эээ, упс. Вычислительная сложность. • Юнит-тесты, моки, ассерты, логи, внезапный отладчик. • Комментарии, @#$ 24/38
  • 25. Собственно, ключевые слова • Софт L6. Код повыше: классы и потоки. ООП, паттерны. ФП, хоть чуть. Стандартные техники: regexp, генераторы парсеров, прочий автоген, DSL. • Потоки, файберы. Синхронизация (mutex, rwlock, прочий IPC), atomic, lockfree структуры. Races, deadlocks, отлов, борьба, недопущение. Внезапно снова ФП и пуризм. 25/38
  • 26. Собственно, ключевые слова • Софт L7. Код сбоку: спецтемы. Сжатие данных; работа с картинками, видео, звуком; прочий DSP; встроенные системы; интерпретаторы и компиляторы; 3D графика; компьютерное зрение; “гигазы варёза” и неизбежный MapReduce; машинное обучение; HPC; мобилы; … • Каждый пункт – отдельная наука опять!!! 26/38
  • 27. Собственно, ключевые слова • Софт L8. Код еще выше: системы. Модули, внешние и внутренние API, спеки, тесты (приемка, регрессии, перф, итп). Форматы, версии, совместимость API/данных. Беды распределенных систем, методы борьбы. Билды и беды с ними, прочий CI, поддержка деплоя. 27/38
  • 28. Собственно, ключевые слова • Инфраструктура. Билды и беды с ними, CI, деплой – теперь без кода. Бэкапы, восстановление. Логи, мониторинг, реакция на аварии, аналитика. Стресс- тесты, планирование емкости. Автоматизация этого всего, типа devops. 28/38
  • 29. Preemptive FAQ • Q: ...ать, это ж минима 37 томов читать. A: Наверное больше, плюс наколка: читать мало, надо стремиться их уметь написать. • Q: ...уй и зачем же мне это всё, я херачу на PHP тупо, плюс у меня стоянка, капает кеш. A: Строго из личного интереса, мыгыгы, но может случайно появиться и бабло. • Q: Да ты сам небось ни …ра не знаешь! A: Разумеется!!! 29/38
  • 30. И для разнообразия о приятном • Всё подряд и идеально (см. эксперт) знать вообще невозможно – но и не нужно • Часть – вы знаете уже • Часть – особо малоприменима • Часть – лично неинтересна • Порядок – может быть любой • Список неполон, но понятен – действуй!!! 30/38
  • 31. Читай книжки, например • Но лучше не читай; можно зачитаться • Оптимально позже; штоп проверить книжку • Читай маны, читай код, читай гугель • Сначала ПИШИ, потом уже всякое читай, не читать учимся • Про подъем штанги еще сцуко почитай!!! 31/38
  • 32. Пиши код, например • Начинай с простого, и быстрые итерации • ВЕЗДЕ есть развлечения на полчаса, ну или максимум на вечер • НИГДЕ нету невообразимой rocket science, всегда очень много можно спрототипить в очень мало строк 32/38
  • 33. Пиши код, например • L1, asm. Напиши Win32 hello world. Залей окошко gray(x xor y). А теперь на MMX. А теперь померь скорость. • L2, OS. Побенчмаркай malloc(). Позырь strace, поудивляйся. Почитай ext4 какой. • L3, middle. Напиши простенький calcd. А теперь простенький in-mem KV. А теперь чуть сложнее с диском, Btree, libevent. 33/38
  • 34. Пиши код, например • L4, lang. Выбери новый язык, напиши чего. Посмотри дизасм, в том числе байткода. • L5, methods. Напиши хеш. Скрести его с чем. А теперь radixsort. А теперь SIMD. • L6, classes/threads. Перепиши calcd на yacc. А теперь многопоточно. А теперь без сайд эффектов, just because fuck you. • L7, specials. Напиши JPEG декодер. Напиши рейтрейсер. Затекстурируй треугольник. 34/38
  • 35. Пиши код, например • Экспериментируй смело, чморить некому!!! • Пробуй разное, но не распыляйся • Фейлись много и с удовольствием, но чини • Не забывай учиться, в третий раз… не пацан • Доводи до конца, не работает => не сделал • Переделывай N раз, на целевые LOC/время • Если ничо никак не идет, меняй индустрию! 35/38
  • 36. Пиши код, например • Самое главное. • Напиши себе свой личный список. • Мой неполный, кривой, biased и вообще. • Не жди никакого внезапного мега-толка. • Его не будет все равно, муахаха. 36/38
  • 37. Сверхцель всего процесса • Мысль про магию • Байка про ниндзю • Шутка про зарплату!!! 37/38
  • 38. Вопросы? (Не в церкви, не обманут.) shodan.ru/ppt shodan@sphinxsearch.com
  • 39. Опа, бонус-трек! (если вдруг останется время) 39/49
  • 41.
  • 42. Есть ли специфика? • А у вас какой хайлоад? • Длинный или толстый? • Кривой? Это у всех, это ничего; “мы с мамой подумали, нам из него не стрелять...” • Длинный == “много” “быстрых” запросов • Толстый == “мало” “тяжелых” запросов • “Оптимизировать нельзя скейлить”
  • 43. Длинный highload • “Оптимизировать нельзя! => Скейлить” • Но аккуратно тут, может быть иллюзией • Распределенные системы в целом • Middleware в частности • Железо, борьба со сбоями, боттлнеки
  • 44. Толстый highload • “Оптимизировать! => Нельзя скейлить” • Т.к. смысла нет, сначала хоть POC • Локальная оптимизация в целом • Middleware в частности! mwahaha • Железо, боттлнеки
  • 46. Но.. Но.. Но как же собеседования? • И причем тут вообще все эти мегасписки!? • Давайте поговорим про собеседования! • Что вы хотите узнать? 
  • 47. Большая тайна собеседований! • Вариантов реализации много! • Маленькая боевая задача • FizzBuzz, strrev(), strdup(), … • IndustrialRPN • “Интервью имени Баткина” (c) http://blog.gamedeff.com/?p=64 вроде • G, F, B, Y и их никогда не нужные загадки • А сверхцель одна!!! • А обобщенный критерий один!!!
  • 48. Большая тайна собеседований! • Тезис раз, всем в целом похер твой React, Objective-C или успехи на почве Clojure • Тезис два, чем больше покрытие списка, тем больше общих тем (плюс лексикон) • Тезис три, надо уметь писать простой код, сложный надо уметь не писать • Плюс, собственно, можно ведь... готовиться