Menu

API gateway buatan sendiri telah membantu kami menghemat 38% dari biaya panggilan pihak ketiga, namun kami juga mengalami masalah dalam adaptasi antar wilayah.

Pekan lalu, tim alat e-commerce kami di Asia Tenggara baru saja meninjau kembali laporan biaya teknis untuk kuartal pertama (Q1). Rekan yang bertanggung jawab atas antarmuka pembayaran hampir saja terkejut: setelah mengganti gateway pihak ketiga yang digunakan sebelumnya dengan gateway yang dikembangkan sendiri, biaya pemanggilan API per bulan langsung turun sebesar 38%. Namun, selama pengujian skala kecil (grayscale testing) sebelum promosi besar, tingkat keberhasilan pembayaran pengguna di node Singapura tiba-tiba turun sebesar 6 persentase poin. Setelah melakukan pemeriksaan selama beberapa hari, kami menemukan bahwa aturan pemutusan sambungan (circuit breaking) antar-regional dari gateway tersebut tidak disesuaikan dengan kebutuhan.

Pahami dulu: Apa sebenarnya gateway buatan sendiri itu?

Sederhananya, Anda menulis satu set program portal lalu lintas sendiri, menempatkan semua permintaan API eksternal, panggilan balik pihak ketiga, panggilan lintas layanan melalui lapisan ini terlebih dahulu, menggantikan layanan gateway pihak ketiga yang dibeli sebelumnya. Versi yang kami gunakan saat ini berjalan pada empat server node luar negeri 2 - core 4G, dan satu server dapat membawa 1.200 permintaan per detik, sepenuhnya mencakup permintaan pembayaran dan komoditas sinkron harian rata-rata kami 1,8 juta kali.

Tiga manfaat nyata yang bisa Anda dapatkan:

Team collaborating on business strategy with laptop displaying global analytics.

  • Yang pertama adalah biayanya benar-benar bisa ditekan. Sebelumnya, kami menggunakan gateway pihak ketiga yang mengenakan biaya berdasarkan jumlah panggilan, dan biayanya mencapai 2100 dolar Amerika per bulan. Sekarang, dengan menggunakan server yang kami bangun sendiri ditambah dengan sistem pemantauan, biayanya kurang dari 1300 dolar Amerika per bulan, dan tidak perlu lagi terikat oleh kenaikan harga berdasarkan tingkat penggunaan.
  • Selanjutnya, aturan-aturan tersebut sepenuhnya ditentukan oleh kami sendiri. Sebelumnya, pembatasan lalu lintas (throttling) oleh gateway pihak ketiga bersifat seragam. Selama periode promosi besar, kami perlu mengajukan permohonan khusus untuk meningkatkan kuota pembatasan lalu lintas pada antarmuka pembayaran, dan proses tersebut membutuhkan waktu 3 hari kerja. Sekarang, kami dapat mengubah konfigurasi tersebut langsung di backend dalam waktu 10 detik saja, dan perubahan tersebut langsung berlaku.
  • Terakhir, data tidak perlu melalui pihak ketiga. Kami membuat alat e-commerce dan perlu menerima banyak panggilan balik pembayaran dari pengguna. Sebelumnya, semua permintaan harus melalui node penyedia layanan pihak ketiga, tetapi sekarang semua data sensitif diproses di server kami sendiri, sehingga biaya kompatibilitas (kompliance cost) berkurang secara signifikan.

Jangan terburu-buru membangunnya, mari kita lihat dulu kesalahan-kesalahan yang telah kita lakukan sebelumnya.

Stunning view of the Bosphorus Bridge and Istanbul cityscape, showcasing historic architecture.

Pertama-tama, masalah yang dihadapi adalah adaptasi jaringan antar wilayah. Awalnya, kami menempatkan node gateway utama di Singapura, dan ketika kami membuka situs di Malaysia, kami langsung mengalihkan lalu lintas ke sana. Akibatnya, permintaan dari pengguna lokal harus melewati Singapura terlebih dahulu sebelum kembali ke Malaysia, yang menyebabkan peningkatan waktu tunggu hingga 200 ms akibat latensi jaringan. Banyak pengguna tidak sabar dan langsung menutup halaman pembayaran. Kami membutuhkan waktu satu minggu untuk menyelesaikan pemasangan node edge di Malaysia.

