Посмотрим, что скрывается за модным buzzword’ом, взвесим обещанные плюсы и найдем минусы, о которых умалчивают. Разберемся зачем они нужны, и пора ли отказываться от монолита. И попробуем понять, как же их делать.
Введение в сервис-ориентированную архитектуруElena Grahovac
Введение в сервис-ориентированную архитектуру, теория: преимущества, обзор составляющих.
P. S. Не столько настоящая презентация, сколько черновик. Но раз попросили, то делюсь :)
Everyone knows that the whole is much bigger than the sum of individual parts. This applies fully to the AiCare service.
The main purpose of the service is to free the user from configuring and controlling MEP systems, minimize design stage activities, and to ensure the facility operates as smoothly as possible. The AiCare service performs intellectual monitoring of such systems as "Smart House", "Smart Building", "Smart City" by automatically performing activities related to the collection, analysis, classification of information about the facility, including user skills and preferences, and control law adaptations in order to ensure maximum efficiency and create a comfortable environment.
The service is based on methods for the automatic merger of different components under a single control platform:
• techniques for the coordinated automated control of the facility's heterogeneous MEP systems;
• systems for the accumulation and actualization of information on facility user preferences;
• systems for the accumulation and actualization of information on physical properties of facility elements;
• methods for the statistical analysis of incoming information and synthesis of platform control laws;
• mechanisms for the individual adaptation of control laws as information is compiled on the facility and its users.
This approach results in a synergy — a brand-new level of coordinated control efficiency. Control laws created by the service are coordinated with the actual composition of the facility's systems, their behavior and the users' actions over time, and they automatically adapt as changes occur.
The service, provided in the external control mode, complements existing possibilities of the facility and ensures a whole new level of productivity and efficiency of its systems. An innovative approach to big data processing and the use of "cloud computing" for resource-intensive mathematical control models provides a user-friendly, secure, highly productive and resource efficient environment that requires minimum management by the facility's user.
Результаты опроса "Практика и планы по использованию Облачных вычислений (Обл...Michael Kozloff
* Опрос проводился в декабре 2011—январе 2011 года в форме офлайн и онлайн анкетирования и интервью
* Общее число обработанных анкет - 60
* 99% респондентов работают в России
* 80% респондентов отвечают за информационные технологии в своих организациях
* Результаты сгруппированы по числу ПК в организации:
<100>500
«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/
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)Ontico
Начав разработку нового продукта через микросервисы, мы неожиданно для себя обнаружили, что микросервисы — это не просто "вместо одного большого приложения теперь пишем много маленьких". При разработке большой системы она сама собой через какое-то время становится набором отдельных сервисов, которые должны взаимодействовать между собой, поэтому стабильная работа сервисов и их взаимодействие не стало чем-то новым. Неожиданностью стало то, что система стала значительно более динамической, она стала постоянно изменяться отдельными небольшими частями, сервисы стали часто перезапускаться, а количество запущенных нод сервисов стало расти по экспоненте.
Очень быстро стал актуальным вопрос конфигурирования — если раньше, выкатив новую версию монолита с единым конфигом, мы применяли правки на всю систему сразу, то с микросервисами все сложнее — пара сотен работающих нод и всем нужно применить изменения. Требования к деплою также поменялись — он стал частью процесса разработки, а тестирование стало частью деплоя. Количество необходимого ПО для функционирования системы также стало некоторым сюрпризом.
В докладе я расскажу о том, как в итоге это работает у нас, как мы решили такие вопросы как:
- конфигурирование сервисов;
- интеграция между собой;
- тестирование;
- версионирование;
- масштабирование.
Расскажу, какие тулзы мы в итоге используем, а от каких отказались.
Чему мы научились разрабатывая микросервисы?Vadim Madison
Доклад с конференции Backend Conf 2016
Начав разработку нового продукта через микросервисы, мы неожиданно для себя обнаружили, что микросервисы — это не просто "вместо одного большого приложения теперь пишем много маленьких". При разработке большой системы она сама собой через какое-то время становится набором отдельных сервисов, которые должны взаимодействовать между собой, поэтому стабильная работа сервисов и их взаимодействие не стало чем-то новым. Неожиданностью стало то, что система стала значительно более динамической, она стала постоянно изменяться отдельными небольшими частями, сервисы стали часто перезапускаться, а количество запущенных нод сервисов стало расти по экспоненте.
Очень быстро стал актуальным вопрос конфигурирования — если раньше, выкатив новую версию монолита с единым конфигом, мы применяли правки на всю систему сразу, то с микросервисами все сложнее — пара сотен работающих нод и всем нужно применить изменения. Требования к деплою также поменялись — он стал частью процесса разработки, а тестирование стало частью деплоя. Количество необходимого ПО для функционирования системы также стало некоторым сюрпризом.
В докладе я расскажу о том, как в итоге это работает у нас, как мы решили такие вопросы как:
- конфигурирование сервисов;
- интеграция между собой;
- тестирование;
- версионирование;
- масштабирование.
Расскажу, какие тулзы мы в итоге используем, а от каких отказались.
Семинар «Как извлечь из ITSM пользу для бизнеса?» http://www.croc.ru/action/detail/40456/
Лариса Большакова, технический менеджер проектов направления «Мониторинг и управление ИТ»
Версия 11.5:
• 12 000 рабочих мест агентов на одном кластере
• 24 000 рабочих мест агентов на двух объединённых кластерах
• 360 000 в час наибольшей нагрузки
Промышленные контроллеры IIoT — это целая экосистема, которую разработчики.NET обычно обходят стороной. В докладе продолжим погружение в мир дружбы.NET и автономного оборудования, рассмотрим некоторые частые проблемы и "железные" заморочки, возникающие при общении с промышленным контроллерами. Расскажу, как не сломать зубы о "железные" протоколы и почему "умные" устройства пока не могут потеснить "глупых" промышленных собратьев в IIoT.дет интересно.
Николай Гусев «Функциональное программирование для C# разработчиков»MskDotNet Community
Функциональное программирование набирает популярность с каждым днем. Тут и там выходят новые библиотеки, фреймворки и языки, вдохновлённые функциональными концепциями. Всё больше программистов начинают ценить неизменяемое состояние и чистые функции, простую и удобную композицию конструкций и компилятор, находящий львиную долю ошибок ещё до запуска приложения. Язык C# с каждым годом вбирает в себя новые идеи из мира функционального программирования. Мы уже привыкли к удобному Linq и к передаче функций как параметров. А иногда C# и сам становится колыбелью новых идей, например, Reactive Extensions (спасибо Эрику Мейеру). Интересно, какие ещё конструкции функционального программирования можно было бы использовать в C#? Об этом мы и поговорим в нашем докладе. Заодно узнаем, как обрабатывать ошибки в стиле функционального программирования, как избавиться от Null Reference Exception, как ещё можно использовать Linq и многое другое. Приходите, будет интересно.
Ad
More Related Content
Similar to Андрей Матвеев "Основные принципы микросервисов и их реализации" (20)
Everyone knows that the whole is much bigger than the sum of individual parts. This applies fully to the AiCare service.
The main purpose of the service is to free the user from configuring and controlling MEP systems, minimize design stage activities, and to ensure the facility operates as smoothly as possible. The AiCare service performs intellectual monitoring of such systems as "Smart House", "Smart Building", "Smart City" by automatically performing activities related to the collection, analysis, classification of information about the facility, including user skills and preferences, and control law adaptations in order to ensure maximum efficiency and create a comfortable environment.
The service is based on methods for the automatic merger of different components under a single control platform:
• techniques for the coordinated automated control of the facility's heterogeneous MEP systems;
• systems for the accumulation and actualization of information on facility user preferences;
• systems for the accumulation and actualization of information on physical properties of facility elements;
• methods for the statistical analysis of incoming information and synthesis of platform control laws;
• mechanisms for the individual adaptation of control laws as information is compiled on the facility and its users.
This approach results in a synergy — a brand-new level of coordinated control efficiency. Control laws created by the service are coordinated with the actual composition of the facility's systems, their behavior and the users' actions over time, and they automatically adapt as changes occur.
The service, provided in the external control mode, complements existing possibilities of the facility and ensures a whole new level of productivity and efficiency of its systems. An innovative approach to big data processing and the use of "cloud computing" for resource-intensive mathematical control models provides a user-friendly, secure, highly productive and resource efficient environment that requires minimum management by the facility's user.
Результаты опроса "Практика и планы по использованию Облачных вычислений (Обл...Michael Kozloff
* Опрос проводился в декабре 2011—январе 2011 года в форме офлайн и онлайн анкетирования и интервью
* Общее число обработанных анкет - 60
* 99% респондентов работают в России
* 80% респондентов отвечают за информационные технологии в своих организациях
* Результаты сгруппированы по числу ПК в организации:
<100>500
«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/
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)Ontico
Начав разработку нового продукта через микросервисы, мы неожиданно для себя обнаружили, что микросервисы — это не просто "вместо одного большого приложения теперь пишем много маленьких". При разработке большой системы она сама собой через какое-то время становится набором отдельных сервисов, которые должны взаимодействовать между собой, поэтому стабильная работа сервисов и их взаимодействие не стало чем-то новым. Неожиданностью стало то, что система стала значительно более динамической, она стала постоянно изменяться отдельными небольшими частями, сервисы стали часто перезапускаться, а количество запущенных нод сервисов стало расти по экспоненте.
Очень быстро стал актуальным вопрос конфигурирования — если раньше, выкатив новую версию монолита с единым конфигом, мы применяли правки на всю систему сразу, то с микросервисами все сложнее — пара сотен работающих нод и всем нужно применить изменения. Требования к деплою также поменялись — он стал частью процесса разработки, а тестирование стало частью деплоя. Количество необходимого ПО для функционирования системы также стало некоторым сюрпризом.
В докладе я расскажу о том, как в итоге это работает у нас, как мы решили такие вопросы как:
- конфигурирование сервисов;
- интеграция между собой;
- тестирование;
- версионирование;
- масштабирование.
Расскажу, какие тулзы мы в итоге используем, а от каких отказались.
Чему мы научились разрабатывая микросервисы?Vadim Madison
Доклад с конференции Backend Conf 2016
Начав разработку нового продукта через микросервисы, мы неожиданно для себя обнаружили, что микросервисы — это не просто "вместо одного большого приложения теперь пишем много маленьких". При разработке большой системы она сама собой через какое-то время становится набором отдельных сервисов, которые должны взаимодействовать между собой, поэтому стабильная работа сервисов и их взаимодействие не стало чем-то новым. Неожиданностью стало то, что система стала значительно более динамической, она стала постоянно изменяться отдельными небольшими частями, сервисы стали часто перезапускаться, а количество запущенных нод сервисов стало расти по экспоненте.
Очень быстро стал актуальным вопрос конфигурирования — если раньше, выкатив новую версию монолита с единым конфигом, мы применяли правки на всю систему сразу, то с микросервисами все сложнее — пара сотен работающих нод и всем нужно применить изменения. Требования к деплою также поменялись — он стал частью процесса разработки, а тестирование стало частью деплоя. Количество необходимого ПО для функционирования системы также стало некоторым сюрпризом.
В докладе я расскажу о том, как в итоге это работает у нас, как мы решили такие вопросы как:
- конфигурирование сервисов;
- интеграция между собой;
- тестирование;
- версионирование;
- масштабирование.
Расскажу, какие тулзы мы в итоге используем, а от каких отказались.
Семинар «Как извлечь из ITSM пользу для бизнеса?» http://www.croc.ru/action/detail/40456/
Лариса Большакова, технический менеджер проектов направления «Мониторинг и управление ИТ»
Версия 11.5:
• 12 000 рабочих мест агентов на одном кластере
• 24 000 рабочих мест агентов на двух объединённых кластерах
• 360 000 в час наибольшей нагрузки
Промышленные контроллеры IIoT — это целая экосистема, которую разработчики.NET обычно обходят стороной. В докладе продолжим погружение в мир дружбы.NET и автономного оборудования, рассмотрим некоторые частые проблемы и "железные" заморочки, возникающие при общении с промышленным контроллерами. Расскажу, как не сломать зубы о "железные" протоколы и почему "умные" устройства пока не могут потеснить "глупых" промышленных собратьев в IIoT.дет интересно.
Николай Гусев «Функциональное программирование для C# разработчиков»MskDotNet Community
Функциональное программирование набирает популярность с каждым днем. Тут и там выходят новые библиотеки, фреймворки и языки, вдохновлённые функциональными концепциями. Всё больше программистов начинают ценить неизменяемое состояние и чистые функции, простую и удобную композицию конструкций и компилятор, находящий львиную долю ошибок ещё до запуска приложения. Язык C# с каждым годом вбирает в себя новые идеи из мира функционального программирования. Мы уже привыкли к удобному Linq и к передаче функций как параметров. А иногда C# и сам становится колыбелью новых идей, например, Reactive Extensions (спасибо Эрику Мейеру). Интересно, какие ещё конструкции функционального программирования можно было бы использовать в C#? Об этом мы и поговорим в нашем докладе. Заодно узнаем, как обрабатывать ошибки в стиле функционального программирования, как избавиться от Null Reference Exception, как ещё можно использовать Linq и многое другое. Приходите, будет интересно.
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...MskDotNet Community
Технология.net Core от Microsoft позволила.Net разработчикам разворачивать приложения на Linux. Вместе с этим появилось и множество новых возможностей для более эффективной разработки и поставки. В докладе будут разобраны основные проблемы разработки, поставки, тестирования и рассмотрены схемы их решения, используя такие средства как: GitLab, Vgarant+VirtualBox, TeamCity, Ansible, Octopus Deploy, Docker. Мы поговорим про создание тестовых сред, управление инфраструктурой из кода и CI/CD. Основная цель доклада — продемонстрировать, что.net Core на Linux — это выгодно, быстро и управляемо.
Юлия Ковалёва. Fscheck — альтернативный путь для unit тестовMskDotNet Community
Как помочь тестам находить баги? Что лучше: каждый новый запуск на новом наборе данных или же стабильность? Как сделать тестовые данные эффективными?
В докладе рассматривается Property based подход для написания unit-тестов.
На реальных примерах будет показано то, какими возможностями обладает FsCheck в связке с C#, какие есть плюсы и минусы у данного инструмента и стоит ли тратить время на его изучение.
Доклад посвящён специфике.NET Framework в рамках очередной версии хит-парада угроз безопасности приложений OWASP TOP 10, опубликованной в ноябре этого года. Поговорим о том, каким образом каждая из угроз может проявляться в.NET-приложениях, как от этого защищаться и, немного, об общем подходе к разработке защищённых приложений в.NET
Дмитрий Сошников Искусственный интеллект и нейросети для .NET-разработчиковMskDotNet Community
2017-12-16 MskDotNet Субботник
Искусственный интеллект сейчас является одной из самых обсуждаемых тем и главным двигателем цифровой трансформации бизнеса. Стратегия Microsoft в области ИИ включает в себя демократизацию ИИ для разработчиков, т.е. предоставление простых в использовании фреймворков и сервисов для решения интеллектуальных задач. Мы расскажем, как.NET-разработчики могут использовать возможности ИИ в своих проектах: начиная от готовых когнитивных сервисов, работающих в облаке, заканчивая обучением нейросетей на.NET-языках и запуском сложных нейросетевых моделей на компактных устройствах типа Raspberry Pi.
Если вы пишете веб-приложения только под Windows, однако рано или поздно выбор определенной ОС накладывает на вас свои ограничения, наступает время подумать о кроссплатформенной разработке веб-приложений. К чему нужно быть готовым? Mono или .Net Core? Готовы ли Вы портировать свое приложение? Я расскажу о нашем опыте перехода на mono и о том, как это было, с какими проблемами мы столкнулись в первую очередь и почему. Помимо ASP.NET приложений мы так же портировали наш MS SQL Server под Docker. А в заключении мы поговорим о веб-серверах для ASP.NET приложений: — XSP — Apache — nginx
Иван Кочуркин. Теория и практика парсинга формальных языковMskDotNet Community
В докладе рассказывается об инструментах и практиках парсинга формальных языков: как исходного кода, так и собственных предметно-ориентированных (DSL). О том, какие бывают парсеры и проблемы при их использовании. Доклад повествует как о базовых вещах: о токенах, деревьях разбора, абстрактных синтаксических деревьях (AST), так и о продвинутых: о методах обработки препроцессорных директив и восстановления от ошибок, о парсинге островных, нечувствительных к регистру языков и фрагментов кода. Помимо парсинга в докладе затрагивается тема обработки древовидных структур. Материал доклада основан на практических задачах и акцентирован на технологиях ANTLR и Roslyn.
Дмитрий Тежельников «Разработка вэб-решений с использованием Asp.NET.Core и ...MskDotNet Community
Поговорим об эволюции в мире вэб-приложений, современных технологиях и фреймворках, которые используют в вэб-разработке сегодня.
Обсудим основные архитектурные принципы при создании вэб-решений для разных клиентов. Обсудим, как сделать и запустить бэк-энд на Asp.NET.Core в Visual Studio 2017. Далее поговорим, как написать и запустить фронт-энд с использованием React.JS, Redux, Routing, Bootstrap в IntelliJ IDEA 2017.
В конце доклада немного заглянем в будущее, что нас ждет в вэб-разработке завтра?
Поговорим о системе конфигурации в.net. Как она работает на больших проектах, какие проблемы и почему все очень плохо. Какой подход мы применили у себя, чтобы избавиться от некоторых проблем. Как изменились подходы сейчас в.net core. Что с конфигами в ASP.NET Core и как быть, когда кругом микросервисы.
На встрече мы поговорим о том, как не бояться изменений и как быть к ним готовым. Дадим определение АОП. Рассмотрим проблемы, хорошо решаемые инструментами АОП. Построим модульную систему, применяя АОП. Сравним динамический и статический подходы в АОП. Дадим рекомендации по применению АОП.
Вас ждет река теории впадающая в море практики.
Даниил Соколюк "ReactJS.NET — опыт рендеринга на сервере"MskDotNet Community
Поговорим что такое React и зачем он нужен разработчикам, разберемся что такое ReactJS.NET и JavaScriptServices,
Обсудим как интегрировать React компоненты в существующую Razor разметку или даже в WebForms. Расскажем о том какие проблемы с производительностью существуют при серверном рендеринге компонентов и как их решать.
MSK .NET Meetup #8
21 марта 2017
Сегодня понятие интернета вещей ассоциируется с двумя направлениями: облаком и устройствами. И если об облаках говорят много, то о устройствах в концепции IoT информации намного меньше. Мы поговорим о том, что же это за "вещи", какая у них роль, из чего они сделаны и как они работают.
MSK .NET Meetup #8
21 марта 2017
Путь от лабораторного прототипа к промышленной эксплуатации системы IoT тернист. Разработчиков ждут неожиданные проблемы, которые не могут возникнуть в лаборатории. Доклад о том как набить себе по меньше шишек и сделать работающую систему.
Стас Павлов «Построение безопасной архитектуры IoT решений на примере Azure I...MskDotNet Community
MSK .NET Meetup #8
21 марта 2017
При проектировании системы важно понять, каким угрозам эта система может подвергаться, и разработать соответствующие меры защиты при проектировании и построении её архитектуры. Особенно важно с самого начала учитывать требования безопасности при проектировании продукта. Если вы понимаете, каким образом злоумышленники могут скомпрометировать вашу систему, то это поможет еще до начала работы принять соответствующие меры по снижению рисков. В докладе на примере рефренсной архитектуры Azure IoT будет рассмотрено, каким образом можно спроектировать архитектуру соответствующую необходимому уровню безопасности.
Кирилл Маурин «Проектирование и разработка модульных приложений»MskDotNet Community
Выступление с MSK .NET Meetup #7
21 февраля 2017
Во вдоль и поперек изъезженной теме разработки модульных приложений есть много нового и полезного для большей части аудитории. Много материала из личного опыта автора с иллюстрацией из собственной микробиблиотеки с отрытым исходным кодом.
MSK .NET Meetup #7
21 февраля 2017
Мы поговорим о автоматических инструментах поиска ошибок в программах для.Net. Посмотрим на зоопарк средств статического анализа. Попробуем автоматически генерировать Unit-тесты с помощью IntelliTest.
4. Определение микросервисов
Набор независимых, но связанных между собой сервисов
Построены вокруг бизнес-потребностей
Развертываются независимо
Имеют минимум централизованного управления
1
2
3
4
5. X axis – horizontal duplication
Scale by cloning
Y axis –
functional
decomposition
Scale by splitting
different things
Z
axis–
datapartitioning
Scale
bysplitting
sim
ilarthings
6. X axis – horizontal duplication
Scale by cloning
Y axis –
functional
decomposition
Scale by splitting
different things
Z
axis–
datapartitioning
Scale
bysplitting
sim
ilarthings
7. X axis – horizontal duplication
Scale by cloning
Y axis –
functional
decomposition
Scale by splitting
different things
Z
axis–
datapartitioning
Scale
bysplitting
sim
ilarthings
8. X axis – horizontal duplication
Scale by cloning
Y axis –
functional
decomposition
Scale by splitting
different things
Z
axis–
datapartitioning
Scale
bysplitting
sim
ilarthings
26. Когда их использовать
less complex
higher volume (”internet-scale”)
domain
scalability
complexity
lower volume (”enterprise-scale”)
more complex
micro
services
modular
monoliths
27. Когда еще их использовать
Необходимо выпускать новый функционал часто
Можно получить большие преимущества при написании
разных частей системы на разных языках
Есть необходимость использовать разные базы данных
для разных задач
1
2
3
28. Когда лучше не использовать
Не знаете зачем они
Нет соответствующей инфраструктуры
1
2
31. Как строить микросервисы
Функциональная декомпозиция
Взаимодействие с пользователями системы
Взаимодействие между сервисами
Обеспечение согласованности данных
Service discovery
Тестирование
Логирование
1
2
3
4
5
6
7
39. Обеспечение согласованности
данных
После совершения пользователем операции в одном
из сервисов изменились данные и нужно эти изменения
отправить в другой сервис.
Нам необходимо построить отчет по неким показателям,
данные для составления отчета распределены по нескольким
микросервисам.
1
2
55. Объединение запросов
Запрос на списание
получен.
ID: xxxx-xxxx-xxxx-xxxx
Списание прошло
успешно.
ID: xxxx-xxxx-xxxx-xxxx
Средства переведены
клиенту.
ID: xxxx-xxxx-xxxx-xxxx