iQIYI Membuka Inovasi API Gateway dengan Apache APISIX
September 7, 2021
Ikhtisar
Tantangan
- Lalu lintas besar mengakibatkan banyak peringatan CPU IDLE terlalu rendah setiap hari.
- Terlalu banyak komponen yang bergantung pada arsitektur sistem.
- Biaya O&M (Operasi dan Pemeliharaan) yang tinggi.
Tujuan
- Memilih API gateway yang berkinerja tinggi untuk memenuhi kebutuhan iQIYI.
- Meminimalkan biaya migrasi.
- Menemukan API gateway dengan komunitas yang aktif dan ekosistem yang sehat.
- Membangun API gateway baru yang sesuai dengan tren cloud-native.
Hasil
- Performa meningkat 10x dari sebelumnya, menangani jutaan QPS setiap hari.
- Mudah mendukung lebih dari 9.000 proyek bisnis API online.
- Berhasil mewujudkan pemulihan data bencana dari beberapa situs dan tingkat di seluruh China.
Apa yang terjadi di balik iQIYI?
Cong He, insinyur R&D senior di iQIYI, membagikan pidato di Apache APISIX Meetup di Shanghai baru-baru ini. Dia bekerja di tim komputasi cloud departemen infrastruktur IIG dan bertanggung jawab atas pengembangan gateway dan pekerjaan Ops di iQIYI. Mari kita masuk ke pidatonya dan cerita API gateway iQIYI untuk memahami Apache APISIX dengan lebih baik.
Didirikan pada 22 April 2010 oleh Baidu, perusahaan di balik mesin pencari online terbesar di China, iQIYI saat ini merupakan salah satu situs video online terbesar di dunia, dengan hampir 6 miliar jam dihabiskan di layanannya setiap bulan dan lebih dari 500 juta pengguna aktif bulanan.
iQIYI sebelumnya mengembangkan API gateway sendiri yang disebut Skywalker, pengembangan kustom berdasarkan Kong. Skywalker perlu menangani lalu lintas besar saat ini, dan puncak harian layanan gateway bisa mencapai satu juta QPS dan ribuan rute API. Namun, kekurangan produk ini mulai terlihat secara bertahap.
- Performa gateway tidak lagi memenuhi persyaratan iQIYI, dan menerima banyak peringatan CPU IDLE terlalu rendah setiap hari karena lalu lintas besar.
- Terlalu banyak ketergantungan komponen pada arsitektur sistem.
- Biaya O&M (Operasi dan Pemeliharaan) terlalu tinggi.
Setelah mengambil alih proyek ini tahun ini, Cong mulai menyelidiki produk gateway serupa untuk menyelesaikan masalah dan kesulitan di atas dan akhirnya menemukan Apache APISIX.
Bagaimana Apache APISIX Mengungguli Kong
Sebelum memilih Apache APISIX, iQIYI sudah mulai menggunakan Kong, tetapi kemudian meninggalkannya.
Mengapa meninggalkan Kong?
Setelah praktik nyata dengan Kong, Cong menunjukkan mengapa timnya meninggalkan Kong. Berikut adalah beberapa kelemahan inti Kong.
- Rute Kong menggunakan kueri traversal, yang tidak cepat.
- Basis data Postgres Kong mengakibatkan penyebaran yang membengkak, sinkronisasi yang tidak efisien, dan ketersediaan yang rendah.
- Kode memiliki tingkat kopling yang tinggi.
Mengapa memilih APISIX?
"Kami membandingkan performa antara Apache APISIX dan Kong selama penyelidikan, dan secara mengejutkan menemukan Apache APISIX 10 kali lebih baik daripada Kong dalam hal optimasi performa. Kami juga membandingkan Apache APISIX dengan beberapa produk gateway utama lainnya, dan latensi respons Apache APISIX selalu lebih dari 50% lebih rendah daripada produk lain. Selain itu, Apache APISIX masih dapat berjalan stabil bahkan jika penggunaan CPU mencapai lebih dari 70%. APISIX benar-benar luar biasa!" kata Cong.
Baik Apache APISIX maupun Kong dikembangkan berdasarkan OpenRestry pada tingkat teknis, yang membawa biaya migrasi yang relatif rendah. Selain itu, Apache APISIX memiliki adaptabilitas yang sangat baik yang dapat dengan mudah disebarkan di banyak lingkungan berbeda, termasuk platform komputasi awan.
"Sementara itu, kami juga menemukan bahwa Apache APISIX adalah proyek open-source yang sangat aktif yang menyelesaikan masalah dengan sangat cepat. Kerangka kerja cloud-native-nya juga sejalan dengan rencana tindak lanjut perusahaan kami. Oleh karena itu, kami memilih Apache APISIX sebagai API gateway kami."
Inovasi Arsitektur API Gateway iQIYI setelah Menggunakan APISIX
Setelah memilih API gateway yang hebat, iQIYI mulai membangun arsitektur API gateway barunya, yang ditunjukkan di bawah ini, termasuk nama domain, gateway, instance layanan, dan alarm pemantauan.

