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

Проектирование масштабируемых систем с помощью Erlang/OTP (5000,00 руб.)

0   0
Первый авторЧезарини
АвторыВиноски С.
ИздательствоМ.: ДМК Пресс
Страниц487
ID795231
АннотацияДанная книга демонстрирует использование языка Erlang и его платформы OTP для создания масштабируемых и устойчивых к сбоям систем. Описаны подходы к проектированию и реализации сложных архитектур, разработанных компанией Erlang Solutions. Рассмотрены вопросы надёжности, масштабируемости и высокой доступности вашего проекта в целом. Издание предназначено разработчикам и архитекторам, уже знакомым с языками Erlang и Elixir, и желающим научиться принципам разработки сложных систем, готовых к коммерческой эксплуатации.
ISBN978-5-97060-212-6
УДК004.438 Erlang/OTP
ББК32.973.4
Чезарини, Ф. Проектирование масштабируемых систем с помощью Erlang/OTP / С. Виноски; Ф. Чезарини .— Москва : ДМК Пресс, 2017 .— 487 с. — ISBN 978-5-97060-212-6 .— URL: https://rucont.ru/efd/795231 (дата обращения: 19.06.2024)

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

Проектирование_масштабируемых_систем_с_помощью_ErlangOTP.pdf
Стр.5
Стр.7
Стр.8
Стр.9
Стр.10
Стр.11
Стр.12
Проектирование_масштабируемых_систем_с_помощью_ErlangOTP.pdf
УДК 004.438 Erlang/OTP ББК 32.973.4 Ч35 Ч35 Проектирование масштабируемых систем с помощью Erlang/OTP / пер. с англ. Д. В. Литовченко. – М.: ДМК Пресс, 2017. – 486 с.: ил. Чезарини Ф., Виноски С. ISBN 978-5-97060-212-6 Данная книга демонстрирует использование языка Erlang и его платформы OTP для создания масштабируемых и устойчивых к сбоям систем. Описаны подходы к проектированию и реализации сложных архитектур, разработанных компанией Erlang Solutions. Рассмотрены вопросы надёжности, масштабируемости и высокой доступности вашего проекта в целом. Издание предназначено разработчикам и архитекторам, уже знакомым с языками Erlang и Elixir, и желающим научиться принципам разработки сложных систем, готовых к коммерческой эксплуатации. УДК 004.438 Erlang/OTP ББК 32.973.4 Authorized Russian translation of the English edition of Designing for Scalability with Erlang/ OTP, ISBN 9781449320737 © 2016 Francesco Cesarini, Stephen Vinoski This translation is published and sold by permission of O’Reilly Media, Inc., which owns or controls all rights to publish and sell the same. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. ISBN 978-1-449-32073-7 (анг.) ISBN 978-5-97060-212-6 (рус.) © 2016 Francesco Cesarini and Stephen Vinoski © Оформление, издание, перевод, ДМК Пресс, 2017
Стр.5
Содержание Введение ..................................................................................................... 12 Об авторах этой книги ............................................................................. 13 Колофон ....................................................................................................... 14 Предисловие .............................................................................................. 15 Глава 1. Знакомство ................................................................................. 21 Определение проблемы ..................................................................................................................... 22 OTP ........................................................................................................................................................... 25 Erlang ................................................................................................................................................... 27 Инструменты и библиотеки ........................................................................................................ 28 Принципы проектирования систем .......................................................................................... 31 Erlang-узлы ....................................................................................................................................... 32 Распределение, инфраструктура и многоядерные процессоры ........................................... 33 Подводим итоги .................................................................................................................................... 35 Что вы узнаете из этой книги .......................................................................................................... 35 Глава 2. Представляем Erlang ............................................................... 42 Рекурсия и сравнение с образцом .................................................................................................. 42 Функциональное влияние ................................................................................................................ 46 Веселье с анонимными функциями ......................................................................................... 46 Генераторы списков: генерация и проверка ........................................................................... 48 Процессы и обмен сообщениями .................................................................................................... 50 Падаем безопасно! ............................................................................................................................... 55 Связи и мониторы для наблюдения за процессами ................................................................. 56 Связи ................................................................................................................................................... 57 Мониторы .......................................................................................................................................... 59 Записи ...................................................................................................................................................... 60 Карты ........................................................................................................................................................ 63 Макросы .................................................................................................................................................. 64 Обновление кода модулей ................................................................................................................ 65 ETS: хранилище термов Erlang ....................................................................................................... 67 Распределённый режим Erlang ....................................................................................................... 70 Именование и коммуникация .................................................................................................... 70 Соединения между узлами и видимость ................................................................................ 71 Подводим итоги .................................................................................................................................... 73 Что дальше? ........................................................................................................................................... 73
Стр.7
Содержание  7 Глава 3. Поведения ................................................................................... 74 Cкелеты процессов .............................................................................................................................. 74 Шаблоны проектирования ............................................................................................................... 77 Модули обратного вызова ........................................................................................................... 78 Извлечение обобщённых поведений ............................................................................................. 81 Запускаем сервер ............................................................................................................................ 83 Клиентские функции ..................................................................................................................... 85 Серверный цикл .............................................................................................................................. 87 Внутренние функции сервера .................................................................................................... 89 Обобщённый сервер ............................................................................................................................ 90 Передача сообщений: под капотом ................................................................................................ 93 Подводим итоги .................................................................................................................................... 97 Что дальше? ........................................................................................................................................... 98 Глава 4. Обобщённые серверы ............................................................. 99 Обобщённые серверы ......................................................................................................................... 99 Директивы поведения ......................................................................................................................100 Запускаем сервер ...............................................................................................................................101 Передача сообщений .........................................................................................................................104 Синхронная передача сообщений ...........................................................................................104 Асинхронная передача сообщений .........................................................................................106 Прочие сообщения .......................................................................................................................107 Необработанные сообщения .....................................................................................................109 Синхронизация клиентов .......................................................................................................... 110 Завершение работы ........................................................................................................................... 111 Тайм-ауты вызовов ............................................................................................................................ 113 Взаимные блокировки ................................................................................................................ 116 Тайм-ауты обобщённых серверов ................................................................................................. 118 Спящие поведения ....................................................................................................................... 119 Становимся глобальными ...............................................................................................................120 Связывание поведений ....................................................................................................................121 Подводим итоги ..................................................................................................................................122 Что дальше? .........................................................................................................................................123 Глава 5. Управление поведениями ОТР ........................................... 124 Модуль sys ............................................................................................................................................124 Трассировка и журналирование ..............................................................................................124 Системные сообщения ................................................................................................................126 Свои функции трассировки ......................................................................................................126 Статистика, статус и состояние ...............................................................................................128 Ещё раз о модуле sys ....................................................................................................................130 Параметры порождения ...................................................................................................................132 Управление памятью и сборка мусора ..................................................................................132
Стр.8
8  Содержание Избегайте таких параметров .....................................................................................................137 Тайм-ауты ........................................................................................................................................137 Подводим итоги ..................................................................................................................................137 Что дальше? .........................................................................................................................................138 Глава 6. Конечные автоматы ............................................................... 139 Конечные автоматы в стиле Erlang ..............................................................................................140 Конечный кофейный автомат ........................................................................................................141 Библиотека аппаратного взаимодействия ...........................................................................143 Кофейный автомат на Erlang .........................................................................................................144 Обобщённые конечные автоматы ................................................................................................147 Пример поведения .............................................................................................................................148 Запуск конечного автомата .......................................................................................................149 Отправка событий ........................................................................................................................153 Завершение работы ......................................................................................................................162 Подводим итоги ..................................................................................................................................163 Не бойтесь испачкать руки .............................................................................................................164 Контроллеры телефонов ............................................................................................................164 Давайте его проверим ..................................................................................................................166 Что дальше? .........................................................................................................................................168 Глава 7. Обработчики событий ........................................................... 169 События .................................................................................................................................................169 Обобщённые диспетчеры и обработчики событий ................................................................171 Запуск и остановка диспетчеров событий ...........................................................................171 Добавление обработчиков событий .......................................................................................172 Удаление обработчика событий ...............................................................................................174 Отправка синхронных и асинхронных событий ................................................................175 Извлечение данных ......................................................................................................................178 Обработка ошибок и неверных результатов........................................................................180 Подмена обработчиков событий .............................................................................................183 Подводя итоги ................................................................................................................................184 Обработчик тревожных сигналов SASL ....................................................................................187 Подводим итоги ..................................................................................................................................189 Что дальше? .........................................................................................................................................190 Глава 8. Наблюдатели ........................................................................... 191 Деревья наблюдения .........................................................................................................................192 Наблюдатели в OTP ..........................................................................................................................196 Поведение наблюдателя .............................................................................................................197 Запуск наблюдателя ....................................................................................................................198 Спецификация наблюдателя ....................................................................................................201 Спецификация перезапуска ......................................................................................................202
Стр.9
Содержание  9 Спецификация дочернего процесса .......................................................................................206 Динамические дочерние процессы .........................................................................................210 Не совместимые с ОТР процессы ...........................................................................................218 Масштабируемость и короткоживущие процессы ............................................................220 Синхронный запуск для детерминизма ................................................................................222 Проверка вашей стратегии наблюдения ...............................................................................223 Как сравнить подходы? ....................................................................................................................225 Подводим итоги ..................................................................................................................................226 Что дальше? .........................................................................................................................................226 Глава 9. Приложения .............................................................................. 227 Как выполняются приложения .....................................................................................................228 Структура приложения ....................................................................................................................230 Модуль обратного вызова ...............................................................................................................234 Запуск и остановка приложений .............................................................................................234 Файлы ресурсов приложения ........................................................................................................238 Файл приложения контроллера базовой станции ............................................................240 Запуск приложения ...........................................................................................................................241 Переменные окружения...................................................................................................................244 Типы приложений и стратегии остановки ................................................................................246 Распределённые приложения ........................................................................................................247 Фазы запуска .......................................................................................................................................252 Вложенные приложения .................................................................................................................254 Этапы запуска во вложенных приложениях .......................................................................255 Комбинируем наблюдателей и приложения ............................................................................256 Приложение SASL .............................................................................................................................257 Отчёты SASL о ходе работы ......................................................................................................262 Отчеты SASL об ошибках ..........................................................................................................262 Отчеты SASL о сбоях...................................................................................................................263 Отчеты наблюдателей .................................................................................................................264 Подводим итоги ..................................................................................................................................265 Что дальше? .........................................................................................................................................266 Глава 10. Особые процессы и ваши собственные поведения .................................................................................................. 267 Особые процессы ...............................................................................................................................268 Мьютекс ...........................................................................................................................................268 Запуск особых процессов ...........................................................................................................270 Состояния мьютекса ....................................................................................................................273 Обработка завершений работы ................................................................................................274 Системные сообщения ................................................................................................................275 События трассировки и журналов..........................................................................................277 Собираем всё вместе ....................................................................................................................278
Стр.10
10  Содержание Динамические модули и приостановка .................................................................................282 Ваши собственные поведения .......................................................................................................282 Правила создания поведений ...................................................................................................283 Пример обработки потоков TCP .............................................................................................283 Подводим итоги ..................................................................................................................................287 Что дальше? .........................................................................................................................................288 Глава 11. Системные принципы и работа с релизами ................ 289 Системные принципы ......................................................................................................................290 Структура каталогов в релизе ..................................................................................................292 Файлы ресурсов релиза ..............................................................................................................295 Создание релиза ............................................................................................................................299 Создание загрузочного .boot-файла .......................................................................................300 Создание пакета с релизом ........................................................................................................309 Скрипты запуска и конфигурация на целевой системе ..................................................313 Аргументы и флаги ......................................................................................................................316 Модуль инициализации init......................................................................................................328 Утилита Rebar3 ...................................................................................................................................329 Создание проекта релиза для Rebar3 .....................................................................................331 Создание релиза с rebar3 ............................................................................................................334 Релизы Rebar3 с зависимостями проектов ..........................................................................337 Подводим итоги ..................................................................................................................................339 Что дальше? .........................................................................................................................................343 Глава 12. Обновление кода в релизах .............................................. 344 Обновления программного обеспечения ...................................................................................345 Первая версия кофейного конечного автомата ..................................................................347 Добавляем новое состояние ......................................................................................................350 Создаём обновление для релиза ...................................................................................................354 Код, который нужно обновить .................................................................................................358 Файлы обновления приложения .............................................................................................362 Инструкции высокого уровня ..................................................................................................365 Файлы обновления релиза ........................................................................................................368 Инструкции низкого уровня .....................................................................................................370 Установка обновления.................................................................................................................372 Обработчик релизов ....................................................................................................................374 Обновление значений переменных окружения .................................................................378 Обновление особых процессов ......................................................................................................379 Обновление в распределённых средах .......................................................................................380 Обновление эмулятора и стандартных приложений ............................................................381 Обновление с помощью Rebar3 ....................................................................................................382 Подводим итоги ..................................................................................................................................385 Что дальше? .........................................................................................................................................388
Стр.11
Содержание  11 Глава 13. Распределённые архитектуры ......................................... 389 Типы и семейства узлов кластера .................................................................................................390 Работа с сетью .....................................................................................................................................394 Распределённый режим Erlang ................................................................................................397 Сокеты и SSL ..................................................................................................................................405 Ориентация на службы и микросервисы .............................................................................407 Сеть точка-точка (peer-to-peer) ...............................................................................................409 Интерфейсы .........................................................................................................................................409 Подводим итоги ..................................................................................................................................413 Что дальше? .........................................................................................................................................414 Глава 14. Системы, которые не останавливаются ....................... 415 Доступность .........................................................................................................................................415 Устойчивость к сбоям ..................................................................................................................416 Живучесть .......................................................................................................................................418 Надёжность .....................................................................................................................................419 Общие данные ................................................................................................................................424 Компромиссы между согласованностью и доступностью ..............................................434 Подводим итоги ..................................................................................................................................435 Что дальше? .........................................................................................................................................436 Глава 15. Растём в ширину ................................................................... 437 Горизонтальное и вертикальное масштабирование ...............................................................437 Планирование ёмкости системы...................................................................................................441 Тестирование ёмкости .................................................................................................................444 Балансирование вашей системы .............................................................................................447 Поиск узких мест ..........................................................................................................................449 Чертежи вашей системы .............................................................................................................451 Регулирование нагрузки и обратное давление ........................................................................452 Подводим итоги ..................................................................................................................................456 Что дальше? .........................................................................................................................................458 Глава 16. Мониторинг и упреждающая поддержка ..................... 459 Мониторинг .........................................................................................................................................460 Журналы ..........................................................................................................................................462 Метрики ...........................................................................................................................................468 Тревожные сигналы .....................................................................................................................471 Упреждающая поддержка ...............................................................................................................474 Подводим итоги ..................................................................................................................................477 Что дальше? .........................................................................................................................................478 Предметный указатель ......................................................................... 479
Стр.12

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


* - вычисляется автоматически
Периодика по подписке
Антиплагиат система Руконтекст