Спецкурс Разработка серверов и серверных приложений лекция №1Eugeniy Tyumentcev
В 70-годах прошлого века в ИТ-отрасли сложилось стойкое убеждение, что будущее будет за многопроцессорными системами. Активно разрабатывались методы написания параллельных программ, в том числе и модель акторов Карла Хьюита. Однако все попытки создать многопроцессорную систему завершились провалом - полученные системы оказались дорогими и существенно не превосходили однопроцессорные системы. Самым известным провалом стал японский проект по разработке вычислительных машин 5-го поколения, на который было потрачено 500 млн. долларов. Причина заключается в законе Амдала, который устанавливает ограничения на увеличение производительности при распараллеливании программ. Кроме того, на рынке появилась компания Intel, которая сумела создать успешный однопоточный процессор и постепенно наращивать производительность своих процессоров. Это было время, когда программистам для ускорения своих программ не надо было делать ничего - достаточно дождаться более мощной версии процессора. Только спустя 30 лет, когда Intel уперлась в технологические проблемы наращивания производительности процессоров в лоб, интерес к параллельным технологиям опять возрос. Возникает резонный вопрос: этот интерес надолго или опять повторится история 70-х? В статье Герба Саттера 2005 года Бесплатного супа больше не будет: фундаментальный поворот к параллельности в программном обеспечении утверждается, что нет - больше не возврата к однопоточным программам, и программисты теперь будут вынуждены заботиться о параллельности...
TMPA-2015: Automated Testing of Multi-thread Data Structures Solutions Lineri...Iosif Itkin
Automated Testing of Multi-thread Data Structures Solutions Linerializability
Anton Evdokimov, Dmitry Tsitelov, Roman Elizarov, Vitaly Trifanov, Saint Petersburg State University of Information Technologies, Mechanics and Optics, Saint Petersburg
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
TMPA-2015: Multi-Module Application Tracing in z/OS EnvironmentIosif Itkin
Multi-Module Application Tracing in z/OS Environment
Rostislav Efremov, Saint Petersburg State University, Saint Petersburg
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
TMPA-2015: The dynamic Analysis of Executable Code in ELF Format Based on Sta...Iosif Itkin
The dynamic analysis of executable code in ELF format based on static binary instrumentation
Mikhail Yermakov,ISP RAS
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...SECON
Набор практических приемов, которые позволяют создавать сложные многопоточные, параллельные, распределенные серверные приложения программистам без опыта сетевого и многопоточного программирования, работы с базами данных.
TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...Iosif Itkin
Standards and Standartization in Program Engineering. Why Would You Care?
Nikolay Pakulin, ISP RAS, Moscow
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
В докладе описываются основные проблемы, которые возникают при разработке проектов, и демонстрируется, что эти проблемы можно предсказать и решать с помощью математической теории, лежащей в основе языков программирования.
TMPA-2015: Multi-Module Application Tracing in z/OS EnvironmentIosif Itkin
Multi-Module Application Tracing in z/OS Environment
Rostislav Efremov, Saint Petersburg State University, Saint Petersburg
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
TMPA-2015: The dynamic Analysis of Executable Code in ELF Format Based on Sta...Iosif Itkin
The dynamic analysis of executable code in ELF format based on static binary instrumentation
Mikhail Yermakov,ISP RAS
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...SECON
Набор практических приемов, которые позволяют создавать сложные многопоточные, параллельные, распределенные серверные приложения программистам без опыта сетевого и многопоточного программирования, работы с базами данных.
TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...Iosif Itkin
Standards and Standartization in Program Engineering. Why Would You Care?
Nikolay Pakulin, ISP RAS, Moscow
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
В докладе описываются основные проблемы, которые возникают при разработке проектов, и демонстрируется, что эти проблемы можно предсказать и решать с помощью математической теории, лежащей в основе языков программирования.
разработка серверов и серверных приложений лекция №4etyumentcev
В данной лекции рассмотрена минимальная реализация акторной модели, включающая
- отправку сообщений,
- создание новых акторов и смену поведения для приема следующего сообщения.
Исходный код реализации выложен на https://github.com/hwdtech/HWdTech.DS. Код на C#.
При разработке использовались библиотеки: Autofac, NuUnit, Moq
Большие данные: как могут навредить и ка могут помочь?etyumentcev
Большие данные — модная и быстро распространяющаяся концепция, которая позволяет нам извлекать разные полезные факты из окружающей нас информации. На конкретных примерах покажу как можно большие данные использовать, а также к каким проблемам может привести неверная интерпретация полученных результатов.
Дается математическое обоснование S.O.L.I.D принципов с помощью логики Хоара, из которого следует, что S.O.L.I.D верны не только для ООП, но и для статического полиморфизма, но и для императивного программирования вообще.
Об опыте применения jsonb в реальных проектах. Выступление на PgConf.Russia 2016etyumentcev
В докладе описан опыт построения нагруженной отказоустойчивой системы, использующей jsonb для хранения данных. В частности рассказываются механизмы, которые заменили join, транзакции, в том числе распределенные, репликации обычных SQL баз данных.
Любите ли вы велосипеды? Все разработчики любят свои ненаколеночныерешения велосипеды! И мы не исключение. В нашем докладе мы покажем как собирать, сколачивать, вылепливать собственный велосипед так, чтобы на нем потом могла ездить без слёз вся команда, компания, или может весь мир.
Что в докладе будет:
- много Spring Boot-а;
- live coding;
- создание собственного Spring Boot Starter-а;
- Apache Thrift в качестве подопытного кролика.
Чего не будет:
- бенчмарков и сравнений Thrift vs REST vs gRPC vs XXX.
Эволюция корпоративных Web приложений. Молотков Андрей D2D Just.NETDev2Dev
Для многих enterprise-разработка ассоциируется с бесконечным унаследованным кодом, устаревшими технологиями и неповоротливыми монолитами. Использование подходов построения сервис-ориентированной архитектуры может существенно улучшить ситуацию. Мы пишем небольшие приложения с чёткой зоной ответственности и покрытием модульными тестами, используем современные протоколы OData и OAuth, а legacy-приложения развиваем подключением повторно используемых модулей. В своем докладе я расскажу о том, чего удалось добиться за последние пару лет, какие роли мы выделили и с какими сложностями столкнулись.
Микросервисы, кто-то только слышал о них, кто-то пытался делать, кто-то уже использует в продакшене. Идеи, заложенные в концепцию микросервисов, не новы и основные постулаты уже звучали раньше. Так почему же в последнее время мы всё чаще слышим о микросервисах? Что такое микросервисы для нас и чем они отличаются от старого доброго подхода SOA? Как теперь разрабатывать enterprise-приложения с микросервисным подходом на нашем любимом языке программирования Java?
На эти и некоторые другие вопросы постараемся ответить во время встречи. Наши гости, Кирилл Толкачёв и Александр Тарасов, в режиме live coding попытаются создать небольшой стартап, попутно использовав новомодные подходы и инструменты.
На пути к релизу стартапа будут затронуты основные проблемы выбранных подходов в целом и технологий в частности:
Микросервис — что это, для чего и как с этим дальше жить. Где теория брат? ;)
На чём писать API: REST или RPC, и почему Thrift имеет право на жизнь в эпоху тотального распространения JSON-а. Упрощай и превозмогай с помощью Spring boot starter;
Какой стек выбрать для разработки, что выбрали мы и почему. Небольшое сравнение легковесных и не очень java фреймворков а так же сопутствующих инструментов;
Способы упаковки, дистрибуции и разворачивания микросервисов, как Spring Boot и Docker помогают нам в решении этих непростых для разработчика проблемах;
Как микросервисам найти друг друга, как готовить Spring Cloud и как обойти существующие проблемы и ограничения. Не доверяйте технологиям, доверяйте только себе;
API Gateway. Предохраняй и сохраняй свои микросервисы.
Так же речь пойдет о других распространенных проблемах распределенных систем и их решениях.
Преимущества и недостатки микросервисной архитектуры в HeadHunter / Антон Ива...Ontico
РИТ++ 2017
Зал Конгресс-холл, 5 июня, 12:00
Тезисы:
http://ritfest.ru/2017/abstracts/2749.html
Раньше HeadHunter был большим монолитным приложением. Несколько лет назад мы приняли решение выделять из него микросервисы. За несколько лет мы поняли, что микросервисы - это не серебряная пуля и при неправильном "распиле" создают существенные проблемы: сложность разработки, деплоя, эксплуатации и др. Иногда эти проблемы сводят на нет преимущества от использования микросервисов.
В докладе хочу взвесить преимущества и недостатки микросервисов при вертикальном и горизонтальном делении на микросервисы.
Сергей Скроботов "Баннерокрутилка: разбираем на куски"Yandex
Сергей Скроботов "Баннерокрутилка: разбираем на куски"
Первый Я.Субботник в Санкт-Петербурге
О докладе:
Как протестировать сложную, динамично развивающуюся и высоконагруженную систему? В докладе рассказывается о разработке технологий автоматизированного тестирования баннерокрутилки: о ключевых особенностях сервиса, о возникавших перед группой тестирования задачах, выборе рациональных подходов, о некоторых разработанных инструментах и текущих проблемах, находящихся в стадии решения.”
"Рекомендации по проектированию API" — Марина Степанова, ЯндексYandex
В докладе говорится о проектировании архитектуры API — начиная с того, о ком должен думать разработчик в начале работы, и до секретов «безболезненного» рефакторинга. От общей культуры формирования интерфейсов до правки багов и поддержки обратной совместимости. А также пара слов о документации — фасаде любого API.
"Рекомендации по проектированию API". Марина Степанова, ЯндексYandex
В докладе говорится о проектировании архитектуры API — начиная с того, о ком должен думать разработчик в начале работы, и до секретов «безболезненного» рефакторинга. От общей культуры формирования интерфейсов до правки багов и поддержки обратной совместимости. А также пара слов о документации — фасаде любого API.
«Microservices. Как правильно делать и когда применять?»DataArt
36-ая встреча IT talk Spb (18/02/2016)
«Microservices. Как правильно делать и когда применять?»
Вячеслав Михайлов, Solutions Architect, DataArt
http://it-talk.dataart.ru/events/events-spb/2016/02/priglashaem-druzej-na-36-j-it-talk-v-peterburge/
разработка серверов и серверных приложений лекция №3etyumentcev
В третьей главе рассматриваются базовые свойства акторов, описанные в PhD диссертации Gul Agha: каждый актор имеет адрес, большой почтовый ящик, куда доставляются сообщения, адресованные актору и поведение. В ответ на входящее сообщение актор может отправить конечный набор сообщений другим акторам и/или создать конечное число новых акторов и/или поменять свое поведение для обработки следующего сообщения.
В рамках данного курса будет разработана библиотека для разработки параллельных приложений на платформе .NET, построенная по модели акторов.
Исходные коды библиотеки будут выкладываться на GitHub: https://github.com/hwdtech/HWdTech.DS
Код библиотеки будет разработан с использованием следующих принципов, приемов и методик:
S.O.L.I.D. - принципы
Unit-tests
Mock
IoC контейнеры
Для удобства слушателей курса краткий обзор данных практик приведен в Главе 4.
разработка серверов и серверных приложений лекция №2etyumentcev
Причины потерь процессорного времени при организации последовательности вычислений внутри потока: 1. Ожидание ответа на запрос (поток спит). 2. Выполнение дополнительных "лишних" действий. Как способ устранения этих потерь - паттерн Пул потоков. Анализ императивного и функционального подхода к борьбе с "жадными" операциями. Эволюция методов организации параллельных вычислений на основе пула потоков.
высокопроизводиетльные системы без доп затратetyumentcev
Нами был разработана библиотека HWdTech.DS для разработки многопоточных и распределенных приложений на платформе .Net. Эта библиотека использует модель акторов и позволяет существенно снизить требования к квалификации программистов при построении высоконагруженных приложений.
Приводится объяснение, почему для программистов не подходят системы тайм-менеджмента. Презентация шла как сопровождение к устному выступлению, поэтому сама по себе без записи доклада, возможно, будет непонятна.
14. 09
Критерий поста о полноте
Система булевых функций
полна тогда и только тогда,
когда она не содержится
целиком ни в одном из классов
𝑇0, 𝑇1, S, M, L.