DPVS adalah proyek open-source yang dikembangkan berdasarkan LVS oleh iQIYI. Alarm pemantauan Hubble juga merupakan pengembangan kustom yang mendalam berdasarkan proyek open-source, dan beberapa optimasi pada performa dan kegunaan tinggi Consul dilakukan.
Prestasi 1: Meningkatkan bidang data dan kontrol untuk manajemen kluster dan layanan
Bidang data terutama berorientasi pada pengguna depan, dan seluruh arsitektur dari LB ke gateway memiliki penyebaran multi-situs dan multi-link untuk pemulihan bencana, sehingga pengguna dapat mengakses pusat data terdekat mereka.
Untuk bidang kontrol, terdapat platform microservice untuk mengelola beberapa kluster dan layanan. Platform microservice memungkinkan pengguna untuk mengalami layanan satu atap tanpa mengirim tiket, menghemat banyak waktu. Di backend, pengontrol gateway terutama mengontrol konfigurasi semua API, seperti pembuatan API dan plugin, sementara pengontrol layanan menangani pendaftaran, pembatalan, dan pemeriksaan kesehatan.

Prestasi 2: Menambahkan lebih banyak fitur: kontrol keamanan, pembatasan laju, dan pemantauan
iQIYI mengimplementasikan beberapa fungsionalitas dasar dalam arsitektur API seperti pembatasan laju, autentikasi, alarm, pemantauan, dll., setelah menyesuaikan diri dengan Apache APISIX.
Bagian pertama adalah tentang HTTPS. Untuk kontrol keamanan, iQIYI tidak menyimpan sertifikat atau kunci apa pun di server gateway tetapi di server jarak jauh yang khusus. Namun, hal ini sulit untuk diwujudkan saat menggunakan Kong; sebaliknya, iQIYI menggunakan NGINX awalan untuk melakukan offload HTTPS. Setelah bermigrasi ke Apache APISIX, iQIYI berhasil mengimplementasikan fitur ini di Apache APISIX, yang menghemat satu lapisan transfer lebih lanjut di tautan.
Dalam hal pembatasan laju, selain fungsionalitas pembatasan laju dasar, pembatasan laju yang tepat dan pembatasan laju terhadap granularitas pengguna juga diimplementasikan. Untuk autentikasi, layanan khusus untuk autentikasi paspor disediakan. Selain itu, iQIYI dapat mengakses cloud keamanan WAF perusahaan untuk menyaring industri bawah tanah.
Fungsionalitas alarm pemantauan dicapai dengan menggunakan plugin bawaan Apache APISIX - Prometheus, dan data indikator akan langsung dikirim ke sistem pemantauan perusahaan. Apache APISIX juga mendukung iQIYI dengan layanan pencatatan dan analisis jejak.
Prestasi 3: Membangun proses pembaruan penemuan layanan dinamis
Mengenai penemuan layanan yang disebutkan di atas, terutama mendaftarkan layanan ke kluster Consul melalui pusat layanan dan kemudian menggunakan penemuan layanan DNS untuk memperbaruinya secara dinamis. QAE dalam grafik adalah platform microservice yang digunakan secara internal di perusahaan kami. Mari kita gunakan contoh untuk secara singkat mendemonstrasikan proses pembaruan instance.
Saat memperbarui instance, kami akan pertama-tama mencatat keluar node yang sesuai dari Consul dan mengirim permintaan pembaruan cache DNS ke gateway melalui pengontrol API gateway. Ketika cache telah berhasil diperbarui, pengontrol akan mengirim kembali permintaan ke platform QAE untuk menghentikan semua node aplikasi backend yang terkait untuk menghindari pengalihan lalu lintas ke node yang offline.

