Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 634620)
Контекстум
.

Шаблоны проектирования для облачной среды. Проектирование программного обеспечения, устойчивого к изменениям (4000,00 руб.)

0   0
Первый авторДэвис
ИздательствоМ.: ДМК Пресс
Страниц390
ID795531
АннотацияЭта книга посвящена облачным платформам, которые обеспечивают многие преимущества — практически нулевое время простоя, бесконечную масштабируемость, короткие циклы обратной связи, отказоустойчивость и контроль затрат. Применяя конструкции для облачной среды, разработчики могут создавать гибкие, легко адаптируемые, веб-масштабируемые распределенные приложения, которые обрабатывают огромный пользовательский трафик и объем данных. Автор рассматривает методы и шаблоны, ориентированные на приложения для облачной среды — с учетом их жизненного цикла, управления конфигурацией в масштабах облака, обновления без простоев. Для работы с книгой читателю необходимы базовые навыки в области проектирования программного обеспечения и умение понимать код, написанный на Java или похожем языке. Издание будет полезно всем, кого интересует развертывание систем на различных облачных платформах.
ISBN978-5-97060-807-4
УДК4.42
ББК32.972
Дэвис, К. Шаблоны проектирования для облачной среды. Проектирование программного обеспечения, устойчивого к изменениям / К. Дэвис .— Москва : ДМК Пресс, 2020 .— 390 с. — ISBN 978-5-97060-807-4 .— URL: https://rucont.ru/efd/795531 (дата обращения: 19.04.2024)

Предпросмотр (выдержки из произведения)

