Конференция: DotNext 2018 Piter
Дата: 22-23 апреля 2018 года
Место: Санкт-Петербург, Гостиница «Park Inn by Radisson Пулковская»
Всего пара дней осталась до следующего DotNext. Над программой и докладами была проведена колоссальная работа — ранее мы уже писали об этом в анонсе конференции и отдельной статье.

В этом хабрапосте мы свели воедино всю-всю программу в виде одного большого списка, с описаниями докладов и докладчиков. Можно уже сейчас начинать думать, на какие доклады стоит пойти — ведь придется выбирать между тремя параллельными треками. Кроме того, все еще остается возможность приобрести билеты.

Подробное описание программы — под катом.


День первый




Apps, algorithms and abstractions: decoding our digital world


Представьте картинку: вы едете в поезде, ваш смартфон издает звук, вы достаете его из кармана и видите: новое сообщение! Это видео с котиком, падающим со стула! Вы отвечаете «LOL», засовываете телефон назад в карман… Но задумываетесь ли вы, чего стоило заставить всё это работать? Внутри даже самого дешевого смартфона находятся тысячи инноваций, алгоритмов, изобретений — но как они работают? Как их разрабатывали? Как будет выглядеть следующее поколение алгоритмов и приложений?

В этом докладе мы сможем погрузиться в технологии, благодаря которым работают наши обычные бытовые вещи, и раскопаем алгоритмы и абстракции, создающие наш новый цифровой мир. Мы посмотрим на все подряд: алгоритмы сетевой адресации, частоты в сотовых сетях, оптимизации поиска кратчайшего расстояния, вейвлет-сжатие, распознавание отпечатков, способы медиакодирования и так далее. После этого доклада вы уже не сможете относиться к своему мобильнику по-прежнему.


Dylan Beattie / Skills Matter

Дилан — системный архитектор и разработчик, за жизнь успевший поучаствовать во множестве проектов, от небольших вебсайтов до огромных распределенных систем; от легаси с двадцатилетней историей до самых новейших разработок. Сейчас он работает архитектором в Spotlight и занимается решением сложных задач в современных распределенных системах. Параллельно с основной работой Дилан активно участвует в комьюнити, является организатором London .NET User Group и в 2016 году участвовал на множестве конференций, включая Oredev в Швеции, NDC в Лондоне, Сиднее и Осло, Tampere Goes Agile в Финляндии и BuildStuff в Литве и Украине.


Fastware


Оптимизация — то есть ускорение кода — один из основных ингредиентов современных вычислительных технологий. Скорость света ограничена, поэтому нельзя больше разгонять частоты процессоров; с другой стороны, материя состоит из отдельных атомов, поэтому нельзя делать схемы меньше, чем они производятся сейчас. Значит, для современных задач типа самоуправляемых машин или общего искусственного интеллекта, способы ускорения придется придумывать своими мозгами.

Этот доклад рассказывает о двух новых примерах на разных концах спектра техник оптимизации. Первая техника связана с железом: можно заменить бранчи вычислениями. Современные процессоры куда лучше работают с последовательным кодом, чем с непредсказуемыми бранчами, мы будем эксплуатировать этот факт. Второй пример будет про классический алгоритм, который можно улучшить, используя статистические данные о распределении и локальности данных, и это улучшает его теоретическую и практическую производительность.


Andrei Alexandrescu / The D Language Foundation

Андрей Александреску — эксперт по множеству вещей, включая дизайн и реализацию программных систем, дизайн языков программирования, библиотек, всех аспектов C++ и D, машинному обучению и обработке естественных языков. Его творческий подход к решению проблем, глубокие знания и харизма сделали Андрея Александреску одним из самых желанных спикеров на конференциях.

Книги и статьи Андрея оставили свой след в истории индустрии. Он является автором таких бестселлеров, как «Modern C++ Design», «C++ Coding Standards» (в соавторстве с Гербом Саттером), «The D Programming Language», а также статьи вроде «Simplify Your Exception-Safe Code — Forever» (в соавторстве с Petru Marginean) и «Mojo: Move of Joint Objects». Полный список статьей есть по ссылке.


Explore the Cosmos (DB) with .NET Core 2.0


CosmosDB — это NoSQL документно-ориентированная база данных, дающая возможность работать в «настоящем бессерверном» режиме. Она не только предоставляет простой способ подключить георепликацию и гарантирует низкую латентность, но и позволяет выбрать наиболее удобное API с поддержкой DocumentDB (SQL-подобный интерфейс), MongoDB, Gremlin (графовая), Table Storage и Cassandra. В ходе доклада мы познакомимся с установкой, настройкой и написанием приложений на .NET Core для CosmosDB. Всё это будет происходить с использованием лайвкодинга и живых демонстраций.


