Platform serverless menawarkan elastisitas ultra tinggi tetapi juga membawa tantangan besar bagi infrastruktur. Alibaba Cloud menyediakan solusi yang menggabungkan Container Service for Kubernetes (ACK) dengan layanan awan lainnya untuk mengoptimalkan akses data berdasarkan Elastic Container Instance. Topik ini menjelaskan tantangan dalam mengakses data di komputasi awan serverless serta solusi untuk mengatasinya.
Tantangan dalam mengakses data di komputasi awan serverless
Platform serverless dapat melakukan penskalaan dengan cepat, baik menambah maupun mengurangi sumber daya atau beban kerja aplikasi. Dalam hitungan detik setelah aplikasi mulai melakukan penskalaan, sistem siap digunakan. Sumber daya komputasi diskalakan dalam beberapa detik atau bahkan milidetik. Namun, hal ini memberikan tantangan besar bagi infrastruktur. Sumber daya penyimpanan adalah elemen infrastruktur yang paling sering digunakan. Jika throughput IO sistem penyimpanan tidak dapat mengimbangi laju aktivitas penskalaan instans, sistem tidak akan mampu memenuhi persyaratan penskalaan dalam hitungan detik. Sebagai contoh, sistem dapat menskalakan instans kontainer dalam dua detik tetapi membutuhkan puluhan detik hingga beberapa menit untuk mengunduh data dari sistem penyimpanan.
Kontainerisasi serverless memiliki persyaratan berikut terhadap sistem penyimpanan tradisional:
Akses konkurensi tinggi: Sumber daya komputasi hanya digunakan untuk memproses data, sedangkan data disimpan dalam sistem penyimpanan. Akibatnya, overhead akses data dalam skenario konkurensi tinggi meningkat, memengaruhi stabilitas sistem dan meningkatkan penggunaan bandwidth.
Latensi jaringan rendah: Arsitektur yang memisahkan komputasi dan penyimpanan meningkatkan latensi saat mengakses data bisnis.
Throughput IO elastis: Bandwidth penyimpanan tradisional meningkat seiring dengan kapasitas penyimpanan. Sejumlah besar akses konkuren kontainer dapat memicu throttling dan menyebabkan konflik antara sumber daya komputasi elastis dan bandwidth penyimpanan.
Solusi untuk mengoptimalkan akses data
Untuk mendukung komputasi awan serverless secara lebih efektif, tim ACK bekerja sama dengan tim perangkat lunak dasar dan sistem operasi, tim Elastic Container Instance, serta tim Data Lake untuk menyediakan solusi pengoptimalan akses data berdasarkan Elastic Container Instance. Solusi ini mengikuti aturan berikut:
Mematuhi standar yang ada guna memastikan pengalaman pengguna yang konsisten. Contohnya, Sidecar dan Device Plugin di Kubernetes digunakan sebagai standar untuk mengekspos API dan antarmuka pengguna.
Mendukung kontrol hak istimewa Linux secara halus.
Menyinkronkan pembaruan kernel dan pembaruan lapisan bawah dari Kubernetes open source. Semua desain konsisten dengan Kubernetes open source.
Arsitektur yang digunakan oleh Fluid dalam komputasi awan serverless mencakup bidang data dan bidang kontrol.
Bidang data: Kontainer FUSE yang sesuai dengan runtime berbeda membentuk bidang data. Kontainer FUSE diterapkan bersama dengan aplikasi sebagai kontainer sidecar. Sidecar mengelola akses data terkait aplikasi.
Bidang kontrol: Bidang kontrol terdiri dari injector, pengontrol runtime cache, dan pengontrol aplikasi.
Injector: Injector mentransformasikan informasi implementasi akses data dan runtime menjadi format yang dapat dibaca oleh Sidecar, kemudian menyuntikkannya ke dalam aplikasi. Injector juga mengontrol urutan peluncuran kontainer dalam suatu workload. Workload dapat berupa pod atau workload komputasi AI data besar seperti Spark Job, TensorFlow Job, atau MPI Job.
Pengontrol runtime cache: Pengontrol runtime cache mengelola elastisitas cache data berdasarkan throughput FUSE Sidecar, serta mengatur izin akses data.
Pengontrol aplikasi: Pengontrol aplikasi menghentikan tugas kontainer FUSE dalam sebuah pod ketika kontainer dari Job batch, TensorFlow Job, atau Spark Job dalam pod yang sama dihentikan.