Node.js Recipes
3.23K subscribers
174 photos
7 videos
1 file
622 links
По буднях нотатки по #Nodejs розробці, по вихідним огляди конференцій та доповідей (с) @galkin_nikita
Download Telegram
Holy WebSocket Revival: Serverless Sockets for Real Time Communication, Paul Chin
#worth_seeing #aws

Еще один доклад с OpenJS World 2020. На этот раз в формате Lightning.

Почему стоит посмотреть это видео:
1. Сам по себе формат Lightning, т.е 5-10 минутное выступление, является одним из самых сложных.
2. Мало кто знает, что можно сделать WebSocket-ы на serverless.

🔥 Демо, откройте два окна, чтобы посмотреть.
💻 Source on GitHub

Напомню, что бесплатная регистрация на OpenJS World 2021 уже открыта.
👍1
Как и зачем обновить aws-sdk с v2 на v3?
#package #aws

Два месяца назад я рассказывал как Как уменьшить потребление памяти во время TypeScript компиляции? Там я привел в качестве примера изменения импортов из aws-sdk. Этот пакет является второй версией AWS JS SDK. Я упустил выход третей версии в декабре прошлого года. Третья версия состоит из scoped packages с префиксом @aws-sdk, например @aws-sdk/client-s3.
Вторая версия по-прежнему поддерживается, но переходить на третью уже пора. Вот причины:
➡️ модульная архитектура, т.е. один пакет для работы с одним сервисом. Можно не следить за правильностью import-ов как в примере.
➡️ TypeScript-first поддержка
➡️ короче Stack Trace для ошибок
➡️ оплата технической инфляции раньше ее превращения в тех.долг

Перед обновлением можно рекомендую глянуть workshop v2->v3 для самостоятельного прохождения от AWS.
Working with WebSockets on AWS
#worth_seeing #aws

Для постоянных читателей рубрики не будет новостью, что AWS предлагает serverless websockets. Я делился соответствующим видео с OpenJS World 2020.

Сегодня у нас более подробное видео от Ryan Lewis. Доклад сделан в рамках youtube-канала, а не конференции. Формат – live coding . В нем докладчик не только рассказывает что, но и показывает как. В рамках конференций это самый сложный формат. В записи его делать проще, что однако не умоляет ценность рекомендуемого видео.

Расскажу о докладчике. Райан делает материалы по AWS, serverless и JavaScript. Для начинающего #nodejs разработчика будет полезна его бесплатная книга "The Cloud Developer Workbook", где собранны 100 базовых упражнений для изучения AWS.
Build Better Workloads with the AWS Well-Architected Framework and Tool
#worth_seeing #aws #cloud_native

Сегодня в рекомендациях видео об AWS Well-Architected Framework. Данный фреймворк помогает разворачивать приложения в AWS правильно. Вот ссылки, которые помогут лучше разобраться:
- общая инфо
- white paper, по своей сути является манифестом. Стоит знать, даже если вы не работает с AWS.
- labs, лабораторные для применения идей на практике.
- Well-Architected Tool, инструмент для проверки.

Данное рецепт являет логическим продолжением для тех, кто уже выполнил 100 базовых упражнений для изучения AWS.
Команда @AWS_UG_Ukraine 19 октября проводит AWS Tech Conference.

В программе конференции 6 докладов. Для #nodejs разработчиков я бы выделил доклады Сергея Пугачева об интеграции микросервисов и Игоря Иванюка о создание устойчивых приложений. Формат обоих докладов – паттерны, а значит они будут полезны даже, если вы не используете AWS.

Параллельно с докладами будут идти трек для получения практических навыков. Проводить его будет Константин Поляков в формате hands-on lab.

Участие бесплатное по предварительной регистрации: https://bit.ly/3D6YQJU

#aws #conference
Что такое S3 Object Lambda и как ее использовать?
#aws

В марте 2021 AWS представили новый тип Lambdа – S3 Object. Она используется, чтобы обработке и изменения запросов к файлам в S3. Примеры использования:
– ресайзинг картинок
– мутация данных в зависимости от того, кто сделал запрос на S3.
– gzip на лету во время запроса

Еще раз напомню, что не стоит использовать Node.js как прокси для загрузки файла в S3. Для этого существуют signed url.

Ссылки по теме:
Анонс в блоге
Документация
​​Application integration patterns for microservices
#worth_seeing #aws #microservices

Сегодня в рекомендациях видео с AWS re:Invent 2021. Докладчик Dirk Fröehner делает доклады об паттернах интеграции микросервисов каждый год. Если вы еще не видели, то обязательно посмотрите. Доклад естественно сделан на базе AWS стэке, но терминология и паттерны универсальны являются базой микросервисной архитектуры.

👀видео
📕cлайды
👍11
Create an Application Backend in Clicks with the Amplify Admin UI
#aws #worth_seeing

Сегодняшнее видео – это демо, как с помощью AWS Amplify можно сделать backend для вашего мобильного или веб приложения. Докладчик Ali Spittel, является девелопер адвокатом Amplify.

Видео рекомендуется к просмотру, так как Amplify и его аналог в GCP Firebase является отличным выбором для создания прототипа. Скорость разработки и developer experience действительно радуют. Стоит учесть, что для выхода на рынок на таком тэх стэк необходимо очень внимательно следить за правильной архитектурой и FinOps.

Ссылки:
👀 видео
📕 amplify docs
⚙️ sandbox
👍7
Що має вміти AWS Developer?
#aws