Jeremy Likness / Microsoft

Джереми Ликнесс — Cloud Developer Advocate в Microsoft, занимающийся Azure. Джереми в течение двух десятилетий делал энтерпрайзный софт с акцентом на бизнес-приложениях для веба и сделал сотни технических презентаций. Он является автором нескольких хороших книг, включая «Designing Silverlight Business Applications» и «Programming the Windows Runtime by Example».


Построение SSO на примере Identity Server 4.0 (.NET Core 2.0)


В докладе расскажем, как легко и просто построить инфраструктуру Signle Sign-On, используя набор готовых компонентов. Разберем детали работы протокола OAuth и различные варианты протоколов аутентификации в зависимости от используемых архитектур.
После доклада вы будете знать, как добавить в ваше приложение возможности SSO, используя всего несколько строчек кода.


Вячеслав Михайлов / DataArt

Вячеслав — solution architect в компании DataArt. Профессиональное образование в области разработки программного обеспечения, занимается IT уже 20 лет. Основной опыт в финансовой индустрии и информационной безопасности. Вячеслав имеет богатый опыт разработки и проектирования различных приложений, начиная от итеративной переработки устаревших сложных легаси-систем и заканчивая проектированием и разработкой современных масштабируемых микросервисных приложений с минимальным временем простоя.


How containers work


В современных хайповых трендах контейнеры стоят рядом с блокчейном и машинным обучением, но тем не менее, в них до сих пор мало кто разбирается хорошо. В этом докладе контейнеры показываются такими, какие они есть на самом деле: обычными процессами, но имеющими какое-то количество изоляции, квоту на ресурсы, и всё это сверху присыпано сэндбоксингом безопасности. Вы поймете, почему контейнеры такие интересные и полезные, как неймспейсы изолируют контейнеры друг от друга, как шарить ресурсы между контейнерами, как работает троттлинг, как всё это связано с рантаймом .NET и как написать минимальное приложение на .NET Core, которое не будет тащить с собой ненужные 500 мегабайт юзерспейсных библиотек и утилит из Ubuntu.


Sasha Goldshtein / Sela Group

Саша Гольдштейн — CTO в компании Sela Group, региональный директор и MVP в Microsoft, автор книг в Pluralsight и O'Reilly, международный консультант и тренер. Саша — автор книг «Introducing Windows 7 for Developers» (Microsoft Press, 2009) и «Pro .NET Performance» (Apress, 2012), известный блогер и контрибьютор в OpenSource-проекты, автор множества обучающих курсов, включая .NET Debugging, .NET Performance, Android Application Development, и Modern C++. Его работа как консультанта в основном связана с распределенными архитектурами, отладкой продакшна, диагностикой производительности и разработкой мобильных приложений.


Отладка как процесс


Отладка — самая интересная часть процесса разработки, но это не значит, что мы должны тратить на нее 90% рабочего времени. В докладе расскажем про правила эффективной отладки. На реальных примерах увидим, как соблюдение процесса помогает быстрее находить ошибки в системе. Также поговорим о проактивной отладке и о том, как ее применять. Покажем, как отладка может стать часть архитектуры приложения.


Сергей Щегрикович / dotmailer

Сергей разрабатывает глобально-распределённое .NET-приложение с десятилетней историей. Активно рассказывает про опыт компании на международных и локальных конференциях. Помогает коллегам с отладкой и оптимизацией производительности, раньше также внедрял DevOps и SRE-практики.


Безбажная пиццерия


Как не потерять качество при переходе от монолитной архитектуры к сервисной? Как помочь тестам находить баги: писать тесты или все же генерировать их?

В докладе не будет «серебряной пули», которая бы помогла вам построить свою гибкую команду или же сделать регресс UI по-другому. Мы сосредоточимся в основном на проблеме эффективных тестов с использованием property based-подхода. На примерах будет показано, как можно использовать FsCheck в связке с C#.

Наверняка вы сталкивались с ситуацией, когда unit-тесты на методы написаны, тестировщики регресс провели, а баги возникают словно ниоткуда. Команда разработки системы Dodo IS не стала исключением. При разделении продукта на смысловые части остро встал вопрос о том, кто будет проверять появившиеся сервисы и как быть с их интеграцией.

