Бессерверные приложения на JavaScript
Покупка
Тематика:
Программирование на Java
Издательство:
ДМК Пресс
Перевод:
Киселев Артём Николаевич
Год издания: 2020
Кол-во страниц: 394
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
ВО - Магистратура
ISBN: 978-5-97060-782-4
Артикул: 739794.01.99
Доступ онлайн
В корзину
Преимущества облачных бессерверных веб-приложений бесспорны: меньшая сложность, быстрое продвижение на рынок и автоматическая масштабируемость выгодно отличают их от традиционных серверных проектов. Данная книга научит вас проектировать и создавать бессерверные веб-приложения на AWS с использованием JavaScript, Node и Claudia.js. Новичков издание знакомит не только с AWS Lambda, но и с целым рядом связанных служб, таких как DynamoDB, Cognito, API Gateway. Даже решив позднее взять на вооружение другие инструменты, вы сможете сохранить весь код и просто развернуть его немного иначе. Подробно описывается несколько вариантов практического использования бессерверных платформ, в том числе веб-API, чат-боты, обработка платежей и управление заказами.
Издание предназначено веб-разработчикам, знакомым с JavaScript и Node.js.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Магистратура
- 09.04.01: Информатика и вычислительная техника
- 09.04.02: Информационные системы и технологии
- 09.04.03: Прикладная информатика
- 09.04.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов.
Для полноценной работы с документом, пожалуйста, перейдите в
ридер.
Слободан Стоянович Александар Симович Бессерверные приложения на JavaScript
M A N N I N G SHELTER ISLAND Serverless Applications with Node.js Slobodan Stojanović Aleksandar Simović
Москва, 2020 Бессерверные приложения на JavaScript Слободан Стоянович Александар Симович Перевод с английского Киселева А. Н.
УДК 004.42 ББК 32.972 С81 С81 Слободан Стоянович, Александар Симович Бессерверные приложения на JavaScript / пер. с англ. А. Н. Киселева. – М.: ДМК Пресс, 2020. – 394 с.: ил. ISBN 978-5-97060-782-4 Преимущества облачных бессерверных веб-приложений бесспорны: меньшая сложность, быстрое продвижение на рынок и автоматическая масштабируемость выгодно отличают их от традиционных серверных проек тов. Данная книга научит вас проектировать и создавать бессерверные веб-приложения на AWS с использованием JavaScript, Node и Claudia.js. Новичков издание знакомит не только с AWS Lambda, но и с целым рядом связанных служб, таких как DynamoDB, Cognito, API Gateway. Даже решив позднее взять на вооружение другие инструменты, вы сможете сохранить весь код и просто развернуть его немного иначе. Подробно описывается несколько вариантов практического использования бессерверных платформ, в том числе веб-API, чат-боты, обработка платежей и управление заказами. Издание предназначено веб-разработчикам, знакомым с JavaScript и Node.js. УДК 004.42 ББК 32.972 Original English language edition published by Manning Publications. Copyright © 2019 by Manning Publications. Russian language edition copyright © 2019 by DMK Press. All rights reserved. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материа,л, изложенный в данной книге, многократно проверен. Но, поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. ISBN 978-1-61729-472-3 (англ.) Copyright © 2019 by Manning Publications Co. ISBN 978-5-97060-782-4 (рус.) © Оформление, перевод на русский язык, издание, ДМК Пресс, 2020
Оглавление Предисловие от издательства .......................................................................12 Предисловие .....................................................................................................13 Вступление ........................................................................................................15 Благодарности ..................................................................................................16 Об этой книге ....................................................................................................17 Кому адресована книга ...................................................................................17 Краткое содержание .......................................................................................17 Об исходном коде ...........................................................................................19 Автор в сети.....................................................................................................20 Другие онлайн-ресурсы .................................................................................20 Об авторах ........................................................................................................21 Об иллюстрации на обложке .........................................................................22 ЧАСТЬ I. Бессерверная пиццерия ................................................................23 Глава 1. Введение в бессерверные вычисления с Claudia ........................24 1.1. Серверы и стиральные машины..............................................................25 1.2. Основные понятия ...................................................................................26 1.3. Как работают бессерверные вычисления? .............................................28 1.4. Бессерверные вычисления на практике .................................................28 1.4.1. Бессерверная пиццерия тетушки Марии .................................................. 29 1.4.2. Распространенный подход ........................................................................ 29 1.4.3. Бессерверное решение ............................................................................... 31 1.5. Бессерверная инфраструктура – AWS .....................................................32 1.6. Что такое и для чего используется Claudia? ...........................................38 1.7. Когда и где использовать бессерверные вычисления ............................41 В заключение ..................................................................................................42 Глава 2. Создание первого бессерверного API ............................................43 2.1. Приготовление пиццы из ингредиентов: сборка API ............................43 2.1.1. Какие пиццы можно заказать? .................................................................. 46
Оглавление 2.1.2. Структурирование API ............................................................................... 49 2.1.3. Отправка заказа .......................................................................................... 55 2.2. Как Claudia развертывает API ..................................................................59 2.3. Управление трафиком: как работает API Gateway .................................61 2.4. Когда бессерверный API не является решением ....................................62 2.5. Опробование! ...........................................................................................63 2.5.1. Упражнение ................................................................................................ 63 2.5.2. Решение....................................................................................................... 64 В заключение ..................................................................................................68 Глава 3. Простота асинхронных операций с Promise() ..............................69 3.1. Хранение заказов .....................................................................................69 3.2. Обещание доставить меньше чем за 30 минут! .....................................75 3.3. Опробование API ......................................................................................79 3.4. Извлечение заказов из базы данных ......................................................83 3.5. Опробование! ...........................................................................................85 3.5.1. Упражнение ................................................................................................ 86 3.5.2. Решение....................................................................................................... 87 В заключение ..................................................................................................90 Глава 4. Доставка пиццы: подключение к внешней службе ....................91 4.1. Подключение к внешней службе .............................................................91 4.2. Подключение к API компании доставки ................................................93 4.2.1. API компании доставки Some Like It Hot .................................................. 93 4.2.2. Создание первой заявки на доставку........................................................ 94 4.3. Типичные проблемы асинхронных взаимодействий.......................... 101 4.3.1. Забыли вернуть Promise ........................................................................... 102 4.3.2. Отсутствие значения, возвращаемого из Promise ................................. 102 4.3.3. Вызов внешней службы не завернут в Promise ...................................... 104 4.3.4. Превышение времени ожидания длительной асинхронной операцией .................................................................................................. 105 4.4. Опробование! .........................................................................................107 4.4.1. Упражнение .............................................................................................. 107 4.4.2. Решение..................................................................................................... 108 В заключение ................................................................................................110 Глава 5. Хьюстон, у нас проблема! ..............................................................111 5.1. Отладка бессерверного приложения .................................................... 111 5.2. Отладка функции Lambda ......................................................................113 5.3. Рентген для приложения .......................................................................116 5.4. Опробование! .........................................................................................120
Оглавление 7 5.4.1. Упражнение .............................................................................................. 120 5.4.2. Решение..................................................................................................... 120 В заключение ................................................................................................121 Глава 6. Совершенствование API .................................................................122 6.1. Бессерверная аутентификация и авторизация .................................... 122 6.2. Создание пулов пользователей и идентификации .............................. 126 6.2.1. Управление доступом к API с помощью Cognito .................................... 130 6.3. Опробование! .........................................................................................134 6.3.1. Упражнение .............................................................................................. 135 6.3.2. Решение..................................................................................................... 136 В заключение ................................................................................................137 Глава 7. Работа с файлами ............................................................................138 7.1. Хранение статических файлов в бессерверных приложениях ............ 138 7.2. Создание миниатюр ...............................................................................143 7.2.1. Развертывание функции обработки файлов в S3 ................................... 150 7.3. Опробование! ..........................................................................................151 7.3.1. Упражнение ............................................................................................... 152 7.3.2. Решение ..................................................................................................... 152 7.4. Конец первой части: специальное упражнение ................................... 155 7.4.1. Усложненное задание ............................................................................... 155 В заключение ................................................................................................155 ЧАСТЬ II. Поболтаем .....................................................................................157 Глава 8. Заказ пиццы одним сообщением: чат-боты ...............................158 8.1. Заказ пиццы без браузера .....................................................................158 8.2. Привет из Facebook Messenger ..............................................................160 8.3. Какие виды пиццы у нас имеются?....................................................... 162 8.4. Ускорение развертывания .....................................................................164 8.5. Шаблоны для взаимодействий ..............................................................167 8.6. Как работает Claudia Bot Builder? ..........................................................170 8.7. Опробование! ..........................................................................................172 8.7.1. Упражнение ............................................................................................... 172 8.7.2. Решение ..................................................................................................... 172 В заключение ................................................................................................173 Глава 9. Ввод... асинхронные и отложенные ответы ...............................174 9.1. Добавление интерактивности в чат-бот ............................................... 174 9.1.1. Выбор заказа: получение ответа от пользователя ................................. 175
Оглавление 9.2. Улучшение масштабируемости чат-бота .............................................. 182 9.3. Подключение чат-бота к базе данных DynamoDB ............................... 186 9.4. Получение адреса доставки заказа в чат-боте .....................................................................................191 9.5. Планирование доставки ........................................................................194 9.6. Добавление простой обработки естественного языка ........................ 200 9.7. Опробование! ..........................................................................................202 9.7.1. Упражнение ............................................................................................... 202 9.7.2. Решение ..................................................................................................... 203 9.7.3. Усложненное задание ............................................................................... 205 В заключение ................................................................................................205 Глава 10. Джарвис, то есть Алекса, закажи мне пиццу ............................206 10.1. Не могу сейчас говорить: отправка SMS с помощью службы Twilio ........................................................................................................207 10.1.1. Список пицц в SMS ................................................................................. 209 10.1.2. Оформление заказа ................................................................................ 211 10.2. Эй, Алекса! ............................................................................................217 10.2.1. Подготовка сценария ............................................................................. 221 10.2.2. Оформление заказа с помощью Алексы ............................................... 226 10.3. Опробование! .......................................................................................230 10.3.1. Упражнение ............................................................................................. 230 10.3.2. Решение ................................................................................................... 231 10.4. Конец второй части: специальное упражнение ................................. 232 В заключение ................................................................................................232 ЧАСТЬ III. Дальнейшие шаги .......................................................................233 Глава 11. Тестирование, тестирование и еще раз тестирование............234 11.1. Тестирование обычных и бессерверных приложений ...................... 234 11.2. Подходы к тестированию бессерверных приложений ...................... 236 11.3. Подготовка ............................................................................................238 11.4. Модульные тесты ..................................................................................241 11.5. Использование имитаций для тестирования бессерверных функций ...................................................................................................246 11.6. Интеграционные тесты ........................................................................253 11.7. Другие типы автоматизированных тестов ......................................... 258 11.8. В дополнение к тестам: приемы разработки бессерверных функций для упрощения их тестирования ........................................... 259 11.9. Опробование! .......................................................................................264
Оглавление 9 11.9.1. Упражнение ............................................................................................. 264 11.9.2. Решение ................................................................................................... 265 В заключение ................................................................................................266 Глава 12. Получение платы за пиццу ..........................................................268 12.1. Платежные транзакции .......................................................................268 12.1.1. Реализация онлайн-платежей ............................................................... 270 12.2. Реализация платежной службы ...........................................................274 12.3. Можно ли взломать нашу платежную службу? .................................. 281 12.3.1. Стандарты ............................................................................................... 281 12.3.2. Компетентность ...................................................................................... 282 12.4. Опробование! .......................................................................................283 12.4.1. Упражнение ............................................................................................. 283 12.4.2. Решение ................................................................................................... 283 В заключение ................................................................................................285 Глава 13. Миграция существующих приложений Express.js в окружение AWS Lambda ............................................................................286 13.1. Приложение для таксомоторной компании дядюшки Роберто ........ 287 13.2. Запуск приложения Express.js в AWS Lambda ..................................... 287 13.2.1. Интеграция с оберткой .......................................................................... 291 13.2.2. Как работает serverless-express .............................................................. 291 13.3. Обслуживание статического контента ............................................... 292 13.4. Подключение к MongoDB .....................................................................295 13.4.1. Использование управляемой базы данных MongoDB с бессерверным приложением Express.js ................................................. 295 13.5. Ограничения бессерверных приложений Express.js .......................... 300 13.6. Опробование! .......................................................................................301 13.6.1 Exercise ..................................................................................................... 301 13.6.2. Решение ................................................................................................... 302 В заключение ................................................................................................303 Глава 14. Миграция в бессерверное окружение.......................................304 14.1. Анализ текущего бессерверного приложения .................................... 304 14.2. Миграция существующего приложения в бессерверное окружение .....305 14.3. Общий взгляд на платформу ...............................................................309 14.3.1. Обслуживание статических файлов ...................................................... 310 14.3.2. Сохранение состояния ........................................................................... 310 14.3.3. Журналы .................................................................................................. 311 14.3.4. Непрерывная интеграция ...................................................................... 313 14.3.5. Управление окружениями: промышленное окружение и окружение для разработки .................................................................... 314
Оглавление 14.3.6. Совместное использование конфиденциальных данных ................... 315 14.3.7. Виртуальное частное облако .................................................................. 318 14.4. Оптимизация приложения ..................................................................318 14.4.1. Связанные и узкоспециализированные функции ............................... 319 14.4.2. Выбор правильного объема памяти для функции Lambda .................. 319 14.5. Преодоление проблем ..........................................................................320 14.5.1. Тайм-ауты ............................................................................................... 320 14.5.2. Холодный запуск .................................................................................... 321 14.5.3. Атаки DDoS .............................................................................................. 323 14.5.4. Привязка к производителю ................................................................... 323 14.6. Опробование! .......................................................................................325 В заключение ................................................................................................325 Глава 15. Примеры из практики ..................................................................327 15.1. CodePen .................................................................................................328 15.1.1. До перехода на бессерверные вычисления ........................................... 328 15.1.2. Миграция на бессерверные вычисления .............................................. 329 15.1.3. Затраты на инфраструктуру................................................................... 332 15.1.4. Тестирование и проблемы ..................................................................... 333 15.2. MindMup ................................................................................................333 15.2.1. До перехода на бессерверные вычисления ........................................... 334 15.2.2. Миграция на бессерверные вычисления .............................................. 337 15.2.3. Затраты на инфраструктуру................................................................... 338 15.2.4. Тестирование, журналирование и проблемы ....................................... 340 В заключение ................................................................................................341 Приложение A. Установка и настройка .......................................................343 A.1. Установка Claudia ...................................................................................343 A.1.1. Настройка зависимостей Claudia ............................................................ 344 A.1.2. Создание профиля AWS и получение ключей ........................................ 345 A.1.3. Установка Claudia API Builder .................................................................. 348 A.1.4. Установка Claudia Bot Builder .................................................................. 348 A.2. Установка AWS CLI .................................................................................348 Приложение B. Настройка Facebook Messenger, Twilio и Alexa..............350 B.1. Настройка Facebook Messenger .............................................................350 B.1.1. Создание страницы Facebook .................................................................. 350 B.1.2. Создание приложения Facebook ............................................................. 352 B.1.3. Создание чат-бота Facebook Messenger с использованием Claudia Bot Builder ..................................................................................... 354 B.1.4. Подключение встроенного механизма NLP ........................................... 361 B.2. Настройка Twilio ....................................................................................361 B.2.1. Создание учетной записи Twilio ............................................................. 362
Оглавление 11 B.2.2. Получение номера Twilio ......................................................................... 363 B.2.3. Настройка службы Twilio Programmable SMS ......................................... 364 B.3. Настройка Alexa .....................................................................................366 Приложение C. Настройка Stripe и MongoDB ............................................373 C.1. Настройка учетной записи Stripe и получение ключей Stripe API ..... 373 C.1.1. Создание учетной записи Stripe ............................................................. 373 C.1.2. Получение ключей Stripe API .................................................................. 373 C.2. Установка и настройка MongoDB .......................................................... 375 C.2.1. Создание учетной записи ........................................................................ 375 C.2.2. Настройка кластера .................................................................................. 377 Приложение D. Рецепт пиццы ......................................................................383 Предметный указатель .................................................................................385
Предисловие от издательства Отзывы и пожелания Мы всегда рады отзывам наших читателей. Расскажите нам, что вы думаете об этой книге – что понравилось или, может быть, не понравилось. Отзывы важны для нас, чтобы выпускать книги, которые будут для вас максимально полезны. Вы можете написать отзыв прямо на нашем сайте www.dmkpress.com, зайдя на страницу книги, и оставить комментарий в разделе «Отзывы и рецензии». Также можно послать письмо главному редактору по адресу dmkpress@gmail. com, при этом напишите название книги в теме письма. Если есть тема, в которой вы квалифицированы, и вы заинтересованы в написании новой книги, заполните форму на нашем сайте по адресу http://dmkpress.com/authors/publish_book/ или напишите в издательство по ад ресу dmkpress@gmail.com. Список опечаток Хотя мы приняли все возможные меры для того, чтобы удостовериться в качестве наших текстов, ошибки все равно случаются. Если вы найдете ошибку в одной из наших книг – возможно, ошибку в тексте или в коде, – мы будем очень благодарны, если вы сообщите нам о ней. Сделав это, вы избавите других читателей от расстройств и поможете нам улучшить последующие версии этой книги. Если вы найдете какие-либо ошибки в коде, пожалуйста, сообщите о них главному редактору по адресу dmkpress@gmail.com, и мы исправим это в следующих тиражах. Нарушение авторских прав Пиратство в интернете по-прежнему остается насущной проблемой. Издательства «ДМК Пресс» и Manning очень серьезно относятся к вопросам защиты авторских прав и лицензирования. Если вы столкнетесь в интернете с незаконно выполненной копией любой нашей книги, пожалуйста, сообщите нам адрес копии или веб-сайта, чтобы мы могли применить санкции. Пожалуйста, свяжитесь с нами по адресу электронной почты dmkpress@gmail. com со ссылкой на подозрительные материалы. Мы высоко ценим любую помощь по защите наших авторов, помогающую предоставлять вам качественные материалы.
Предисловие Amazon навсегда изменила IT-инфраструктуру, упростив подготовку виртуальных машин в 2007 году. После этого совершенствование архитектуры современных приложений носило постепенный характер. Спустя десятилетие, упростив возможность предоставления отдельных функций, платформа Amazon Lambda дала толчок новой волне глубинных перемен. Эта «бессерверная» экосистема кардинально меняет способы проектирования, разработки и эксплуатации интернет-приложений. Как один из первых, кто начал использовать эту платформу на практике, я имел честь работать со Слободаном и Александаром и воочию убедиться, насколько сильно влияет «бессерверное» мышление на время выхода на рынок и стоимость эксплуатации. В то же время платформа развивается настолько быстро, что в ней легко запутаться. Чтобы получить настоящие преимущества нового способа работы, разработчики должны пересмотреть стратегии аутентификации, управления сеансами, хранения данных, планирования мощностей и распределения вычислений. В своей книге «Бессерверные приложения на JavaScript» Слободан и Александар предлагают первый отчет об этой революции и бесценное руководство для разработчиков на JavaScript, желающих воспользоваться преимуществами платформ нового поколения. В этой книге мне понравилось, как она помогает быстро организовать выполнение простых операций в AWS Lambda, не влияя на организацию и работу проектов. Многие бессерверные фреймворки приложений абстрагируют службы AWS, что увеличивает риск замкнуться на одном фреймворке, так как экосистема продолжает быстро развиваться. Авторы не заставляют нас принять их выбор фреймворков, но объясняют, как легко использовать все связанные службы. Новичков в AWS эта книга знакомит не только с AWS Lambda, но и с целым рядом связанных служб, таких как DynamoDB (хранилище данных), Cognito (аутентификация), API Gateway (доступ к работающим веб-службам) и Cloudwatch (обработка и планирование событий). Даже решив позднее взять на вооружение другие инструменты, вы сможете сохранить весь код и просто развернуть его немного иначе. Еще одна веская причина прочитать эту книгу – в ней описывается несколько вариантов практического использования бессерверных платформ, включая веб-API, чат-боты, обработку платежей и управление заказами. Постепенно создавая онлайн-магазин для вымышленной пиццерии, авторы представляют практически готовые компоненты, необходимые для запуска современных бизнес-сценариев в облаке. Этот способ постепенного формирования знаний позволяет авторам по мере обсуждения исследовать все более сложные вопросы разработки, такие как организация автоматического тестирования и разработка приложений с прицелом на простоту сопровождения. Последняя часть книги посвящена стратегиям миграции и отвечает на некоторые наиболее распространенные вопросы от людей, у которых уже есть приложения
Предисловие на какой-либо другой облачной платформе и которые хотят быстро получить конкурентные преимущества, сократить время выхода на рынок или уменьшить стоимость эксплуатации. Я надеюсь, что вы получите от этой книги столько же удовольствия, сколько и я, и обнаружите эффективные способы предоставления услуг с помощью программного обеспечения в облаке. Гойко Аджич (Gojko Adzic), партнер в Neuri Consulting LLP
Вступление Мы оба были разработчиками более 10 лет, оба начинали с наших первых компью теров в 90-х годах, когда писали первые функции на Pascal и BASIC и даже участвовали в соревнованиях по программированию. Но все изменилось, когда появился интернет. Мы сразу начали создавать свои веб-приложения и веб-страницы со статическими HTML и CSS. Когда JavaScript и jQuery превратились в новый стандарт, мы почти сразу переключились на них (правда, один из нас продолжил экспериментировать с Flash и ActionScript). С появлением Node.js мы естественно переключились на этот фреймворк с языков, на которых писали в ту пору, таких как Python и C#. Хотя иногда мы можем написать несколько функций на этих языках, наш переход на Node.js состоялся бесповоротно. Примерно три года назад мы обратили наше внимание на бессерверные архитектуры. Гойко Аджич познакомил нас с AWS Lambda на примере своей разработки Claudia.js – инструмента развертывания. Мы были поражены, насколько просто и быстро разрабатывать и развертывать бессерверные приложения и насколько легко их масштабировать, и мы вместе с ним начали работать над созданием Claudia Bot Builder. Изучение бессерверной архитектуры постепенно изменило наш взгляд на создание и поддержку веб-приложений. Внутренние службы сменили бессерверные функции, и, вместо того чтобы писать сценарии на bash, входить на наши серверы и распределять вычислительные мощности, мы перестали заботиться об этих проблемах и сосредоточились больше на бизнес-логике и ценности приложений. Мы опубликовали наши первые бессерверные веб-приложения и разработали сотни чат-ботов. Наша продуктивность увеличилась почти в пять раз. Это было невероятно. Месяцы, потраченные на изучение настройки и обслуживания серверов приложений с помощью bash, ssh, rsync и т. д., потеряли свою важность. Все изменилось. С нашей точки зрения бессерверная экосистема прошла долгий путь: бессерверными услугами стало проще пользоваться, и с каждым годом становится все больше и больше компонентов для бессерверных приложений (с Amazon re:Invent). Случилось так много и так быстро – мы сделали нашу карьеру бессерверной. Мы начали вести дискуссии о бессерверных архитектурах, проводить семинары и давать консультации. Мы попытались объединить наш опыт и знания из множества других источников и изложить их в удобном для изучения и понятном формате.
Благодарности Работать над этой книгой было трудно, так как это наш первый опыт. Некоторые главы переписывались по пять и более раз, чтобы вам, уважаемый читатель, легче было понять и усвоить обсуждаемые в них сведения. Наши друзья и семьи оказывали нам большую поддержку в процессе, и мы хотели бы поблагодарить всех, кто помогал нам на этом пути. Прежде всего мы хотели бы поблагодарить Гойко Аджича (Gojko Adzic). Он ввел нас в мир без серверов несколько лет назад. Отдельное спасибо за его комментарии к этой книге, такие как: «эта страница ничего не стоит, удалите ее», «не лгите своим читателям о шагах» и т. п. Они были бесценны для нас. Мы хотели бы поблагодарить нашего редактора из издательства Manning Тони Арритола (Toni Arritola). Спасибо, что помогли нам выбраться из тупика, когда мы застряли на первых нескольких главах, что были терпеливы, когда мы отставали от графика, и поддерживали нас всем необходимым. Вы всегда требовали от нас высокого качества и тем помогали сделать книгу лучше для читателей. Также мы хотим поблагодарить Майкла Стивенса (Michael Stephens) и Берта Бейтса (Bert Bates), которые помогли лучше объяснить детали бессерверных архитектур и сосредоточиться на важных темах. Спасибо сотрудникам издательства Manning, работавшим над выпуском и продвижением книги, это была сплоченная команда. Спасибо техническому корректору Валентину Креттазу (Valentin Crettaz) и техническому редактору Костасу Пассадису (Kostas Passadis) за тщательный анализ кода. Спасибо также рецензентам из Manning, которые нашли время, чтобы прочитать нашу рукопись на разных этапах, и дали ценные отзывы, в том числе: Арно Бейли (Arnaud Bailly), Барнаби Норман (Barnaby Norman), Клаудио Бернардо Родригес (Claudio Bernardo Rodríguez), Дамиан Эстебан (Damian Esteban), Ден Балия (Dane Balia), Дипак Бхаскаран (Deepak Bhaskaran), Джасба Симпсон (Jasba Simpson), Джереми Ланге (Jeremy Lange), Кай Стрем (Kaj Ström), Кэтлин Р. Эстрада (Kathleen R. Estrada), Кумар Унникришнан (Kumar Unnikrishnan), Лука Меццалира (Luca Mezzalira), Мартин Денерт (Martin Dehnert), Рами Абдельвахед (Rami Abdelwahed), Сурджит Манхас (Surjeet Manhas), Томас Пеклак (Thomas Peklak), Умур Йильмаз (Umur Yilmaz) и Ивон Вивилль (Yvon Vieville). Спасибо сотрудникам Amazon и AWS, что создали такую потрясающую компью терную службу: AWS Lambda. Ваши усилия меняют мир. Наконец, спасибо тетушке Марии и всем другим вымышленным героям этой книги!
Об этой книге Основная цель книги «Бессерверные приложения на JavaScript» – обучение и помощь в создании бессерверных приложений Node.js. Она отличается прагматическим подходом и рассказывает о вымышленной пиццерии тетушки Марии, чьи проблемы мы будем пытаться решить с помощью бессерверной архитектуры. Книга начинается с объяснения основ бессерверной архитектуры и потом раз за разом описывает решение каждой проблемы, с которой сталкивается тетушка Мария, с применением отдельных идей бессерверных вычислений, помогая тем самым сформировать ясное представление о приемах создания эффективных бессерверных приложений с Node.js. Кому адресована книга Книга «Бессерверные приложения на JavaScript» предназначена для разработчиков веб-приложений на JavaScript, стремящихся узнать, как создавать бессерверные приложения, и понять, как правильно их организовывать, проектировать и тестировать. В интернете можно найти массу информации о Node. js и множество пособий по созданию простых бессерверных приложений, и тем не менее в этой книге мы последовательно расскажем, как применить все эти знания для создания больших бессерверных приложений с Node.js. Краткое содержание Книга делится на 3 части и 15 глав. В первой части описываются основы бессерверных вычислений и как построить бессерверное приложение с базой данных, как подключиться к сторонним службам, как отладить его, как добавить поддержку авторизации и аутентификации и как работать с файлами. Глава 1 знакомит с бессерверной платформой Amazon Web Services и описывает бессерверные вычисления с применением простых аналогий. Здесь вы также познакомитесь с тетушкой Марией, ее пиццерией и проблемами. Наконец, вы увидите, как выглядит типичное бессерверное приложение Node.js, и узнаете, что такое Claudia.js и как этот инструмент помогает развертывать приложения Node.js в AWS Lambda. Глава 2 иллюстрирует разработку простого Pizzeria API с использованием AWS Lambda, API Gateway и Claudia API Builder. Здесь вы также научитесь одной командой развертывать свои API с помощью Claudia. Глава 3 рассказывает, как в бессерверной архитектуре работают базы данных, а также о том, как подключить Pizzeria API к DynamoDB – бессерверной базе данных, предлагаемой AWS.
Доступ онлайн
В корзину