Heim >Backend-Entwicklung >PHP-Tutorial >Warum ich meine Laravel -Anwendung auf AWS Serverless migrierte (und warum ich Ihnen Zeit und Geld sparen könnte)
In diesem Artikel werden die Vorteile der Bereitstellung einer Laravel -Anwendung auf AWS Serverless untersucht und diese mit herkömmlichem EC2 -Hosting kontrastiert. Der Autor teilt seine Erfahrung mit, die von einer ressourcenintensiven EC2-Setup zu einer kostengünstigen und skalierbaren serverlosen Architektur migriert.
Spoiler : Es geht nicht nur darum, Geld zu sparen - obwohl sich meine Brieftasche nicht beschwert.
Stellen Sie sich vor, Sie haben eine brillante Laravel -Anwendung gebaut - Ihr Meisterwerk, ein digitales Schweizer Armeemesser mit Funktionen, die so nützlich sind, dass sie Butter ... oder Benutzer -Feedback schneiden können. Aber es gibt einen Haken. Jeden Monat zahlen Sie für eine nicht genutzte EC2 -Instanz. Skalierung fühlt sich wie ein Kreuzfahrtschiff in einem Hurrikan an.
sich vertraut klingen? Es hat mir angetan.
Vor drei Jahren habe ich das getan, was die meisten Entwickler als verrückt bezeichnen würden: Ich habe PHP zu AWS Lambda eingesetzt. „PHP? Auf serverlos? Das ist wie Ananas auf Pizza! “, Sagten sie.
Aber hier bin ich drei Jahre später stolz meine Ananas -Pizza. Lassen Sie mich Ihnen sagen, warum Laravel auf Serverless das Cloud -Upgrade ist, von dem Sie nicht wussten, dass Sie Sie benötigen.
(oder: Warum meine EC2 -Instanzen eine existenzielle Krise hatten)
Vor serverlos wohnte meine Laravel -Anwendung auf EC2. Für die Uneingeweihten ist EC2 die Version eines virtuellen privaten Servers von Amazon, auf dem Sie eine Scheibe eines Computers mieten, um Ihren Code auszuführen. Klingt großartig, oder? Bis die Realität schwieriger ist als ein Schurken composer update
.
Ausführen einer EC2 -Instanz ist wie der Besitz eines Tesla, den Sie rund um die Uhr laufen lassen, nur für den Fall, dass Sie fahren möchten. Meine Bewerbung war nicht immer beschäftigt, aber das hat das Messgerät nicht aufgehalten. Zwischen EC2 -Instanzen, Ladungsbalancern und dem gemeinsamen Speicher verbrachte ich rund 110 US -Dollar pro Monat für einen Serverstapel, der die meiste Zeit im Leerlauf verbrachte. Meine Brieftasche? Gesunken wie der Titanic.
Ich weiß, es ist nicht viel im großen Schema der Dinge, aber als Solo -Entwickler/Unternehmer zählt jeder Dollar.
EC2 -Instanzen sind wie der Freund, der alles überreagiert.
Das Management von Autoscaling fühlte sich an, als würde man einen Fisch zum Jonglieren beibringen - possibler, aber zu welchem Preis? Manuell Anpassung von Skalierungsgruppen, Konfigurieren von Lastbalancern und Beten, dass Sie nicht zu einer Überproduktion anfühlten, fühlte sich wie ein zweiter Job an, den ich nie beworben habe.
Niemand hat mir gesagt, dass Laravel Development mit einer Seite der Sysadmin -Verantwortlichkeiten kam:
sudo
Befehle flüstern, in der Hoffnung, dass sie diesmal arbeiten würden. Ich habe mich nicht für dieses Leben angemeldet.
, als ich anfing, Alternativen zu erkunden, und serverless war die perfekte Lösung für diese Kopfschmerzen.
Lassen Sie uns einen Mythos klären: Serverlos bedeutet nicht "keine Server". Es bedeutet nur, dass die Server das Problem eines anderen sind. In diesem Fall kümmert sich AWS mit dem schweren Heben, während ich mich auf das konzentriere, was ich tatsächlich genieße: codieren.
AWS Lambda ist wie ein Superheld, der nur auftaucht, wenn Sie sie brauchen. Es führt Ihren Code als Antwort auf Ereignisse aus - HTTP -Anforderungen, SQS -Nachrichten, geplante Aufgaben, Sie nennen es. Und wenn der Job erledigt ist, verschwindet es schneller als kostenlose Pizza bei einem Entwicklertreffen.
serverless ist nicht nur Lambda - es ist ein Ökosystem. AWS ersetzt Ihre DIY -Infrastruktur durch verwaltete Dienste, die "nur funktionieren":
Ich gebe es zu: PHP war nicht für serverless
geboren . Es ist, als würde man einen Fisch bitten, auf einen Baum zu klettern - es wird sich beschweren, aber es wird es irgendwann tun. Laravel, traditionell auf PHP-FPM angewiesen, brauchte einige Anpassungen, um in Lambdas kurzfristiger Welt zu gedeihen:Storage
Fassade auf S3 umleiten. .env
Dateien mit AWS Secrets Manager oder Parameterspeicher für eine zentrale und sichere Konfigurationsverwaltung. Denken Sie daran, serverless geht es nicht nur darum, Server durch Lambda -Funktionen zu ersetzen. Es geht darum, Ihre Architektur zu überdenken - wenn Sie AWS mit den operativen Schmerzpunkten beziehen, während Sie sich auf das Aufbau konzentrieren.
liefert Laravel on serverless tatsächlich seine Versprechen?
serverless ist nicht nur ein Schlagwort, sondern eine transformative Verschiebung. Die Schönheit von Laravel auf serverloser Ligeler liegt in seiner Fähigkeit, die Schwächen des traditionellen Hostings zu beheben und gleichzeitig schnellere, skalierbare und kostengünstigere Lösungen zu ermöglichen. Aber die wirkliche Magie geschieht, wenn Sie sich mit der Kombination dieser Vorteile befassen. Lassen Sie es uns aufschlüsseln.
Erkältung beginnt, wenn Lambda eine neue Instanz initialisiert. Betrachten Sie es als PHP, das aus einem Nickerchen aufwacht. Kritiker behandeln sie wie die Apokalypse, aber sie sind überschaubar:
Für die meisten Anwendungen sind Verzögerungen bei Sub-3-Sekunden bei geringem Verkehr akzeptabel. Die meisten Benutzer bemerken keinen kalten Start, besonders bei Verkehrsspitzen, wenn Lambda "warm bleibt".
Skalierung im traditionellen Hosting fühlt sich oft wie ein unendlicher Kampf an. Mit serverloser wird die Skalierung mühelos: Keine Optimierungen mehr Autoscaling -Regeln oder Überqueren der Finger während eines plötzlichen Verkehrsaufzeigs. AWS Lambda entfernt die Vermutung und skaliert standardmäßig horizontal.
Hier ist ein Beispiel:
Das ist nicht nur Bequemlichkeit, sondern auch die Beruhigung. Während Sie sich darauf konzentrieren, den Erfolg Ihrer Anwendung zu feiern, macht Lambda das schwere Heben. Und das Beste daran? Sie zahlen nur für die Rechenzeit, die Sie verwenden, nicht für die Leerlaufkapazität, die Sie möglicherweise benötigen. "
c) Kosteneffizienz: MVP
Kurz gesagt, serverlos spart nicht nur Geld, sondern die mentale Bandbreite frei. Je weniger Ressourcen ich damit verschwende, mir Sorgen um die Überproduktion zu machen, desto mehr kann ich mich darauf konzentrieren, etwas Erstaunliches zu bauen.
Zu diesem Zeitpunkt habe ich immer noch eine MySQL -Instanz als meine Datenbank -Engine verwendet. Zukünftige Beiträge werden die Migration zu DynamoDB untersuchen, um die Kosten weiter zu senken.
serverlos befreit mich von den Fesseln der Serverwartung. So wie:
serverless reduziert nicht nur die Wartung, sondern beseitigt die operativen Ablenkungen, die Sie vom Codieren abhalten.
So revolutionär wie Laravel auf Serverless ist, es ist keine universelle Lösung. Für einige Anwendungen scheint die staatenlose und ereignisorientierte Natur von Serverless ein wahr gewordener Traum zu sein. Für andere könnte es sich anfühlen, als würde man versuchen, einen quadratischen Stift in ein rundes Loch zu stecken. Bevor Sie auf den serverlosen Zug springen, treten wir zurück und beurteilen Sie, ob es für Ihr Projekt richtig ist.
Laravel liebt Vorgänge, die Informationen zwischen Interaktionen beibehalten, z. B. das Speichern von Dateien lokal und speichern Sitzungen im Dateisystem. Um serverlos zu gehen, müssen Sie sich ändern:
.env
: Verschieben AWS -Dienste sind magisch, aber sie sind auch proprietär:
serverless ist keine Silberkugel für alle Workloads. Vermeiden Sie es, wenn:
Eine Frage für Sie : Was ist Ihre größte Angst vor Serverless? Teile es unten und ich werde die Top 3 in Teil 2 ansprechen!
Das obige ist der detaillierte Inhalt vonWarum ich meine Laravel -Anwendung auf AWS Serverless migrierte (und warum ich Ihnen Zeit und Geld sparen könnte). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!