Презентация с GDG Devfest Алматы, рассказывающая о том, как мы рефакторили мололит в микросервисы на Go.
Presentation at GDG Devfest Almaty describing how we refactored monolithe to microservices on Go.
Автор: Андрей Минкин / Andrew Minkin
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...Andrew Minkin
ы начали делать проект и запустили его в продакшн. Со временем пользователей становится больше и текущих ресурсов вам начинает не хватать. В этом докладе я расскажу о основных путях борьбы с нагрузкой, путях решения и проблемах, связанных с ними.
В докладе мы поговорим о:
0. Что такое нагрузка? Пути борьбы с нагрузкой. Оптимизация кода, кеширование, масштабирование
1. Какие проблемы возникают при внедрении кеширования
2. Как оценивать качество работы кеширования?
3. Путь масштабирования и борьба за ресурсы
4. Проблемы балансировки
5. Проблемы БД. Конкурентный доступ и данным и целостность их
Пути решения проблем будут на примере Python/Django
NoSQL — это слово громко "жужжит".
К сожалению, оно при этом ничего не означает. Это не продукт, не технология, и даже не концепция. Это даже не подход к проектированию. Это, скорее, декларация отказа от некоторых паттернов проектирования, господствовавших в разработке клиент-серверных систем долгие годы.
На этом доклад можно было бы и закончить. Если бы мы не знали достоверно, что на свете есть люди, которые умудряются извлекать прибыль, используя NoSQL в своих проектах. Ну или сокращать убытки, по крайней мере.
Попробуем еще раз.
NoSQL — это именно декларация отказа от некоторых паттернов.
- От чего именно придется отказаться? Упомянутые паттерны так живучи совсем не случайно.
- Как это ударит по проекту? Не сомневайтесь, оно ударит, в этом мире нет ни серебряных пуль, ни бесплатного сыра.
- Какими свойствами должен обладать проект, чтобы внедрение NoSQL СУБД принесло ему пользу? Избегать NoSQL — это не трусость, это осторожность.
- Каковы сильные стороны NoSQL СУБД, и в чем профит? Выбор NoSQL — это всегда выбор в пользу меньшего зла.
- Как выбрать NoSQL СУБД под свою задачу? На http://nosql-database.org/ есть список LIST OF NOSQL DATABASES [currently >225], и даже просто прочесть его — тяжелая работа.
- Почему реальный выбор NoSQL СУБД — это выбор между Aerospike и Cassandra? Да, это провокационный вопрос, но на него есть not-so-provocative ответ.
- С какими проблемами сталкиваются разработчики и администраторы при эксплуатации "тяжелой" NoSQL базы? К сожалению, большая часть этих проблем создается именно присутствием NoSQL.
- Что можно делать с NoSQL СУБД и чего нельзя? На какие параметры производительности и отказоустойчивости можно рассчитывать? В чем особенности выбора "железа" для NoSQL?
- И в чем, все-таки, profit?
На эти и некоторые другие, связанные с этими, вопросы автор намерен дать ответ в своем докладе.
Как строить архитектуру для отказоустойчивой службы такси / Минкин Андрей (Na...Ontico
Такси — это популярная тема для обсуждений, после того, как появились стартапы в виде Uber, GetTaxi, GrabTaxi и тому подобные. Ведущий разработчик службы Namba Taxi расскажет про то, как строилась текущая отказоустойчивая архитектура в Namba Taxi, с какими проблемами и неудачами мы сталкивались и как решали.
Тезисы - http://www.highload.ru/2015/abstracts/1661.html
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...Andrew Minkin
ы начали делать проект и запустили его в продакшн. Со временем пользователей становится больше и текущих ресурсов вам начинает не хватать. В этом докладе я расскажу о основных путях борьбы с нагрузкой, путях решения и проблемах, связанных с ними.
В докладе мы поговорим о:
0. Что такое нагрузка? Пути борьбы с нагрузкой. Оптимизация кода, кеширование, масштабирование
1. Какие проблемы возникают при внедрении кеширования
2. Как оценивать качество работы кеширования?
3. Путь масштабирования и борьба за ресурсы
4. Проблемы балансировки
5. Проблемы БД. Конкурентный доступ и данным и целостность их
Пути решения проблем будут на примере Python/Django
NoSQL — это слово громко "жужжит".
К сожалению, оно при этом ничего не означает. Это не продукт, не технология, и даже не концепция. Это даже не подход к проектированию. Это, скорее, декларация отказа от некоторых паттернов проектирования, господствовавших в разработке клиент-серверных систем долгие годы.
На этом доклад можно было бы и закончить. Если бы мы не знали достоверно, что на свете есть люди, которые умудряются извлекать прибыль, используя NoSQL в своих проектах. Ну или сокращать убытки, по крайней мере.
Попробуем еще раз.
NoSQL — это именно декларация отказа от некоторых паттернов.
- От чего именно придется отказаться? Упомянутые паттерны так живучи совсем не случайно.
- Как это ударит по проекту? Не сомневайтесь, оно ударит, в этом мире нет ни серебряных пуль, ни бесплатного сыра.
- Какими свойствами должен обладать проект, чтобы внедрение NoSQL СУБД принесло ему пользу? Избегать NoSQL — это не трусость, это осторожность.
- Каковы сильные стороны NoSQL СУБД, и в чем профит? Выбор NoSQL — это всегда выбор в пользу меньшего зла.
- Как выбрать NoSQL СУБД под свою задачу? На http://nosql-database.org/ есть список LIST OF NOSQL DATABASES [currently >225], и даже просто прочесть его — тяжелая работа.
- Почему реальный выбор NoSQL СУБД — это выбор между Aerospike и Cassandra? Да, это провокационный вопрос, но на него есть not-so-provocative ответ.
- С какими проблемами сталкиваются разработчики и администраторы при эксплуатации "тяжелой" NoSQL базы? К сожалению, большая часть этих проблем создается именно присутствием NoSQL.
- Что можно делать с NoSQL СУБД и чего нельзя? На какие параметры производительности и отказоустойчивости можно рассчитывать? В чем особенности выбора "железа" для NoSQL?
- И в чем, все-таки, profit?
На эти и некоторые другие, связанные с этими, вопросы автор намерен дать ответ в своем докладе.
Как строить архитектуру для отказоустойчивой службы такси / Минкин Андрей (Na...Ontico
Такси — это популярная тема для обсуждений, после того, как появились стартапы в виде Uber, GetTaxi, GrabTaxi и тому подобные. Ведущий разработчик службы Namba Taxi расскажет про то, как строилась текущая отказоустойчивая архитектура в Namba Taxi, с какими проблемами и неудачами мы сталкивались и как решали.
Тезисы - http://www.highload.ru/2015/abstracts/1661.html
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)Ontico
РИТ++ 2017, App's Conf
Зал Найроби, 6 июня, 10:00
Тезисы:
http://appsconf.ru/2017/abstracts/2818.html
Ни для кого не секрет, что Swift — это mainstream: его активно продвигает Apple, на нем пишутся все новые фреймворки, многие разработчики начинают именно с него. Но так ли просто мигрировать c Objective-С, если твоему приложению 5 лет и оно имеет большую аудиторию? В докладе мы расскажем о том, как сделать это без ущерба для бизнеса.
Вы узнаете об этапах такого перехода:
1. Какую бизнес-проблему решали? - Ускоряем разработку, уменьшаем количество багов, проще и быстрее находим новых сотрудников, ограждаем от будущих рисков (старых не поддерживаемых фреймворков, устаревших АПИ).
...
Мы в Avito не так давно начали использовать Golang, но он уже успел занять важное место в различных частях проекта. В докладе мы расскажем о том, какие задачи нам помогает решать Go, почему выбор пал именно на этот язык, с какими подводными камнями мы столкнулись, и как их обходили. В частности поговорим про:
• Сервисы. Как мы начали использовать Go для разработки микросервисов, как это сказалось на их поддержке, а также отдельно расскажем про “шаблон сервиса”, который мы используем.
• Поиск. Как мы с помощью Go мы реализовали RtIndexer для обновления Sphinx Rt индексов в кластере из множества машин (поиск по активным объявлениям), который устойчиво работает с отставанием не более 10 секунд при нагрузке до 1000 rps.
• Автоматизацию тестирования. Как мы пишем тестовые сервисы и API на Go. Подробней остановимся на использовании общих моделей тел запросов и ответов для отправки и получения, использовании горутин как воркеров для обработки очереди.
Как мы отказались от Skype и внедрили WebRTC на основе janus-gateway / Сергей...Ontico
РИТ++ 2017, Backend Conf
Зал Кейптаун, 6 июня, 13:00
Тезисы:
http://backendconf.ru/2017/abstracts/2641.html
Мы строим платформу (vimbox) для проведения уроков английского один на один.
Наши учителя и ученики общаются на платформе. Видеосвязь построена на WebRTC с использованием janus-gateway (https://github.com/meetecho/janus-gateway).
...
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)Ontico
РИТ++ 2017, Frontend Сonf
Зал Мумбаи, 6 июня, 14:00
Тезисы:
http://frontendconf.ru/2017/abstracts/2471.html
Знаете ли вы, что такое прогрессивный рендеринг?
Почему вам стоит его использовать?
Какие есть варианты сегодня?
Опыт международных продаж видеостримера Flussonic / Максим Лапшин (Erlyvideo)Ontico
В докладе я хочу поделиться нашим (http://erlyvideo.ru/) опытом по международным продажам b2b ПО, разрабатываемого в России. Зарубежный доход — это 80% наших денег при предельной диверсификации наших доходов, нам платят люди из почти 100 стран.
Структура доклада:
1. Что мы продаем и как зарабатываем.
2. Как получилось вывести на международный рынок.
3. Почему наш софт покупают.
4. Как мы продаем и поддерживаем.
5. Кто клиенты, как с ними общаемся.
6. Как принимаем деньги и платим налоги (карты, пейпал, банковский счет, recurrent).
7. Сравнение российского ООО и зарубежной компании: юридические, налоговые аспекты.
8. Перспективы и вызовы.
Микросервисная архитектура на базе CoreOS и KubernetesDenis Izmaylov
13 июля 2016 состоялся восьмой Node.js Meetup в Москве. В этом докладе мы рассмотрели Scale Cube, Docker, CoreOS и кратко Kubernetes и Concourse CI.
В следующем докладе взглянем более подробно на Kubernetes и Concourse CI, посмотрим как с помощью этих быстрых и прекрасных инструментов построить Deployment Automation.
Работа с геоданными в Go GDGNSK / Work with Geodata in GoMad Devs
Слайды с GDG DevFest Новосибирск про го, геоданные, ненависть к нод.жс и UDP.
Slides from GDG DevFest Novosibirsk about Go, geodata and hatred to Nod.js and UDP.
Автор: Андрей Минкин / Andrew Minkin
Как строить архитектуру для отказоустойчивой службы такси / How to Build a ...Mad Devs
Доклад с конференции Highload++ 2015 об отказоустойчивой архитектуре
A report from the Highload++ 2015 conference in Moscow, describing the fallover architectures
Автор: Андрей Минкин / Andrew Minkin
http://www.highload.ru/2015/abstracts/1661.html
Как собирать gps треки раз в секунду, экономя трафик / How to Collect GPS Tra...Mad Devs
Доклад с Highload ++ 2016 о том, как экономить трафик, собирая gps данные в службе такси
Slides from Highload++ 2016 on how to save the traffic on collection of GPS tracks in the taxi company
Автор: Андрей Минкин / Andrew Minkin
Собираем GPS-треки от водителей в такси раз в секунду, экономя трафик / Андре...Ontico
Когда Uber или Lyft потихоньку захватывают мир, все службы такси хотят себе такое же приложение.
Мы задумались о том, чтобы сделать у себя несколько вещей:
- Сделать карту, которая работает как в приложении Uber (показывать водителей рядом, которые катаются по городу, плавно заанимированные).
- Хранить маршрут, по которому ехал водитель во время заказа.
В этом докладе я хотел бы поделиться с вами о том, как мы реализовали список выше со стороны бэкенда и мобильных приложений. В качестве языка для реализации был выбран Go.
Поговорим о следующем:
- Как собираем треки с водительских приложений и как мы бережем интернет трафик у водителя.
- Реализация легковесного сетевого взаимодействия между приложением и бэкендом.
- Какие решения были использованы для того, чтобы добиться высокой производительности на бэкенде.
- Как обрабатываем и храним GPS-данные для истории.
- Как обрабатываем и в каком виде выдаем в клиентские приложения.
- Как работает анимация машинки в клиентских приложениях.
- Почему для реализации был выбран Go.
- Как мониторить и быть уверенным в том, что сервис работает.
Картинки к моему рассказу о том, как мы делаем Банки.ру. Некоторые слайды очень неоднозначны без текста. Тезисы тут: http://nastachku.ru/lectures?lecture_id=630#lecture_630
Видео тут https://www.youtube.com/watch?v=m5QuiTZwMrU
Как я написала платформу, взаимодействующую более чем с 15 странами по всему ...Mail.ru Group
Спикер рассказала о разработанной командой платформе PAAS Linkit Vostok. Инструментах, которые они использовали: RabbitMQ, PostgreSQL, Golang microvervices. И о том, как была решена проблема с необходимостью часто делать запросы в базу.
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)Ontico
Highload, высокие нагрузки — популярный и дорогой buzzword, ради него проводятся огромные конференции, разработчики указывают его в резюме, претендуя на большие деньги, а работодатели в вакансиях, обещая более интересную работу.
В докладе я показываю, что современная производительность серверов позволяет не думать о нагрузке для 95% "highload" проектов, знания из конференций не нужны в реальной жизни. Для разработки почти любого, даже очень крупного сайта достаточно PHP+MySQL, здравого смысла и совсем-совсем базовых правил, не обсуждающихся даже на Highload Junior.
План выступления.
1. Ликбез о производительности. RPS, latency — что это значит, как считается, к каким числам надо стремиться? Из чего складывается время отклика? База данных, фронтенд, верстка или мобильное приложение.
2. Замеры достижимой производительности теплого LAMP-ового сервера. Бенчмарк без индексов в базе.
Бенчмарк с индексами в базе. Сравнение с требуемыми цифрами.
3. Перечисление возможных детских ошибок, которые могут испортить эти результаты в жизни. Все эти ошибки объясняются не в академии Highload или институте Highload Junior, а в школе.
Примеры ошибок:
- выгрузка всей базы, а не нужных 20 элементов;
- паразитный вызов тяжелой страницы;
- плохой хостинг;
- чужие тормозные элементы;
- неадекватный объём html/js-кода.
4. Отсутствие детских ошибок позволяет эффективно программировать 90% крупных сайтов, 3-4 приема превратят 90% в 95%.
- nginx;
- репликация;
- кэширование и предрасчет.
Этому, кстати, тоже почти не учат на highload junior, но этому я вас уже научил.
5. Примеры продуктов, в которых на самом деле нужен highload?
- Очень-очень-очень много хитов, дешевле highload, чем новое железо.
- Очень много очен�
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)Ontico
РИТ++ 2017, App's Conf
Зал Найроби, 6 июня, 10:00
Тезисы:
http://appsconf.ru/2017/abstracts/2818.html
Ни для кого не секрет, что Swift — это mainstream: его активно продвигает Apple, на нем пишутся все новые фреймворки, многие разработчики начинают именно с него. Но так ли просто мигрировать c Objective-С, если твоему приложению 5 лет и оно имеет большую аудиторию? В докладе мы расскажем о том, как сделать это без ущерба для бизнеса.
Вы узнаете об этапах такого перехода:
1. Какую бизнес-проблему решали? - Ускоряем разработку, уменьшаем количество багов, проще и быстрее находим новых сотрудников, ограждаем от будущих рисков (старых не поддерживаемых фреймворков, устаревших АПИ).
...
Мы в Avito не так давно начали использовать Golang, но он уже успел занять важное место в различных частях проекта. В докладе мы расскажем о том, какие задачи нам помогает решать Go, почему выбор пал именно на этот язык, с какими подводными камнями мы столкнулись, и как их обходили. В частности поговорим про:
• Сервисы. Как мы начали использовать Go для разработки микросервисов, как это сказалось на их поддержке, а также отдельно расскажем про “шаблон сервиса”, который мы используем.
• Поиск. Как мы с помощью Go мы реализовали RtIndexer для обновления Sphinx Rt индексов в кластере из множества машин (поиск по активным объявлениям), который устойчиво работает с отставанием не более 10 секунд при нагрузке до 1000 rps.
• Автоматизацию тестирования. Как мы пишем тестовые сервисы и API на Go. Подробней остановимся на использовании общих моделей тел запросов и ответов для отправки и получения, использовании горутин как воркеров для обработки очереди.
Как мы отказались от Skype и внедрили WebRTC на основе janus-gateway / Сергей...Ontico
РИТ++ 2017, Backend Conf
Зал Кейптаун, 6 июня, 13:00
Тезисы:
http://backendconf.ru/2017/abstracts/2641.html
Мы строим платформу (vimbox) для проведения уроков английского один на один.
Наши учителя и ученики общаются на платформе. Видеосвязь построена на WebRTC с использованием janus-gateway (https://github.com/meetecho/janus-gateway).
...
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)Ontico
РИТ++ 2017, Frontend Сonf
Зал Мумбаи, 6 июня, 14:00
Тезисы:
http://frontendconf.ru/2017/abstracts/2471.html
Знаете ли вы, что такое прогрессивный рендеринг?
Почему вам стоит его использовать?
Какие есть варианты сегодня?
Опыт международных продаж видеостримера Flussonic / Максим Лапшин (Erlyvideo)Ontico
В докладе я хочу поделиться нашим (http://erlyvideo.ru/) опытом по международным продажам b2b ПО, разрабатываемого в России. Зарубежный доход — это 80% наших денег при предельной диверсификации наших доходов, нам платят люди из почти 100 стран.
Структура доклада:
1. Что мы продаем и как зарабатываем.
2. Как получилось вывести на международный рынок.
3. Почему наш софт покупают.
4. Как мы продаем и поддерживаем.
5. Кто клиенты, как с ними общаемся.
6. Как принимаем деньги и платим налоги (карты, пейпал, банковский счет, recurrent).
7. Сравнение российского ООО и зарубежной компании: юридические, налоговые аспекты.
8. Перспективы и вызовы.
Микросервисная архитектура на базе CoreOS и KubernetesDenis Izmaylov
13 июля 2016 состоялся восьмой Node.js Meetup в Москве. В этом докладе мы рассмотрели Scale Cube, Docker, CoreOS и кратко Kubernetes и Concourse CI.
В следующем докладе взглянем более подробно на Kubernetes и Concourse CI, посмотрим как с помощью этих быстрых и прекрасных инструментов построить Deployment Automation.
Работа с геоданными в Go GDGNSK / Work with Geodata in GoMad Devs
Слайды с GDG DevFest Новосибирск про го, геоданные, ненависть к нод.жс и UDP.
Slides from GDG DevFest Novosibirsk about Go, geodata and hatred to Nod.js and UDP.
Автор: Андрей Минкин / Andrew Minkin
Как строить архитектуру для отказоустойчивой службы такси / How to Build a ...Mad Devs
Доклад с конференции Highload++ 2015 об отказоустойчивой архитектуре
A report from the Highload++ 2015 conference in Moscow, describing the fallover architectures
Автор: Андрей Минкин / Andrew Minkin
http://www.highload.ru/2015/abstracts/1661.html
Как собирать gps треки раз в секунду, экономя трафик / How to Collect GPS Tra...Mad Devs
Доклад с Highload ++ 2016 о том, как экономить трафик, собирая gps данные в службе такси
Slides from Highload++ 2016 on how to save the traffic on collection of GPS tracks in the taxi company
Автор: Андрей Минкин / Andrew Minkin
Собираем GPS-треки от водителей в такси раз в секунду, экономя трафик / Андре...Ontico
Когда Uber или Lyft потихоньку захватывают мир, все службы такси хотят себе такое же приложение.
Мы задумались о том, чтобы сделать у себя несколько вещей:
- Сделать карту, которая работает как в приложении Uber (показывать водителей рядом, которые катаются по городу, плавно заанимированные).
- Хранить маршрут, по которому ехал водитель во время заказа.
В этом докладе я хотел бы поделиться с вами о том, как мы реализовали список выше со стороны бэкенда и мобильных приложений. В качестве языка для реализации был выбран Go.
Поговорим о следующем:
- Как собираем треки с водительских приложений и как мы бережем интернет трафик у водителя.
- Реализация легковесного сетевого взаимодействия между приложением и бэкендом.
- Какие решения были использованы для того, чтобы добиться высокой производительности на бэкенде.
- Как обрабатываем и храним GPS-данные для истории.
- Как обрабатываем и в каком виде выдаем в клиентские приложения.
- Как работает анимация машинки в клиентских приложениях.
- Почему для реализации был выбран Go.
- Как мониторить и быть уверенным в том, что сервис работает.
Картинки к моему рассказу о том, как мы делаем Банки.ру. Некоторые слайды очень неоднозначны без текста. Тезисы тут: http://nastachku.ru/lectures?lecture_id=630#lecture_630
Видео тут https://www.youtube.com/watch?v=m5QuiTZwMrU
Как я написала платформу, взаимодействующую более чем с 15 странами по всему ...Mail.ru Group
Спикер рассказала о разработанной командой платформе PAAS Linkit Vostok. Инструментах, которые они использовали: RabbitMQ, PostgreSQL, Golang microvervices. И о том, как была решена проблема с необходимостью часто делать запросы в базу.
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)Ontico
Highload, высокие нагрузки — популярный и дорогой buzzword, ради него проводятся огромные конференции, разработчики указывают его в резюме, претендуя на большие деньги, а работодатели в вакансиях, обещая более интересную работу.
В докладе я показываю, что современная производительность серверов позволяет не думать о нагрузке для 95% "highload" проектов, знания из конференций не нужны в реальной жизни. Для разработки почти любого, даже очень крупного сайта достаточно PHP+MySQL, здравого смысла и совсем-совсем базовых правил, не обсуждающихся даже на Highload Junior.
План выступления.
1. Ликбез о производительности. RPS, latency — что это значит, как считается, к каким числам надо стремиться? Из чего складывается время отклика? База данных, фронтенд, верстка или мобильное приложение.
2. Замеры достижимой производительности теплого LAMP-ового сервера. Бенчмарк без индексов в базе.
Бенчмарк с индексами в базе. Сравнение с требуемыми цифрами.
3. Перечисление возможных детских ошибок, которые могут испортить эти результаты в жизни. Все эти ошибки объясняются не в академии Highload или институте Highload Junior, а в школе.
Примеры ошибок:
- выгрузка всей базы, а не нужных 20 элементов;
- паразитный вызов тяжелой страницы;
- плохой хостинг;
- чужие тормозные элементы;
- неадекватный объём html/js-кода.
4. Отсутствие детских ошибок позволяет эффективно программировать 90% крупных сайтов, 3-4 приема превратят 90% в 95%.
- nginx;
- репликация;
- кэширование и предрасчет.
Этому, кстати, тоже почти не учат на highload junior, но этому я вас уже научил.
5. Примеры продуктов, в которых на самом деле нужен highload?
- Очень-очень-очень много хитов, дешевле highload, чем новое железо.
- Очень много очен�
Высоконагруженные трейдинговые системы и их тестирование Iosif Itkin
Доклад посвящен особенностям технологических платформ, используемых брокерами и биржами.
В докладе рассматриваются следующие темы:
Балансировка нагрузки, отказоустойчивость и узкие места производительности трейдинговых систем;
Способы оптимизации времени отклика и пропускной способности системы;
Аппаратное ускорение с использованием Infiniband, FPGA, Overclocking, GPU и TOE;
Особенности моделирования нагрузки для биржевых систем;
Требования к генераторам нагрузки и другим инструментам, используемым при тестировании трейдинговых систем.
Целевая аудитория
Широкий круг специалистов, работающих с высоконагруженными системами.
Слушатели смогут сопоставить особенности архитектуры, методов ускорения и тестирования систем особого типа (биржевых площадок) с системами, над которыми они работают (например, высоконагруженными интернет-сервисами).
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...Sergey Xek
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного server-side API десктопного приложения. Сергей Аверин, Badoo.
Доклад рассказывает о реально примененных способах оптимизации производительности API компании Badoo для собственных десктоп-приложений: как специфика «много постоянных соединений/однотипные запросы/большая нагрузка» повлияла на стратегию оптимизации производительности.
Что было сделано:
• Планирование архитектуры изначально (fault-tolerance, адаптивные апдейты и тайм-ауты, отказ от попыток восстановления после ошибок для единичных команд).
• Переехали с redis на handlersocket.
• Rate-limiting запросов к демонам.
• Синхронизация записей.
• Асинхронность.
• Записи при достижении порога изменения параметров.
• Профилирование кода, анализ потребления CPU, времени ответа.
• Статистика, статистика и еще раз статистика.
• Pconnect.
Доклад будет интересен:
• системным архитекторам,
• server-side разработчикам.
ИНФА УСТАРЕЛА! Это июль 2011 года. Все не так и вообще все еще хуже :)
Презентацию нашел случайно, не помню даже для чего и для кого я ее вообще делал (похоже для интернет-провайдеров). Публикую из исторического интереса. Интересно посмотреть назад и на свое видение рынка N лет назад.
Similar to Рефакторинг монолита в микросервисы на Go / Refactoring of Monolithe to Microservices on Go (20)
Держите одеяло у себя: как общаться с кандидатом и узнавать все, что вам инте...Mad Devs
Маргарита Мысина, рекрутер в Mad Devs поделилась темой «Держите одеяло у себя: как общаться с кандидатом и узнавать все, что вам интересно».
Маргарита начала свою карьеру HR в IT в технологическом стартапе, а пару лет назад присоединилась к команде HR в Mad Devs, в качестве сорсера, а затем рекрутера. За время своей работы в найме Маргарита приобрела огромный опыт, который передаст в своем докладе, рассказывая о том, как общаться с кандидатами и ненавязчиво узнавать всю нужную рекрутеру информацию.
Дружелюбнй онбординг: как с увеличением количества не потерять качество Mad Devs
Клара Абдукова, HR-специалист в Mad Devs презентовала о «Дружелюбном онбординге: как с увеличением количества не потерять качество»
Клара уже несколько лет работает в ИТ и в настоящее время занимает позицию лида онбординга в Mad Devs. Она заонбордила более 100 человек, ее опыт позволил сделать процесс онбординга в компанию не только четким, но и прозрачным. В своем докладе Клара расскажет весь путь выстраивания процесса онбординга и поделилась инсайтами, которые помогут HR-специалистам в создании и проведении этого важного процесса.
Mad Stream продолжается!
Нам повезло пригласить нашего Senior Backend Разработчика, Solution Architect, Нурадила Алымкулова, поделиться знаниями с нами.
Нурадил работал в разработке разнообразных систем банка, телекоммуникационных компаниях - одним словом, в энтерпрайзах. Теперь Нурадил хочет поделиться своими огромным опытом и наблюдением в разработки сложных систем.
На этом стриме Нурадил выступит с темой “Проектирование архитектуры приложения 101” мы начнем с:
описания бизнес-требований с помощью последовательных диаграмм;
разберем классовые диаграммы;
опишем поведение программы с помощью флоу-диаграм.
На данном стриме мы пройдем путь создания приложения от начала до конца! После стрима у нас обязательно будет сессия вопросов и ответов.
Mad Stream начнется в 19.30, в этот четверг 12-го ноября!
Ссылка на трансляцию:
https://youtu.be/tKymOf3O9gc
У нас часто спрашивают, как начать программировать самостоятельно и не “перегореть” во время обучения. Теперь можно спросить об этом напрямую у нашего сотрудника Айбека Ногоева!
До Mad Devs Айбек работал в международной аудиторской компании. Там всего за год он поднялся с Junior позиции до уровня Senior и был тимлидом во многих проектах. Чтобы расширить список своих навыков и круг возможностей, Айбек решил начать программировать. После двух месяцев самостоятельного обучения он попал в Mad Devs, и теперь он наш Android-разработчик.
Программируя под Android, Айбек изучил еще и iOS разработку, без каких-либо курсов и чьей-либо помощи. На Mad Stream Айбек выступит с темой: “Соло-прокачка мобильного разработчика”.
На стриме Айбек затронет несколько тем, важных для любого начинающего “мобильщика”:
Как изучать программирование самостоятельно?
Как быстро освоить мобильную разработку?
Как не “перегореть” в процессе обучения?
Как развивать базовые навыки дальше?
Если собираетесь “войти в айти”, опыт Айбека будет вам очень кстати. Интересно узнать работающие лайфхаки?
Тогда скорее сохраняйте ссылку на стрим!
This document discusses habits of highly effective developers, including: holding daily standup meetings to update teammates on work completed, in progress, and blockers; basing work on documented issues to provide context and accountability; thoroughly documenting code, services, and projects; visualizing project data and events; doing demos to showcase work; following good coding practices like testing and automation; communicating carefully and thanking teammates.
Mad Stream: "Что можно напечатать на 3d принтере, помимо еще одного 3d принте...Mad Devs
Наш специалист по Embedded System Engineering, Антон Козлов, выступит с темой:
«Что можно напечатать на 3d принтере, помимо ещё одного 3d принтера.»
⠀
На стриме вы узнаёте:
1. О том как нам преподносят трехмерную печать и чем она является на самом деле;
2. Трехмерная печать не серебряная пуля, недостатки технологии как: масштабируемость, цена, качество изделий;
3. Основные виды трехмерных принтеров доступных простому обывателю и принцип их работы;
4. Пример проекта в котором трехмерная печать ускорит разработку продукта.
Ссылка на стрим: https://www.youtube.com/watch?v=klHxO9c1d2Y&feature=youtu.be
Maв Stream: "Факт карты на службек у ПМа", спикер – Дмитрий КононенкоMad Devs
Вы когда-нибудь слышали о факт-картах? Если коротко – это особый инструмент, помогающий мышлению решать сложные интеллектуальные задачи. Это методика выстраивания целей и нахождения эффективных решений применимых к любой сфере. В ходе презентации Дима "разжует" основные понятия относящиеся к факт-картам и как обычно даст много полезных советов, что называется "из жизни".
Лайфхаки менеджмента на удаленке от Дмитрия КононенкоMad Devs
В ходе презентации, все заинтересованные узнают о том, как организовать коммуникации и процессы команды разработки в условиях всеобщей изоляции. Дима подкинет классных тулзов для упрощения и улучшения процессов, а также поделится собственным опытом и даст много полезных советов.
Этот Mad Talks о неудачном опыте в живом продакшн проекте. Александр расскажет историю о том, как настроили отказоустойчивость системы бизнес-проекта и жили спокойно, пока не решили чинить поломанную репликацию и в итоге получили split-brain.
Основные преимущества и недостатки нативных и кроссплатформенных приложений: что из себя представляет каждый тип приложений и для каких целей он служит.
Более подробно рассматривается Flutter - набор инструментов, позволяющий разработчикам писать кроссплатформенные приложения. Почему стоит обратить на него внимание и начать инвестировать в изучение Flutter.
Ethereum is a blockchain network that allows developers to build decentralized applications and smart contracts. It uses proof-of-work consensus to validate transactions and add them to immutable blocks. Smart contracts deployed on Ethereum are public and their source code can be viewed by anyone. Ethereum is working to transition from proof-of-work to proof-of-stake consensus.
Ethereum: аспекты разработки смарт-контрактовMad Devs
- Что такое умные контракты (смарт-контракты)?
- Представление смарт-контрактов в Ethereum.
- Смарт-контракты на примере - ERC20 токен.
- Понятие топлива (газа) в Ethereum.
- Инструментарий разработки смарт-контрактов.
- Способы интеграции смарт-контрактов Ethereum с внешним ПО.
36. Что в Django
• Отдел контроля качества
• Прием платежей
• Учетное ядро
• Отчеты
• API для водителей
• Менеджерская для управления
37. Проблемы
• Приложение – один большой кусок, который нужно
выкатывать очень часто
• Невозможно параллельно, многопоточно выполнять какие-
то задачи
• Много интеграций со сторонними сервисами
52. Как рефакторить
• Четкие границы в коде между модулями
• Понимание, что выносить
• Нет повторений в коде и копипасты
53. Как рефакторить
• Четкие границы в коде между модулями
• Понимание, что выносить
• Нет повторений в коде и копипасты
• Тесты
54. Как рефакторить
• Четкие границы в коде между модулями
• Понимание, что выносить
• Нет повторений в коде и копипасты
• Тесты
• Много тестов
55. Как рефакторить
• Четкие границы в коде между модулями
• Понимание, что выносить
• Нет повторений в коде и копипасты
• Тесты
• Много тестов
• Очень много тестов
79. Выводы
• Не нужно добавлять сетевое ограничение чтобы оправдать
написание лучшего кода
80. Выводы
• Не нужно добавлять сетевое ограничение чтобы оправдать
написание лучшего кода
• Распределенные транзакции никогда не легче
81. Выводы
• Не нужно добавлять сетевое ограничение чтобы оправдать
написание лучшего кода
• Распределенные транзакции никогда не легче
• К микросервисам нужно прийти
82. Выводы
• Не нужно добавлять сетевое ограничение чтобы оправдать
написание лучшего кода
• Распределенные транзакции никогда не легче
• К микросервисам нужно прийти
• Лучше планируйте
83. Выводы
• Не нужно добавлять сетевое ограничение чтобы оправдать
написание лучшего кода
• Распределенные транзакции никогда не легче
• К микросервисам нужно прийти
• Лучше планируйте
• Преждевременно не оптимизируйте
84. Выводы
• Не нужно добавлять сетевое ограничение чтобы оправдать
написание лучшего кода
• Распределенные транзакции никогда не легче
• К микросервисам нужно прийти
• Лучше планируйте
• Преждевременно не оптимизируйте
• Рефакторите итеративно