Akaun Google Cloud untuk dijual: Gunakan GCP Cloud Run selama 5 minit tanpa pelayan (Serverless) untuk menggunakan aplikasi web

2026-05-30 阅读 17
cloud

Sebagai pembangun atau arkitek, setelah menulis aplikasi web yang sangat baik (sama ada Node.js, Python Flask, Go atau Java Spring Boot), perkara yang paling menarik adalah tidak menukar bug, tetapi

Penyebaran

Proses penyebaran tradisional hanyalah mesin penggunaan masa: anda mesti membeli mesin maya VMterlebih dahulu, melengkapkan sistem operasi, memasang persekitaran Docker, dan melengkapkan pelbagai peraturan kemasukan kumpulan keselamatan. Apabila lalu lintas tinggi, anda harus mempertimbangkan bagaimana melakukan pengimbangan beban dan pengedaran kluster. Sekiranya lalu lintas habis, anda harus menyaksikan pelayan terbiar dan kad memotong wang dengan sia-sia. Kumpulan K8s yang dibina sendiri sememangnya tinggi, tetapi ambang operasi dan penyelenggaraan yang tinggi dan anggaran perkakasan secara langsung dapat memakan pasukan kecil.

Dalam ekologi Google Cloud(GCP, Google Cloud), ada langkah besar untuk pengurangan dimensi dan memerangi produktiviti yang dirancang untuk pembebasan dan pengembangan, yang disebut

Cloud Run

Logik terasnya sangat murni:

Bekas Serverless (tanpa pelayan)

。 Anda hanya perlu mengemas aplikasi anda ke dalam cermin Docker standard dan membuangnya, dan ia akan mengeluarkan sijil HTTPS, pengimbangan beban global, dan laman web rangkaian awam automatik dan fleksibel untuk anda dalam masa 5 minit.

Yang paling tidak terkalahkan adalah mod pengebomannya:

Pengebilan atas permintaan sepenuhnya, menyokong pengurangan kapasiti menjadi 0(Scale to Zero)

。 Ini bermaksud bahawa jika tidak ada yang mengunjungi laman web anda, ia tidak memerlukan CPU dan memori, dan Google tidak akan menolak sesen pun.

Hari ini kita tidak menghafal konsep rasmi dan menolak omong kosong. Bawa kod anda, mari kita mulakan secara langsung dari seni bina teras, dan bawa anda ke aplikasi Web Serverless pertama anda dalam talian dengan lancar dalam masa 5 minit.

Peringkat pertama: pembongkaran mendalam, "model dunia minimalis" Cloud Run

Sebelum menggunakan secara langsung, anda mesti menjelaskan logik operasi fizikal di bahagian bawah Cloud Run dalam fikiran anda, jika tidak, anda akan buta apabila anda memasuki konsol untuk menghadapi pelbagai parameter serentak dan memori.

Aliran data yang mendasari keseluruhan sistem dikimpal dengan lancar oleh tiga komponen teras:

Arkib Kontena: Terminal kontena kod anda. Ini adalah gudang cermin generasi baru GCP, menggantikan GCR lama. Aplikasi anda akan dibungkus ke dalam cermin Docker dan disimpan di sini.

Perkhidmatan Cloud Run (Perkhidmatan): Otak Penjadualan Serverless anda. Ia bertanggungjawab untuk merenung cermin. Apabila permintaan HTTP masuk di rangkaian awam, ia akan menarik gambar cermin ke dalam instance untuk mengambil pelanggan.

Enjin automatik: polis trafik trafik anda. Sekiranya 10,000 orang memulakan permintaan pada masa yang sama, ia akan segera menarik puluhan bekas di latar belakang untuk berkongsi tekanan; jika tidak ada yang berkunjung selama beberapa minit, ia akan memusnahkan semua bekas secara fizikal.

Masukkan keadaan hibernasi kos sifar.

Tahap kedua: latihan pertempuran sebenarnya-5 minit untuk lulus dalam talian

Mari kita anggap bahawa anda telah menulis aplikasi web Node.js atau Python yang paling asas secara tempatan, dan alat baris arahan Docker dan GCP (gcloud CLI) telah dipasang secara tempatan.

Langkah 1: "Kontena" (Dockerfile) Kod Tempatan

Di direktori root projek anda, buat standard baru

Dockerfile

Fail. Berikut adalah salah satu aplikasi Node.js yang paling mudah:

# Gunakan cermin Node ringan rasmi

Kod FROM: 18-slim

# Tetapkan direktori kerja

WORKDIR /usr/src/app

# Salin konfigurasi dan pemasangan bergantung

Pakej COPY *.json ./

RUN npm install-hanya = pengeluaran

# Salin keseluruhan kod pakej

COPY ..

# Dedahkan port (Catatan: Cloud Run akan menyuntikkan pemboleh ubah persekitaran yang disebut PORT ke dalam bekas secara lalai, biasanya 8080)

