Ваш город
Москва
Ваш город Москва?
+7 928 117-10-37
Отдел продаж
Режим работы:
Пн-Сб 10:00—18:00;
Вс выходной
КАТАЛОГ ТОВАРОВ
0КорзинаПусто0 руб.
Товары в корзине
корзина пуста
КАТАЛОГ ТОВАРОВ
Корзина пуста0 руб.0
Товары в корзине
корзина пуста
Корзина пуста0 руб.0
Товары в корзине
корзина пуста

Микросервисы на платформе .NET

Микросервисы на платформе .NET
Создание микросервисов – удобная и надежная парадигма для программирования легких отказоустойчивых приложений. В этой книге подробно и интересно рассмотрены тонкости построения микросервисов на платформе .NET с применением таких популярных технологий как Nancy и OWIN.
Характеристики
Автор(ы):
Кристиан Хорсдал
Издательство:
Питер
Год издания:
2018
Кол-во страниц:
352
Переплёт:
Мягкий
Смотреть все
Получение информации о методах доставки
Код: 17857
Нет в наличии
925
Количество:
Избранное
Сравнение
Описание

Создание микросервисов – удобная и надежная парадигма для программирования легких отказоустойчивых приложений. В этой книге подробно и интересно рассмотрены тонкости построения микросервисов на платформе .NET с применением таких популярных технологий как Nancy и OWIN. Книга учитывает тонкости работы на платформе .NET Core и будет интересна всем, кому требуется эффективно и быстро решать нетривиальные задачи при работе с растущими системами.

Характеристики
Автор(ы)
Кристиан Хорсдал
Переводчик
Е. Зазноба
Издательство
Питер
Серия
Для профессионалов
Год издания
2018
ISBN
978-5-496-03221-6
Возрастное ограничение
16+
Кол-во страниц
352
Формат страниц
70x100/16 (170x240 мм)
Язык
Русский
Переплёт
Мягкий
Доп. сведения
Офсетная бумага
Иллюстрации
черно-белые
Тираж
1000 экз.
Вес
470 г
Отзывы

Loading...
Оглавление

Предисловие...............................................................................................................12

