Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...Ontico
Современные процессоры имеют на борту по нескольку вычислительных ядер, позволяющих запускать задачи на них параллельно. И, казалось бы, вот оно — счастье: бей большие задачи на куски, запускай эти куски параллельно на разных ядрах и радуйся.
Но не все так просто. Для того чтобы одновременный доступ к общим данным выполнялся корректно, современные системы используют разные примитивы синхронизации. В основе одних лежат блокировки (locks), в основе других — операции типа сравнение-с-обменом (compare-and-swap). Однако и у тех и у других есть свои слабые места. О них мы и поговорим.
Из доклада вы узнаете, чем блокирующие алгоритмы отличаются от неблокирующих, и какими достоинствами и недостатками обладает каждый из этих классов. Кроме того, будут показаны различные подводные камни тех и других решений: Deadlock, Livelock, Starvation, Mutable vs Immutable hype.
Олег Миколайченко "Как перестать хранить секреты в git и начать использовать ...Fwdays
Покажу как выпилить пароли/сертификаты/важные данные из репозиториев. Дам всю необходимую информацию для внедрению Hashicorp Vault в вашей компании и команде. Сделаю акцент на использовании в контейнерных инфраструктурах. Рассмотрю продвинутые практики использования и юз-кейсы с вау эффектом, которые работают в реальной жизни. Тут будут звучать такие слова как Ansible, Chef, Puppet, Docker, Swarm, Kubernetes etc.
Доклад, который сможет помочь сделать все хорошо, даже если сейчас все плохо.
Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять ...IT Event
Этот доклад – история организации и проведения «боевой стрельбы». Я расскажу о том, как реализовать нагрузочное тестирование реальными платежами без перерывов в работе системы. А также о том, как такой эксперимент может внезапно подорожать на 10 тысяч евро.
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...Ontico
Современные процессоры имеют на борту по нескольку вычислительных ядер, позволяющих запускать задачи на них параллельно. И, казалось бы, вот оно — счастье: бей большие задачи на куски, запускай эти куски параллельно на разных ядрах и радуйся.
Но не все так просто. Для того чтобы одновременный доступ к общим данным выполнялся корректно, современные системы используют разные примитивы синхронизации. В основе одних лежат блокировки (locks), в основе других — операции типа сравнение-с-обменом (compare-and-swap). Однако и у тех и у других есть свои слабые места. О них мы и поговорим.
Из доклада вы узнаете, чем блокирующие алгоритмы отличаются от неблокирующих, и какими достоинствами и недостатками обладает каждый из этих классов. Кроме того, будут показаны различные подводные камни тех и других решений: Deadlock, Livelock, Starvation, Mutable vs Immutable hype.
Олег Миколайченко "Как перестать хранить секреты в git и начать использовать ...Fwdays
Покажу как выпилить пароли/сертификаты/важные данные из репозиториев. Дам всю необходимую информацию для внедрению Hashicorp Vault в вашей компании и команде. Сделаю акцент на использовании в контейнерных инфраструктурах. Рассмотрю продвинутые практики использования и юз-кейсы с вау эффектом, которые работают в реальной жизни. Тут будут звучать такие слова как Ansible, Chef, Puppet, Docker, Swarm, Kubernetes etc.
Доклад, который сможет помочь сделать все хорошо, даже если сейчас все плохо.
Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять ...IT Event
Этот доклад – история организации и проведения «боевой стрельбы». Я расскажу о том, как реализовать нагрузочное тестирование реальными платежами без перерывов в работе системы. А также о том, как такой эксперимент может внезапно подорожать на 10 тысяч евро.
Anti-fraud solutions in RTB / Вадим Антонюк (IPONWEB)Ontico
Во вступлении мы рассмотрим, какие виды фрода существуют в RTB (bots, ad stacking, spoof sites).
Далее поговорим о том, что из вышеперечисленного мы умеем ловить алгоритмически, и дадим общее описание подхода к кластеризации бид-реквестов на "хорошие" (люди) и "плохие" (боты) с использованием методов machine learning. Обсудим, какой из способов обучения лучше подходит для данной задачи, по каким ключевым признакам кластеризуем, каким методом.
В технической части обсудим область параметров, при которых решалась задача, а именно: размер learning sample 200 млрд. строк бид запросов, при реализации на Hadoop расчет велся в GCE на 140 машинах класса n1-highmem-8 и занимал 22 расчетных часа. Реализация достаточно ресурсозатратная как с точки зрения времени, так и денег, поэтому встал запрос на вычислительную оптимизацию.
В оптимизационной части мы обсудим, как при переходе на Spark framework уже на первой фазе получилось достигнуть выигрыша в производительности в 3 раза по сравнению с Hadoop framework и это далеко не предел. Сейчас проект перехода в активной фазе и к моменту доклада мы ожидаем довести этот показатель до ~10 раз.
Kubernetes is not needed to 90 percents of the companies.rusIvan Glushkov
Эйфория и хайп вокруг Kubernetes не дают всем компаниям возможности трезво взглянуть на сложности, проблемы и риски процесса перехода на Kubernetes.
Я попробую остудить пыл самых смелых и наивных, и показать, что этот путь очень тернист и опасен:
рассмотрю список стандартных проблем,
покажу, на что следует обратить внимание при планировании перехода,
и посоветую "ничего не трогать, пока работает".
Стандартно, банально, но может сэкономить вам массу нервов и денег.
Раздатчик музыки непосредственно занимается отдачей байтов аудиопотока многочисленным пользователям https://ok.ru/music. В пике суммарный трафик достигает 100 Гб/с через сотни тысяч соединений, а время до первого байта составляет не больше 100 мс. Предыдущая версия раздатчика на основе файлов и Apache Tomcat не устраивала нас требуемым количеством оборудования и неспособностью утилизировать современное железо. При разработке новой версии мы поставили перед собой цель сохранить внешнюю функциональность сервиса неизменной, но обойтись существенно меньшим количеством машин, сохранив при этом масштабируемость и отказоустойчивость сервиса.
В докладе мы рассмотрим, как различные архитектурные решения помогли нам обеспечить масштабируемость и отказоустойчивость сервиса за счёт распределения и репликации музыкальных треков между нодами. Затем подробно поговорим про устройство отдельной ноды, включая отказоустойчивую подсистему хранения, сетевую подсистему, а также использование подхода reactive streams. Уделим особое внимание собранным граблям и трюкам, позволившим увеличить производительность системы, упростить отладку и эксплуатацию системы.
Доклад ориентирован на разработчиков, которые хотят расширить свой арсенал подходов и инструментов для создания распределённых и/или высоконагруженных систем с интенсивным I/O.
Как поддерживать и развивать пачку "похожих" проектов. Кластер или конгломера...Ontico
Когда в зоне ответственности находятся несколько "похожих" по реализации и/или функционалу технических решений (сайтов, систем, проектов), волей-неволей возникает желание их унифицировать. Плюсы от такого подхода очевидны: это и экономия ресурсов разработки/тестирования/администрирования, и удобство поддержки, и полноценное общее владение кодом для всей команды разработки. Очевидно, что подобная реформа потребует значительных ресурсов и времени, но мы верим, что это "один раз", и принимаемся отстраивать сложную архитектурную конструкцию, призванную удовлетворить требования всех "объединяемых" продуктов.
Если эти продукты не подвержены изменениям, то рано или поздно все закончится хорошо, и у нас получится чудо-фреймворк. Но обычно все совсем не так. Пока мы прорабатываем классы и строим безупречные схемы взаимосвязей, мир меняется: меняются требования к продукту, новые вызовы рынка и видение менеджмента влекут за собой постоянные изменения функционала. То что было сделано вчера уже не соответствует тому, что хотят сегодня.
Это похоже на возведение песочного замка у самой кромки прибоя. В результате трудный путь превращается в изнуряющее топтание на месте, а имеющееся техническое наследие потихоньку ветшает, разрастается казуальным кодом и забирает все больше сил на поддержку.
Но проблема даже не в этом. Основная проблема в том, что мы видим причину неудач в ошибках проектирования или в несговорчивости менеджмента, не желающего пойти на уступки относительно реализации того или иного функционала. Все проще: я убежден, что ошибка была допущена при выборе пути! Но я не призываю смириться и "тащить" на себе кучу сто раз продублированного кода. Истина, как всегда, где-то посередине.
Мы не будем больше собирать все проекты в один кластер, мы попробуем построить конгломерат!
* оценим перспективы унификации и рассмотрим альтернативы;
* рассмотрим типовые препятствия, и откуда они берутся;
* поговорим о сути изменений, и какие они бывают;
* познакомимся с реальностью на основе моего личного опыта;
* обсудим, что есть "похожесть" проектов и что с этим делать.
Backing deck for the JavaDay Kiev talk.
To the slideshare viewers: if you haven't seen the talk you may find the deck confusing.
It is. Sorry.
Without code samples (https://github.com/pagrus7/java-for-rockstars) and live demo the deck itself may not be terribly useful.
SlideShare now has a player specifically designed for infographics. Upload your infographics now and see them take off! Need advice on creating infographics? This presentation includes tips for producing stand-out infographics. Read more about the new SlideShare infographics player here: http://wp.me/p24NNG-2ay
This infographic was designed by Column Five: http://columnfivemedia.com/
No need to wonder how the best on SlideShare do it. The Masters of SlideShare provides storytelling, design, customization and promotion tips from 13 experts of the form. Learn what it takes to master this type of content marketing yourself.
10 Ways to Win at SlideShare SEO & Presentation OptimizationOneupweb
Thank you, SlideShare, for teaching us that PowerPoint presentations don't have to be a total bore. But in order to tap SlideShare's 60 million global users, you must optimize. Here are 10 quick tips to make your next presentation highly engaging, shareable and well worth the effort.
For more content marketing tips: http://www.oneupweb.com/blog/
Are you new to SlideShare? Are you looking to fine tune your channel plan? Are you using SlideShare but are looking for ways to enhance what you're doing? How can you use SlideShare for content marketing tactics such as lead generation, calls-to-action to other pieces of your content, or thought leadership? Read more from the CMI team in their latest SlideShare presentation on SlideShare.
How to Make Awesome SlideShares: Tips & TricksSlideShare
Turbocharge your online presence with SlideShare. We provide the best tips and tricks for succeeding on SlideShare. Get ideas for what to upload, tips for designing your deck and more.
Anti-fraud solutions in RTB / Вадим Антонюк (IPONWEB)Ontico
Во вступлении мы рассмотрим, какие виды фрода существуют в RTB (bots, ad stacking, spoof sites).
Далее поговорим о том, что из вышеперечисленного мы умеем ловить алгоритмически, и дадим общее описание подхода к кластеризации бид-реквестов на "хорошие" (люди) и "плохие" (боты) с использованием методов machine learning. Обсудим, какой из способов обучения лучше подходит для данной задачи, по каким ключевым признакам кластеризуем, каким методом.
В технической части обсудим область параметров, при которых решалась задача, а именно: размер learning sample 200 млрд. строк бид запросов, при реализации на Hadoop расчет велся в GCE на 140 машинах класса n1-highmem-8 и занимал 22 расчетных часа. Реализация достаточно ресурсозатратная как с точки зрения времени, так и денег, поэтому встал запрос на вычислительную оптимизацию.
В оптимизационной части мы обсудим, как при переходе на Spark framework уже на первой фазе получилось достигнуть выигрыша в производительности в 3 раза по сравнению с Hadoop framework и это далеко не предел. Сейчас проект перехода в активной фазе и к моменту доклада мы ожидаем довести этот показатель до ~10 раз.
Kubernetes is not needed to 90 percents of the companies.rusIvan Glushkov
Эйфория и хайп вокруг Kubernetes не дают всем компаниям возможности трезво взглянуть на сложности, проблемы и риски процесса перехода на Kubernetes.
Я попробую остудить пыл самых смелых и наивных, и показать, что этот путь очень тернист и опасен:
рассмотрю список стандартных проблем,
покажу, на что следует обратить внимание при планировании перехода,
и посоветую "ничего не трогать, пока работает".
Стандартно, банально, но может сэкономить вам массу нервов и денег.
Раздатчик музыки непосредственно занимается отдачей байтов аудиопотока многочисленным пользователям https://ok.ru/music. В пике суммарный трафик достигает 100 Гб/с через сотни тысяч соединений, а время до первого байта составляет не больше 100 мс. Предыдущая версия раздатчика на основе файлов и Apache Tomcat не устраивала нас требуемым количеством оборудования и неспособностью утилизировать современное железо. При разработке новой версии мы поставили перед собой цель сохранить внешнюю функциональность сервиса неизменной, но обойтись существенно меньшим количеством машин, сохранив при этом масштабируемость и отказоустойчивость сервиса.
В докладе мы рассмотрим, как различные архитектурные решения помогли нам обеспечить масштабируемость и отказоустойчивость сервиса за счёт распределения и репликации музыкальных треков между нодами. Затем подробно поговорим про устройство отдельной ноды, включая отказоустойчивую подсистему хранения, сетевую подсистему, а также использование подхода reactive streams. Уделим особое внимание собранным граблям и трюкам, позволившим увеличить производительность системы, упростить отладку и эксплуатацию системы.
Доклад ориентирован на разработчиков, которые хотят расширить свой арсенал подходов и инструментов для создания распределённых и/или высоконагруженных систем с интенсивным I/O.
Как поддерживать и развивать пачку "похожих" проектов. Кластер или конгломера...Ontico
Когда в зоне ответственности находятся несколько "похожих" по реализации и/или функционалу технических решений (сайтов, систем, проектов), волей-неволей возникает желание их унифицировать. Плюсы от такого подхода очевидны: это и экономия ресурсов разработки/тестирования/администрирования, и удобство поддержки, и полноценное общее владение кодом для всей команды разработки. Очевидно, что подобная реформа потребует значительных ресурсов и времени, но мы верим, что это "один раз", и принимаемся отстраивать сложную архитектурную конструкцию, призванную удовлетворить требования всех "объединяемых" продуктов.
Если эти продукты не подвержены изменениям, то рано или поздно все закончится хорошо, и у нас получится чудо-фреймворк. Но обычно все совсем не так. Пока мы прорабатываем классы и строим безупречные схемы взаимосвязей, мир меняется: меняются требования к продукту, новые вызовы рынка и видение менеджмента влекут за собой постоянные изменения функционала. То что было сделано вчера уже не соответствует тому, что хотят сегодня.
Это похоже на возведение песочного замка у самой кромки прибоя. В результате трудный путь превращается в изнуряющее топтание на месте, а имеющееся техническое наследие потихоньку ветшает, разрастается казуальным кодом и забирает все больше сил на поддержку.
Но проблема даже не в этом. Основная проблема в том, что мы видим причину неудач в ошибках проектирования или в несговорчивости менеджмента, не желающего пойти на уступки относительно реализации того или иного функционала. Все проще: я убежден, что ошибка была допущена при выборе пути! Но я не призываю смириться и "тащить" на себе кучу сто раз продублированного кода. Истина, как всегда, где-то посередине.
Мы не будем больше собирать все проекты в один кластер, мы попробуем построить конгломерат!
* оценим перспективы унификации и рассмотрим альтернативы;
* рассмотрим типовые препятствия, и откуда они берутся;
* поговорим о сути изменений, и какие они бывают;
* познакомимся с реальностью на основе моего личного опыта;
* обсудим, что есть "похожесть" проектов и что с этим делать.
Backing deck for the JavaDay Kiev talk.
To the slideshare viewers: if you haven't seen the talk you may find the deck confusing.
It is. Sorry.
Without code samples (https://github.com/pagrus7/java-for-rockstars) and live demo the deck itself may not be terribly useful.
SlideShare now has a player specifically designed for infographics. Upload your infographics now and see them take off! Need advice on creating infographics? This presentation includes tips for producing stand-out infographics. Read more about the new SlideShare infographics player here: http://wp.me/p24NNG-2ay
This infographic was designed by Column Five: http://columnfivemedia.com/
No need to wonder how the best on SlideShare do it. The Masters of SlideShare provides storytelling, design, customization and promotion tips from 13 experts of the form. Learn what it takes to master this type of content marketing yourself.
10 Ways to Win at SlideShare SEO & Presentation OptimizationOneupweb
Thank you, SlideShare, for teaching us that PowerPoint presentations don't have to be a total bore. But in order to tap SlideShare's 60 million global users, you must optimize. Here are 10 quick tips to make your next presentation highly engaging, shareable and well worth the effort.
For more content marketing tips: http://www.oneupweb.com/blog/
Are you new to SlideShare? Are you looking to fine tune your channel plan? Are you using SlideShare but are looking for ways to enhance what you're doing? How can you use SlideShare for content marketing tactics such as lead generation, calls-to-action to other pieces of your content, or thought leadership? Read more from the CMI team in their latest SlideShare presentation on SlideShare.
How to Make Awesome SlideShares: Tips & TricksSlideShare
Turbocharge your online presence with SlideShare. We provide the best tips and tricks for succeeding on SlideShare. Get ideas for what to upload, tips for designing your deck and more.
Модным ныне словом «виртуализация» сейчас называют различные обёртки аппаратной виртуализации, однако этот термин намного старше и более всеохватывающий. На уровне ознакомления с технологией мы поговорим о виртуализации ресурсов в кластере и на примере pacemaker.
Презентация Бибичева Андрея об опыте внедрения Scrum в компании CustIS, прочитанная на конференции РИТ-2008.
Текст статьи - http://www.slideshare.net/biBIGine/scrum-2029854
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...Ontico
В докладе я расскажу о проблемах роста, с которыми сталкивался проект как в плане доступа к БД, так и в целом. Как решали, что получалось, как (общетеоретически или практически) можно решать подобные проблемы в других проектах.
Разберем несколько реальных случаев, когда что-то шло не так.
Доклад можно рассматривать и как небольшой экскурс в развитие технической платформы ВК, и как собрание нескольких практических способов для проекта вырасти и стать надежнее.
"Опыт создания системы управления сборкой и тестированием" (полная)SPB SQA Group
Доклад посвящен вопросам создания и использования собственной системы управления процессами сборки и тестирования ПО. Описываются ключевые моменты построения таких систем, в частности: вопросы интерфейсов, быстродействия, качества и интеграции в общую инфраструктуру. Затрагиваются концепции встраивания качества в код, сбора и использования метрик ПО, неотделимости сборки от тестирования, автоматизированного ведения базы знаний об ошибках и другие.
15. Пример
История одной оптимизации
обработка
Чтение
Файл обработка БД
построчно
обработка
Ожидаем многократное ускорение
Процесс в основном ждёт ответа БД
RAC отлично масштабируется
Сделали – померяли – ускорения нет. Разберёмся?
20. 3. Здравый смысл
А почему эти потоки открывают-закрывают коннекции?
А что там у нас выше по стеку?
А откуда?
А если избавиться?
- ускорение 10х+
21. 4. Выводы
Visualvm замечательно показывает происходящее
«изнутри»
Инструменты не заменяют здравый смысл, а дополняют
Ищите основную причину, а не первую
Современные технологии просты в использовании.
Внести неочевидную проблему проще, чем когда-либо.
25. Аудит данных
Цель – знать кто, что и когда изменял когда
На уровне структур данных:
creator, create_timestamp, modifier, modify_timestamp
А также история изменений кто
К примеру, {modifier, timestamp, property, old val, new val}
Да, это требует места
что
26. Отладочное логирование
Не System.out.println() !
Разумные уровни логирования и ротация
В паттерне Не забудьте синхронизировать время
серверов
Дата/время
Имя потока
MDC – имя пользователя, корреляционная информация
Конфигурация через JMX
Время исполнения ключевых методов
Обращение к внешним ресурсам – БД, веб-сервис, JMS
Perf4j или самостоятельно (AOP)