Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Бессерверные приложения на JavaScript

Покупка
Артикул: 739794.01.99
Доступ онлайн
949 ₽
В корзину
Преимущества облачных бессерверных веб-приложений бесспорны: меньшая сложность, быстрое продвижение на рынок и автоматическая масштабируемость выгодно отличают их от традиционных серверных проектов. Данная книга научит вас проектировать и создавать бессерверные веб-приложения на AWS с использованием JavaScript, Node и Claudia.js. Новичков издание знакомит не только с AWS Lambda, но и с целым рядом связанных служб, таких как DynamoDB, Cognito, API Gateway. Даже решив позднее взять на вооружение другие инструменты, вы сможете сохранить весь код и просто развернуть его немного иначе. Подробно описывается несколько вариантов практического использования бессерверных платформ, в том числе веб-API, чат-боты, обработка платежей и управление заказами. Издание предназначено веб-разработчикам, знакомым с JavaScript и Node.js.
Стоянович, С. Бессерверные приложения на JavaScript : практическое руководство / С. Стоянович, А. Симович ; пер. с анг. А. Н. Киселева. - Москва : ДМК Пресс, 2020. - 394 с. - ISBN 978-5-97060-782-4. - Текст : электронный. - URL: https://znanium.com/catalog/product/1094948 (дата обращения: 25.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Слободан Стоянович
Александар Симович

Бессерверные 
приложения  
на 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.

Доступ онлайн
949 ₽
В корзину