«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как запустить PHP на архитектуре AWS Serverless? Часть Что такое бессерверное?

Как запустить PHP на архитектуре AWS Serverless? Часть Что такое бессерверное?

Опубликовано 4 ноября 2024 г.
Просматривать:571

Lambda, флагманский бессерверный сервис AWS, позволяет запускать код в различных средах выполнения. Однако PHP явно не указан в официальном описании продукта. Означает ли это, что вы не можете запускать PHP-код на Lambdas? Нет, это не так!

В этой серии (взято из доклада, который я провел для группы пользователей AWS в Пуатье) мы обсудим, что такое бессерверное управление и как заставить PHP (если это ваш любимый язык) работать на Lambda.

Что такое бессерверное использование?

Бессерверный хостинг — это парадигма хостинга, при которой облачный провайдер динамически масштабирует ресурсы, выделенные для рабочей нагрузки клиента, управляя при этом не только физической инфраструктурой (серверы, электроохлаждение), но и средой выполнения (исправления и т. д.).

How to run PHP on AWS ServerLess architecture ? Part  What

В строгом смысле вычислительные ресурсы выделяются для каждого запроса, что приводит к модели ценообразования «масштабируемого к нулю» (никакие ресурсы не оплачиваются по часам, а только пропорционально фактическому спросу), обеспечивая при этом встроенную высокую -доступность.

Это добавляет к другим преимуществам облака, в первую очередь, тот факт, что все поставляется с API, что делает возможной автоматизацию.

Совокупность этих преимуществ позволяет создавать практически бесплатные эфемерные среды с функциональными ветвями, повышая производительность разработчиков и сокращая время выполнения заказов.

How to run PHP on AWS ServerLess architecture ? Part  What

Бессерверные технологии — это не только вычисления!

В бессерверной экосистеме существует множество решений. Когда в 2014 году появились бессерверные вычисления (Lambda), управляемые очереди (SQS) существовали уже десять лет, а S3 — восемь лет.

How to run PHP on AWS ServerLess architecture ? Part  What

Обратите внимание, что на слайде выше Aurora не соответствует нашему строгому определению бессерверной технологии, поскольку она не масштабируется до нуля (версия 1 масштабируется до нуля, но запуск может занять несколько минут, а для версии 2 вам необходимо иметь не менее 0,5 ACU на экземплярах записи и чтения, чтобы база данных была готова обслуживать запросы.

Ниже вы найдете типичную архитектуру для размещения веб-приложения, включающую только бессерверные службы. Хостинг такого приложения может стоить менее 1 доллара в год для ограниченного числа пользователей.

How to run PHP on AWS ServerLess architecture ? Part  What

Бессерверная технология предназначена только для микросервисов?

Да.. и нет. Он был разработан с учетом микросервисов, но вы все равно можете развернуть монолитную архитектуру (если у вас нет длительной последовательности запуска каждый раз при запуске новой среды).

How to run PHP on AWS ServerLess architecture ? Part  What

Бессерверные варианты решения распространенной проблемы с помощью микросервисов: оркестровка и хореография

Архитектура микросервисов позволяет уменьшить связь между компонентами приложений (с использованием разных языков, с помощью асинхронных шаблонов, улучшения масштабируемости за счет устранения связи на уровне инфраструктуры).

Однако, если у нас есть несколько одноцелевых функций, реализация бизнес-логики может потребовать координации между функциями. Эту координацию можно реализовать с помощью двух фундаментальных паттернов.

  • Оркестровка: в этом шаблоне мы императивно управляем вызовами функции. Часто используется внутри бизнес-домена, когда функции выполняются одной сервисной командой. Бессерверный подход для этого — AWS StepFunction, рабочий процесс/конечный автомат. Здесь есть хорошее руководство о том, как координировать функции Lambda с помощью StepFunction.
  • Хореография: этот шаблон более уместен в междоменных сценариях с отдельными сервисными командами для поддержания очень ограниченной связи. Шина событий позволяет приложению отправлять события и подписываться на них. На одно и то же событие могут подписаться несколько потребителей, и каждый потребитель может фильтровать любые необходимые ему события. Основным сервисом AWS для этого является EventBridge. Вы будете сообщение в блоге, которое я написал об этом здесь.

Знакомство с Ламбдой

Lambda — это решение AWS «Функция как услуга». С помощью Lambda вы можете развернуть свой код и получить мгновенную высокую доступность и масштабируемость, не беспокоясь о развертывании экземпляров и исправлении ОС или среды выполнения.

Lambda может использоваться с синхронными вызовами (через шлюз API, балансировщик нагрузки приложения или URL-адрес функции Lambda) или асинхронными вызовами (в ответ на события, генерируемые AWS или пользователем).

При развертывании Lambda вы выбираете, сколько памяти ей нужно для работы. Выделенный процессор пропорционален. Затем вы платите в зависимости от количества использованных миллисекунд. Например, Lambda объемом 128 МБ стоит 1,7*10^-9$/мс. Это 164 часа вычислений, прежде чем вы потратите свой первый доллар.

How to run PHP on AWS ServerLess architecture ? Part  What

И лямбда-шкалы. Быстрый. Гораздо быстрее, чем что-либо еще. Больше никаких ошибок 429 (или 500, если ваша рабочая нагрузка недостаточно защищена) из-за сильного изменения трафика.

How to run PHP on AWS ServerLess architecture ? Part  What

Решение главной задачи с помощью LambdaLiths: холодный запуск

Среды выполнения Lambda обрабатывают только один запрос в определенный момент времени и повторно используются для последующих запросов. Это означает, что для масштабирования функции Lambda или если функция Lambda не вызывалась какое-то время, Lambda придется запустить новую среду выполнения: это холодный старт.

Если холодный запуск вреден для вашего приложения (опять же, это, вероятно, лучше, чем если весь трафик будет медленным или попадет в 429), то есть несколько вариантов. У AWS есть хорошая статья об использовании подогревателей Lambda или настройке параллелизма для решения этой проблемы. В дополнение к этому, для пользователей Java функции Lambda SnapStart позволяют обеспечить хорошую производительность при холодном запуске путем создания моментальных снимков microVM после инициализации JVM.

А как насчет поддержки PHP?

Официальный FAQ по продукту гласит, что он «встроенно поддерживает код Java, Go, PowerShell, Node.js, C#, Python и Ruby и предоставляет API среды выполнения, который позволяет использовать любые дополнительные языки программирования для создания функций».

В следующих сообщениях этой серии мы объясним, как можно запускать PHP на Lambda, используя две разные платформы: Bref и Lambda Web Adaptor, и сравним возможности, предлагаемые каждой из них.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/aws-builders/how-to-run-php-on-aws-serverless-architecture-part-1-whats-serverless-3j3m?1 При наличии каких-либо нарушений , пожалуйста, свяжитесь с Study_golang @163.comdelete
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3