
SMILE Infrastructure & Database Optimization
Use Case: Database Optimization, Infrastructure Implementation
Problem
Aplikasi digunakan secara rutin 24/7 dengan beban transaksi yang tinggi.
Lama waktu loading terutama saat melakukan transaksi dan proses report secara bersamaan.
Database terpusat menyebabkan beban tinggi pada satu titik, berdampak pada performa sistem secara keseluruhan.
Solution
Database Optimization
-
Database Replication & Separation
- Pemisahan database berdasarkan layanan untuk meningkatkan efisiensi dan mengurangi bottleneck:
- DB A: Menangani transaksi inti aplikasi.
- DB B: Digunakan khusus untuk laporan dan analisis data.
- DB C: Menyimpan data yang sering diakses (read operations) untuk mengurangi beban di DB utama.
- Replikasi database di on-premise Pusdatin untuk meningkatkan redundansi dan mengurangi latensi dalam akses data.
- Pemisahan database berdasarkan layanan untuk meningkatkan efisiensi dan mengurangi bottleneck:
-
Query Optimization & Indexing
- Melakukan review query terutama pada layanan reporting yang memiliki jumlah data besar.
- Menyesuaikan indexing agar lebih optimal sesuai dengan query yang sering digunakan.
- Implementasi caching untuk mempercepat eksekusi query atau data yang sering digunakan dan minim perubahan.
- Menggunakan asynchronous processing dengan queue untuk proses yang tidak perlu berjalan secara real-time guna mengurangi beban sistem (notifikasi).
Infrastructure Implementation
-
Microservices Architecture Implementation
- Memungkinkan aplikasi scale-up secara dinamis berdasarkan beban kerja masing-masing layanan.
- Pemisahan layanan untuk menangani request secara independen, sehingga jika satu service mengalami lonjakan load, tidak mengganggu yang lain.
- Menggunakan load balancing untuk membagi beban kerja antar instance aplikasi.

Technology

Database

Container Orchestration

Flexible Deployment & Scaling
Impact
Pengurangan waktu loading aplikasi secara signifikan, terutama pada transaksi dan laporan.
Peningkatan ketersediaan sistem, mengurangi potensi downtime akibat beban tinggi transaksi dan report yang digunakan secara bersamaan.
Peningkatan skalabilitas sistem yang memungkinkan penyesuaian kapasitas berdasarkan kebutuhan penggunaan.
Pemisahan workload pada database untuk menghindari konflik antara transaksi dan laporan.