


Wie führe ich PHP auf einer AWS ServerLess-Architektur aus? Teil Was ist serverlos?
Lambda, der Flaggschiff-Serverlosdienst von AWS, ermöglicht die Ausführung von Code auf verschiedenen Laufzeiten. Allerdings ist PHP nicht explizit in der offiziellen Produktbeschreibung enthalten. Bedeutet das, dass Sie auf Lambdas keinen PHP-Code ausführen können? Nein, tut es nicht!
In dieser Serie (abgeleitet aus einem Vortrag, den ich vor der AWS User Group Poitiers gehalten habe) besprechen wir, was serverlos ist und wie man PHP (falls das Ihre Lieblingssprache ist) auf Lambda zum Laufen bringt.
Was ist serverlos?
Serverlos ist ein Hosting-Paradigma, bei dem der Cloud-Anbieter die der Arbeitslast des Kunden zugewiesenen Ressourcen dynamisch skaliert und dabei nicht nur die physische Infrastruktur (Server, Stromkühlung), sondern auch die Ausführungslaufzeit (Patching usw.) verwaltet.
Im engeren Sinne wird jeder Anfrage Rechenleistung zugeteilt, was zu einem „Skalierungs-zu-Null“-Preismodell führt (es werden keine Ressourcen stundenweise bezahlt, sondern nur proportional zur tatsächlichen Nachfrage) und gleichzeitig eine integrierte hohe Leistung bereitgestellt -Verfügbarkeit.
Dazu kommen weitere Cloud-Vorteile hinzu, vor allem die Tatsache, dass alles über eine API verfügt, was eine Automatisierung ermöglicht.
Die Summe dieser Vorteile ermöglicht praktisch kostenlose kurzlebige Funktionszweigumgebungen, wodurch die Entwicklerproduktivität und die Vorlaufzeit gesteigert werden.
Bei Serverless geht es nicht nur um Rechenleistung!
Es gibt viele Lösungen im serverlosen Ökosystem. Als Serverless Compute (Lambda) im Jahr 2014 auf den Markt kam, gab es Managed Queues (SQS) bereits seit einem Jahrzehnt und S3 bereits seit acht Jahren.
Beachten Sie, dass Aurora in der Folie oben nicht unserer strikten Definition von Serverless entspricht, da es nicht auf Null skaliert wird (v1 wurde auf Null skaliert, aber dann könnte es Minuten dauern, bis es startet, bei v2 müssen Sie es haben). Mindestens 0,5 ACUs auf Ihren Writer- und Reader-Instanzen, damit die Datenbank bereit ist, Abfragen zu bedienen.
Im Folgenden finden Sie eine typische Architektur zum Hosten einer Webanwendung, die nur serverlose Dienste umfasst. Das Hosten einer solchen Anwendung könnte für eine begrenzte Anzahl von Benutzern weniger als 1 US-Dollar pro Jahr kosten.
Ist Serverless nur für Microservices geeignet?
Ja.. und nein. Es wurde mit Blick auf Microservices entwickelt, aber Sie können trotzdem eine monolithische Architektur bereitstellen (solange Sie nicht jedes Mal, wenn eine neue Umgebung gestartet wird, eine langwierige Startsequenz haben).
Serverlose Optionen zur Lösung häufiger Herausforderungen mit Microservices: Orchestrierung und Choreografie
Microservices-Architekturen ermöglichen es, die Kopplung zwischen Anwendungskomponenten zu reduzieren (Verwendung verschiedener Sprachen, durch asynchrone Muster, Verbesserung der Skalierbarkeit durch Beseitigung der Kopplung auf Infrastrukturebene).
Wenn wir jedoch über mehrere Einzelzweckfunktionen verfügen, erfordert die Implementierung der Geschäftslogik möglicherweise eine Koordination zwischen den Funktionen. Diese Koordination kann mithilfe von zwei grundlegenden Mustern umgesetzt werden.
- Orchestrierung: In diesem Muster steuern wir Aufrufe der Funktion auf zwingende Weise. Dies wird häufig innerhalb einer Geschäftsdomäne verwendet, wenn Funktionen von einem einzelnen Serviceteam bereitgestellt werden. Ein serverloser Ansatz hierfür ist AWS StepFunction, eine Workflow-/Zustandsmaschine. Hier gibt es ein schönes Tutorial zum Koordinieren von Lambda-Funktionen mithilfe von StepFunction.
- Choreografie: Dieses Muster ist in geschäftsdomänenübergreifenden Szenarien mit separaten Serviceteams relevanter, um eine sehr begrenzte Kopplung aufrechtzuerhalten. Ein Ereignisbus ermöglicht es einer Anwendung, Ereignisse zu übertragen und Ereignisse zu abonnieren. Mehrere Verbraucher können dasselbe Ereignis abonnieren und jeder Verbraucher kann die Ereignisse filtern, die er benötigt. Der zentrale AWS-Service hierfür ist EventBridge. Einen Blog-Beitrag, den ich darüber geschrieben habe, finden Sie hier.
Lambda kennenlernen
Lambda ist die Function-as-a-Service-Lösung von AWS. Mit Lambda können Sie Ihren Code bereitstellen und erhalten sofortige Hochverfügbarkeit und Skalierbarkeit, ohne sich um die Bereitstellung von Instanzen und Betriebssystem- oder Laufzeit-Patches kümmern zu müssen.
Lambda kann mit synchronen Aufrufen (über ein API-Gateway, einen Application Load Balancer oder eine Lambda-Funktions-URL) oder asynchronen Aufrufen (als Reaktion auf von AWS generierte oder benutzergenerierte Ereignisse) verwendet werden.
Lambda를 배포할 때 실행하는 데 필요한 메모리 양을 선택했습니다. 할당된 CPU는 비례합니다. 그런 다음 사용한 밀리초 수를 기준으로 비용을 지불합니다. 예를 들어 128Mb Lambda 비용은 1.7*10^-9$/ms입니다. 첫 번째 비용을 지출하기 전에 164시간 동안 컴퓨팅을 수행해야 합니다.
그리고 Lambda는 확장됩니다. 빠른. 다른 것보다 훨씬 빠릅니다. 높은 트래픽 변화로 인해 더 이상 429(또는 워크로드가 잘 보호되지 않는 경우 500) 오류가 발생하지 않습니다.
LambdaLiths를 통한 주요 과제 해결: 콜드 스타트
Lambda 실행 환경은 주어진 시간에 하나의 요청만 처리하며 후속 요청에 재사용됩니다. 즉, Lambda 함수를 확장하거나 Lambda 함수가 한동안 호출되지 않은 경우 Lambda는 새로운 실행 환경을 시작해야 합니다. 이것이 바로 콜드 스타트입니다.
콜드 스타트가 애플리케이션에 해로운 경우(다시 말하지만 모든 트래픽이 느리거나 429초에 도달하는 것이 더 나을 것임) 몇 가지 옵션이 있습니다. AWS에는 Lambda 워머 사용 또는 이를 해결하기 위한 프로비저닝된 동시성 설정에 대한 유용한 기사가 있습니다. 그 외에도 Java 사용자의 경우 Lambda SnapStart 기능을 사용하면 JVM 초기화 후 microVM의 스냅샷을 생성하여 우수한 콜드 스타트 성능을 제공할 수 있습니다.
PHP 지원은 어떻습니까?
공식 제품 FAQ에는 "기본적으로 Java, Go, PowerShell, Node.js, C#, Python 및 Ruby 코드를 지원하며 추가 프로그래밍 언어를 사용하여 함수를 작성할 수 있는 런타임 API를 제공합니다"라고 나와 있습니다.
이 시리즈의 다음 블로그 게시물에서는 Bref와 Lambda 웹 어댑터라는 두 가지 프레임워크를 활용하여 Lambda에서 PHP를 실행하는 방법을 설명하고 각 프레임워크가 제공하는 가능성을 비교하겠습니다.
Das obige ist der detaillierte Inhalt vonWie führe ich PHP auf einer AWS ServerLess-Architektur aus? Teil Was ist serverlos?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Laravel vereinfacht die Behandlung von temporären Sitzungsdaten mithilfe seiner intuitiven Flash -Methoden. Dies ist perfekt zum Anzeigen von kurzen Nachrichten, Warnungen oder Benachrichtigungen in Ihrer Anwendung. Die Daten bestehen nur für die nachfolgende Anfrage standardmäßig: $ Anfrage-