Тесное взаимодействие бизнеса, QA и разработчиков, эксперименты с разными подходами и практиками, внедрение тестов в CI – наш путь к быстрому фидбэку и повышению качества поставляемого клиентам продукта.
Сервис без багов – залог вкусной пиццы…


Юлия Ковалева / Dodo Pizza

Юлия окончила магистратуру в ЛЭТИ, решив, что свое алтайское фундаментальное образование нужно сделать более прикладным. После магистратуры она уже 5-й год работает в сфере тестирования ПО и не жалеет об этом. Пожалуй, поиск неверного решения или некорректно поставленного условия задачи – это навык, привитый еще со времен школьных математических боев. Юлия успела пройти путь от аналитика-тестировщика с жестким менеджментом, где шаг влево-вправо и расстрел, до автоматизатора c обязанностями лида. Она не боится экспериментов, незнакомых ей языков разработки и фреймворков: главное же сделать работу качественно и помочь команде. Юлия надеется, что апрельский DotNext порадует всех участников не только интересными докладами, но и своей питерской душевной атмосферой.


C# в браузере — миф или реальность?


С каждым годом мир всё больше и больше двигается от полноценных устанавливаемых приложений в сторону выполняемых в браузере клиентов к веб-сервисам. Вместе с этим переходом требования к сложности таковых продолжают расти, что ведёт к необходимости использования языков со строгой типизацией и богатыми синтаксическими возможностями.

Успешно заняв ниши серверной, десктопной и мобильной разработки, C# теперь двигается и в браузер. В докладе будут рассмотрены средства компиляции C# в JavaScript, обеспечивающие бесшовную интеграцию с имеющейся веб-экосистемой, а также возможности по запуску программ в полноценной .NET-среде средствами WebAssembly.


Никита Цуканов / MandarinBank

Начинал в Навителе с разработки под WinCE/Mobile на C/C++. В дальнейшем занимался разработкой VPN-сервиса с кроссплатформенным клиентом на GTK#, торговой площадки Promarket, мейнтейнил Mono для Nokia N900, делал инструментарий для чип-тюнинга автомобилей, мобильный мессенджер с End2End шифрованием, платёжную систему и ещё кучу всякого по мелочи. Имеет обширный опыт разработки подо всё подряд на зоопарке технологий, которым рад поделиться.


Bot-Tender: a .NET chatbot walks into a bar


Чатботы — это обретающий популярность новый способ общения и вовлечения пользователей, кто бы они ни были. Скорей всего, у вас уже есть веб-сайт, и может быть — мобильное приложение, а у самых серьезных товарищей — еще и десктопное приложение. Но есть ли у вас чатбот? Ваши пользователи уже есть в Slack, Skype, Facebook и многих других местах, почему бы не дать им возможность общаться с вашим сервисом напрямую, более «человеческим» способом?

В этом докладе вы познакомитесь с Microsoft Bot Framework и Azure Bot Service и увидите, как построить с их помощью бота-официанта, прорываясь сквозь всевозможные возникающие при этом задачи. Если у вас еще нет бота — самое время.


Eran Stiller / CodeValue

Eran Stiller — архитектор, консультант, инструктор и просто человек, интересующийся новыми технологиями. Через много лет работы он стал известен как Microsoft MVP по Microsoft Azure за вклад в технические сообщества по всему миру.

Являясь сооснователем CodeValue Ltd., он день ото дня практикует различные архитектурные подходы для различных клиентов, работает со всевозможными вариантами дизайна в разных профессиональных областях. Являясь CTO, он отвечает за обучение и продвижение технологий и платформ в проектах и решениях CodeValue.

Также он ведет обучающие курсы и воркшопы, часто выступает на локальных и глобальных конференциях и митапах и даже является основателем Azure Israel — самого большого митапа по Azure в Израиле.


Распределённые транзакции умерли, да здравствуют распределённые транзакции!


Как «всем известно», распределённые транзакции умерли с приходом эры интернета. Книги по MTS, MSDTC, J2EE пылятся в музеях, пока программисты пишут облачные сервисы в борьбе с eventual consistent-хранилищами данных типа Cassandra и Mongo. Для финансовых транзакций остаётся бессмертный SQL.

Команде, работающей над фреймворком Orleans, не привыкать ставить под сомнение общепринятые «истины». Она уже показала, что распределённые объекты при правильном применении могут успешно использоваться для построения эффективных масштабируемых приложений, предложив убедительную альтернативу подходу Erlang/Akka к модели акторов.

