APISIX Memberdayakan Jaringan untuk Penyedia Layanan Cloud CDN Besar
January 31, 2023
Ikhtisar
Tentang UPYUN
UPYUN, penyedia layanan cloud perusahaan terkemuka di Tiongkok, mengkhususkan diri dalam solusi CDN (Content Delivery Network) berbasis skenario. Dengan 10 pusat pengolahan data, lebih dari 1000 node CDN domestik, hampir 100 node CDN global, 40.000 server, dan 10TB bandwidth cadangan, UPYUN menyediakan solusi aman untuk berbagai skenario, menangani volume permintaan harian yang melebihi 150 miliar.
Tantangan
-
UPYUN menghadapi tantangan dalam mengelola koneksi lalu lintas dengan Kong, yang berfungsi sebagai gateway untuk jaringan publik.
-
Dalam hal ingress controller, Ingress-Nginx menimbulkan masalah bagi UPYUN termasuk ketergantungan komponen yang kompleks, portabilitas yang buruk, dan kemampuan semantik yang lemah, menimbulkan kesulitan dalam pemeliharaan gateway.
Hasil
-
APISIX unggul dalam menangani lalu lintas, memenuhi persyaratan untuk cadangan dan beban lalu lintas melalui kemampuan routing dinamisnya. UPYUN juga telah meningkatkan keseragaman komponen dengan bantuan APISIX, menghasilkan peningkatan efisiensi dalam pemrosesan lalu lintas dan pencatatan log.
-
Melalui penggunaan plugin APISIX, UPYUN telah berhasil menerapkan autentikasi identitas karyawan dan integrasi dengan Lark, sehingga meningkatkan fungsionalitas gateway untuk jaringan publik.
-
APISIX telah meningkatkan pemantauan dan pemeriksaan kesehatan untuk sistem UPYUN dengan mendukung Prometheus dan SkyWalking.
Latar Belakang
Karakteristik Bisnis UPYUN
Gateway sangat penting dalam ekosistem bisnis UPYUN. Gateway dapat mengoordinasikan, mengoptimalkan, dan memastikan kelancaran operasi berbagai layanan, memberikan UPYUN solusi yang efisien, aman, dan stabil. Oleh karena itu, UPYUN telah berupaya meningkatkan arsitektur gateway internalnya.
Skenario Bisnis UPYUN
Secara internal, UPYUN menggunakan APISIX sebagai gateway untuk jaringan publik dan ingress controller.
-
Gateway untuk jaringan publik fokus pada pemrosesan lalu lintas internet, berfungsi sebagai gateway untuk layanan eksternal.
-
Ingress controller mengkhususkan diri dalam mengelola akses eksternal ke layanan dalam kluster Kubernetes, memungkinkan routing dan kontrol lalu lintas yang fleksibel melalui konfigurasi sumber daya ingress.
Masalah Sebelum Menggunakan APISIX
Sebelum mengadopsi APISIX, UPYUN menggunakan Kong sebagai gateway untuk jaringan publik dan Ingress-Nginx sebagai ingress controller. Namun, UPYUN dengan cepat menghadapi beberapa masalah.
-
Beban Tinggi pada Koneksi Database: Menghubungkan ke database PostgreSQL dalam arsitektur Kong di UPYUN dapat menyebabkan jumlah koneksi yang cukup besar, berpotensi menurunkan kinerja database.
-
Kompleksitas dalam Mengontrol Sistem Koneksi: Meskipun telah menambahkan proxy di bagian depan, UPYUN menghadapi tantangan dalam mengelola sistem koneksi secara efektif selama pembaruan atau restart sistem, menambah kompleksitas dalam pemeliharaan sistem.
-
Kompleksitas Operasional dengan Ingress-Nginx: Ingress-Nginx menimbulkan tantangan bagi UPYUN dalam pengembangan plugin karena ketergantungan yang kompleks, menghambat portabilitas dan meningkatkan kompleksitas dalam pengembangan dan pemeliharaan. Selain itu, Ingress-Nginx menunjukkan kelemahan dalam kemampuan semantik, memengaruhi fleksibilitas untuk skenario bisnis yang rumit. Persyaratan untuk operasi reload dengan setiap modifikasi aturan ingress memperkenalkan aspek yang tidak ramah, terutama untuk skenario yang bergantung pada koneksi persisten.
Dalam menghadapi kompleksitas mempertahankan logika yang ada, masalah-masalah ini memberikan tantangan besar bagi UPYUN. Akibatnya, tim memulai pencarian alternatif yang lebih efisien dan canggih dalam gateway untuk meningkatkan efisiensi operasional.
Mengapa UPYUN Memilih APISIX
Peningkatan Fleksibilitas dengan Arsitektur Plugin yang Kuat
Menggunakan sistem plugin Apache APISIX, UPYUN merancang serangkaian plugin internal, mencakup fitur seperti validasi sistem izin internal dan pembatasan laju yang tepat. Inisiatif strategis ini tidak hanya memberdayakan perusahaan dengan kustomisasi fungsionalitas yang lebih adaptif tetapi juga memberikan dukungan internal yang beragam ke dalam kluster gateway.
Stabilitas yang Luar Biasa
Dalam operasi berbasis cloud, stabilitas menjadi prioritas utama, terutama untuk perusahaan kecil atau yang memiliki tim operasi yang terbatas. Memilih APISIX sebagai solusi gateway tidak hanya menjamin pengalaman pengguna yang stabil untuk pengguna eksternal tetapi juga secara efektif mengelola biaya operasional dari penyebaran bisnis internal.
Dukungan Komunitas Open-Source yang Kuat
Bagi tim teknis UPYUN, memutuskan apakah gateway bersifat open source menjadi pertimbangan penting. APISIX, sebagai solusi open-source, memanfaatkan dukungan komunitas yang kuat, memastikan respons dan resolusi cepat terhadap bug yang dilaporkan.
Skalabilitas yang Mengesankan
Berbeda dengan perangkat lunak closed-source, skalabilitas APISIX yang luar biasa menawarkan cara yang mulus bagi pengembang untuk beradaptasi dan mengintegrasikan. Ekstensi multi-bahasa APISIX, misalnya, memberdayakan UPYUN untuk membuat fungsionalitas tambahan yang disesuaikan dengan kebutuhan bisnis mereka dalam konteks ekspansi bisnis. Fitur ini tidak hanya secara signifikan meningkatkan efisiensi pengembangan UPYUN tetapi juga memberikan kemudahan yang lebih besar untuk iterasi dan pemeliharaan fitur selanjutnya.
Integrasi yang Mulus dan Kustomisasi yang Disederhanakan
UPYUN telah mengintegrasikan Ingress-Nginx di beberapa kluster Kubernetes. Tanpa sistem plugin di Ingress-Nginx sebelumnya, mereka mengkustomisasi plugin tertentu. Dengan tumpang tindih fungsional yang signifikan antara Apache APISIX dan NGINX di gateway pusat data internal dan lingkungan yang dikontainerisasi, UPYUN siap mengganti semua gateway yang dikontainerisasi Ingress-Nginx yang sebelumnya digunakan dengan Apache APISIX Ingress Controller. Langkah ini bertujuan untuk menyelaraskan komponen di tingkat gateway, mengurangi potensi redundansi dalam pengembangan dan upaya operasional di masa depan.
Dukungan Reload yang Ditingkatkan
APISIX Ingress Controller dilengkapi dengan dukungan reload, meningkatkan efisiensi operasional ke tingkat yang baru. Fitur ini memungkinkan pembaruan konfigurasi dinamis tanpa gangguan layanan, memungkinkan penyebaran cepat dan manuver operasional yang fleksibel. Hasilnya adalah peningkatan signifikan dalam efisiensi operasional, menyederhanakan pemeliharaan sistem untuk kemudahan dan kecepatan yang lebih besar.
Implementasi APISIX
Arsitektur gateway internal UPYUN saat ini digambarkan dalam diagram berikut. Lalu lintas eksternal awalnya dialirkan melalui Apache APISIX, kemudian diarahkan ke APISIX Ingress Controller melalui APISIX. Akhirnya, mencapai layanan backend untuk pemrosesan bisnis selanjutnya.