Die PHP Client -URL -Erweiterung (CURL) ist ein leistungsstarkes Tool für Entwickler, das eine nahtlose Interaktion mit Remote -Servern und REST -APIs ermöglicht. Durch die Nutzung von Libcurl, einer angesehenen Bibliothek mit Multi-Protokoll-Dateien, erleichtert PHP Curl effiziente Execu

Alipay PHP ...

Laravel bietet eine kurze HTTP -Antwortsimulationssyntax und vereinfache HTTP -Interaktionstests. Dieser Ansatz reduziert die Code -Redundanz erheblich, während Ihre Testsimulation intuitiver wird. Die grundlegende Implementierung bietet eine Vielzahl von Verknüpfungen zum Antworttyp: Verwenden Sie Illuminate \ Support \ facades \ http; Http :: fake ([ 'Google.com' => 'Hallo Welt',, 'github.com' => ['foo' => 'bar'], 'Forge.laravel.com' =>

Möchten Sie den dringlichsten Problemen Ihrer Kunden in Echtzeit und Sofortlösungen anbieten? Mit Live-Chat können Sie Echtzeitgespräche mit Kunden führen und ihre Probleme sofort lösen. Sie ermöglichen es Ihnen, Ihrem Brauch einen schnelleren Service zu bieten

In Artikel wird die in PHP 5.3 eingeführte LSB -Bindung (LSB) erörtert, die die Laufzeitauflösung der statischen Methode ermöglicht, um eine flexiblere Vererbung zu erfordern. Die praktischen Anwendungen und potenziellen Perfo von LSB

In Artikel werden wichtige Sicherheitsfunktionen in Frameworks erörtert, um vor Schwachstellen zu schützen, einschließlich Eingabevalidierung, Authentifizierung und regelmäßigen Aktualisierungen.

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.
