Это глава из написанного мной «Руководства по сборке с помощью Serverless AWS». Для получения дополнительной информации о целях и фокусах руководства, пожалуйста, прочтите главу «Введение».
Оглавление:
- "Введение"
- Бессерверное введение (Вы здесь)
- Введение в облако и AWS
- Инфраструктура как код
- "Я"
- ВПК
- Лямбда
- API-шлюз
- ДинамоДБ
- S3
- Облачные часы
- Облачный фронт
- Маршрут 53
- СНС
- СКС
- Кинезис
- Семейство инструментов разработчика
- Бессерверные контейнеры
Я почти исключительно использую бессерверные технологии. Некоторые из наиболее популярных бессерверных предложений AWS, которые я использую, включают Lambda, API Gateway, SNS и DynamoDB. У каждого из них есть своя цель, о которой я расскажу в этом руководстве. Я хочу сохранить сфокусированный объектив для этого руководства и не допускать расползания масштаба.
У меня есть несколько продуктов, висящих в Интернете, и все они построены на бессерверных технологиях. Стоимость хостинга равна нулю, пока кто-то не заплатит мне за пользование услугой. Из того, что я видел от других и испытал в своей профессиональной жизни, когда речь идет о затратах на AWS, я уникален тем, что ничего не плачу, пока мои продукты не будут использованы. Стоимость является одним из самых больших преимуществ использования бессерверных архитектур и одним из самых больших отличий, на которые я обращаю внимание, прежде чем рассматривать услугу как ту, которую я хочу использовать. Можно возразить, что бессерверные технологии в будущем будут стоить дороже, когда они находятся под нагрузкой или при постоянном трафике, но я видел, что верно обратное, если код написан так, чтобы идти рука об руку с архитектурой.
Прежде чем заняться AWS и эксплуатацией, я был инженером-программистом. Я все еще инженер-программист, и мне очень нравится писать код. Основная причина, по которой я так глубоко погрузился в AWS, заключалась в том, что после того, как я написал код, мне нужно было каким-то образом поделиться им. Любой может запустить сервер на своей локальной машине и отправлять запросы к localhost
. Дополнительный уровень сложности появляется, когда приходит время размещать этот код или сервис публично. AWS и предоставляемая им возможность абстрагирования позволяют мне справиться с этой сложностью. При этом мне нравится понимать, что происходит за кулисами любой технологии, с которой я работаю, поэтому я предложу такое же объяснение в этом руководстве. Однако использование бессерверных сервисов, которые предоставляет AWS, позволяет мне сосредоточиться на написании кода, а управление инфраструктурой становится легкой задачей. Это еще одно огромное преимущество бессерверных технологий: экономия времени. Настройка бессерверной архитектуры не только занимает меньше времени, чем традиционная инфраструктура, но и увеличивает экономию времени на стандартном серверном коде. Я больше не пишу логику маршрутизации, я просто создаю новую функцию Lambda с логикой и говорю API Gateway, чтобы он обработал все остальное за меня.
Бессерверные решения обеспечивают расширенные преимущества инфраструктуры, которые раньше было сложно организовать, например автоматическое масштабирование и эффективность вычислений. Я видел много онлайн-руководств по автомасштабированию контейнеров и инстансов EC2. С таким сервисом, как Lambda, балансировщики нагрузки и оповещения о масштабировании не имеют значения. Все это обрабатывается из коробки. Вычислительные ресурсы и, следовательно, стоимость также оптимизированы. Использование лямбда-функции означает, что я платил только за базовые вычислительные ресурсы, когда их использовал. Сравните это с постоянной оплатой инстанса EC2 независимо от использования, и соотношение затрат и выгод станет очевидным. Самое приятное то, что, вероятно, есть преимущества и оптимизации, работающие за кулисами и постоянно обновляемые, о которых я не знаю. Использование бессерверных технологий означает, что разработчики могут заниматься разработкой, в то время как выделенная операционная группа AWS занимается инфраструктурой.
Следующая глава: Введение в облако и AWSПредыдущая глава: ВведениеКатегории: руководство по созданию бессерверных aws
Первоначально опубликовано на https://thomasstep.com 4 октября 2021 г.