Gateway untuk Jaringan Publik
Kontrol Lalu lintas
Gateway jaringan publik berfungsi sebagai pintu masuk utama untuk lalu lintas eksternal, memikul tanggung jawab besar yang memerlukan kontrol dan manajemen yang tepat dari setiap aliran yang masuk ke pusat data internal. Dalam aspek penting ini, APISIX telah menawarkan UPYUN berbagai layanan kontrol lalu lintas melalui fitur-fiturnya yang kuat.
Pertama-tama, gateway APISIX telah mengelola lalu lintas dengan menangani akses API dari node edge CDN. Bantuan ini tidak hanya membantu dalam mengoptimalkan kinerja node CDN tetapi juga meletakkan dasar untuk manajemen lalu lintas selanjutnya. Selain itu, APISIX dengan cakap telah memproses lalu lintas terkait halaman statis situs web resmi dan dukungan teknis, menunjukkan kemampuan kontrol lalu lintas yang serbaguna. Pendekatan yang ditargetkan ini dalam penanganan lalu lintas telah memberdayakan UPYUN untuk secara fleksibel memenuhi berbagai persyaratan akses, yang pada akhirnya meningkatkan efisiensi keseluruhan sistem.
Autentikasi Identitas
Plugin memainkan peran penting dalam UPYUN, terutama dalam konteks akses karyawan ke platform internal. Saat ini, karyawan melalui autentikasi menggunakan metode seperti email dan Lark. Berkat plugin openid-connect yang kuat dari Apache APISIX, integrasi yang mulus dengan platform ini telah dicapai, memfasilitasi autentikasi identitas karyawan yang nyaman. Aplikasi inovatif ini telah secara jelas menunjukkan kemampuan kuat dari plugin APISIX, memberikan UPYUN solusi autentikasi identitas yang efisien dan terpadu untuk mengakses platform manajemen.
Koordinasi Cerdas dan Perlindungan Keamanan
Dalam skenario yang lebih spesifik, UPYUN telah memanfaatkan plugin openid-connect bersama dengan plugin serverless-post-function untuk mencapai koordinasi cerdas dengan aplikasi Feishu. Melalui aksi kolaboratif dari plugin ini, informasi pengguna yang relevan, seperti nama pengguna, email, atau pengenal unik dalam Lark, telah dikirimkan ke layanan setelah melewati gateway jaringan publik. Setelah gateway mendapatkan informasi pengenal yang relevan, ia secara efisien meneruskannya ke server, memungkinkan fungsionalitas seperti notifikasi dan penyebutan Lark. Perlu dicatat, selama proses ini, plugin consumer-restriction juga dapat memberlakukan batasan izin tertentu pada pengguna, meningkatkan keamanan dan kemampuan kontrol keseluruhan sistem.
Ingress Controller
Pergeseran Arsitektur Internal
Setelah mengintegrasikan Apache APISIX Ingress Controller, arsitektur internal UPYUN sekarang menampilkan struktur berikut.

