4 Pelajaran yang Kami Petik dari Peningkatan Infrastruktur Terbaru
Diterbitkan: 2022-05-04Peningkatan infrastruktur. Tugas yang umum, terutama untuk perusahaan SaaS seperti kami, bukan?
Yah, yang terbaru kami bukanlah peningkatan perangkat lunak biasa karena kami menambahkan sedikit sentuhan padanya.
Tujuan utamanya adalah untuk meningkatkan perangkat lunak kami ke versi terbaru, tetapi kali ini kami telah memasukkan dua langkah lagi ke proyek - mengurangi jumlah IP yang harus diizinkan oleh pelanggan kami dan mencapai redundansi basis data.
Dan meskipun sebagian besar pembaruan berjalan lancar, kami juga mengalami beberapa gangguan layanan selama proses berlangsung.
Di baris berikut, kami akan membagikan informasi di balik layar tentang mengapa kami melakukan peningkatan, bagaimana hasilnya, dan apa pembelajaran terbesar kami yang bergerak maju.
Mari kita langsung ke dalamnya!
Mengapa Kami Melakukan Peningkatan di Tempat Pertama & Apa yang Termasuk
Kami memahami tanggung jawab yang kami miliki dan peran NitroPack dalam kesuksesan bisnis klien kami. Itulah mengapa memastikan kinerja optimal, standar keamanan tertinggi, dan stabilitas layanan 24/7 sangat penting.
Meningkatkan infrastruktur kami secara teratur adalah salah satu dari banyak cara untuk memastikan semua itu. Dan seperti yang disebutkan sebelumnya, ada tiga bagian untuk peningkatan khusus ini:
1. Perbarui perangkat lunak kami ke versi stabil terbaru
Sebagai solusi berbasis cloud, semua pengoptimalan yang dilakukan NitroPack untuk 100.000+ situs klien kami dilakukan di infrastruktur kami. Saat ini, kami menggunakan lebih dari 100 server untuk menjalankan layanan. Dengan pembaruan ini, kami harus memutakhirkan perangkat lunak yang mengatur armada server kami ke versi stabil terbaru.
2. Kurangi jumlah IP yang harus diizinkan oleh pelanggan kami
Sederhananya, proses daftar IP yang diizinkan tidak ramah pengguna.
Sebelum pembaruan, klien kami harus mengizinkan lebih dari 40 alamat IP yang melayani lalu lintas keluar (permintaan) NitroPack ke situs klien. Selain itu, IP ini tidak diperbaiki, artinya ketika salah satu server kami dihentikan, server baru akan muncul dengan alamat IP yang berbeda.
Proses menghasilkan IP baru ini mengharuskan pelanggan kami untuk secara teratur mengizinkan lusinan alamat baru agar NitroPack berhasil mengoptimalkan situs mereka.
Setelah pembaruan, pelanggan kami hanya perlu mengizinkan tiga IP tetap dan tidak pernah berubah.
3. Mencapai Redundansi Basis Data
Untuk waktu yang lama, kami ingin mencapai redundansi basis data karena akan meningkatkan kinerja keseluruhan situs web dan dasbor NitroPack, dan kami akan dapat meningkatkan keamanan layanan. Selanjutnya, pembaruan ini akan memungkinkan kami untuk melakukan pemutakhiran basis data di masa mendatang tanpa waktu henti.
Dengan mengingat tujuan-tujuan ini, kami membagi proses menjadi dua langkah, menyisakan satu hari di antara keduanya sehingga kami memiliki cukup waktu untuk beristirahat:
Langkah 1: (4 November): Mengurangi jumlah IP
Langkah 2: (6 November): Redundansi basis data & pembaruan perangkat lunak server
Tapi tidak semuanya berjalan sesuai harapan kita.
Yang Tidak Sesuai Rencana
Terlepas dari persiapan menyeluruh kami, kami menghadapi beberapa masalah tak terduga di ketiga pembaruan. Inilah yang terjadi:
Masalah #1: Masalah konektivitas selama proses pembaruan IP
Pada tanggal 4 November, kami dijadwalkan untuk melakukan pembaruan layanan awal, yang bertujuan untuk mengurangi jumlah alamat IP untuk lalu lintas keluar NitroPack.
Rilis awal memiliki bug perangkat lunak internal yang tidak memungkinkan layanan kami untuk membuat koneksi keluar dalam beberapa kasus. Sayangnya, masalah ini hanya muncul ketika infrastruktur kami mengalami situasi lalu lintas puncak. Itu sebabnya kami tidak mendeteksi masalah pada lingkungan pementasan kami selama pengujian awal. Masalah konektivitas menyebabkan NitroPack tidak melakukan pengoptimalan keluar dengan andal, dan beberapa klien kami mengalami ketidakstabilan layanan selama beberapa jam.
Kabar baiknya adalah bahwa tim pengembang kami berhasil mengurangi masalah ini segera dengan memperbarui perangkat lunak klien HTTP kami.
Masalah #2: Pencadangan basis data memakan waktu lebih lama dari perkiraan
Ketika kami mulai mengerjakan redundansi basis data pada tanggal 6 November, kami dengan cepat menemukan bahwa itu akan memakan waktu lebih lama dari yang direncanakan. Ini memaksa kami untuk mendorong pembaruan perangkat lunak server sehari kemudian.