Поддержка масштабируемых распределённых транзакций — одна из последних инноваций Orleans, опровергающая популярные заблуждения. Сергей Быков расскажет о ней, а также о других продвинутых функциях фреймворка.


Сергей Быков / Microsoft

Сергей Быков начинал проект Orleans в Microsoft Research и продолжает руководить его разработкой в open source в подразделении Xbox. До прихода в Research Сергей проработал в различных группах Microsoft, от BizTalk и Host Integration Server до встроенных операционных систем для кассовых терминалов и Bing. Удручающая ситуация со средствами разработки для облачных сервисов и распределённых систем побудила его заняться проектом Orleans с целью качественно повысить производительность труда программистов в этой сфере.


Lightweight microservice collaboration using HTTP


Используя микросервисную архитектуру, вы разбиваете функциональность на много-много узконаправленных микросервисов. Большая часть функциональности зависит от того, как они между собой взаимодействуют. В этом докладе мы увидим множество способов взаимодействия между микросервисами, сравним их между собой, поймем, когда какой сервис использовать и как всё это делать наиболее простым способом. Кроме того, мы познакомимся со способами использования HTTP для различных видов взаимодействия, и как использовать Nancy для их реализации поверх ASP.NET Core.


Christian Horsdal / Horsdal Consult

Christian Horsdal — независимый консультант со множеством лет опыта в разработке распределенных систем на .NET. Он является коммитером в Nancy, Microsoft MVP и автором книг «Instant Nancy Web Development» и «Microservices in .NET Core».


Используем AOT-компиляцию правильно


Ahead-of-time компиляция — главная тема разговора.
Поговорим о преимуществах и недостатках AOT, чем AOT отличается от JIT, AOT и Ngen, AOT для Mono и CoreRT, а также о том, как и когда необходимо применять AOT.


Елизавета Голенок / МТС ИТ

Елизавета – ведущий разработчик в компании МТС Информационные Технологии.
Имеет опыт разработки и проектирования систем как на С/С++, так и на C# ASP.NET, Mono (от навигационных систем до enterprise-решений).
Область интересов — планирование маршрутов и многоагентные системы, компиляция, LLVM, Clang, низкоуровневая отладка приложений, P/Invoke и Mono.


Write your own C# static code analysis tool to drive business rules


Итак, вы написали кучу кода и в течение полугода потратили много времени на изучение, понимание и его улучшение, снова и снова. Код — это нечто живое, и нет документации лучше самого кода. Поэтому мы начинаем использовать кучу инструментов, позволяющих делать ручную проверку кода и полностью понимать, что происходит с объектами определенного типа, какие части кода действительно нуждаются в зависимостях или какие API используются в каких частях кодовой базы. Это тем сложней, чем больше кода пришло к нам от сторонних разработчиков.

Платформа Roslyn дает нам возможность писать инструменты для понимания исходников с точки зрения бизнес-правил, добывать из них информацию, достаточную для идентификации паттернов использования и для применения практик безопасности.

Идея в том, чтобы повысить качество средств для анализа кода, самостоятельно создавая такие инструменты и анализаторы для Visual Studio, которые будут учитывать особенности разрабатываемого продукта.


Raffaele Rialdi / Vevy Europe

Raffaele Rialdi — Senior Software Architect, работающий в том числе как консультант, спикер и тренер. Начиная с 2003 года, он является Microsoft MVP в категории Developer Security. Его увлечение делами сообщества сделало его членом правления UGIdotNET, президентом DotNetLiguria и сооснователем Italian C++ User Group. В данный момент он работает архитектором и разработчиком бэкендов энтерпрайзных проектов с особым фокусом на генерации исходников приложений в области кроссплатформенной мобильной и IoT-разработки, на языках C# и C++.


What is going on? Application diagnostics using the cloud


Всем нам нравится писать и деплоить приложения. Но что происходит, когда все это сделано? Как мы узнаем, что приложение работает так, как нам хотелось? Конечно же, логирование! Но как мы будем копаться в результатах диагностики, выглядящей примерно одинаково бесполезно? Как мы сможем найти соответствия в логах с событиями в коде, такими как непойманные исключения или какие-то конкретные действия пользователя? Как мы сможем убедиться, что мы посылаем не слишком много данных? И так далее и тому подобное. В этом докладе мы увидим, как можно справляться с диагоностикой .NET-приложения — используя структурное логирование и Azure Application Insights для того, чтобы выдавать более осмысленные данные.


Maarten Balliauw / JetBrains