Prestasi 4: Meningkatkan kemampuan rute terarah
Gateway memiliki penyebaran multi-situs, dan satu set lengkap tautan cadangan multi-situs dibangun sebelumnya. Selain itu, Cong juga menyarankan pengguna untuk memiliki penyebaran akses terdekat multi-situs untuk layanan backend mereka. Dengan demikian, pengguna dapat membuat layanan API di platform gateway Skywalker, dan pengontrol akan menyebarkan rute API ke semua kluster gateway DC. Sementara itu, CNAME default domain layanan akan diarahkan ke nama domain gateway yang terpadu.
Apache APISIX dapat langsung menyediakan layanan dengan penyebaran multi-situs akses terdekat dan kemampuan failover untuk pemulihan bencana dan mendukung resolusi rute kustom yang ditentukan oleh pengguna. Selain itu, pengguna dapat menyesuaikan konfigurasi resolusi rute melalui nama domain UUID jika mereka membutuhkan failover, penyebaran biru-hijau, dan rilis canary. Selain itu, Apache APISIX juga mendukung penjadwalan kustom pemulihan layanan backend.

Prestasi 5: Meningkatkan toleransi bencana multi-situs & multi-level
Untuk menangani situasi seperti lalu lintas besar, banyak kluster, dan audiens klien yang luas, iQIYI membutuhkan akses ke layanan terdekat dan pemulihan bencana pada tingkat operasional.
Selain cadangan multi-situs dan multi-link untuk pemulihan bencana, iQIYI masih perlu mempertimbangkan masalah tentang situasi multi-level dan multi-node. APISIX membantu dalam hal ini. Klien semakin dekat dengan node mati, semakin besar dampaknya pada bisnis dan lalu lintas.
- Jika node layanan backend terjauh mati, iQIYI dapat mencapai pemutusan node tunggal atau failover dari DC mati melalui pusat layanan dan mekanisme pemeriksaan kesehatan gateway. Dengan demikian, dampaknya akan terbatas pada layanan tertentu, tidak memengaruhi pengguna.
- Jika gateway mati, maka iQIYI dapat menggunakan mekanisme pemeriksaan kesehatan L4 DPVS untuk memutus node gateway yang gagal, dan dampaknya relatif kecil, tidak memengaruhi pengguna.
- Jika tindakan pemutusan sirkuit di atas tidak dapat memperbaiki node mati, maka iQIYI dapat mencapai failover otomatis di DNS melalui uji ketersediaan multi-node granularitas nama domain di ekstranet. Namun, metode ini relatif lambat dan dapat memengaruhi banyak layanan lain, dan pengguna dapat menyadarinya.
Rencana Masa Depan iQIYI
Dalam integrasi dengan APISIX, iQIYI mencoba mengoptimalkan beberapa masalah untuk lebih sesuai dengan bisnisnya.
-
Mempertimbangkan kemungkinan bottleneck dari beberapa komponen dependen, seperti etcd, pemantauan Prometheus, dan layanan pencatatan, iQIYI berencana menggunakan metode penyebaran hybrid. Yaitu: berbagi informasi di dalam kluster besar dan menjaga kluster kecil tetap independen. Misalnya, layanan vital akan disebarkan dengan kluster kecil.
-
Lebih banyak pengurangan dan optimasi yang sesuai untuk metrik pemantauan Prometheus akan dilakukan, terutama untuk penemuan layanan DNS.
Cong berkata, "Kami berharap Apache APISIX dapat mendukung lebih banyak fitur dan mempertahankan efisiensi performa yang sangat baik serta stabilitas dalam pengembangan dan pembaruan di masa depan."
Mencari Dukungan APISIX?
Apakah Anda ingin mempercepat pengembangan Anda dengan percaya diri seperti iQIYI? Untuk memaksimalkan dukungan APISIX, Anda membutuhkan API7. Kami menyediakan dukungan mendalam untuk APISIX dan solusi manajemen API berdasarkan kebutuhan Anda!
Hubungi kami kapan saja: https://api7.ai/contact.