Berbeda dengan kerangka Ingress-Nginx yang disebutkan sebelumnya, bidang data dasar telah diganti dengan kluster Apache APISIX. Controller tingkat atas secara aktif memantau perubahan dalam API Server, kemudian menyebarkan sumber daya konfigurasi ke semua node kluster Apache APISIX melalui etcd.

Perbedaan utama muncul dalam kemampuan Apache APISIX untuk modifikasi rute dinamis, membedakannya dari konfigurasi Ingress-Nginx di sebelah kanan. Dalam Apache APISIX, semua lalu lintas bisnis yang masuk berkumpul melalui satu lokasi terpadu, dengan pemilihan rute dilakukan melalui kode Lua. Efisiensi ini menghasilkan penyebaran kode yang lebih sederhana dan mudah dikelola. Sebaliknya, file konfigurasi nginx.conf di sebelah kanan untuk Ingress-Nginx rumit, memerlukan operasi reload untuk setiap perubahan Ingress.
Routing Dinamis dan Konfigurasi Deklaratif
Memanfaatkan kemampuan routing dinamis Apache APISIX, Apache APISIX Ingress Controller telah secara efektif mengimplementasikan fungsinya. Peran utamanya adalah memantau perubahan sumber daya dalam APIServer, melakukan transformasi struktur data yang teliti, validasi, dan menghitung DIFF yang penting. Langkah terakhir adalah menerapkan perubahan ini ke Apache APISIX Admin API. Selain itu, Apache APISIX Ingress Controller memperkenalkan solusi ketersediaan tinggi langsung melalui mekanisme leader-election Kubernetes, menghilangkan kebutuhan akan komponen eksternal.
Dalam hal konfigurasi deklaratif, UPYUN telah memilih Sumber Daya CRD, yang dihargai karena semantiknya yang kuat. Pendekatan konfigurasi data terstruktur ini memberdayakan implementasi dari setiap kemampuan yang didukung oleh Apache APISIX.