Maarten Balliauw любит делать приложения для веба и облаков. В список его основных интересов входит ASP.NET MVC, C#, Microsoft Azure, PHP и производительность приложений. Он является сооснователем MyGet и работает Developer Advocate в JetBrains. Он является ASP Insider и бывшим MVP в категории Azure. Maarten часто выступает на всевозможных локальных и международных конференциях, организует Azure User Group в Бельгии.


Многопоточные структуры данных в .NET: как это работает?


В докладе речь пойдет об алгоритмах, стоящих за коллекциями в System.Collections.Concurrent. Пошагово, с примерами объясним сложные алгоритмы. Также рассмотрим дизайн API многопоточной коллекции.

Важно: для понимания доклада необходимо знать основы параллельного программирования, включая Monitors, Semaphores, read-write locks, атомарные операции (Interlocked) и т.д.


Дмитрий Иванов / JetBrains

Техлид JetBrains Rider, разработчик ядра ReSharper: структур данных, кэшей, многопоточности. В компании JetBrains с 2011 года, до этого руководил разработкой серверных решений в Yota. Окончил матмех СПбГУ в 2006 году. Регулярный спикер DotNext.



День второй




12-factor apps in .NET Core


Вы, наверное, уже слышали о Cloud Native: о continuous deployment и простом масштабировании серверного кода. Вы слышали о Docker и микросервисах. Но что такое «12-факторные приложения», о которых идет речь в заголовке? Эта методология, изначально выработанная инженерами, занимавшимися разворачиванием на Heroku, является «рецептом успеха» при написании кода для любых облачных платформ. В этом докладе описывается суть метода и демонстрируется, как написать для .NET приложение, которое соответствовало бы всем требованиям этого метода. Абсолютно точно будут живые примеры с использованием ASP.NET Core, обрисованы светлые и темные стороны приложений, построенных подобным образом; будет показано, как это можно развертывать и без сервера, и с использованием Azure Service Fabric.


Ian Cooper / Huddle

Polyglot Coding Architect, работает в Лондоне, сооснователь #ldnug, выступает докладчиком на конференциях. Занимается разработкой больше 20 лет, а на докладах рассказывает о паттернах и практиках, стараясь фокусироваться на архитектурных вопросах.


Деревья выражений в enterprise-разработке


Для большинства разработчиков использование expression tree ограничивается лямбда-выражениями в LINQ. Зачастую мы вообще не придаем значения тому, как технология работает «под капотом».

Цель доклада — продемонстрировать продвинутые техники работы с деревьями выражений:
— устранение дублирования кода в LINQ;
— метапрограмирование;
— кодогенерация;
— транспиляция;
— автоматизация тестирования.

После доклада вы будете знать, как пользоваться expression tree напрямую, какие подводные камни приготовила технология и как их обойти.


Максим Аршинов / Хайтек Груп

Соучредитель казанской аутсорс-компании «Хайтек Груп». Кроме ведения бизнеса преподает в «Высшей школе информационных технологий и информационных систем» Казанского федерального университета и ведет блог на Хабре. По запросу «Как писать тесты» в Google первым результатом выйдет его статья.

Суммарный стаж в программировании и управлении разработкой — 10 лет. За это время прошел путь от программиста в казанской веб-студии до руководителя отдела качества в финансовой индустрии. Работал в организациях из Казани, Москвы, Питера и Антверпена (Бельгия).

Считает, что технологии — это не «вещь в себе», а инструменты для достижению целей. Каждая — со своей областью применения.


Programming quantum computers in .NET using Microsoft Q#


Квантовые компьютеры сейчас — очень популярная тема. Несмотря на то, что они продолжают оставаться, в основном, темой для исследований и ограничиваются игрушечными примерами, у нас есть ясное понимание будущего. Чтобы помочь в разработке и понимании квантовых протоколов, квантовых алгоритмов, квантовой коррекции ошибок и квантовых устройств, в Quantum Architectures and Computation Group (QuArC) разработали новый язык Q#. Q# расширяет .NET Framework специальными реализациями и структурами, которые, в конечном счете, позволяют эмулировать квантовый компьютер как виртуальный процессор.


Rolf Huisman / Info Support

Рольф работает над в Info Support консультантом по application lifecycle management (ALM), DevOps, и Continuous Delivery (CD). В основном он занимается технологиями Microsoft (например, Visual Studio, TFS, Release Management, Azure, Azure Stack, MTM), которые позволяют улучшить и ускорить процесс разработки и поставки. MVP в категории Visual Studio and Development Technologies. Кроме того, в его интересы входит электроника, системы безопасности и вычислительная математика.