Благодарности...........................................................................................................13
Об этой книге.............................................................................................................14
Для кого предназначена книга...................................................................................14
Структура издания......................................................................................................15
Условные обозначения и загрузка кода......................................................................16
Об авторе...................................................................................................................17
Об иллюстрации на обложке......................................................................................17
Часть I. Знакомство с микросервисами
Глава 1. Первый взгляд на микросервисы .................................................................. 21
1.1. Что такое микросервис........................................................................................21
Какова архитектура микросервисов................................................................23
Отличительные признаки микросервисов.......................................................23
1.2. Почему именно микросервисы?............................................................................29
Возможность непрерывной доставки ПО........................................................29
Высокий уровень удобства сопровождения....................................................31
Надежность и масштабируемость...................................................................32
1.3. Издержки и недостатки микросервисов................................................................32
1.4. С нуля или на базе существующей системы?........................................................33
1.5. Многократное использование кода......................................................................34
1.6. Обслуживание запросов пользователя: пример совместной работы
микросервисов...........................................................................................................35
Основная обработка пользовательского запроса............................................36
Побочные действия пользовательских запросов.............................................37
Общая картина..............................................................................................38
1.7. Стек технологий платформы .NET для микросервисов..........................................39
Фреймворк Nancy...........................................................................................39
Стандарт OWIN..............................................................................................40
Настройка среды разработки.........................................................................43
1.8. Пример простого микросервиса...........................................................................44
Создание пустого приложения ASP.NET Core..................................................45
Добавление в проект фреймворка Nancy........................................................45
Добавление модуля Nancy с реализацией конечной точки.............................46
Добавляем промежуточное ПО OWIN.............................................................48
1.9. Резюме................................................................................................................50
Глава 2. Простой микросервис для корзины заказов .................................................. 52
2.1. Обзор микросервиса Shopping Cart.......................................................................53
2.2. Реализация микросервиса Shopping Cart..............................................................56
Создание пустого проекта..............................................................................56
API, предоставляемый микросервисом Shopping Cart другим сервисам...........57
Извлечение информации о товаре.................................................................65
Синтаксический разбор ответа с информацией о товаре................................68
Добавление стратегии обработки ошибок......................................................70
Реализация простейшей ленты событий.........................................................72
2.3. Выполнение кода.................................................................................................77
2.4. Резюме................................................................................................................77
Часть II. Создание микросервисов
Глава 3. Распознавание микросервисов и определение их области действия ............. 81
3.1. Главный фактор определения области действия микросервисов:
бизнес-возможности...................................................................................................82
Что такое бизнес-возможность.......................................................................82
Выделение бизнес-возможностей...................................................................83
Пример: POS-система.....................................................................................84
3.2. Дополнительный фактор определения области действия микросервисов:
вспомогательные технические возможности...............................................................91
Что такое вспомогательная техническая возможность...................................91
Примеры вспомогательных технических возможностей..................................91
Распознавание технических возможностей.....................................................96
3.3. Что делать, если сложно очертить область действия...........................................97
Для начала чуть завышаем размер................................................................97
Выделение новых микросервисов из существующих.....................................101
Заранее планируем выделение нового микросервиса...................................102
3.4. Микросервисы с корректно заданной областью действия обладают типичным
набором свойств.......................................................................................................103
Сведение основных областей действия к бизнес-возможностям повышает качество микросервисов...103
Сведение дополнительных областей действия к вспомогательным
техническим возможностям повышает качество микросервисов...................104
3.5. Резюме..............................................................................................................105
Глава 4. Взаимодействие микросервисов .................................................................. 107
4.1. Типы взаимодействия: команды, запросы и события..........................................107
Команды и запросы: синхронное взаимодействие........................................109
События: асинхронное взаимодействие........................................................113
Форматы данных..........................................................................................116
4.2. Реализация взаимодействия..............................................................................117
Создание проекта для микросервиса Loyalty Program...................................119
Реализация команд и запросов....................................................................120
Реализация команд с помощью методов POST и PUT протокола HTTP..........120
Реализация запросов с помощью метода GET протокола HTTP.....................124
Форматы данных..........................................................................................125
Реализация взаимодействия на основе событий...........................................128
4.3. Резюме..............................................................................................................137
Глава 5. Хранение данных и их принадлежность ...................................................... 138
5.1. У любого микросервиса имеется хранилище данных..........................................138
5.2. Распределение данных по микросервисам.........................................................139
Правило 1: бизнес-возможности обусловливают принадлежность
данных.........................................................................................................139
Правило 2: репликация данных для ускорения работы системы
и повышения ее надежности........................................................................141
Где микросервисы хранят свои данные........................................................145
5.3. Реализация хранилища данных микросервиса....................................................147
Хранение принадлежащих микросервису данных.........................................148
Хранение порождаемых микросервисом событий.........................................151
Установка заголовков кэширования в ответах Nancy....................................159
Чтение и использование заголовков кэширования.......................................161
5.4. Резюме..............................................................................................................163
Глава 6. Проектирование устойчивых к ошибкам систем .......................................... 164
6.1. Ожидайте отказов..............................................................................................165
Наличие подробных журналов.....................................................................166
Использование маркеров корреляции..........................................................168
Развертывание и свертывание.....................................................................168
Не допускайте распространения сбоев.........................................................169
6.2. Ответственность за устойчивость к ошибкам на стороне клиента......................171
Шаблон устойчивости к ошибкам «Повтор».................................................172
Шаблон устойчивости к ошибкам «Предохранитель»...................................174
6.3. Реализация шаблонов устойчивости к ошибкам.................................................176
Реализация стратегии частых повторов с помощью библиотеки Polly...........179
Реализация предохранителя с помощью библиотеки Polly............................180
Реализация стратегии редких повторов с помощью библиотеки Polly...........181
Заносим в журнал все необработанные исключения....................................184
6.4. Резюме..............................................................................................................185
Глава 7. Написание тестов для микросервисов ......................................................... 186
7.1. Что и как тестировать........................................................................................186
Пирамида тестов: что необходимо тестировать
в системе микросервисов.............................................................................187
Системные тесты: тестирование системы микросервисов в целом................188
Эксплуатационные тесты: тестирование микросервиса извне процесса........189
Модульные тесты: тестирование конечных точек изнутри процесса.............192
7.2. Тестировочные библиотеки Nancy.Testing и xUnit...............................................194
Познакомьтесь: библиотека Nancy.Testing....................................................194
Познакомьтесь: фреймворк xUnit.................................................................195
Совместная работа xUnit и Nancy.Testing......................................................195
7.3. Написание модульных тестов с помощью библиотеки Nancy.Testing...................197
Создание проекта для модульного тестирования.........................................198
Использование объекта Browser для модульного тестирования
конечных точек............................................................................................200
Использование настраиваемого загрузчика для внедрения имитаций
в конечные точки.........................................................................................202
7.4. Написание эксплуатационных тестов.................................................................206
Создание проекта для эксплуатационного теста...........................................207
Создание имитационных конечных точек.....................................................208
Запуск всех процессов тестируемого микросервиса......................................210
Выполнение тестового сценария для тестируемого микросервиса................212
7.5. Резюме...............................................................................................................213
Часть III. Сквозная функциональность: создание
платформы многоразового кода для микросервисов
Глава 8. Знакомство с OWIN: написание и тестирование промежуточного ПО OWIN.... 217
8.1. Реализация сквозной функциональности...........................................................217
8.2. Конвейер OWIN.................................................................................................220
8.3. Написание промежуточного ПО.........................................................................225
Промежуточное ПО в виде лямбда-выражений............................................226
Классы промежуточного ПО.........................................................................227
8.4. Тестирование промежуточного ПО и конвейеров...............................................228
8.5. Резюме..............................................................................................................231
Глава 9. Сквозная функциональность: мониторинг и журналирование ....................... 232
9.1. Мониторинг микросервисов...............................................................................232
9.2. Журналирование микросервисов.......................................................................236
9.3. Реализация промежуточного ПО для мониторинга.............................................240
Реализация конечной точки для поверхностного мониторинга.....................241
Реализация конечной точки для углубленного мониторинга........................242
Добавление промежуточного ПО для мониторинга в конвейер OWIN...........244
9.4. Реализация промежуточного ПО для журналирования.......................................246
Добавление маркеров корреляции во все журнальные сообщения...............248
Добавление маркера корреляции во все исходящие HTTP-запросы..............250
Журналирование запросов и показателей их производительности...............253
Конфигурация конвейера OWIN с промежуточным ПО для маркеров
корреляции и журналирования....................................................................255
9.5. Резюме..............................................................................................................257
Глава 10. Обеспечение безопасности взаимодействия микросервисов ..................... 258
10.1. Безопасность микросервисов...........................................................................258
Аутентификация пользователей на периферии............................................260
Авторизация пользователей в микросервисах..............................................262
Насколько микросервисы должны доверять друг другу................................262
10.2. Реализация безопасного обмена сообщениями между микросервисами............265
Познакомьтесь: IdentityServer......................................................................267
Реализация аутентификации с помощью промежуточного ПО IdentityServer...273
Реализация авторизации при взаимодействии между микросервисами с помощью IdentityServer и промежуточного ПО...........................................275
Реализация авторизации пользователей в модулях Nancy............................278
10.3. Резюме.............................................................................................................283
Глава 11. Создание платформы многоразового кода для микросервисов ................. 284
11.1. Создание нового микросервиса должно быть быстрым и легким......................284
11.2. Создание платформы многоразового кода для микросервисов.........................285
11.3. Упаковка и совместное использование промежуточного ПО
с помощью NuGet.....................................................................................................287
Создание пакета с промежуточным ПО для журналирования и мониторинга..288
Создание пакета с промежуточным ПО для авторизации.............................295
Создание пакета с REST-фабрикой клиентов................................................298
Автоматическая регистрация фабрики HttpClientFactory
в контейнере Nancy......................................................................................301
Использование платформы микросервисов..................................................303
11.4. Резюме.............................................................................................................306
Часть IV. Создание приложений
Глава 12. Создание приложений на основе микросервисов ...................................... 309
12.1. Приложения для систем микросервисов: одно или несколько приложений?.......309
Универсальные приложения.........................................................................310
Специализированные приложения...............................................................311
12.2. Шаблоны для построения приложений на основе микросервисов....................312
Составные приложения: интеграция на фронтенде......................................312
Шлюз API.....................................................................................................315
Бэкенд для фронтенда.................................................................................317
Когда использовать каждый из шаблонов....................................................319
Отрисовка на стороне клиента или на стороне сервера?..............................320
12.3. Пример: корзина товаров и список продуктов..................................................321
Создание шлюза API....................................................................................324
Создаем интерфейс списка продуктов..........................................................326
Создание интерфейса корзины.....................................................................330
Позволяем пользователям добавлять продукты в корзину...........................334
Позволяем пользователям удалять продукты из корзины.............................336
12.4. Резюме.............................................................................................................337
Приложения
Приложение A. Настройка среды разработки............................................................340
A.1. Установка IDE....................................................................................................340
Visual Studio 2015.........................................................................................341
Visual Studio Code.........................................................................................341
Редактор ATOM............................................................................................342
IDE JetBrains Rider........................................................................................342
A.2. Установка интерфейса
командной строки dotnet..........................................................................................342
A.3. Установка генератора Yeoman ASP.NET..............................................................343
A.4. Установка Postman.............................................................................................343
A.5. Установка SQL Server Express.............................................................................344
Приложение Б. Развертывание для эксплуатации в производственной среде...........345
B.1. Развертывание API для протокола HTTP............................................................345
Для серверов с операционной системой Windows.........................................346
Для серверов с операционной системой Linux..............................................346
Azure Web Apps............................................................................................347
Azure Service Fabric.......................................................................................347
B.2. Развертывание потребителей событий...............................................................347
Для серверов с операционной системой Windows.........................................347
Для серверов с операционной системой Linux..............................................348
Azure WebJobs..............................................................................................348
Функции Azure.............................................................................................348
Amazon Lambda............................................................................................349
Дополнительная литература........................................................................................350
Микросервисы..........................................................................................................350
Проектирование программного обеспечения и архитектуры в целом........................350
Список использованных в книге технологий................................................................352

Помощь
+7 928 117-10-37
Отдел продаж
Если у вас возникли вопросы при оформлении заказа, обратитесь по указанным контактам.
Мы используем файлы cookie, чтобы сайт был лучше для вас.