AWS Certified Developer цей іспит, що перевіряє знання, а не навички. Сьогодні розповім, що я вважаю треба вміти, щоб вважати себе AWS Developer:
– вибирати та правильно використовувати AWS SDK
– deploy and troubleshooting in AWS (навіть не хочу це перекладати)
– взаємодіяти з хмарними ресурсами через Management Console та AWS CLI
– перевіряти та налаштовувати IAM
– емулювати AWS сервіси за допомогою Docker та/або localstack.cloud для локальної розробки

Якщо в цьому списку навичкою замінити AWS інший Cloud (Azure/GCP/etc), то він не втратить своєї актуальності. Мій досвід показує, що перехід з однієї хмари на іншу для розробника займає не більше місяця.
🔥12👍6
☁️ Як налаштувати retry у AWS SDK?
#aws

Багато розробників не знають або забувають, що AWS SDK має повторні спроби (retry). Це включено за замовчуванням. SDK зробить retry якщо помилка є тимчасовою (HTTP коди 400, 408, 500, 502, 503 і 504) або регулювання (HTTP коди 400, 403, 429, 502, 503 і 509) чи таймаутом.

Якщо ви використовуєте JavaScript SDK v2, тобто aws-sdk, настав час його оновити. Налаштування retry можна зробити тільки для всіх сервісів відразу, але аналіз коду показує, що вони застосовуються не скрізь. Детальніше

Найпопулярнішим клієнтом SDK v3 є @aws-sdk/client-s3. Він, як і всі v3 пакунки, дозволяє налаштувати maxAttempts і retryMode. Приклад:
const { S3 } = require('@aws-sdk/client-s3');
const client = new S3({ retryMode: 'standard', maxAttempts: 10 });

retryMode може бути standard (за замовчуванням) і adaptive. В адаптивному режимі ви можете встановити власну реалізацію rateLimiter. Подробиці можна знайти у коді @aws-sdk/middleware-retry

Для конфігурації AWS SDK бере параметри:
– з кода
– зі змінних оточення (AWS_MAX_ATTEMPTS/AWS_RETRY_MODE)
– з CLI сonfig profile (max_attempts/retry_mode)
– або використовує значення за замовчуванням (3/standard)
* Розташування наведено в порядку зменшення пріоритетності.

Особисто мені не подобаються значення за замовчуванням. Вони створюють магію 🪄. Тому, щоб не забувати про наявність retry у aws проектах я використовую AWS_REGION та AWS_MAX_ATTEMPTS у .env.example.
👍25
Які типи запуску може мати Serverless?
#architecture #aws

Нагадаю базові речі, будь-який serverless будується на основі на Docker. Якщо це функції, лямбди, тобто Serverless Function, то Cloud вендор надає вам Docker Image куди платформа додасть ще один layer із вашим кодом. Якщо це Serverless Container, то запускатиметься той Docker Image, який ви дали. В обох випадках запускається саме докер-контейнер.

Приклади Serverless functions:
👉 AWS Lambda
👉 Azure Functions
👉 Cloud Functions

Приклади Serverless container:
👉 AWS Fargate
👉 Azure Container Instances
👉 Google Cloud Run

Тип запуску визначається саме станом контейнера:
❄️ Холодний старт (Cold Start) - це процес запуску у серверлес-середовищі, коли контейнер не існує та Docker Image відсутній. При такому запуску відбувається ініціалізація середовища та завантаження Docker Image, що призводить до затримок у відповіді на запити.
☀️Теплий старт (Warm Start) - це стан, коли серверлес-середовище має наявний Docker Image, але потрібно створити новий Docker Container. Під час запуску контейнера додаток може підключатися до бази даних та інших необхідних ресурсів.
🔥Гарячий старт (Hot Start) - це стан, коли Docker Container залишається активним у серверлес-середовищі після обробки попередніх запитів. Це найшвидший стан, оскільки контейнер вже повністю завантажений і готовий до негайного виконання наступних запитів.

Саме тому я використовую не прогрівання Serverless Functions, а Servless Container, який може бути викликаний не одним, а кількома тригерами, тому частіше перебуває у гарячому чи теплому стані.

⚠️ Рецепт написаний, як пояснення чому суттєвого прискорення shared Lambda layers у разі холодного старту ваших AWS лямд не дає.
👍424
Сьогодні хочу поділитися, як за один вечір, безкоштовно можна посилити своє резюме для #AWS. Кроки:
1. Створіть профіль на AWS Skill Builder, якщо у вас його ще немає. Використовуйте ту пошту, на яку ви збираєте бейджі.
2. Пройдіть курс AWS Well-Architected Foundations.
3. За бажанням, завантажте сертифікат про завершення і обміняйте його на AWS ваучер на 20$ у коментарях до цього посту.
4. Додайте в розділ сертифікацій свого резюме рядок AWS Well-Architected Proficient.
5. Через кілька тижнів від AWS має надійти бейдж на Credly. Я його ще не отримав.

По суті, це повний аналог Skill Badge від Google Cloud, який також вимагає 2-3 години на отримання. Але цього не знають рекрутери, тому ми отримуємо легальний спосіб додати в своє резюме потрібні ключові слова.

Для тих, хто дочитав до кінця, поясню звідки ці 20$: я учасник програми AWS Community Builders, і мені там видали 30 ваучерів для мого ком’юніті.

Update 2025-03-13. Ваучери вже закінчилися.
👍57🔥7😁2