Mengapa saya memindahkan aplikasi Laravel saya ke AWS tanpa pelayan (dan mengapa ia dapat menjimatkan masa dan wang anda)
Makluman Spoiler: Bukan hanya mengenai penjimatan kos (walaupun akaun bank saya menghargainya!).
Bayangkan ini: Anda telah membuat aplikasi Laravel yang menakjubkan - karya anda, alat serba boleh yang penuh dengan ciri -ciri. Tetapi ada snag. Anda membayar bulanan untuk contoh EC2 yang kurang dimanfaatkan, dan skala terasa seperti gusti gurita.
bunyi biasa? Ia berlaku kepada saya.
Tiga tahun yang lalu, saya mengambil lompatan iman: Saya menggunakan PHP pada AWS Lambda. Reaksi? "PHP di Serverless? Heresy!"
Namun, di sini saya, tiga tahun kemudian, seorang penukar. Biar saya jelaskan mengapa seni bina Laravel tanpa pelayan adalah peningkatan awan yang anda tidak pernah tahu yang anda perlukan.
- Cabaran hosting Laravel tradisional
(atau: Kenapa contoh EC2 saya mengalami krisis eksistensi)
Sebelum tanpa pelayan, aplikasi Laravel saya tinggal di EC2. Untuk yang tidak dikenali, EC2 adalah tawaran pelayan peribadi maya Amazon. Ia kelihatan sesuai sehingga realiti melanda:a) Kos berterusan
menjalankan contoh EC2 adalah seperti memiliki kereta yang terus berjalan. Aplikasi saya tidak selalu sibuk, tetapi kosnya terus terkumpul. Antara contoh EC2, pengimbang beban, dan penyimpanan, saya membelanjakan kira -kira $ 110/bulan pada sistem yang sebahagian besarnya terbiar. Belanjawan saya? Tidak geli.
Saya tahu, itu bukan kekayaan, tetapi untuk pemaju solo, setiap dolar.b) Skala mimpi buruk
contoh EC2 tidak dapat diramalkan. Lonjakan lalu lintas? Kemalangan. Lalu lintas yang rendah? Masih membakar wang. Menguruskan autoscaling adalah perjuangan yang berterusan.
c) Tanggungjawab DevOps yang tidak dijangka
Pembangunan Laravel secara tidak disangka -sangka termasuk tugas sysadmin: menambal, debugging konfigurasi pelayan pada waktu ganjil -bukan aliran kerja ideal saya.
Itulah ketika saya meneroka tanpa pelayan, penyelesaian yang menangani isu -isu ini dengan sempurna.
AWS Serverless: Transformasi Awan PHP
-
mari penjelasan: tanpa pelayan tidak bermaksud tidak ada pelayan. Ini bermakna AWS mengendalikan pengurusan pelayan. Saya fokus pada pengekodan.
a) lambda: Enjin pelaksanaan atas permintaan
AWS Lambda adalah perkhidmatan pengiraan yang didorong oleh peristiwa. Ia melaksanakan kod sebagai tindak balas kepada peristiwa (permintaan HTTP, dll) dan hilang apabila selesai.
tiada kos terbiar:
bayar hanya untuk masa pelaksanaan.- skala yang mudah:
lambda secara automatik skala untuk mengendalikan pancang lalu lintas. - Arkitek Stateless: Slate bersih untuk setiap pelaksanaan, mempromosikan reka bentuk modular.
- b) Perkhidmatan Terurus: Pelakon Sokongan Leverless Leverage Suite perkhidmatan yang diuruskan:
- pangkalan data: Aurora Serverless (MySQL/Postgres) untuk pangkalan data SQL.
- Penyimpanan: S3 untuk penyimpanan fail berskala.
- giliran mesej: sqs untuk pemprosesan tugas asynchronous.
- sesi: berhijrah ke pangkalan data luaran (mysql, redis).
- Penyimpanan Fail: Gunakan S3 melalui Fasad Penyimpanan Laravel.
- Pengendalian barisan: Gunakan SQS sebagai pemandu barisan.
- caching: menggunakan redis atau dynamoDB.
- Pengoptimuman Masa Boot: Kini permulaan sejuk dengan mengeluarkan kebergantungan yang tidak perlu.
- Pengurusan Konfigurasi: Gunakan Pengurus Rahsia AWS atau kedai parameter untuk konfigurasi selamat.
c) Menangani cabaran PHP
PHP tidak dirancang pada mulanya tanpa pelayan. Mengadaptasi Laravel Perubahan yang Diperlukan:
Serverless bukan sekadar menggantikan pelayan; Ini mengenai pemikiran semula seni bina.
-
melepaskan potensi Laravel dengan pelayan
Adakah pelayan Laravel tanpa pelayan menyampaikan? Sudah tentu. Ia menyelesaikan masalah hosting tradisional sambil menawarkan penyelesaian yang lebih cepat, lebih berskala, dan kos efektif.
a) Permulaan sejuk: Menguruskan jangkaan
permulaan sejuk (lambda memulakan contoh baru) boleh diurus:
- realiti: permulaan sejuk biasa adalah ~ 3-5 saat.
- Penyelesaian: Laravel Octane (menyimpan aplikasi hidup), disediakan konkurensi (contoh pra-hangat).
Untuk kebanyakan aplikasi, kelewatan ringkas boleh diterima, terutamanya semasa trafik puncak.
b) Penggredan mudah
Skala adalah automatik. Aplikasi virus? Lambda mengendalikan lonjakan tanpa campur tangan.
c) penjimatan kos: garis bawah
kos EC2 saya ialah ~ $ 110/bulan. Kos lambda saya? ~ $ 34/bulan (pengurangan 70%!).
**Resource** | **EC2 Cost** | **Lambda Cost** |
---|---|---|
Compute | .00 | .50 |
Networking (LB, API Gateway) | .40 | .30 |
Storage | .80 | .90 |
Database | .00 | .00 |
**TOTAL** | **0.20** | **~.70** |
Serverless menjimatkan wang dan membebaskan tenaga mental.
NOTA: Saya pada mulanya menggunakan contoh MySQL. Catatan masa depan akan meneroka DynamoDB untuk pengoptimuman kos selanjutnya.
d) Kebebasan Penyelenggaraan: Pembebasan
Serverless menghapuskan penyelenggaraan pelayan:
- kemas kini automatik.
- konfigurasi mudah.
- Kapasiti elastik.
- Fokus pada ciri, bukan pemadam kebakaran.
-
Adakah Laravel tanpa pelayan untuk anda?
Serverless bukan untuk setiap aplikasi. Sifat tanpa kerakyatannya memerlukan pelarasan seni bina. Pertimbangkan faktor -faktor ini:
a) Ketidaktentuan: Adaptasi Diperlukan
Operasi Stateful Laravel memerlukan penyesuaian: Sesi, Fail, Log, Konfigurasi, dan Baris.
b) Lock-in vendor
Perkhidmatan AWS adalah proprietari. Migrasi ke platform lain memerlukan usaha.
c) Bila hendak mengelakkan pelayan
Elakkan tanpa pelayan untuk: websockets, beban kerja pengiraan berat, dan aplikasi bergantung pada keadaan pelayan yang berterusan.
-
Apa yang seterusnya?
Serverless Laravel menawarkan kelebihan yang ketara. Tinggal untuk Bahagian 2, memperincikan langkah -langkah pelaksanaan.
Fikiran anda: Apakah kebimbangan tanpa pelayan terbesar anda? Kongsi mereka di bawah! Saya akan menangani tiga teratas dalam bahagian 2.
Atas ialah kandungan terperinci Mengapa saya memindahkan aplikasi Laravel saya ke AWS tanpa pelayan (dan mengapa ia dapat menjimatkan masa dan wang anda). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.
Artikel Panas
Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)
Topik panas

