Базовая книга по построению микросервисной архитектуры с практическими примерами на Node.js. Также рассмотрена работа с оркестратором Kubernetes и контейнерами Docker в среде Docker Compose. Разобраны основные принципы и техники разработки распределенных систем, в частности показано, как написать и развернуть три микросервиса, управлять СУБД, настроить брокер сообщений Kafka, внедрить кэш Redis. Объяснены паттерны проектирования. Особое внимание уделено распределенным транзакциям и разворачиванию микросервисов на удаленном сервере. Показано, как обеспечить расширяемость и отказоустойчивость приложений, как успешно бороться с усложнением клиентских интерфейсов, поддерживая высокую скорость загрузки страниц и приложений и не забывая о том, чтобы сайт оставался красивым и удобным в использовании. Электронный архив на сайте издательства содержит дополнительные материалы к книге.
Для начинающих веб-разработчиков
Микросервисы на JavaScript: осваиваем аккуратную декомпозицию
Современная практика enterprise-разработки и возникающие вызовы связаны, прежде всего, с обеспечением отказоустойчивости и расширяемости приложений. Сложно рассчитывать на реализацию таких качеств без применения микросервисной архитектуры. В книге по порядку рассматривается создание целого приложения с нуля. На материале готового продукта показано, как написать и развернуть три микросервиса, управлять СУБД, настроить брокер сообщений Kafka, внедрить кэш Redis и объединить эти решения в среде Docker-Compose и оркестраторе Kubernetes. Все паттерны, актуальные при проектировании микросервисов для веб-архитектуры, разобраны на практических примерах.
Книга интересна в качестве вводной по микросервисам на Node.js и будет полезна как начинающим разработчикам, пользующимся стеком JavaScript, так и опытным архитекторам, занятым модернизацией архитектуры с применением микросервисов.
разрабатывать микросервисы на Node.js
выстраивать синхронное и асинхронное взаимодействие между микросервисами,
выполнять распределенные транзакции,
организовать взаимодействие между микросервисами,
использовать паттерны проектирования,
разворачивать микросервисы в облаке,
использовать и настраивать Docker, Docker-Compose,
настраивать Kubernetes в удаленной среде.
Основное внимание в ней уделяется именно практическим навыкам написания микросервисов. Она пригодится тем, кто достаточно глубоко владеет знаниями о JavaScript и TypeScript. Упор делается именно на конкретный стек технологий: Node.js, NestJS, PostgreSQL, Kafka, Redis, Docker, Docker-Compose, Kubernetes и некоторые другие. Желательно, чтобы у вас был опыт написания приложений на NestJS, т. к. глубоко в сами технологии мы погружаться не станем. Главный акцент сделан на микросервисах, проблемах, с которыми вы можете столкнуться при их разработке, и путях их решения.
Node.js — это в первую очередь платформа, позволяющая применять язык Java-Script для бэкенда. Веб-разработку в наши дни невозможно представить без Java-Script. Это основной язык и инструмент фронтенд-разработчика. С него начинается TypeScript и всевозможные фреймворки, ускоряющие разработку, — например, такие как ReactJS, Angular, Vue. Однако фронтенд не может жить без бэкенда, и долгое время в роли бэкенда для веб-разработки использовались в основном PHP и Java.
Node.js стоит, как говорится, на двух китах: библиотеке libuv и движке V8 от Google, применяемом в браузере.