Ketahanan aplikasi adalah kemampuan perangkat lunak untuk mempertahankan fungsionalitas inti selama gangguan yang tidak direncanakan, seperti kegagalan komponen, pemadaman atau lonjakan beban kerja yang tiba-tiba. Aplikasi ketahanan membantu memastikan keberlangsungan bisnis, melindungi pengalaman, dan meminimalkan waktu henti.
Aplikasi secara virtual memberdayakan hampir setiap aspek bisnis modern, mulai dari memproses transaksi pelanggan dan mengelola rantai pasokan hingga memungkinkan kolaborasi karyawan dan menganalisis data real-time.
Ketika aplikasi ini gagal, dampaknya bisa parah. Waktu henti—periode ketika aplikasi tidak tersedia atau tidak dapat berfungsi dengan benar—dapat mengakibatkan kerusakan reputasi, pengalaman pengguna yang menurun, dan kerugian finansial yang signifikan.
Faktanya, 98% organisasi kini melaporkan, bahwa waktu henti melebihi USD 100.000 per jam, dengan sepertiga memperkirakan kerugian antara USD 1 juta dan USD 5 juta.
Dengan merancang dan mengimplementasikan aplikasi yang tangguh, organisasi dapat menghindari dan memitigasi gangguan-gangguan tersebut.
Ketahanan aplikasi bergantung pada dua prinsip inti:
Aplikasi yang tangguh membantu mengurangi kerentanan dalam arsitektur aplikasi, meningkatkan efisiensi operasional, dan memastikan pengalaman pengguna yang konsisten bahkan dalam menghadapi gangguan yang tidak terduga.
Buletin industri
Tetap terinformasi tentang tren industri yang paling penting—dan menarik—tentang AI, otomatisasi, data, dan di luarnya dengan buletin Think. Lihat Pernyataan Privasi IBM®.
Langganan Anda akan disediakan dalam bahasa Inggris. Anda akan menemukan tautan berhenti berlangganan di setiap buletin. Anda dapat mengelola langganan atau berhenti berlangganan di sini. Lihat Pernyataan Privasi IBM® kami untuk informasi lebih lanjut.
Untuk membuat dan menerapkan aplikasi tangguh, pengembang dan tim TI dapat menggunakan beberapa alat dan praktik di seluruh siklus hidup aplikasi.
Komponen umum aplikasi yang tangguh meliputi:
Redundansi berarti memiliki versi cadangan dari sistem penting. Jika suatu sistem gagal, cadangan mengambil alih, membantu memastikan sistem terus berfungsi.
Sebagai contoh, sebuah layanan pemrosesan pembayaran kemungkinan memiliki beberapa salinan layanan yang berjalan pada server yang berbeda. Jika satu server mengalami kerusakan, salinan di server lain dapat secara otomatis mengambil alih beban kerja sehingga pelanggan tidak menyadari adanya masalah.
Organisasi sering membangun redundansi di bidang-bidang utama:
Penyeimbangan beban melibatkan pendistribusian lalu lintas jaringan secara efisien di antara beberapa server untuk membantu mengoptimalkan ketersediaan aplikasi. Sangat penting untuk ketahanan aplikasi karena memungkinkan sistem untuk mempertahankan kinerja dan ketersediaan bahkan ketika komponen individu gagal atau menjadi kelebihan beban.
Sebagai contoh, jika satu server menjadi tidak responsif, penyeimbang beban dapat secara otomatis mengarahkan lalu lintas ke server lain yang sehat, sehingga aplikasi tetap online.
Penahanan kegagalan adalah praktik desain yang mengisolasi komponen penting dalam sistem terdistribusi, mencegah masalah lokal mengalir ke pemadaman di seluruh sistem.
Penahanan sangat penting dalam arsitektur layanan mikro, di mana kegagalan dalam satu layanan dapat dengan cepat berdampak pada banyak dependensi lain jika tidak dikontrol dengan benar.
Jaringan layanan (service meshes) sangat berguna untuk mengisolasi kesalahan. Lapisan infrastruktur ini membantu mengelola komunikasi antar layanan mikro dalam aplikasi terdistribusi, menyediakan:
Secara bersama-sama, kemampuan-kemampuan ini membantu memastikan bahwa gangguan pada satu layanan tidak menyebar ke layanan lainnya. Misalnya, misalkan mesin rekomendasi produk gagal di situs e-commerce. Sebuah mesh layanan dapat mendeteksi kegagalan ini, menghentikan permintaan agar tidak mencapai layanan yang rusak dan mengalihkan lalu lintas yang sesuai. Pengguna dapat terus menjelajah dan membeli tanpa gangguan.
Observabilitas memungkinkan tim untuk memantau kesehatan sistem secara real time dengan menggunakan tiga jenis data utama: metrik (indikator kinerja seperti waktu respons), log (catatan peristiwa seperti kesalahan atau crash) dan jejak (perjalanan lengkap yang dilakukan permintaan melalui sistem).
Dengan menangkap dan menganalisis sinyal-sinyal ini, tim dapat deteksi anomali, mendiagnosis masalah dengan cepat, dan mengurangi waktu henti. Misalnya, jika pelanggan melaporkan halaman web yang lambat dimuat, alat bantu pengamatan dapat membantu teknisi melacak permintaan ke layanan yang menyebabkan penundaan dan memperbaiki masalah tersebut sebelum memengaruhi lebih banyak pengguna.
Otomatisasi berperan penting dalam ketahanan aplikasi dengan memungkinkan sistem untuk merespons masalah tanpa memerlukan intervensi manual.
Misalnya, alat observabilitas mendeteksi masalah dan redundansi menyediakan sumber daya cadangan. Otomatisasi adalah hal yang menghubungkan kemampuan ini, dengan mengatur proses pemulihan. Otomatisasi yang efektif dapat mengurangi waktu pemulihan secara signifikan, mengubah apa yang mungkin berjam-jam pemecahan masalah manual menjadi beberapa detik respons otomatis.
Beberapa respons otomatis utama dalam ketahanan aplikasi meliputi:
Alat seperti Kubernetes—sistem sumber terbuka untuk mengelola aplikasi kontainer—menunjukkan bagaimana otomatisasi mengikat komponen ketahanan bersama-sama. Kubernetes dapat deteksi kegagalan melalui pemeriksaan kesehatan, menjadwal ulang beban kerja di seluruh node yang sehat, dan menjaga kontinuitas layanan melalui alur kerja.
Degradasi bertahap melibatkan pemeliharaan fungsionalitas inti sembari melepaskan fitur yang tidak penting selama tekanan. Misalnya, selama lonjakan trafik Black Friday, peritel mungkin akan menonaktifkan ulasan pelanggan dan daftar keinginan untuk sementara waktu guna memastikan keranjang belanja dan checkout tetap berfungsi.
Aplikasi yang dapat diskalakan dapat secara otomatis menyesuaikan sumber daya menurut tuntutan beban kerja. Kemampuan ini membantu memastikan kinerja dan ketersediaan bahkan saat lalu lintas berfluktuasi.
Skalabilitas dapat dicapai dengan berbagai cara. Misalnya, platform berbasis cloud menyediakan skalabilitas melalui kemampuan seperti penyeimbang beban bawaan, penskalaan otomatis, dan replikasi multiregion—yaitu menyalin data dan layanan di beberapa lokasi geografis untuk meningkatkan kinerja dan keandalan. Kemampuan ini memungkinkan layanan untuk mendistribusikan lalu lintas secara cerdas, mempertahankan waktu aktif, dan meminimalkan waktu pemulihan sebagai respons terhadap perubahan kondisi.
Misalnya, platform streaming yang di-host cloud biasanya beroperasi pada 100 server. Tetapi selama acara global langsung, secara otomatis dapat ditingkatkan ke 10.000 server di berbagai wilayah, sehingga pemutaran dapat dilakukan dengan lancar untuk jutaan penonton secara bersamaan.
Karena aplikasi perangkat lunak telah menjadi penting untuk operasi bisnis dan kehidupan sehari-hari konsumen, sangat penting bahwa aplikasi ini menahan gangguan tak terduga dan tetap berfungsi di hampir semua kondisi.
Empat faktor khususnya mendorong meningkatnya penekanan pada ketahanan aplikasi.
Pelanggan mengharapkan layanan digital selalu berfungsi. Menurut Google, 53% pengunjung meninggalkan halaman seluler jika membutuhkan waktu lebih dari tiga detik untuk memuat.
Baik itu aplikasi perbankan, platform e-commerce, atau portal kesehatan, waktu henti dapat memicu pelanggan beralih ke pesaing, reaksi negatif di media sosial, dan kerusakan merek yang berkepanjangan. Ketersediaan aplikasi bukan hanya metrik teknis tetapi persyaratan bisnis mendasar.
Pemadaman aplikasi bisa mahal bagi organisasi dari semua ukuran. Pertimbangkan skenario yang umum terjadi: Sebuah merek retail meluncurkan acara penjualan dengan lalu lintas tinggi, tetapi layanan checkout gagal karena adanya permintaan tambahan. Dalam hitungan menit, ribuan transaksi terhenti, pelanggan menjadi frustrasi, dan perusahaan kehilangan pendapatan.
Selain kehilangan penjualan, pemadaman dapat memicu serangkaian biaya sekunder, mulai dari biaya remediasi dan pelanggaran perjanjian tingkat layanan (SLA) hingga penalti peraturan, kompensasi pelanggan, dan kerusakan merek jangka panjang.
Insiden profil tinggi baru-baru ini menunjukkan seberapa signifikan dampaknya:
Arsitektur aplikasi modern memiliki banyak bagian yang bergerak: layanan mikro, lingkungan multicloud, pustaka kode, dan banyak lagi. Kendati komponen modular ini meningkatkan skalabilitas, mereka juga meningkatkan jumlah titik kegagalan potensial.
Tanpa desain dan implementasi yang tangguh, masalah kecil pun dapat meningkat. Gangguan pada satu layanan mikro dapat berdampak pada puluhan dependensi. Misalnya, jika layanan database yang menyimpan informasi produk berhenti berfungsi, itu dapat mengganggu fitur lain, seperti pencarian, rekomendasi, atau checkout.
Gangguan jaringan antara wilayah cloud juga dapat memecah layanan dan menyebabkan inkonsistensi data. Berbeda dengan kegagalan layanan mikro di mana suatu komponen berhenti berfungsi sepenuhnya, masalah konektivitas ini menciptakan skenario “split-brain”: bagian-bagian berbeda dari aplikasi terus berjalan tetapi tidak dapat berkomunikasi satu sama lain.
Misalnya, sistem pemesanan pada aplikasi perdagangan keuangan mungkin terputus dari data harga real-time, menyebabkan pengguna melihat kutipan harga yang salah atau mengalami transaksi yang gagal.
Pemadaman antarmuka pemrograman aplikasi (API) juga dapat merusak fungsionalitas penting. Sementara kegagalan layanan mikro memengaruhi komponen internal yang dikendalikan organisasi, gangguan API melibatkan layanan pihak ketiga yang bergantung pada aplikasi tetapi tidak dapat melakukan perbaikan secara langsung. Misalnya, jika layanan pemetaan aplikasi pengiriman mati, pengguna tidak dapat melacak pengemudi dan pengemudi tidak dapat menemukan rute, mengganggu pengalaman meskipun aplikasi tetap berjalan.
Di sektor dan lokasi tertentu, badan pengatur telah menetapkan persyaratan ketat untuk ketersediaan data, kemampuan pemulihan aplikasi, mitigasi kehilangan data, dan waktu aktif. Persyaratan ini meningkatkan ketahanan aplikasi dari tujuan teknis menjadi masalah kepatuhan.
Beberapa undang-undang perlindungan data dan privasi sekarang menyertakan standar ketersediaan di samping mandat keamanan. Sebagai contoh, Peraturan Perlindungan Data Umum (GDPR) mengharuskan data pribadi tetap terlindungi dan dapat diakses. Jika terjadi kegagalan sistem, organisasi diharapkan untuk memulihkan data yang hilang.
Industri yang diatur dengan ketat, khususnya, menghadapi beberapa standar yang paling ketat.
Meskipun Undang-Undang Sarbanes-Oxley (SOX) tidak secara eksplisit mengamanatkan rencana pemulihan bencana, banyak organisasi memelihara sistem cadangan dan prosedur pemulihan formal untuk membantu mematuhi—dan membuktikan kepatuhan—terhadap undang-undang tersebut.
Lembaga keuangan juga menghadapi peraturan dan rekomendasi khusus sektor dari badan-badan seperti Federal Financial Institutions Examination Council (FFIEC), yang memberikan panduan terperinci tentang keberlangsungan bisnis dan tujuan waktu pemulihan.
Di bawah Undang-Undang Portabilitas dan Akuntabilitas Asuransi Kesehatan (HIPAA), entitas yang tercakup harus menerapkan perlindungan administratif, fisik, dan teknis untuk membantu memastikan ketersediaan dan integritas informasi kesehatan yang dilindungi (ePHI). Meskipun HIPAA tidak mewajibkan akses 24/7, tetapi HIPAA mengharuskan organisasi layanan kesehatan untuk mempertahankan akses ke data pasien saat dibutuhkan untuk perawatan.
Aturan Keamanan HIPAA memerlukan rencana backup, prosedur pemulihan bencana, dan operasi mode darurat, yang mendorong banyak organisasi untuk berinvestasi dalam strategi failover dan replikasi data yang canggih.
Untuk membantu memastikan bahwa sistem dapat menahan gangguan dunia nyata, organisasi memvalidasi ketahanan aplikasi melalui kombinasi pengukuran berkelanjutan dan pengujian proaktif. Pendekatan ini memungkinkan tim untuk memantau kinerja, mengidentifikasi kerentanan dan mengonfirmasi apakah aplikasi dapat pulih dengan cepat dan efektif.
Tim DevOps, khususnya, sering kali mengintegrasikan praktik-praktik ketahanan ke dalam integrasi berkelanjutan/penyampaian berkelanjutan (jalur CI/CD). Melakukan hal itu memungkinkan mereka untuk mengotomatiskan pengujian prosedur failover, memvalidasi perubahan konfigurasi, dan mengembalikan penerapan yang tidak stabil untuk menangkap masalah lebih awal dan mencegah gangguan menjangkau pengguna.
Organisasi mengandalkan beberapa metrik utama untuk menilai ketahanan aplikasi.
RTO adalah waktu henti maksimum yang diizinkan sebelum sistem harus dipulihkan. RTO membantu menentukan ekspektasi pemulihan dan mendukung pemulihan bencana dan perencanaan keberlangsungan bisnis.
Organisasi menetapkan RTO berdasarkan analisis dampak bisnis: menentukan berapa lama setiap sistem dapat mati sebelum menyebabkan kerusakan yang tidak dapat diterima pada operasi, pendapatan, atau pengalaman pelanggan.
Sebagai contoh, sistem pemrosesan pembayaran mungkin memiliki RTO 5 menit, sementara alat pelaporan internal mungkin menoleransi 24 jam.
MTTR adalah lamanya waktu yang dibutuhkan untuk memulihkan layanan setelah kegagalan. Organisasi mengukur MTTR dengan menggunakan alat manajemen insiden dan platform pemantauan yang secara otomatis melacak waktu antara deteksi kegagalan dan pemulihan layanan. MTTR yang lebih rendah berarti pemulihan yang lebih cepat dan pengalaman pengguna yang lebih baik.
MTBF adalah waktu operasional rata-rata antara kegagalan sistem. Ini memberikan insight tentang seberapa sering gangguan terjadi dan dihitung dengan membagi total jam operasional dengan jumlah kegagalan, biasanya dilacak melalui sistem pemantauan otomatis dan log insiden.
Anggaran kesalahan mengacu pada tingkat waktu henti yang dapat diterima dalam tujuan tingkat layanan. Anggaran kesalahan dapat memungkinkan tim untuk mengambil risiko yang dihitung. Jika layanan hanya menggunakan 20% dari anggaran kesalahan bulanannya, tim dapat menerapkan fitur baru dengan lebih agresif. Jika anggaran hampir habis, mereka fokus pada peningkatan stabilitas sebagai gantinya.
Kartu skor ketahanan adalah laporan komprehensif yang menggunakan data redundansi, latensi, dan pemulihan untuk mengukur ketahanan aplikasi dan mengidentifikasi peluang untuk perbaikan. Kartu skor ini biasanya dihasilkan oleh platform pengamatan yang mengumpulkan metrik dari beberapa alat pemantauan.
Organisasi semakin beralih ke pengujian untuk mendapatkan perspektif yang lebih realistis. Di mana metrik dapat memberikan landasan, pengujian dapat membantu organisasi beralih dari kesiapan teoretis ke ketahanan yang terbukti.
Rekayasa kekacauan adalah praktik memperkenalkan kegagalan terkontrol—seperti mematikan server, memasukkan latensi atau memaksa kehilangan konektivitas—untuk menguji bagaimana aplikasi pulih di bawah tekanan.
Misalnya, alat seperti Chaos Monkey milik Netflix secara acak menghentikan instance aplikasi untuk menguji apakah layanan dapat bertahan dari pemadaman yang tidak terduga.
Simulasi bencana adalah skenario skala penuh yang meniru pemadaman besar atau serangan untuk mengevaluasi pemulihan teknis, komunikasi, dan koordinasi antartim.
Simulasi—seperti serangan ransomware dan kegagalan wilayah cloud— membantu organisasi untuk menguji tekanan arsitektur aplikasi dan mengidentifikasi kesenjangan dalam rencana pemulihan bencana.
Kecerdasan buatan (AI) dan machine learning (ML) membentuk kembali cara organisasi mendekati ketahanan. Teknologi ini membawa alat baru yang tangguh untuk mencegah waktu henti tetapi juga memperkenalkan tantangan unik.
Salah satu tantangan terbesarnya adalah beban kerja AI membutuhkan banyak sumber daya. Banyak model bergantung pada unit pemrosesan grafis (GPU), yang mahal dan sulit untuk diduplikasi di seluruh wilayah cloud. Hal ini membuat redundansi—bagian penting dari ketahanan—lebih sulit dicapai.
Sistem AI juga dapat gagal dengan cara yang tidak terduga. Seiring berjalannya waktu, akurasi mereka mungkin menurun, masalah yang dikenal sebagai penyimpangan model. Atau mereka mungkin menemukan input yang bersifat adversarial—data berbahaya yang dirancang untuk mengelabui sistem. Jenis kegagalan ini bisa lebih sulit untuk diprediksi dan diatasi.
Selain itu, ketika fitur AI melambat atau berhenti bekerja—masalah umum di lingkungan cloud karena kendala sumber daya atau latensi—aplikasi lainnya harus tetap bekerja dengan andal, yang memberikan tekanan tambahan pada strategi degradasi bertahap.
Pada saat yang sama, AI memiliki contoh penggunaan penting untuk meningkatkan ketahanan:
Singkatnya, meskipun AI memperkenalkan kompleksitas baru, ia juga dapat memfasilitasi pemulihan yang lebih cepat, pemantauan yang lebih cerdas, dan aplikasi yang lebih tangguh secara keseluruhan, terutama ketika diintegrasikan ke dalam lingkungan cloud-native dan pipeline DevOps.
Sederhanakan manajemen aplikasi dan dapatkan insight yang dapat Anda tindak lanjuti dengan menggunakan IBM Concert, platform otomatisasi teknologi berbasis AI.
Jembatani full stack observability dengan manajemen sumber daya aplikasi otomatis untuk mengatasi masalah kinerja sebelum berdampak pada pengalaman pelanggan.
Temukan layanan yang sangat inovatif yang diberikan oleh IBM Consulting untuk mengelola lingkungan yang kompleks, hybrid, dan multicloud.