APISIX Meningkatkan Signifikan Efisiensi R&D Junrunrenli

Peng Yuan

December 12, 2022

Case Study

Ikhtisar

Tantangan

  1. Terlalu banyak sistem bisnis, lalu lintas CLB (configurable logic block), dan perubahan konfigurasi yang sering mengonsumsi banyak waktu pengembangan dan pemeliharaan.
  2. Bisnis dengan konkurensi tinggi, database tidak stabil saat mengekspor data miliaran, dan masalah hanya dapat diselesaikan dengan merestart layanan atau merilis versi baru.
  3. Kurangnya platform terpadu untuk mengawasi data bisnis yang diakses.
  4. Lalu lintas yang besar dan kompleks, kurangnya strategi manajemen lalu lintas yang efisien.
  5. Ada puluhan juta permintaan API per hari, jumlah data log yang besar, dan kapasitas disk yang terbatas.

Hasil

  1. Apache APISIX memberikan Junrunrenli berbagai metode observabilitas dan perlindungan keamanan, mendukung puluhan juta kunjungan per hari dengan efisien.
  2. Meningkatkan efisiensi pengiriman R&D secara signifikan: konfigurasi domain generik berlaku dalam hitungan detik, dan control plane mengurangi beban konfigurasi DevOps.
  3. Mengurangi load balancer dari 200+ menjadi hanya 10+, menghemat banyak biaya.

Tentang Junrunrenli Human Resources

Junrunrenli Human Resources adalah penyedia layanan solusi sumber daya manusia berbasis teknologi, terutama menyediakan layanan sumber daya manusia satu atap untuk pasar tenaga kerja kerah biru.

Didirikan pada tahun 2019, Junrunrenli telah memberikan layanan untuk 1000+ pelanggan, mencakup 300W+ tenaga kerja kerah biru. Dalam tiga tahun, tim R&D telah berkembang dari kurang dari 20 orang menjadi 250+ dan mengembangkan 15+ platform layanan sumber daya manusia secara mandiri. Selain itu, Junrunrenli telah membangun ekosistem layanan sumber daya manusia terintegrasi, termasuk aplikasi SaaS untuk sisi B dan aplikasi sisi C untuk kelompok tenaga kerja kerah biru.

Laju inovasi mengarah pada persyaratan yang lebih tinggi untuk arsitektur sistem. Selain ketersediaan tinggi, konkurensi, dan kinerja, Junrunrenli membutuhkan skalabilitas yang elastis.

Jadi, bagaimana Junrunrenli memilih API gateway?

Bagaimana APISIX Menonjol?

Tim Junrunrenli membuat daftar pendek dan kemudian melakukan investigasi terhadap banyak API gateway. Beberapa di antaranya kemudian dikesampingkan karena tidak sepenuhnya memenuhi kebutuhan Junrunrenli. Kita dapat melihat dengan cermat gambar berikut tentang pemilihan API gateway oleh Junrunrenli.

Pemilihan API gateway oleh Junrunrenli

Gambar di atas menunjukkan fitur Apache APISIX, sementara yang berwarna merah adalah poin yang paling ditekankan oleh Junrunrenli karena:

  1. Junrunrenli memiliki banyak sistem bisnis internal dan ekosistem internal yang dibangun sendiri. Oleh karena itu, API gateway yang kuat diperlukan untuk mendukung perubahan bisnis cepat Junrunrenli karena Junrunrenli perlu mengonfigurasi dan memodifikasi rute secara sering. APISIX memungkinkan Junrunrenli untuk mengontrol akses API dengan berbagai metode.

  2. Bisnis Junrunrenli fokus pada melakukan hal yang sama pada waktu yang sama, misalnya, membayar miliaran gaji atau menarik dana dalam jumlah tersebut. Ratusan ribu pengguna kerah biru melakukan clock in, menandatangani kontrak, dan menerima tugas serta gaji secara bersamaan. Oleh karena itu, lalu lintas konkurensi sangat besar, terutama selama "Black Friday" di China, yang berlipat ganda dibandingkan biasanya.

  3. Berbagai sistem dan kebutuhan yang dipersonalisasi mengakibatkan pengembangan mandiri oleh Junrunrenli. "APISIX dapat memenuhi 99% kebutuhan kami, tetapi 1% sisanya perlu dikembangkan sendiri," kata Yuan, ahli teknis Junrunrenli. Semua orang tahu bahwa Kong dan APISIX dikembangkan berdasarkan OpenResty NGINX + Lua. Pasti ada biaya tambahan jika Junrunrenli mengembangkan plugin dengan Lua. Untungnya, plugin eksternal APISIX mendukung bahasa pemrograman Java untuk menghemat biaya pembelajaran. Selain itu, komunitas APISIX sangat aktif.