Шаблоны_проектирования_для_облачной_среды._Проектирование_программного_обеспечения,_устойчивого_к_изменениям.pdf
УДК 004.42 ББК 32.972 Д94 Д94 Шаблоны проектирования для облачной среды / пер. с анг. Д. А. Беликова. – М.: ДМК Пресс, 2020. – 388 с.: ил. Дэвис К. ISBN 978-5-97060-807-4 Эта книга посвящена облачным платформам, которые обеспечивают многие преимущества – практически нулевое время простоя, бесконечную масштабируемость, короткие циклы обратной связи, отказоустойчивость и контроль затрат. Применяя конструкции для облачной среды, разработчики могут создавать гибкие, легко адаптируемые, веб-масштабируемые распределенные приложения, которые обрабатывают огромный пользовательский трафик и объем данных. Автор рассматривает методы и шаблоны, ориентированные на приложения для облачной среды – с учетом их жизненного цикла, управления конфигурацией в масштабах облака, обновления без простоев. Для работы с книгой читателю необходимы базовые навыки в области проектирования программного обеспечения и умение понимать код, написанный на Java или похожем языке. Издание будет полезно всем, кого интересует развертывание систем на различных облачных платформах. УДК 004.42 ББК 32.972 Original English language edition published by Manning Publications USA, USA. Copyright © 2019 by Manning Publications Co. Russian-language edition copyright © 2020 by DMK Press. All rights reserved. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. ISBN 978-1-617-29532-4 (анг.) ISBN 978-5-97060-807-4 (рус.) Copyright © 2019 by Manning Publications Co © Оформление, издание, перевод, ДМК Пресс, 2020
Стр.5
Содержание Предисловие ...........................................................................................................11 От автора ..................................................................................................................12 Благодарности ........................................................................................................14 Об этой книге ..........................................................................................................16 Об авторе .................................................................................................................20 Об иллюстрации на обложке ..............................................................................21 Часть I. Контекст облачной среды .....................................................................22 Глава 1. Вы продолжаете использовать это слово: определение понятия «cloud-native» .........................................................................................23 1.1. Современные требования к приложениям .......................................................27 1.1.1. Нулевое время простоя ................................................................................27 1.1.2. Сокращенные контуры обратной связи .....................................................28 1.1.3. Мобильная и мультидевайсная поддержка ................................................28 1.1.4. Устройства, подключенные к сети, также известные как интернет вещей ......................................................................................................................29 1.1.5. Управление с помощью данных ..................................................................29 1.2. Знакомство с программным обеспечением для облачной среды ...................30 1.2.1. Определение понятия «cloud-native» .........................................................31 1.2.2. Ментальная модель программного обеспечения для облачной среды ...33 1.2.3. Программное обеспечение для облачной среды в действии ....................38 1.3. Cloud-native и мир во всем мире .......................................................................43 1.3.1. Cloud и cloud-native .....................................................................................43 1.3.2. Что не относится к понятию «cloud-native»? .............................................44 1.3.3. Облачная среда нам подходит.....................................................................45 Резюме ........................................................................................................................48 Глава 2. Запуск облачных приложений в рабочем окружении .................49 2.1. Препятствия ........................................................................................................50 2.1.1. Снежинки ......................................................................................................51 2.1.2. Рискованное развертывание .......................................................................53 2.1.3. Изменение – это исключение......................................................................57 2.1.4. Нестабильность рабочего окружения .........................................................57 2.2. Стимулирующие факторы ..................................................................................58 2.2.1. Непрерывная доставка ................................................................................59 2.2.2. Повторяемость .............................................................................................63 2.2.3. Безопасное развертывание .........................................................................68 2.2.4. Изменение – это правило ............................................................................72 Резюме ........................................................................................................................75
Стр.7
Содержание  7 Глава 3. Платформа для облачного ПО ............................................................76 3.1. Эволюция облачных платформ ..........................................................................77 3.1.1. Все началось с облака ...................................................................................77 3.1.2. Тональный вызов .........................................................................................79 3.2. Основные принципы платформы для облачной среды ...................................82 3.2.1. Вначале поговорим о контейнерах .............................................................82 3.2.2. Поддержка «постоянно меняющихся» .......................................................84 3.2.3. Поддержка «сильно распределенных» .......................................................87 3.3. Кто что делает? ....................................................................................................91 3.4. Дополнительные возможности платформы для облачной среды ...................94 3.4.1. Платформа поддерживает весь жизненный цикл разработки программного обеспечения ..................................................................................94 3.4.2. Безопасность, контроль над изменениями, соответствие требованиям (функции управления) ...................................................................97 3.4.3. Контроль за тем, что идет в контейнер ....................................................100 3.4.4. Обновление и исправление уязвимостей ................................................102 3.4.5. Контроль над изменениями ......................................................................104 Резюме ......................................................................................................................106 Часть II. Шаблоны для облачной среды .........................................................107 Глава 4. Событийно-ориентированные микросервисы: не только запрос/ответ ......................................................................................109 4.1. (Обычно) нас учат императивному программированию...............................110 4.2. Повторное знакомство с событийно-ориентированными вычислениями .........................................................................................................112 4.3. Моя глобальная поваренная книга ..................................................................113 4.3.1. Запрос/ответ ...............................................................................................113 4.2.2. Событийно-ориентированный подход ....................................................119 4.4 Знакомство с шаблоном Command Query Responsibility Segregation .............129 4.5. Разные стили, схожие проблемы .....................................................................131 Резюме ......................................................................................................................133 Глава 5. Избыточность приложения: горизонтальное масштабирование и отсутствие фиксации состояния ................................134 5.1. У приложений для облачной среды есть много развернутых экземпляров .............................................................................................................136 5.2. Приложения с фиксацией текущего состояния в облаке ...............................137 5.2.1. Разложение монолита на части и привязка к базе данных ....................139 5.2.2. Плохая обработка состояния сеанса .........................................................142 5.3. HTTP-сессии и «липкие» сессии .......................................................................155 5.4. Службы с фиксацией текущего состояния и приложения без фиксации состояния .................................................................................................................158 5.4.1. Службы с фиксацией состояния – это специальные службы ..................158 5.4.2. Создание приложений без сохранения состояния ..................................160 Резюме ......................................................................................................................165
Стр.8
8  Содержание Глава 6. Конфигурация приложения: не только переменные среды .....166 6.1. Почему мы вообще говорим о конфигурации? ..............................................167 6.1.1. Динамическое масштабирование – увеличение и уменьшение количества экземпляров приложения ...............................................................168 6.1.2. Изменения инфраструктуры, вызывающие изменения в конфигурации ...................................................................................................168 6.1.3. Обновление конфигурации приложения с нулевым временем простоя .................................................................................................................169 6.2. Уровень конфигурации приложения ...............................................................171 6.3. Инъекция значений системы/среды ...............................................................176 6.3.1. Давайте посмотрим, как это работает: использование переменных среды для конфигурации ..............................................................176 6.4. Внедрение конфигурации приложения ..........................................................184 6.4.1. Знакомство с сервером конфигурации .....................................................185 6.4.2. Безопасность добавляет больше требований ...........................................193 6.4.3. Давайте посмотрим, как это работает: конфигурация приложения с использованием сервера конфигурации .........................................................193 Резюме ......................................................................................................................195 Глава 7. Жизненный цикл приложения: учет постоянных изменений ....197 7.1. Сочувствие к операциям ...................................................................................199 7.2. Жизненный цикл одного приложения и жизненные циклы нескольких приложений .........................................................................................200 7.2.1. Сине-зеленые обновления .........................................................................203 7.2.2. Последовательные обновления .................................................................205 7.2.3. Параллельное развертывание ...................................................................205 7.3. Координация между различными жизненными циклами приложения .......209 7.4. Давайте посмотрим, как это работает: периодическая смена реквизитов доступа и жизненный цикл приложения ..........................................212 7.5. Работа с эфемерной средой выполнения ........................................................221 7.6. Видимость состояния жизненного цикла приложения ..................................223 7.6.1. Давайте посмотрим, как это работает: конечные точки работоспособности и проверки ..........................................................................228 Глава 8. Доступ к приложениям: сервисы, маршрутизация и обнаружение сервисов ....................................................................................235 8.1. Сервисная абстракция ......................................................................................238 8.1.1. Пример сервиса: поиск в Google ...............................................................239 8.1.2. Пример сервиса: наш агрегатор блогов ....................................................240 8.2. Динамическая маршрутизация .......................................................................242 8.2.1. Балансировка нагрузки на стороне сервера .............................................242 8.2.2. Балансировка нагрузки на стороне клиента ............................................243 8.2.3. Свежесть маршрутов ..................................................................................244 8.3. Обнаружение служб ..........................................................................................247 7.7. Внесерверная обработка данных ......................................................................231 Резюме ......................................................................................................................234
Стр.9
Содержание  9 8.3.1. Обнаружение служб в сети ........................................................................250 8.3.2. Обнаружение сервисов с балансировкой нагрузки на стороне клиента .................................................................................................................251 8.3.3. Обнаружение сервисов в Kubernetes ........................................................253 8.3.4. Давайте посмотрим, как это работает: использование обнаружения сервисов ........................................................................................255 Резюме ......................................................................................................................258 Глава 9. Избыточность взаимодействия: повторная отправка запроса и другие циклы управления ..............................................................259 9.1. Повторная отправка запроса ............................................................................261 9.1.1. Основной шаблон .......................................................................................261 9.1.2. Давайте посмотрим, как это работает: простая повторная отправка запроса .................................................................................................262 9.1.3. Повторная отправка запроса: что может пойти не так? .........................266 9.1.4. Создание шквала повторных отправок запроса ......................................267 9.1.5. Давайте посмотрим, как это работает: создание шквала п овторных отправок запроса ................................................................................268 9.1.6. Как избежать шквала повторных отправок запросов: добрые клиенты ................................................................................................................278 9.1.7. Давайте посмотрим, как это работает: стать более доброжелательным клиентом ............................................................................279 9.1.8. Когда не нужно использовать повторную отправку запроса ..................284 9.2. Альтернативная логика ....................................................................................285 9.2.1. Давайте посмотрим, как это работает: реализация альтернативной логики .......................................................................................286 9.3. Циклы управления ............................................................................................291 9.3.1. Типы циклов управления ..........................................................................292 9.3.2. Контроль над циклом управления ............................................................293 Резюме ......................................................................................................................295 Глава 10. Лицом к лицу с сервисами: предохранители и API-шлюзы....296 10.1. Предохранители ..............................................................................................297 10.1.1. Предохранитель для программного обеспечения .................................298 10.1.2. Реализация предохранителя ...................................................................299 10.2. API-шлюзы .......................................................................................................312 10.2.1. API-шлюзы в программном обеспечении для облачной среды ...........314 10.2.2. Топология шлюза API ...............................................................................316 10.3. Сервисная сеть .................................................................................................318 10.3.1. Сайдкар .....................................................................................................318 10.3.2. Уровень управления .................................................................................320 Резюме ......................................................................................................................323 Глава 11. Поиск и устранение неполадок: найти иголку в стоге сена ....324 11.1. Ведение журналов приложений .....................................................................325 11.2. Метрики приложений .....................................................................................329
Стр.10
10  Содержание 11.2.1. Извлечение метрик ..................................................................................330 11.2.2. Размещение метрик .................................................................................333 11.3. Распределенная трассировка .........................................................................336 11.3.1. Вывод трассировщика ..............................................................................339 11.3.2. Компоновка трассировок с помощью Zipkin ..........................................342 11.3.3. Детали реализации ..................................................................................346 Резюме ......................................................................................................................347 Глава 12. Данные в облачной среде: разбиение монолитных данных ...........................................................................................349 12.1. Каждому микросервису нужен кеш ...............................................................352 12.2. Переход от протокола «запрос/ответ» к событийно-ориентированному подходу .....................................................................................................................355 12.3. Журнал событий ..............................................................................................357 12.3.1. Давайте посмотрим, как это работает: реализация событийно-ориентированных микросервисов .................................................359 12.3.2. Что нового в темах и очередях? ..............................................................372 12.3.3. Полезные данные события ......................................................................375 12.3.4. Идемпотентность .....................................................................................377 12.4. Порождение событий ......................................................................................378 12.4.1. Путешествие еще не окончено ................................................................378 12.4.2. Источник истины .....................................................................................380 12.4.3. Давайте посмотрим, как это работает: реализация порождения событий ................................................................................................................382 Предметный указатель .......................................................................................387 12.5. Это лишь поверхностное знакомство ............................................................385 Резюме ......................................................................................................................385
Стр.11

Облако ключевых слов *


* - вычисляется автоматически
.
.