EXPOSE 8080

# Perintah permulaan, mesti dipantau 0.0.0.0

CMD [ "node", "server.js"]

Panduan Mengelakkan Lubang Teras: Dalam kod aplikasi anda, IP pemantauan tidak boleh ditulis hingga 127.0.0.1, dan 0.0.0.0 mesti dipantau. Port secara langsung membaca proses pemboleh ubah persekitaran. env.PORT. Sekiranya Python, perintah permulaan ditulis sebagai CMD ["gunicorn", "-bind", "0.0.0.0:8080", "main:app"]. Sekiranya pemantauan salah, Cloud Run secara langsung akan melaporkan waktu henti yang salah kerana tidak dapat mendapatkan tindak balas degupan jantung kontena ketika dimulakan.

Langkah 2: Buat Terminal Cermin di GCP (Artifact Registry)

Buka terminal anda dan gunakan

Gcloud

Perintah untuk membina gudang Docker di kawasan yang paling dekat dengan anda. Katakan kita memilih Taiwan, China (

Asia-east1

), ID projek dipanggil

My-serverless-project

:

Gcloud artifacts reposories create my-docker-repo \

-- Repository-format = docker \

-Lokasi = asia-east1 \

-Description = "Saya

App Repo Serverless"

Langkah 3: Pembungkusan tempatan dan menolak aliran ke awan

Gunakan Docker tempatan untuk menyusun gambar dan membawa jalan gudang GCP yang lengkap dengan nama.

Kod penjajaran (konfigurasi pensijilan Docker): asia-east1-docker.pkg.dev konfigurasi automatik Basgcloud

Menyusun dan mengemas: Bashidocker build -t asia-east1-docker.pkg.dev/my-serverless-project/my-docker-repo/web-app: v1.0.

Aliran tolak penuh: asia-east1-docker.pkg.dev tolak Bashidocker/projek saya-serverless/repo/web-app:v1.0

Melihat bar kemajuan yang biasa di terminal selesai, kontena anda telah terbaring dengan kuat di awan keselamatan Google yang diedarkan.

Langkah 4: Momen paling sejuk-satu klik untuk mengaktifkan Cloud Run

Kembali ke

Konsol GCP

, cari dan masuk

Cloud Run

Halaman.

Klik pada bahagian atas

"Perkhidmatan Penciptaan"

, Masukkan medan perang konfigurasi teras:

Gunakan versi yang disemak semula: Klik untuk memilih, dan pilih aplikasi web: v1.0 yang baru anda tolak.

Nama perkhidmatan: Dinamakan saya-web-perkhidmatan.

Wilayah: Sangat disarankan untuk konsisten dengan gudang cermin, pilih asia-east1 (Taiwan), dan kelewatan rangkaian akses domestik sangat rendah.

Autoskaling: Nombor contoh minimum: Masukkan 0 (hidupkan teknologi hitam tanpa akses tanpa pemotongan). Jumlah maksimum contoh: Masukkan 10 pada awal ujian untuk mengelakkan lalu lintas yang berniat jahat menyebabkan perbelanjaan berlebihan.

Pengesahan (Pengesahan): Sebagai aplikasi web untuk orang ramai, kami tidak teragak-agak untuk memeriksa "Benarkan tidak disahkan (Benarkan tidak disahkan)". Sekiranya anda tidak mencentang, orang di luar akan langsung ditolak oleh pengembalian Google 403.

Klik di bahagian bawah

“Cipta”

Tahap ketiga: pengesahan dalam talian dan laman web sebenar "permulaan sejuk"

Selepas klik Buat, lihat bulatan kecil di skrin. Cloud Run secara automatik akan mengkonfigurasi pengimbangan beban, pemetaan nama domain dan terowong penyulitan SSL untuk anda di latar belakang.

Biasanya hanya

30 saat hingga 1 minit

, Tandakan hijau besar akan menyala di bahagian atas konsol, dan bentuk seperti htt akan dikeluarkan untuk anda

Ps: //

My-web-service-xxxx-de.a.run.app

URL tetap HTTPS rasmi.

Klik pada URL ini, laman web akan dibuka dalam beberapa saat! Tahniah, aplikasi Web Serverless anda telah terkenal sepenuhnya.

Eksperimen orang dalam tegar: Apa itu "permulaan sejuk"?

Untuk mengesahkan kekuatan "menyusut menjadi 0", matikan laman web, tinggalkan papan kekunci dengan kedua tangan, dan tunggu dengan tenang selama 15 minit.

Pada masa ini, pergi ke Metrics konsol untuk melihat, dan anda akan mendapati bahawa bilangan contoh aktif di latar belakang telah sepenuhnya sifar. Pada ketika ini,

Oleh kerana tidak ada contoh yang berjalan, jam pasir bil anda benar-benar statik.

Sekarang, klik sekali lagi untuk membuka laman web awam itu. Anda akan mendapati bahawa laman web tidak dibuka dalam beberapa saat seperti sebelumnya, tetapi sedikit tersekat.

1 hingga 2 saat

Ia dikeluarkan selepas itu.

Insider teknikal: Ini adalah "Cold Start" yang terkenal dalam industri streaming dan Serverless. Kerana tidak ada yang berkunjung dalam 15 minit pertama, Google mengosongkan bekas anda sepenuhnya. Apabila anda mengklik lagi, sistem mesti menjadualkan sementara sumber mesin fizikal di latar belakang, memuat semula gambar Docker anda, menyahmampatkan, dan memulakan program utama. Kelewatan 1 hingga 2 saat ini adalah harga kecil yang mesti dibayar untuk menjimatkan wang.

Tahap keempat: sejarah penghindaran darah dan air mata struktur peringkat komersial dan penyesuaian penunjuk kilang besar

Set seni bina Serverless ini sangat menyegarkan untuk digunakan, tetapi dalam persekitaran pengeluaran serentak tinggi peringkat perusahaan yang sebenar, arkitek operasi dan penyelenggaraan mesti segera melakukan "pembedahan halus" pada parameter lalai, jika tidak, mereka akan menginjak dua darah berikut jika mereka tidak berhati-hati. Lubang besar:

1. Ledakan "dinding serentak zombie" pangkalan data belakang

Banyak pembangun pemula merasakan bahawa kerana Cloud Run dapat berkembang secara automatik tanpa had, maka saya akan menetapkan jumlah maksimum contoh menjadi 1000. Akibatnya, sebaik sahaja promosi Black Friday tiba, lalu lintas melambung tinggi, dan Cloud Run sangat berdedikasi untuk menarik 500 bekas dalam sekelip mata untuk menjemput pelanggan.

Bencana berlaku: 500 kontena memulakan permintaan sambungan ke pangkalan data hubungan Cloud SQL belakang pada masa yang sama. Jumlah maksimum sambungan ke pangkalan data MySQL tradisional mungkin hanya 200. Akibatnya, pangkalan data langsung dihancurkan oleh lalu lintas secara tiba-tiba, menyebabkan keseluruhan perniagaan lumpuh.

Penyelesaian standard untuk pengeluar utama: Masukkan tetapan lanjutan "kontena, sambungan, keselamatan" Cloud Run: tingkatkan "jumlah maksimum serentak" dari nilai lalai (misalnya, tetapkan ke 80 atau bahkan 100). Ini bermaksud bahawa contoh kontena membolehkan 80 permintaan HTTP serentak diproses pada masa yang sama. Hanya apabila 80 lubang ini penuh, Google akan menarik bekas baru. Bekerjasama dengan kumpulan sambungan (Sambungan) di hadapan pangkalan data belakang

Kolam), mengunci had pengembangan maksimum untuk melindungi aset teras belakang yang rapuh.

2. Tidak tahan dengan kemahiran memecahkan "permulaan sejuk"

Sekiranya perniagaan anda adalah pembayaran e-dagang dalam talian yang sangat teras, atau antara muka API yang sangat sensitif terhadap kelewatan, jika pengguna mengalami pembekuan permulaan sejuk selama 2 saat ketika membayar, mereka mungkin akan menghentikan pembayaran secara langsung.

Trik penalaan arkitek: Tidak ada makan tengah hari percuma di dunia. Sekiranya anda ingin mematikan permulaan sejuk sepenuhnya, kurangkan tetapan kapasiti dan ubah "Minimum instances" dari 0 ke 1.

Kos dan faedah: Setelah berubah menjadi 1, walaupun tidak ada yang berkunjung di tengah malam, Google akan meninggalkan bekas berprofil rendah untuk anda di ruang komputer. Walaupun ini akan menghasilkan sejumlah kecil elaun sara hidup tetap (kira-kira beberapa dolar sebulan), ia ditukar dengan akses 24 jam oleh pengguna di seluruh dunia, yang selalu dalam milisaat, yang benar-benar melicinkan kekurangan pengalaman yang disebabkan oleh permulaan yang sejuk..

Ringkasan

Dengan menggunakan GCP Cloud Run untuk memainkan penyebaran Serverless, inti pati industri terletak pada enam belas perkataan:

Pakej cermin, pengembangan berdasarkan permintaan, pengembangan kawalan, serentak tersekat

Anda tidak perlu lagi membuang masa berharga anda untuk operasi dan penyelenggaraan sistem sepele seperti memasang sistem operasi dan memperbaiki firewall. Selagi kod anda dapat masuk ke dalam bekas Docker secara tempatan, Cloud Run dapat memberi anda garis pertahanan front-end peringkat perusahaan dengan fleksibiliti yang tidak terbatas, pemulihan bencana automatik, dan kekangan anggaran yang melampau. Mengembalikan kuasa dominan ke kod itu sendiri adalah postur pengembangan yang paling sahih dan elegan di era awan moden.

1
← 返回新闻中心