Б Бёрнс - Распределенные системы. Паттерны проектирования

Тут можно читать онлайн Б Бёрнс - Распределенные системы. Паттерны проектирования - бесплатно полную версию книги (целиком) без сокращений. Жанр: Прочая околокомпьтерная литература, издательство Питер, год 2019. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Б Бёрнс - Распределенные системы. Паттерны проектирования краткое содержание

Распределенные системы. Паттерны проектирования - описание и краткое содержание, автор Б Бёрнс, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
Современный мир попросту немыслим без использования распределенных систем. Даже у простейшего мобильного приложения есть API, через который оно подключается к облачному хранилищу. Однако проектирование распределенных систем до сих пор остается искусством, а не точной наукой. Необходимость подвести под нее серьезный базис назрела давно, и, если вы хотите обрести уверенность в создании, поддержке и эксплуатации распределенных систем — начните с этой книги!

Распределенные системы. Паттерны проектирования - читать онлайн бесплатно полную версию (весь текст целиком)

Распределенные системы. Паттерны проектирования - читать книгу онлайн бесплатно, автор Б Бёрнс
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать
Распределенные системы Паттерны проектирования - изображение 16 Рис 22 HTTPSприцеп Динамическая конфигурация с помощью паттерна Sidecar - фото 17

Рис. 2.2. HTTPS-прицеп

Динамическая конфигурация с помощью паттерна Sidecar Простое проксирование трафика в уже существующее прило-жение не единственный случай применимости паттерна Sidecar. Глава 2. Паттерн Sidecar 37

Другой расхожий пример — синхронизация конфигурации. Многие приложения используют конфигурационные файлы для настройки параметров. Они могут быть простыми текстовыми файлами либо иметь более жесткую структуру, как у форматов XML, JSON или YAML. Многие приложения написаны с уче-том того, что такой файл в системе существует и что они смо-гут считать из него свою конфигурацию. Однако в изначально облачной среде полезнее использовать API для обновления конфигурации. Это позволяет динамически разворачивать кон-фигурацию посредством API, а не заходить вручную на каждый сервер и редактировать конфигурационные файлы импера-тивными командами. Желание задействовать такой API про-диктовано как легкостью использования, так и возможностью автоматизации, например отката, что делает конфигурацию и реконфигурацию сервера безопаснее и проще. По аналогии с примером про HTTPS новые приложения можно писать так, чтобы их конфигурация была динамической и ее можно было получать с помощью облачных API-запросов. Адаптация же существующего приложения и его обновление могут оказаться более сложной задачей. К счастью, паттерн Sidecar можно также использовать для расширения функцио-нальности приложения новыми возможностями, не изменяя при этом самого приложения. В реализации паттерна Sidecar, приведенной на рис. 2.3, также показано два контейнера — кон-тейнер, предоставляющий услуги приложения, и контейнер с менеджером конфигурации. Два контейнера объединены в под, в котором они совместно используют каталог. В этом совместно используемом каталоге и находится конфигураци-онный файл.

Унаследованное приложение при запуске предсказуемо загружа-ет конфигурацию из файла в файловой системе. Менеджер кон-фигурации при запуске считывает данные конфигурационного 38Часть I. Одноузловые паттерны проектирования

Рис 23 Пример использования паттерна Sidecar для динамическогоуправления - фото 18

Рис. 2.3. Пример использования паттерна Sidecar для динамическогоуправления конфигурацией

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

Механизм такого уведомления различается от приложения к приложению. Одни приложения следят за изменением кон-фигурационного файла, другие ожидают сигнала SIGHUP. Глава 2. Паттерн Sidecar 39

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

Модульные контейнеры приложений Простительно думать, что единственная причина существова-ния паттерна Sidecar — необходимость адаптации устаревших приложений без изменения их исходных текстов. И хотя это популярный вариант использования данного паттерна, суще-ствует множество других причин проектировать приложения с его помощью. Одно из основных преимуществ применения паттерна Sidecar — модульность и повторное использование контейнеров-прицепов. Для развертывания любого «боевого» приложения, от которого ожидается высокий уровень надежно-сти, требуется функционал, касающийся отладки и управления приложением, например считывание ресурсов, потребляемых приложениями внутри контейнера, по аналогии с утилитой командной строки top.

Одним из подходов к такой интроспекции может послужить тре-бование реализации в каждом приложении HTTP-интерфейса /topz , предоставляющего срез использования ресурсов. Чтобы упростить задачу, вы можете реализовать его в виде языкоза-

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

приведет к расхождениям между языками и отсутствию под-держки этой функциональности в новых языках. Функциональность topz можно развернуть в виде контейнера-прицепа, работающего в том же пространстве идентификаторов процессов, что и контейнер приложения. Topz-контейнер осу-ществляет интроспекцию всех запущенных процессов и предо-ставляет единообразный пользовательский интерфейс. Кроме того, можно задействовать оркестратор для автоматического развертывания такого контейнера вместе со всеми приложения-ми, чтобы для каждого приложения, работающего в вашей ин-фраструктуре, был доступен одинаковый набор инструментов. Любой технический выбор подразумевает некоторый компро-мисс между применением модульных контейнерных паттернов и внесением собственного кода в приложение. Библиотечно-ориентированный подход всегда будет несколько менее адап-тирован под особенности вашего приложения. Подобная реа-лизация может оказаться менее эффективной в плане размера или производительности; API могут потребовать некоторой адаптации для использования в вашей среде. Я бы сравнил такой компромисс с компромиссом между покупкой готовой одежды и заказом ее у модельера. Заказная одежда вам подой-дет лучше, но на ее производство понадобится больше времени и она будет стоить вам дороже. Как и с вещами, когда дело ка-сается программирования, многим из нас имеет смысл покупать решения общего назначения. Если ваше приложение требует максимальной производительности, то, конечно же, всегда мож-но прибегнуть к самодельному решению.

Практикум. Развертывание контейнера topz Чтобы увидеть контейнер-прицеп в действии, сначала необ-ходимо создать еще один контейнер, который послужит кон-Глава 2. Паттерн Sidecar 41

тейнером приложения. Возьмите существующее приложение и разверните его с помощью Docker:

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Б Бёрнс читать все книги автора по порядку

Б Бёрнс - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Распределенные системы. Паттерны проектирования отзывы


Отзывы читателей о книге Распределенные системы. Паттерны проектирования, автор: Б Бёрнс. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x