Finding your service boundaries — a practical guide


Довольно популярно разделять сложные системы. Мы уже увидели конкретные преимущества модульного развертывания микросервисов. Разработка, сфокусированная на одном небольшом участке кода, разгружает мозг. Но как мы поймем, где провести границы сервисов? В сложных предметных областях, зачастую, довольно сложно даже понять, где начать. Если мы проведем границы неверно, запустится обратный отсчет: однажды настанет время, когда станет «проще все переписать».

В этом докладе Адам приведет ряд практических советов о том, как правильно выявлять скрытые границы систем. Адам строил сложные системы двадцать лет подряд, и у него было куча возможностей пройтись по всевозможным граблям. Мы узнаем, как обходить такие грабли, которые в конечном счете привели бы к полному переписыванию системы.


Adam Ralph / Particular Software

Адам интересуется распределенными системами и работает в компании Particular Software, в которой сделали NServiceBus. Он любит проводить доклады, поддерживать опенсорсные проекты и заменять табы на пробелы.


Взаимодействие микросервисов по HTTP/2


HTTP/2 не только ускоряет загрузку веб-страниц, но и оптимизирует взаимодействие микросервисов в распределённой системе. Наша инфраструктурная команда использовала HTTP/2 в новом сервисе и столкнулась с интересными проблемами. Вас ждет увлекательная fail story про производительность, магические константы и утечки unmanaged-памяти.

Цель доклада — поделиться опытом использования HTTP/2 для оптимизации межсервисного взаимодействия в условиях .NET framework и Windows.

Доклад будет интересен любителям детективных историй про производительность; разработчикам микросервисов под .NET; людям, которые занимаются нагрузочным тестированием HTTP-сервисов.

Ключевые слова: .NET, C#, HTTP/2, WinDbg, microservice architecture, long polling, load testing.


Евгений Жиров / Контур

C# разработчик в инфраструктурной команде СКБ Контур. Занимается разработкой и поддержкой общих библиотек, системы распределенных трассировок, другими высокопроизводительными сервисами.

Интересуется созданием надежных и масштабируемых HTTP-сервисов, написанием производительного кода, C# и .NET, робототехникой и IoT. Евгению нравится делиться знаниями с другими, поэтому он прокачивает навык публичных выступлений и преподает несколько курсов для студентов в УрФУ.


Pitfalls of high-level cryptography


Этот доклад — продолжение предыдущих выступлений на DotNext, которые касались проблем низкоуровневых криптографических API в .NET и рассказывали о высокоуровневой криптографии. История еще не закончена! Высокоуровневая криптография сама по себе имеет множество особенностей. Наиболее продвинутая часть доклада будет касаться работы с публичными ключами.


Stan Drapkin

Stan Drapkin — технический лидер, менеджер и эксперт в security и compliance. Он занимается наймом, обучением и руководством лучших инженерных команд, использующих .NET для разработки сильно защищенных облачных решений для строго регулируемых сред.

У Стэна есть степень в Computer Science и MBA, и он больше 16 лет занимается разработкой с использованием .NET Framework. Он занимался этим еще во времена .NET 1.0-beta in 2001, когда работал в Microsoft, и с тех пор остался погруженным в эту технологию.


Advanced .NET debugging techniques from a real world investigation


Вы же знаете, как это больно: вот вы зарелизили новую версию, и сервис начал вести себя очень странно, и кроме вас некому это починить. Но где и как начать?

Criteo обслуживает 150 миллиардов запросов в день, разбросанных на 4000 фронтовых сервера. Являясь частью команды перформансников в Criteo, докладчики очень хорошо разбираются в том, как расследовать критические проблемы в такого рода средах.

В этом докладе мы рассмотрим инсайты, ошибки, ложные следы, которые бывают в реальности.

Мы пройдем по всем фазам исследования проблемы, начиная с раннего обнаружения и вплоть до починки проблемы, и все использованные приемы будут изложены в подробностях. Включая, но не ограничиваясь:

  • Использование метрик для обнаружения ошибки;
  • Что мы можем или не можем получить из профилировщика, на основании чего можно делать хорошие предположения;
  • Погружение в структуры данных CLR с помощью декомпилятора, WinDBG и SOS, для проверки предположений;
  • Автоматический анализ дампов памяти с помощью ClrMD, и то, как писать свои собственные инструменты, когда WinDBG оказывается несостоятельным.



Christophe Nasarre / Criteo