Junrunrenli Memperkuat Sistemnya dengan APISIX

Berikut adalah gambaran keseluruhan diagram arsitektur Junrunrenli.

Diagram Arsitektur Keseluruhan Junrunrenli

Junrunrenli telah mencapai empat pencapaian berikut setelah menggunakan APISIX.

1. Menciptakan strategi rute inovatif untuk manajemen rute yang efisien

Berdasarkan Radixtree dan etcd, Apache APISIX mampu melakukan pencocokan rute berkecepatan tinggi dan sinkronisasi konfigurasi cepat. Semua ini dirancang untuk mencapai kinerja cepat dan respons latensi ultra-rendah.

Selama periode puncak penggunaan sistem, database MySQL tidak dapat merespons saat mengekspor jutaan data laporan, menyebabkan layanan tidak tersedia, yang hanya dapat kembali beroperasi normal setelah restart. Selain itu, kasus ini akan semakin parah jika ekspor terus berlanjut dan hanya dapat diselesaikan dengan rilis baru.

APISIX memungkinkan manajemen rute yang cerdas dengan mendukung Junrunrenli dengan konfigurasi prioritas rute dan penghentian darurat API dengan plugin serverless dalam beberapa menit konfigurasi.

Selain itu, sistem bisnis Junrunrenli, terutama sistem SaaS, perlu mendukung akses domain yang ditentukan pelanggan. Akibatnya, tim Junrunrenli menyatukan entri dengan mengonfigurasi beberapa domain untuk layanan yang sama. Konfigurasi dapat digunakan di seluruh sistem hanya dengan mengonfigurasi sekali.

2. Memisahkan platform PaaS untuk kontrol keamanan keseluruhan

Junrunrenli menggunakan karakteristik APISIX, seperti canary release, kontrol keamanan, dan pengenalan identitas, untuk mengatur gateway PaaS untuk kontrol keamanan sistem bisnis tingkat atas.

Gambar di bawah menunjukkan bahwa Junrunrenli telah membuat arsitektur gateway dua lapis berdasarkan APISIX dan secara logis mengisolasi gateway di atasnya - platform PaaS.

Pengguna mengakses CLB kemudian APISIX meneruskan permintaan ke sistem bisnis. Jika fungsi yang digunakan pengguna memerlukan kemampuan PaaS, maka akan diakses melalui gateway layanan PaaS. Platform PaaS adalah area tertutup di dalam k8s, yang berisi banyak layanan penting.

Diagram kontrol keamanan Junrunrenli yang dikombinasikan dengan APISIX

3. Plugin traffic-split APISIX memungkinkan Junrunrenli untuk manajemen lalu lintas otomatis

Plugin traffic-split APISIX memberikan Junrunrenli kemampuan untuk mengelola lalu lintas layanan intinya, seperti SSO (Single Sign On), layanan PaaS, dan layanan penggajian.

Ada dua skenario:

  • Penyaringan Tag: Lalu lintas pengguna pengujian dapat diteruskan ke layanan pra-produksi berdasarkan tag seperti header dan beberapa parameter lainnya. Kemudian insinyur pengujian dapat menguji terlebih dahulu di lingkungan pra-produksi dan kemudian di lingkungan produksi.

Setelah melewati verifikasi, insinyur dapat memotong lalu lintas berdasarkan bobot dan kemudian mengalihkan semua lalu lintas ke versi baru setelah periode pengamatan.

  • Koeksistensi Multi-Versi: Ada banyak versi dari satu layanan. Dengan cara ini, sistem bisnis yang berbeda dapat mengunjungi versi yang berbeda. Lalu lintas dapat diteruskan ke layanan yang tepat dengan memanfaatkan tag.