Kesalahan kedua adalah adanya celah dalam aturan keamanan. Sebelumnya, gateway pihak ketiga sudah dilengkapi dengan fitur perlindungan terhadap DDoS dan penangkapan permintaan jahat secara default. Namun, saat kami membangun sistem sendiri, kami lupa untuk menambahkan fitur tersebut. Pada hari ketiga setelah sistem diaktifkan, sistem kami diserang oleh bot (crawler) dengan 200.000 permintaan tidak valid, hampir saja menyebabkan gangguan pada fungsi interface penyimpanan stok (inventory interface).

Kesalahan ketiga adalah biaya operasional dan pemeliharaan yang lebih tinggi dari yang diperkirakan. Sebelumnya, jika terjadi masalah dengan gateway pihak ketiga, kami langsung menghubungi layanan pelanggan. Sekarang, kami bertiga yang bertugas di bagian backend harus bergiliran menjaga malam untuk memantau gateway. Bulan lalu saja, penyelesaian masalah gateway telah menghabiskan 15% dari waktu kerja kami.

Tim seperti apa yang cocok untuk bekerja sama, dan tim seperti apa yang sebaiknya dihindari agar tidak membuang-buang waktu?

Jika tim Anda melakukan lebih dari 1 juta panggilan API per hari rata-rata, atau memiliki banyak data sensitif yang perlu diproses, atau Anda sudah bosan dengan pembatasan bandwidth dan prosedur pengajuan tiket dari gateway pihak ketiga, maka membangun gateway sendiri sangat layak untuk dipertimbangkan.

Namun, jika tim Anda hanya memiliki dua atau lebih sedikit pengembang backend, atau bisnis Anda masih dalam tahap pengujian yang cepat, dan aturan antarmuka berubah setiap minggu, maka sebenarnya tidak perlu menghabiskan waktu untuk mengaturnya. Cukup gunakan gateway pihak ketiga untuk sementara waktu, dan Anda bisa beralih ke solusi lain ketika bisnis Anda sudah stabil.

3 saran praktis untuk orang yang pertama kali melakukannya

Aerial photo capturing Kwai Tsing Container Terminals, showing vibrant shipping activity in Hong Kong.

  1. Mulailah dengan satu skenario saja, jangan langsung mengganti semuanya sekaligus. Pada awalnya, kami hanya memindahkan lalu lintas dari antarmuka pembayaran ke gateway yang kami bangun sendiri, dan setelah dua minggu tidak ada masalah, barulah kami perlahan-lahan memindahkan antarmuka lainnya. Jika ada masalah, hanya skenario pembayaran yang akan terpengaruh, dan situs web tidak akan down secara keseluruhan.
  2. Pastikan untuk melakukan pengujian stres lintas wilayah. Terutama untuk bisnis yang beroperasi di luar negeri, jangan langsung meluncurkan produk setelah pengujian lokal selesai. Carilah node pengujian di pasar sasaran dan lakukan pengujian stres selama 24 jam untuk melihat apakah ada masalah dengan keterlambatan atau tingkat kehilangan paket.
  3. Jangan mengabaikan panel pemantauan. Setidaknya perhatikan tiga indikator utama, yaitu jumlah permintaan, tingkat keberhasilan, dan waktu penundaan. Atur ambang batas peringatan dengan baik, agar Anda tidak menunggu adanya keluhan dari pengguna baru menyadari bahwa gateway tidak berfungsi dengan baik.

Masalah kecil yang sering terjadi

Pertanyaan: Apakah harus menggunakan bahasa pemrograman Go atau Rust untuk menulisnya?
Tidak perlu, versi pertama kami dibuat menggunakan Node.js, dan itu sudah cukup untuk menangani beban puncak. Anda bisa menggunakan bahasa pemrograman apa pun yang dikuasai oleh tim Anda. Jika nanti muncul masalah kinerja, baru kita pertimbangkan untuk menggantinya.

Pertanyaan: Mana yang lebih baik, gateway dari penyedia layanan cloud atau yang lainnya?
Gateway milik penyedia layanan cloud lebih fleksibel dibandingkan dengan gateway pihak ketiga, tetapi tetap tidak sebebas jika dibangun sendiri. Jika Anda tidak ingin terikat pada satu penyedia cloud tertentu, membangunnya sendiri akan lebih menguntungkan.

Apakah ini membantu?

Dukungan teknisDukungan langsung
侧栏
Kembali ke atas
简体中文ZH-CNDefault繁體中文ZH-TWEnglishEN日本語JA한국어KOภาษาไทยTHTiếng ViệtVIBahasa IndonesiaIDEspañolESFrançaisFRDeutschDEРусскийRUPortuguêsPTItalianoITالعربيةAR