Christophe Nasarre 25+ лет работал над разработкой и поставкой софта для стека Microsoft, был техническим редактором в MSPress, Addison-Wesley и других издательствах с 1996 года, участвуя в написании таких книг, как «CLR via C#» и последних редакция «Windows Internals».

Обычно он рассказывает об инструментах и полезных идеях о .NET и Windows и ведет свой блог. У него есть опыт докладов как внутри Microsoft, так и на публичных событиях вроде Microsoft TechDays.

Kevin Gosse / Criteo

Kevin Gosse использует технологии Microsoft .NET в течение 10 лет, он занимался разработкой серверов, клиентов и мобильных приложений. Сейчас в Criteo он занимается вопросами масштабирования, отладки и оптимизации.


Building real world production-ready web APIs with .NET Core


Итак, вы начали делать новое веб-API с помощью .NET Core. Вы уже выкатили его в продакшн. А подумали ли вы о хостинге, масштабировании, мониторинге, версионировании, документации, эластичности, логировании? Потому что выкатиться в продакшн только бизнес-логику — недостаточно. В этом докладе, вы узнаете, как стоит писать развивающиеся web-API с использованием .NET Core и технологической платформы Microsoft, и как завести такие вещи в сложной среде на продакшне в больших масштабах.


Alex Thissen / Xpirit

Алекс разрабатывает софт, начиная с 90х годов, побывал в должностях ведущего разработчика и архитектора как в больших энтерпрайзах, так и в небольших компаниях. Сейчас он занимается обучением разработчиков деталям работы с платформой и фреймворками Microsoft, обучает архитекторов проектировать и строить современные распределенные приложения в масштабах облака. Он является десятикратным MVP в категории Visual Studio and Development Technologies.


Обработка естественного языка (NLP) в .NET


Текст — основной источник информации в мире, речь — основной способ взаимодействия между людьми, который также становится популярным способом взаимодействия с компьютером. Такие приложения, как поисковики, чат-боты и персональные ассистенты уже используют знания, извлеченные из текстов и речи. Может ли ваше приложение использовать эти знания?

Во время доклада мы обсудим NLP-возможности, доступные нам из коробки в .NET framework, а также предоставляемые облачными сервисами, такими как Language Understanding Service (LUIS из Azure Cognitive Services) и IBM Watson. Мы также рассмотрим наиболее популярные NLP пакеты из NuGet (Stanford.NLP.NET, OpenNLP.NET и др.)


Сергей Тихон / EPAM Systems

Solution architect в EPAM Systems, автор F# Weekly, Microsoft F# MVP, open source энтузиаст — автор проектов Stanford.NLP.NET, OpenNLP.NET, SwaggerProvider и некоторых других fsprojects.


Трудности перехода на ASP.NET Core и Docker


Многие разработчики, в том числе и мы, уже пробовали ASP.NET Core, Docker, но мало кто использует это в продакшне. В нашем проекте мы решили попробовать эти технологии, потому что эта связка дешевле в содержании и проще в развёртывании, а скорость написания почти не меняется.

Цель доклада — рассказать о трудностях, с которыми нам пришлось столкнуться при создании новых приложений на ASP.NET Core 1.1 и 2.0 под Docker, имея опыт разработки на ASP.NET и не имея никакого реального опыта с Docker.
Кроме того, продемонстрировать способы решения этих проблем и показать, что состояние и динамика развития ASP.NET Core позволяют создавать готовые к продакшн приложения.

Использованные технологии: ASP.NET Core 1.1 и 2.0, Docker, GitLab CI, Amazon EC2 Container Service.


Александр Иванов / Arcadia

Пришёл в .NET в 2008 году из 1С, с тех пор не нарадуется свободе в выборе архитектурных решений и старается попробовать их в деле. В данный момент интересуется ASP.NET Core, Docker и смежными технологиями, продвигая их по мере возможности.


Scratched metal


Микрооптимизации в движке хранения RavenDB vNext критичны для достижения 50К+ запросов на запись в секунду на среднестатистическом сервере. В этом докладе мы рассмотрим использование новых интринсик, добавленных в CoreCLR 2.1 в контексте реальных примеров узких мест на критическом пути выполнения. Будут затронуты довольно хардкорные темы вроде архитектуры процессоров и её влияния на поведение кэшей (коэффициент промахов-попаданий, пойзонинг), префетчинг и т.п. Доклад предназначен для инженеров, занимающихся микрооптимизациями в высокопроизводительных приложениях.


Federico Lois / Corvalius