Pencapaian Setelah Menggunakan APISIX
Meningkatkan Manajemen Lalu lintas
Apache APISIX telah secara signifikan meningkatkan efisiensi penanganan lalu lintas UPYUN. Mekanisme cadangannya yang kuat dan kemampuan luar biasa dalam menangani beban lalu lintas memastikan stabilitas UPYUN, terutama saat menangani volume lalu lintas besar. Melalui kontrol lalu lintas yang teliti, APISIX secara efektif mengatasi tantangan terkait cadangan dan manajemen lalu lintas, memberikan dukungan bisnis yang andal bagi UPYUN dan mengoptimalkan kinerja sistem.
Menyederhanakan Integrasi dan Autentikasi
APISIX unggul dalam autentikasi identitas dan integrasi plugin. Menggunakan plugin openid-connect, APISIX secara efisien mengakomodasi berbagai metode autentikasi, menawarkan solusi autentikasi identitas yang efektif bagi UPYUN. Fungsi gabungan dari plugin seperti serverless-post-function dan consumer-restriction memfasilitasi transmisi data yang cerdas dan kontrol akses yang kuat, meningkatkan kemampuan integrasi keseluruhan sistem secara signifikan.
Meningkatkan Efisiensi Pemrosesan Log
Dalam hal pemrosesan log, UPYUN telah mengimplementasikan beberapa kluster Apache APISIX secara internal, memastikan penggunaan yang seragam di gateway pusat data dan gateway yang dikontainerisasi. Koherensi ini menetapkan logika standar untuk pemrosesan dan konsumsi log selanjutnya. Perlu dicatat adalah fungsionalitas kuat Apache APISIX untuk plugin log. Secara internal, UPYUN telah memilih Kafka-Logger, plugin yang mendukung format log kustom.

Mengoptimalkan Pemantauan dan Pemeriksaan Kesehatan
Untuk pemantauan, UPYUN menggunakan alat seperti Prometheus dan SkyWalking, dengan Prometheus menjadi pilihan utama. Berfungsi sebagai proxy dasar, Apache APISIX dapat memantau kode status aplikasi dan permintaan.
Ringkasan
Sebagai pemain utama di sektor layanan cloud CDN, UPYUN telah mengintegrasikan Apache APISIX ke dalam infrastrukturnya, terutama dalam gateway untuk jaringan publik dan ingress controller. Sistem plugin yang kuat dan kemampuan manajemen lalu lintas yang luar biasa dari APISIX telah menjadi penting dalam meningkatkan kualitas dan efisiensi operasional UPYUN secara signifikan.
Ke depan, UPYUN berharap dapat berkolaborasi lebih lanjut dengan APISIX untuk memberdayakan CDN berbasis skenario, memberikan serangkaian layanan termasuk penyimpanan cloud, pemrosesan cloud, keamanan cloud, dan pemasaran lalu lintas.
