Bayar mengikut penggunaan anda, berskala kepada sifar apabila tidak digunakan, dan berhenti mengurus pelayan sepenuhnya — tetapi ketahui bila ekonomi tidak lagi berkesan.

Aplikasi anda mempunyai trafik yang berubah-ubah — senyap semalaman, peningkatan mendadak semasa waktu perniagaan, dan ledakan yang tidak dijangka daripada kempen pemasaran atau acara bermusim. Anda membayar untuk pelayan yang terbiar 70% daripada masa. Atau anda sedang membina produk baharu dan tidak mahu melabur dalam peruntukan infrastruktur, perancangan kapasiti, dan giliran atas panggilan sebelum anda mengesahkan kesesuaian produk-pasaran. Serverless memberi anda penetapan harga mengikut permintaan, penskalaan automatik, dan pengurusan infrastruktur sifar — tetapi hanya apabila ciri-ciri beban kerja sesuai.
Explore more design patterns and system architectures
Arkitek kami dapat membantu merancang dan membina sistem menggunakan pola ini untuk keperluan khusus anda.
Hubungi KamiSeni bina Serverless-first membina aplikasi sepenuhnya pada perkhidmatan komputasi terurus, berskala kepada sifar (Lambda, Cloud Functions, Vercel Functions) yang dihubungkan oleh perkhidmatan peristiwa terurus (EventBridge, SQS, Step Functions). Tiada pelayan untuk ditampal, tiada kluster untuk diubah saiz, tiada kapasiti untuk dirancang. Fungsi-fungsi dilaksanakan sebagai tindak balas kepada peristiwa (permintaan HTTP, mesej barisan gilir, pencetus jadual, perubahan pangkalan data) dan berskala secara automatik dari sifar kepada ribuan instans serentak. Corak ini meluas kepada pangkalan data serverless (DynamoDB, Neon, PlanetScale), barisan gilir serverless (SQS), dan orkestrasi serverless (Step Functions, Temporal Cloud).
Seni bina ini bersifat pendorong peristiwa (event-driven). Sebuah API Gateway (AWS API Gateway, Vercel) menghala permintaan HTTP kepada fungsi individu. Sumber peristiwa (barisan gilir SQS, peraturan EventBridge, pemberitahuan S3, aliran DynamoDB) mencetuskan fungsi secara tak segerak (asynchronously). Step Functions atau Temporal mengkoordinasi aliran kerja berbilang langkah di mana setiap langkah adalah fungsi dengan cuba semula, had masa, dan pengendalian ralat terbina dalam. Pangkalan data serverless (DynamoDB untuk nilai kunci, Neon/PlanetScale untuk relasional) menguruskan penyimpanan tanpa pengurusan kapasiti. Corak strangler fig membolehkan migrasi berperingkat daripada monolit sedia ada.
| Lapisan | Teknologi |
|---|---|
| Komputasi | AWS Lambda, Vercel Functions (Fluid Compute), Google Cloud Functions, Cloudflare Workers |
| API | API Gateway (REST/WebSocket), Vercel, AppSync (GraphQL) |
| Orkestrasi | AWS Step Functions, Temporal Cloud, Vercel Workflow DevKit |
| Data | DynamoDB, Neon Postgres, PlanetScale, Upstash Redis, S3 |
| Peristiwa | EventBridge, SQS, SNS, Vercel Queues |
| Kebolehcerapan | CloudWatch, Datadog (pemantauan serverless), Lumigo, X-Ray |
| Gunakan Apabila | Elak Apabila |
|---|---|
| Trafik berubah-ubah dengan tempoh terbiar yang signifikan (skala-ke-sifar menjimatkan wang) | Trafik stabil dan volum tinggi — instans yang ditempah adalah 50-70% lebih murah pada beban berterusan |
| Anda mahukan pengurusan infrastruktur sifar dan overhead operasi | Anda memerlukan sambungan berterusan (pelayan WebSocket, kumpulan sambungan pangkalan data) — walaupun Vercel mengendalikan ini |
| Aplikasi boleh dipecahkan secara semula jadi menjadi fungsi pendorong peristiwa | Beban kerja memerlukan > 15 minit pelaksanaan berterusan setiap permintaan |
| Anda sedang berpindah secara berperingkat daripada monolit dan mahukan pelancaran setiap titik akhir | Pasukan tidak biasa dengan sistem teragih — serverless memperkenalkan kerumitan penyahpepijatan teragih |
MW menganggap serverless sebagai keputusan ekonomi, bukan keputusan dogma. Kami memodelkan kos serverless berbanding kontena berbanding instans yang ditempah untuk corak trafik sebenar anda (bukan teori), dan mengesyorkan pilihan yang meminimumkan jumlah kos pemilikan termasuk masa kejuruteraan untuk operasi. Seni bina serverless kami termasuk atribusi kos setiap fungsi (menandai setiap panggilan dengan ciri yang mencetuskannya), pemantauan permulaan sejuk dengan amaran apabila P99 melebihi ambang, dan buku panduan migrasi berperingkat yang memindahkan satu titik akhir setiap sprint. Kami telah memindahkan monolit ke serverless untuk syarikat media, produk SaaS, dan platform e-dagang — dan dalam dua kes, kami telah memindahkan bahagian-bahagian kembali ke kontena apabila ciri-ciri beban kerja berubah.
Keselamatan bukanlah ciri yang anda tambah selepas pelancaran. Ia adalah sifat seni bina — sama ada sistem itu direka bentuk untuknya, atau tidak.
Serverless-first kurang sesuai untuk proses yang berjalan lama melebihi 15 minit, beban kerja yang memerlukan sambungan WebSocket berterusan, aplikasi dengan trafik high-throughput yang konsisten di mana reserved capacity adalah lebih murah, dan sistem yang memerlukan konfigurasi OS atau network peringkat rendah. MicrocosmWorks menilai setiap beban kerja berdasarkan kekangan ini semasa reka bentuk seni bina dan mengesyorkan pendekatan hibrid di mana serverless mengendalikan API endpoints dan event processing manakala containers atau VMs menjalankan beban kerja yang memerlukan persistent compute. Pendekatan pragmatik ini mengelakkan kesilapan biasa memaksa setiap komponen ke dalam serverless apabila ia tidak sesuai.
MicrocosmWorks mengurangkan cold start Lambda melalui provisioned concurrency untuk titik akhir kritikal, pengoptimuman bundel fungsi untuk mengurangkan masa inisialisasi, dan penggunaan strategik Lambda SnapStart untuk beban kerja Java yang memendekkan cold start dari saat ke milisaat. Kami juga mereka bentuk aplikasi supaya laluan sensitif kependaman menggunakan runtime ringan seperti Node.js atau Python dengan kebergantungan minimum, mengekalkan cold start di bawah 200ms walaupun tanpa provisioned concurrency. Untuk titik akhir di mana kependaman sedemikian pun tidak dapat diterima, kami menggunakan Lambda@Edge atau CloudFront Functions untuk respons di bawah 10ms.
MicrocosmWorks menyiapkan persekitaran pembangunan tempatan menggunakan alat seperti SST (Serverless Stack), LocalStack, atau Serverless Framework's offline mode yang meniru perkhidmatan awan pada mesin pembangun dengan ketepatan hampir seperti pengeluaran. Kami melaksanakan suite ujian integrasi yang berjalan terhadap persekitaran awan sementara yang diwujudkan bagi setiap pull request, supaya pembangun dapat mengesahkan terhadap perkhidmatan AWS sebenar tanpa berkongsi persekitaran staging. Pendekatan dwi ini memberikan gelung lelaran tempatan yang pantas untuk pembangunan sambil mengesan isu khusus awan sebelum kod mencapai pengeluaran.
MicrocosmWorks telah mendapati bahawa serverless jauh lebih murah untuk aplikasi dengan corak trafik berubah-ubah atau memuncak—selalunya 70-90% kurang daripada penempatan kontena 'always-on' yang setara—tetapi kelebihan kos berkurang pada kadar pemprosesan berterusan melebihi 10-20 juta invocations sebulan. Kami membina model unjuran kos semasa reka bentuk architecture yang membandingkan harga per-invocation serverless dengan kapasiti kontena yang ditempah untuk corak trafik khusus anda, termasuk kos tersembunyi seperti caj API Gateway dan yuran pemindahan data. Perkhidmatan optimization kami, tersedia pada kadar perundingan $10-$35/jam, sentiasa menyemak bil serverless untuk mengenal pasti pembaziran daripada memori yang terlebih peruntukan (over-provisioned memory), tempoh fungsi yang berlebihan (excessive function durations), atau penggunaan API Gateway yang tidak perlu.
MicrocosmWorks menggunakan proksi pengumpulan sambungan (connection pooling proxies) seperti Amazon RDS Proxy atau PgBouncer yang digunakan sebagai lapisan berterusan antara fungsi Lambda dan pangkalan data, yang memultipleks beribu-ribu sambungan Lambda ke dalam kumpulan sambungan pangkalan data sebenar yang boleh diurus. Kami juga mereka bentuk aplikasi tanpa pelayan (serverless applications) untuk mengutamakan DynamoDB atau pangkalan data tanpa sambungan (connection-less databases) lain untuk beban kerja berketumpatan tinggi (high-concurrency workloads) di mana pengumpulan sambungan (connection pooling) masih akan menimbulkan kesesakan. Untuk aplikasi yang mesti menggunakan pangkalan data relasional (relational databases), kami melaksanakan had penskalaan yang peka sambungan (connection-aware scaling limits) yang mengehadkan invokasi Lambda serentak untuk memadankan kapasiti sambungan pangkalan data.