Manajemen lalu lintas otomatis setelah menggunakan APISIX

4. Plugin Kafka APISIX menyelesaikan pemantauan data log transparan Junrunrenli

Meningkatkan proses pengumpulan log dengan APISIX

Seperti yang dapat dilihat dari gambar ini, APISIX dan layanan pod keduanya di-deploy di k8s, dan semua rute backend terikat ke layanan yang sama. Plugin Kafka APISIX tampaknya dirancang khusus untuk mengumpulkan data log.

Data observasi menunjukkan bahwa ada puluhan juta permintaan API setiap hari, menghasilkan 30GB data log setiap hari, dan total jumlah log mencapai lebih dari 1TB.

Skywalking dan Sky Agent juga dikonfigurasi dalam skrip startup layanan pada pod. Dikombinasikan dengan plugin Kafka, seluruh tautan panggilan pada Skywalking dan log cloud dapat diamati berdasarkan requestId dan traceId, dan catatan log serta waktu konsumsi permintaan API dari setiap tautan menjadi transparan untuk pemantauan data log.

Manfaat setelah Junrunrenli Menggunakan APISIX

1. Mendukung pengembangan bisnis

Setelah menggunakan APISIX, sistem Junrunrenli fiturnya lebih kaya, dan kinerjanya lebih kuat. Ini menyediakan berbagai metode observabilitas dan perlindungan keamanan untuk layanan API, mendukung puluhan juta lalu lintas akses harian dengan efisien.

2. Meningkatkan efisiensi pengiriman R&D

Sebelum menggunakan APISIX, Junrunrenli biasanya membutuhkan 10 menit untuk mengonfigurasi setiap resolusi DNS, tetapi sekarang hanya membutuhkan beberapa detik untuk mengonfigurasi domain pan. Ada lebih dari 10 sistem dan lebih dari 100 layanan dengan banyak konfigurasi. Para pengembang perlu memodifikasi konfigurasi di CLB dan NGINX. APISIX menyediakan data plane pusat untuk modifikasi konfigurasi, secara signifikan mengurangi beban kerja DevOps.

3. Menghemat biaya

Menghemat biaya tinggi Load Balancer dan mengurangi 200+ layanan menjadi hanya 10+.

Rencana Masa Depan Junrunrenli

  • Junrunrenli akan menyesuaikan java-plugin-runner dan mengintegrasikan sentinel untuk mengaktifkan layanan pembatasan laju dinamis yang dapat dipasang dan juga mendukung kontrol lalu lintas harian dan bulanan.

  • Tim Junrunrenli juga mempertimbangkan untuk menyimpan data log permintaan API dan kemudian melakukan identifikasi kontrol risiko berdasarkan mesin aturan, mendorong informasi alarm, dan cepat melakukan intervensi operasi dan pemeliharaan.

  • Junrunrenli akan melakukan tata kelola berlapis. Saat ini, hanya ada satu entri, dan lebih banyak set kluster APISIX akan disediakan nanti. Misalnya, platform terbuka dapat mengakses layanan internal k8s Junrunrenli dari pintu masuk terpisah.

  • Selanjutnya, Junrunrenli akan menggabungkan plugin log dan sky dengan analisis log rantai penuh.

Mencari Dukungan APISIX?

Apache APISIX adalah API gateway cloud-native yang open-source, dinamis, skalabel, dan berkinerja tinggi untuk semua API dan microservices Anda. Disumbangkan ke Apache Software Foundation oleh API7.ai, APISIX telah berkembang menjadi proyek open-source Apache tingkat atas.

Apakah Anda ingin mempercepat pengembangan Anda dengan percaya diri seperti Junrunrenli Human Resources? Untuk memaksimalkan dukungan APISIX, Anda memerlukan API7. Kami menyediakan dukungan mendalam untuk APISIX dan solusi manajemen API berdasarkan kebutuhan Anda!

Hubungi kami kapan saja: https://api7.ai/contact.

Tags: