1. Pengenalan
Peralihan daripada seni bina monolitik kepada mikroperkhidmatan yang longgar dalam aplikasi awan memperkenalkan kerumitan yang ketara dalam pengurusan sumber. Pembangun perlu memutuskan berapa banyak sumber pengiraan (contohnya, replika kontena, VM) yang perlu diperuntukkan kepada setiap mikroperkhidmatan. Keputusan ini memberi kesan kritikal kepada kedua-dua kos operasi pembangun dan latensi hujung-ke-hujung yang dialami oleh pengguna aplikasi. Kaedah penskalakan automatik tradisional, seperti Horizontal Pod Autoscaling (HPA), menskala setiap mikroperkhidmatan secara bebas berdasarkan metrik tempatan seperti penggunaan CPU. Walau bagaimanapun, pendekatan ini tidak optimum kerana ia mengabaikan sifat saling bergantung mikroperkhidmatan dalam aliran kerja aplikasi. COLA (Collective Autoscaler) dicadangkan sebagai penyelesaian yang memperuntukkan sumber secara kolektif merentasi semua mikroperkhidmatan dengan objektif global: meminimumkan kos kewangan sambil memastikan latensi hujung-ke-hujung aplikasi kekal di bawah sasaran yang ditetapkan.
2. Masalah dengan Penskalakan Automatik Bebas
Penskalaan automatik piawai industri semasa beroperasi secara teragih, untuk setiap mikroperkhidmatan. Setiap perkhidmatan mencetuskan tindakan penskalaan (menambah/mengalih keluar VM atau pod) apabila penggunaan sumbernya sendiri (CPU, memori) melepasi ambang. Kelemahan asasnya ialah pandangan tempatan ini gagal mengambil kira prestasi global aplikasi. Meningkatkan latensi satu mikroperkhidmatan mungkin memberi impak yang boleh diabaikan pada latensi keseluruhan yang dirasai pengguna jika perkhidmatan lain dalam rantaian kekal sebagai penghad. Ini membawa kepada peruntukan sumber yang tidak cekap—menyediakan lebihan untuk beberapa perkhidmatan sambil menyediakan kurang untuk penghad kritikal—menyebabkan kos yang lebih tinggi tanpa mencapai Sasaran Tahap Perkhidmatan (SLO) latensi yang diingini.
3. COLA: Pendekatan Penskalakan Automatik Kolektif
COLA membingkai semula masalah penskalakan automatik sebagai masalah pengoptimuman terkekang. Ia menggantikan pelbagai penskala automatik bebas dengan satu pengawal berpusat yang mempunyai visibiliti global ke atas topologi dan prestasi mikroperkhidmatan aplikasi.
3.1. Kerangka Pengoptimuman Teras
Matlamat ini diformalkan sebagai:
- Objektif: Meminimumkan jumlah kos pengiraan.
- Kekangan: Latensi min atau ekor hujung-ke-hujung aplikasi ≤ Sasaran Latensi.
- Pembolehubah Keputusan: Bilangan VM (atau replika) yang diperuntukkan kepada setiap mikroperkhidmatan $i$, ditandakan sebagai $n_i$.
Ini adalah masalah pengoptimuman tak linear yang kompleks kerana hubungan antara $n_i$ dan latensi hujung-ke-hujung tidak langsung dan bergantung pada corak beban kerja dan komunikasi antara perkhidmatan.
3.2. Proses Carian Luar Talian
Menyelesaikan pengoptimuman ini dalam talian adalah tidak praktikal kerana masa yang diperlukan untuk penyediaan dan penstabilan prestasi. Oleh itu, COLA menggunakan proses carian luar talian:
- Aplikasi Beban Kerja: Gunakan beban kerja wakil pada aplikasi.
- Pengenalpastian Penghad: Kenal pasti mikroperkhidmatan yang paling sesak (peningkatan terbesar dalam penggunaan CPU di bawah beban).
- Peruntukan Sumber melalui Masalah Bandit: Untuk perkhidmatan penghad, tentukan bilangan VM optimum menggunakan formulasi bandit pelbagai lengan. Fungsi "ganjaran" mengimbangi peningkatan latensi dengan peningkatan kos.
- Pengulangan: Ulangi langkah 2-3 untuk mikroperkhidmatan seterusnya yang paling sesak sehingga sasaran latensi global dicapai.
- Penjanaan Polisi: Hasilnya ialah polisi penskalaan (pemetaan daripada ciri beban kerja kepada peruntukan sumber) yang boleh digunakan dalam talian.
COLA boleh melakukan interpolasi antara beban kerja yang diketahui dan kembali kepada penskala automatik lalai jika menghadapi corak beban kerja yang tidak pernah dilihat.
4. Butiran Teknikal & Formulasi Matematik
Masalah pengoptimuman teras boleh diwakili secara abstrak sebagai:
$$\min_{\{n_i\}} \sum_{i=1}^{M} C_i(n_i)$$ $$\text{subject to: } L_{e2e}(\{n_i\}, \lambda) \leq L_{target}$$ $$n_i \in \mathbb{Z}^+$$ Di mana:
- $M$: Bilangan mikroperkhidmatan.
- $n_i$: Bilangan unit sumber (contohnya, VM) untuk mikroperkhidmatan $i$.
- $C_i(n_i)$: Fungsi kos untuk mikroperkhidmatan $i$ dengan $n_i$ unit.
- $L_{e2e}$: Fungsi latensi hujung-ke-hujung, bergantung pada semua $n_i$ dan keamatan beban kerja $\lambda$.
- $L_{target}$: SLO latensi yang diingini.
5. Keputusan Eksperimen & Penilaian
COLA dinilai dengan teliti berbanding beberapa penskala automatik asas (berasaskan penggunaan dan berasaskan ML) di Google Kubernetes Engine (GKE).
5.1. Persediaan Eksperimen
- Aplikasi: 5 aplikasi mikroperkhidmatan sumber terbuka (contohnya, Simple WebServer, BookInfo, Online Boutique).
- Platform: GKE Standard (nod diurus pengguna) dan GKE Autopilot (infrastruktur diurus pembekal).
- Asas Perbandingan: HPA standard (berasaskan CPU), penskala automatik lanjutan berasaskan ML.
- Beban Kerja: 63 corak beban kerja berbeza.
- Sasaran: Memenuhi SLO latensi median atau ekor (contohnya, p95) yang ditetapkan.
5.2. Metrik Prestasi Utama
Pencapaian SLO
53/63
Beban kerja di mana COLA memenuhi sasaran latensi.
Pengurangan Kos Purata
19.3%
Berbanding penskala automatik seterusnya yang paling murah.
Polisi Paling Kos-Efektif
48/53
COLA adalah yang paling murah untuk 48 daripada 53 beban kerja yang berjaya.
Keoptimuman pada Aplikasi Kecil
~90%
Untuk aplikasi yang lebih kecil di mana carian menyeluruh mungkin, COLA menemui konfigurasi optimum dalam ~90% kes.
5.3. Ringkasan Keputusan
Keputusan menunjukkan kelebihan ketara COLA. Ia secara konsisten mencapai SLO latensi yang diingini di mana yang lain gagal, dan melakukannya pada kos yang jauh lebih rendah. Penjimatan kos begitu ketara sehingga "kos latihan" untuk menjalankan carian luar talian COLA telah dipulihkan dalam beberapa hari operasi. Pada GKE Autopilot, faedah COLA lebih ketara lagi, kerana ia berkesan mengemudi abstraksi yang diurus pembekal untuk meminimumkan kos.
Penerangan Carta (Bayangan): Satu carta bar mungkin menunjukkan "Kos per Permintaan Berjaya" atau "Jumlah Kos Kluster" pada paksi-Y, dengan penskala automatik berbeza (COLA, HPA, ML-A) pada paksi-X. Bar COLA akan jauh lebih rendah. Carta kedua mungkin menunjukkan "Kadar Pelanggaran SLO Latensi," di mana bar COLA menghampiri sifar sementara yang lain menunjukkan kadar pelanggaran yang lebih tinggi.
6. Kerangka Analisis & Contoh Kes
Perspektif Penganalisis: Dekonstruksi Empat Langkah
Wawasan Teras: Kejayaan asas kertas ini bukanlah algoritma baharu yang mewah, tetapi peralihan perspektif yang kritikal: merawat keseluruhan aplikasi mikroperkhidmatan sebagai satu sistem untuk dioptimumkan, bukan koleksi bahagian bebas. Ini adalah analogi kepada peralihan dalam penglihatan komputer yang dibawa oleh model seperti CycleGAN (Zhu et al., 2017), yang melangkaui terjemahan imej berpasangan dengan mempertimbangkan konsistensi kitaran keseluruhan domain transformasi. COLA menggunakan prinsip "konsistensi global" yang serupa untuk pengurusan sumber.
Aliran Logik: Hujahnya sangat mudah dan meyakinkan: 1) Optimum tempatan (penskalaan per-perkhidmatan) menjumlah kepada ketidakcekapan global. 2) Oleh itu, gunakan objektif global (kos) dengan kekangan global (latensi hujung-ke-hujung). 3) Memandangkan menyelesaikan ini dalam talian terlalu perlahan, selesaikannya luar talian melalui carian dan gunakan polisi tersebut. Keanggunan terletak pada penggunaan masalah bandit untuk menjadikan carian untuk peruntukan optimum penghad cekap, satu teknik yang disokong oleh penyelidikan meluas dalam pembelajaran pengukuhan untuk pengoptimuman sistem (contohnya, kerja dari RISELab UC Berkeley).
Kekuatan & Kelemahan: Kekuatan: Keputusan empirikal adalah cemerlang—pengurangan kos 19.3% adalah angka peringkat bilik mesyuarat. Pendekatan luar talian adalah pragmatik, mengelakkan ketidakstabilan masa jalan. Kerangka kerja ini bebas platform. Kelemahan: Titik lemahnya ialah pergantungan pada beban kerja luar talian wakil. Dalam aplikasi yang berkembang pesat atau di bawah peristiwa trafik "black swan", polisi yang dikira awal mungkin sudah lapuk atau membawa bencana. Cadangan kertas untuk kembali kepada penskala automatik lalai adalah penyelesaian sementara, bukan penawar, untuk isu keteguhan ini. Tambahan pula, kerumitan carian mungkin meningkat dengan teruk dengan bilangan mikroperkhidmatan, berpotensi menghadkan penggunaannya dalam aplikasi yang sangat besar dan kompleks.
Wawasan Boleh Tindak: Untuk arkitek awan, mesejnya jelas: berhenti menetapkan ambang CPU secara terpencil. Labur dalam membina atau menerima pakai kebolehcerapan prestasi global dan enjin keputusan berpusat. Mulakan dengan pendekatan hibrid: gunakan falsafah COLA untuk menentukan rantaian perkhidmatan kritikal dan gunakan penskalaan kolektif di sana, sementara membiarkan perkhidmatan bebas yang kurang kritikal pada HPA tradisional. Pulangan pelaburan, seperti yang ditunjukkan, boleh cepat. Pembekal awan harus ambil perhatian; alat seperti GKE Autopilot memerlukan lapisan orkestrasi pintar seperti ini untuk benar-benar menunaikan janji infrastruktur "terurus".
7. Prospek Aplikasi & Hala Tuju Masa Depan
Prinsip di sebalik COLA mempunyai kebolehgunaan luas melangkaui penskalaan VM asas:
- Penskalaan Pelbagai Sumber & Heterogen: Versi masa depan boleh membuat keputusan kolektif tentang saiz VM (dioptimumkan memori vs. pengiraan), peruntukan GPU, dan juga penempatan merentasi zon ketersediaan atau pembekal awan untuk kos dan ketahanan.
- Integrasi dengan Mesh Perkhidmatan: Menggandingkan COLA dengan mesh perkhidmatan (seperti Istio) akan menyediakan telemetri yang lebih kaya (penjejakan peringkat permintaan, graf kebergantungan) dan membolehkan kawalan langsung ke atas penghalaan trafik dan pemutus litar sebagai sebahagian daripada pengoptimuman.
- Penyesuaian Dalam Talian & Meta-Pembelajaran: Sempadan penyelidikan utama adalah mengatasi had luar talian. Teknik daripada meta-pembelajaran boleh membolehkan COLA menyesuaikan polisinya dengan cepat dalam talian berdasarkan maklum balas masa nyata, atau meneroka konfigurasi baharu dengan selamat semasa tempoh trafik rendah.
- Objektif Pengkomputeran Hijau: Objektif pengoptimuman boleh diperluaskan untuk meminimumkan jejak karbon atau penggunaan tenaga, selari dengan inisiatif pengkomputeran mampan, dengan menggabungkan data daripada sumber seperti projek Cloud Carbon Footprint.
- Pasaran untuk Polisi: Untuk corak aplikasi biasa (contohnya, e-dagang, str media), polisi COLA yang telah dioptimumkan boleh dikongsi atau dijual, mengurangkan keperluan untuk sesi latihan individu.
8. Rujukan
- Sachidananda, V., & Sivaraman, A. (2022). COLA: Collective Autoscaling for Cloud Microservices. arXiv preprint arXiv:2112.14845v3.
- Zhu, J., Park, T., Isola, P., & Efros, A. A. (2017). Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks. Proceedings of the IEEE International Conference on Computer Vision (ICCV).
- Burns, B., Grant, B., Oppenheimer, D., Brewer, E., & Wilkes, J. (2016). Borg, Omega, and Kubernetes. Queue, 14(1), 70–93.
- Hoffman, M., Shahriari, B., & Aslanides, J. (2020). Addressing Function Approximation Error in Actor-Critic Methods. Proceedings of the 37th International Conference on Machine Learning (ICML). (Contoh RL lanjutan yang relevan untuk penyesuaian dalam talian).
- Cloud Carbon Footprint. (n.d.). An open source tool to measure and visualize the carbon footprint of cloud usage. Diperoleh daripada https://www.cloudcarbonfootprint.org/.
- Verma, A., Pedrosa, L., Korupolu, M., Oppenheimer, D., Tune, E., & Wilkes, J. (2015). Large-scale cluster management at Google with Borg. Proceedings of the European Conference on Computer Systems (EuroSys).