Laravel memudahkan mengendalikan data sesi sementara menggunakan kaedah flash intuitifnya. Ini sesuai untuk memaparkan mesej ringkas, makluman, atau pemberitahuan dalam permohonan anda. Data hanya berterusan untuk permintaan seterusnya secara lalai: $ permintaan-

Pelanjutan URL Pelanggan PHP (CURL) adalah alat yang berkuasa untuk pemaju, membolehkan interaksi lancar dengan pelayan jauh dan API rehat. Dengan memanfaatkan libcurl, perpustakaan pemindahan fail multi-protokol yang dihormati, php curl memudahkan execu yang cekap

Laravel menyediakan sintaks simulasi respons HTTP ringkas, memudahkan ujian interaksi HTTP. Pendekatan ini dengan ketara mengurangkan redundansi kod semasa membuat simulasi ujian anda lebih intuitif. Pelaksanaan asas menyediakan pelbagai jenis pintasan jenis tindak balas: Gunakan Illuminate \ Support \ Facades \ http; Http :: palsu ([ 'Google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

Adakah anda ingin memberikan penyelesaian segera, segera kepada masalah yang paling mendesak pelanggan anda? Sembang langsung membolehkan anda mempunyai perbualan masa nyata dengan pelanggan dan menyelesaikan masalah mereka dengan serta-merta. Ia membolehkan anda memberikan perkhidmatan yang lebih pantas kepada adat anda

Artikel membincangkan pengikatan statik lewat (LSB) dalam PHP, yang diperkenalkan dalam Php 5.3, yang membolehkan resolusi runtime kaedah statik memerlukan lebih banyak warisan yang fleksibel. Isu: LSB vs polimorfisme tradisional; Aplikasi Praktikal LSB dan Potensi Perfo

Pembalakan PHP adalah penting untuk memantau dan menyahpepijat aplikasi web, serta menangkap peristiwa kritikal, kesilapan, dan tingkah laku runtime. Ia memberikan pandangan yang berharga dalam prestasi sistem, membantu mengenal pasti isu -isu, dan menyokong penyelesaian masalah yang lebih cepat

Penyimpanan :: Kaedah Muat turun Rangka Kerja Laravel menyediakan API ringkas untuk mengendalikan muat turun fail dengan selamat sambil menguruskan abstraksi penyimpanan fail. Berikut adalah contoh menggunakan penyimpanan :: muat turun () dalam pengawal contoh:

Laravel memudahkan pengendalian kata kerja HTTP dalam permintaan masuk, menyelaraskan pengurusan operasi yang pelbagai dalam aplikasi anda. Kaedah () dan ismethod () kaedah mengenal pasti dan mengesahkan jenis permintaan. Ciri ini penting untuk membina