Tapi itu dengan niat baik dalam pikiran. Kami ingin sangat berhati-hati dengan mencadangkan database di tempat pertama sehingga kami dapat melakukan redundansi tanpa masalah.
Masalah # 3: Kesalahan server memperlambat proses peningkatan perangkat lunak
Ketika kami mulai menerapkan pemutakhiran perangkat lunak server pada tanggal 7 November, sejumlah kecil (kurang dari 1%) server mulai membuat kesalahan tak terduga yang pada akhirnya mencegah pembaruan untuk disebarkan dan memperlambat seluruh proses. Tidak ada cara untuk memperbaiki masalah itu sendiri, dan kami terpaksa mengeskalasinya ke Penyedia Server kami.
Meskipun tampak seperti masalah kecil, mengingat besarnya tugas, kesalahan tak terduga ini menyebabkan sebagian kecil (kurang dari 2%) klien NitroPack mengalami waktu henti layanan singkat yang terputus-putus.
Masalah #4: Kesalahan 502 CDN Tak Terduga Menyebabkan Ketidakstabilan Layanan
Ketika kami pikir kami telah selesai dengan peningkatan - sistem pemantauan kami mulai mencatat kesalahan CDN yang sering terjadi dengan kode status HTTP 502.
Sayangnya, kesalahan memengaruhi semua klien kami, menyebabkan ketidakstabilan pengiriman sumber daya CDN selama beberapa hari. Setelah memeriksa masalahnya, kami mengeluarkan pembaruan perangkat lunak yang memperbaiki ketidakstabilan layanan secara permanen.
Setelah semuanya dengan NitroPack berfungsi dengan baik, kami melakukan pertemuan retrospektif untuk merenungkan apa yang dapat kami tingkatkan di masa depan berdasarkan pembelajaran kami dari peningkatan infrastruktur ini.
Langkah-Langkah yang Kami Lakukan Untuk Memastikan Masalah Yang Sama Tidak Akan Terjadi Lagi Di Masa Depan
Secara keseluruhan, kami bangga dengan keseluruhan peningkatan. Kami mengalami ketidakstabilan layanan sesekali, tetapi itu dalam cara yang terkendali, dan kami berhasil menghindari waktu henti seluruh layanan untuk seluruh basis klien.
Namun, kita tahu bahwa menepuk punggung kita sendiri dan berfokus sepenuhnya pada apa yang berjalan dengan benar tidak akan memajukan kita sebagai perusahaan dan layanan.
Itu sebabnya kami ingin mengomunikasikan peningkatan yang akan kami terapkan untuk melakukan peningkatan di masa mendatang dengan cara yang lebih efisien. Berikut adalah poin utamanya:
Lingkungan Pementasan yang Mampu Uji Stres
Ini akan memungkinkan kami mendeteksi kesalahan yang hanya terjadi dalam situasi volume tinggi dengan puluhan ribu permintaan. Misalnya, itu akan membantu kami mengidentifikasi klien HTTP dan masalah koneksi yang dapat digunakan kembali sebelumnya, dan kami akan dapat menjalankan pembaruan IP tanpa gangguan.
Sistem Pemantauan dan Peringatan yang Lebih Baik
Berdasarkan masalah yang terjadi selama peningkatan ini, kami dapat mengidentifikasi area di mana kami kekurangan pemantauan dan peringatan. Berita baiknya adalah kami telah mengonfigurasi keduanya untuk area ini.
Kolaborasi Lintas Tim yang Lebih Baik & Komunikasi Klien yang Lebih Proaktif
Karena berbagai tim yang terlibat dengan peningkatan tidak disinkronkan secara ideal satu sama lain, kami merasa kami tidak dapat berkomunikasi secara proaktif dan tepat waktu tentang kemajuan peningkatan kepada pelanggan kami yang sudah ada. Kami memiliki halaman status.nitropack.io sehingga semua orang dapat mengikuti apa yang terjadi dengan peningkatan, tetapi itu tidak cukup.
Lain kali, kami akan mengomunikasikan kemajuan peningkatan di sebanyak mungkin saluran, termasuk media sosial, email, dasbor, dan situs web!
Koordinasi Lebih Baik dengan Penyedia Server Kami
Untuk pembaruan di masa mendatang, kami akan berusaha untuk koordinasi yang lebih baik dengan Penyedia Layanan kami untuk memastikan solusi tepat waktu untuk masalah yang tidak terduga. Ini akan membantu kami menangani kesalahan server yang tidak terduga dengan lebih efisien.
Akhirnya, kami ingin mengucapkan terima kasih kepada semua klien kami atas kesabaran dan pengertiannya. Kepercayaan Anda adalah kekuatan pendorong kami untuk terus meningkatkan layanan kami.