Federico — сооснователь R&D-компании Corvalius и аналитической компании Coidealike. Он работал над производительностью алгоритмов в течение последних десяти лет, включая как обычные процессоры, так и специализированное железо вроде GPU. Он имеет опыт в различных сферах, начиная от практики повышения производительности банковских приложений, вплоть до оптимизации движков баз данных.


Reactive Extensions (Rx) 101


Реактивные приложения предназначены для обработки асинхронных событий так, чтобы это максимизировало отзывчивость и эластичность этих приложений. Reactive Extensions (Rx) — библиотека, которая абстрагирует источники событий и предоставляет инструменты для работы с ними реактивным способом.

Используя Rx, фильтрация событий, объединение источников, трансформация событий, обработка ошибок и т. п. становятся куда проще, чем при использовании традиционных инструментов и парадигм.

Reactive Extensions требуют изменения подхода: нужно научиться думать о приложении как о хабе для сообщений, который знает, как на эти сообщения реагировать. После доклада вы сможете лучше понять, что из себя представляет Rx, и получите отправную точку на пути к эффективному использованию Rx в своем приложении.


Tamir Dresher / CodeValue

Tamir Dresher — архитектор, консультант, инструктор, руководитель Cloud Division в CodeValue Israel. Более 10 лет в разработке и проектировании систем, как облачных, так и установленных на инфраструктуре пользователя. Обладатель звания Microsoft MVP в категории Visual Studio and Development Technologies, автор книги «Rx.NET in Action» издательства Manning.


Особые исключения в .NET


При разработке .NET-приложений можно столкнуться с исключениями, поведение которых отличается от всех остальных. Эти исключения происходят при ошибках уровня операционной системы и рантайма, могут возникать неожиданно и приводить к падению всего процесса. Например, StackOverflowException, ThreadAbortException, AccessViolationException, OutOfMemoryException.

В докладе слушатели узнают об особенностях обработки таких исключений, внутренних механизмах платформы, отличиях между версиями и реализациями .NET, а также о низкоуровневых способах изменить стандартное поведение рантайма.


Евгений Пешков / Контур

.NET разработчик в СКБ Контур. В компании занимается общей инфраструктурой: разрабатывает облачную платформу хостинга приложений. Интересуется внутренним устройством .NET и Windows и использует эти знания на практике.


Building microservices with .NET Core and Docker


.NET Core — это «новый» способ сборки .NET-приложений, хорошо работает с облаками и контейнерами. В докладе посмотрим, как можно использовать эти технологии для сборки приложений, базирующихся на контейнизированных микросервисах. 20% слайдов и 80% кода.


Edwin van Wijk / Info Support

Эдвин работает в IT с 1999, сейчас — solution architect в Info Support. Microsoft MVP в категории Visual Studio and Development Technologies.


Xamarin не только вреден, но и полезен


Мы разрабатываем мобильное приложение для предпринимателей на C# и Xamarin. Два года назад пользоваться этими инструментами было проблематично: сломанная IDE, проблемы с производительностью, кроссплатформенным кодом и биндингом к нативным возможностям платформ. Xamarin.Forms — вообще одна большая проблема. Сейчас ситуация сильно изменилась к лучшему: AOT-компиляция — уже работает в продакшне, производительность — значительно улучшилась, проблемы с биндингами и средой практически пропали. Расскажем, как сейчас использовать Xamarin, чтобы одновременно выпускать релизы сложного приложения на iOS и Android.


Дмитрий Моисеев / Контур

Дмитрий профессионально занимается программированием с 2009 года, разработкой мобильных приложений в СКБ Контуре — с 2013 года. Уверен, что будущее разработки прикладного ПО — в кроссплатформенных решениях.


Перспективные технологии космонавтики


Какие технологии в космонавтике развиваются прямо сейчас, как они способствуют освоению космоса и что нам ждать от космонавтики в ближайшее десятилетие.


Виталий Егоров / Популяризатор космонавтики, блогер Zelenyikot

Специалист по связям с общественностью российской частной космической компании Dauria Aerospace. Блогер Zelenyikot, популяризатор космонавтики в интернете, основатель сообществ «Открытый космос» в соцсетях суммарным количеством более 1 млн подписчиков. В 2013 году сумел обнаружить на поверхности Марса посадочный модуль советской автоматической межпланетной станции «Марс-3». Инициатор проекта создания лунного микроспутника для съемки мест посадок «Аполлонов» и «Луноходов».


Напоминаем, что это последняя возможность приобрести билеты.
Сделать это можно на официальном сайте конференции

Комментарии (0)