Arsitektur aplikasi dan infrastruktur

Arsitektur Aplikasi dan Infrastruktur: Tantangan dan Solusi (2)

818 400 Dian Boyke

Arsitektur Aplikasi dan Infrastruktur: Sebelumnya kita sudah membahas arsitektur yang digunakan di Tokopedia, Wikipedia dan Revive dalam mengantisipasi lonjakan traffic mereka yang terus meningkat. Selanjutnya kita akan bahas lebih banyak di website yang fokus di layanan content dan eCommerce.

Disclaimer: Semua yang materi disini berdasarkan informasi yang didapatkan di lapangan, dan ditulis hanya untuk tujuan sharing-knowledge. Dengan mempertimbangkan hal-hal security dan informasi yang credential maka setiap materi tidak akan dijelaskan secara detail, dan beberapa stack teknologi akan disamarkan.

Kompas.com

kompascom architechture

kompascom architechture

Kompas.com merupakan portal berita yang dimiliki oleh group Kompas-Gramedia, terdiri dari berita, video, gambar yang tersedia dalam banyak platform.

Karakteristik: Halaman berita hanya khusus untuk membaca berita saja, tidak ada proses tulis, update ataupun upload di halaman ini.

Arstitektur: Dibeberapa kasus, penggunaan database membutuhkan perlakuan khusus untuk mendapatkan performance terbaiknya. Alternatifnya adalah dengan menambahkan layer caching sebelum masuk ke database, dengan tujuan load database tidak akan tinggi.

Di Kompas.com mereka menggunakan file statik untuk memperingan beban Database. Setiap berita memiliki file statiknya masing-masing dan tanpa membutuhkan relasi antar file. Keunggulan menggunakan arsitektur seperti ini adalah kemudahan pada saat ingin melakukan scaling, bahkan sampai scaling di level Datacenter. Setiap penambahan datacenter tidak akan mengganggu datacenter yang lainnya, bahkan pada saat proses sinkronisasi sedang berlangsung.

Dan merupakan skenario fail-over yang baik karena setiap datacenter dapat berdiri masing-masing secara independent.

Detikcom

Arsitektur Detikcom

Arsitektur Detikcom

Sebagai portal berita nomer 1 di Indonesia menurut ranking Alexa, Detik.com telah mengalami banyak tantangan yang menjadikan sistem mereka menjadi lebih mature.

Karakteristik: Serupa dengan load portal berita lainnya, traffic akan didominasi oleh aktifitas baca konten. Dan proses backend dilakukan di cluster yang berbeda.

Arsitektur: Ada kemiripan pendekatan yang digunakan oleh Detikcom, yakni menghindari kontak langsung dengan database dengan cara menambah layer caching data. Teknologi yang mereka gunakan adalah dengan memasang Redis diantara aplikasi dengan layer data. Dan dimasing-masing server aplikasi terinstall pula Redis-slave yang selalu sinkron dengan Redis-master. Mereka menggunakan fitur replikasi untuk memastikan Redis-slave akan selalu tersinkron dengan yang ada di Redis-master.

Kelebihan dari arsitektur ini adalah traffic internal (antar server) yang melalui jaringan dapat terminimalisir, Hal ini dimungkinkan karena setiap data yang dibutuhkan oleh aplikasi dapat langsung di akses melalui traffic localhost.

Satu-satu nya traffic internal yang terpakai adalah traffic antara Redis-master yang meng-update data yang ada di Redis slave. Dan volume data yang digunakan oleh replikasi Redis ini lebih kecil dibandingkan apabila aplikasi meng-akses Redis secara konstan di server yang beda.

Microservices

Tidak lengkap apabila kita bicara arsitektur aplikasi tanpa membahas desain aplikasi yang sedang populer saat ini, Microservices.

Adopsi microservices di startup-startup Indonesia sudah semakin meluas, dan tidak sungkan mereka me-refactoring sistem kedalam arisitektur ini. Dengan menggunakan arsitektur microservices maka stack teknologi yang digunakan akan semakin kaya dan fleksibel. Kebebasan dalam memilih teknologi berdasarkan ketersediaan resource, kebutuhan sistem yang spesifik, dan keinginan untuk mencicipi teknologi terbaru, telah meyakinkan mereka untuk lebih terbuka pada teknologi dan platform yang tersedia.

Mataharimall.com

Arsitektur Mataharimall.com

Arsitektur Mataharimall.com

Merupakan salah satu pemain eCommerce di Indonesia yang masih berumur jagung. Proses yang terjadi di halaman frontend dengan yang proses yang terjadi internal aplikasi dapat dibilang sebagai proses yang sangat tinggi terjadi, mereka mulai melakukan migrasi dari aplikasi monolitiknya ke microservices agar tetap dapat melayani customer dan vendornya dengan baik.

Karakteristik: Query yang terjadi pada proses baca database akan lebih bervariatif karena fitur-fitur seperti sort, kategori, facet, dan sebagainya. Sedangkan proses tulis ke database lebih banyak terjadi pada saat proses transaksi berlangsung.

Arsitektur: Aplikasi eCommerce memiliki banyak fungsi yang bisa dipisah menjadi proses-proses kecil yang independent dan fokus pada tugasnya yang spesifik. Contohnya seperti pada proses yang terjadi di frontend yaitu listing produk, cart management, transaksi pembayaran, pencarian dan pengklasifikasian, begitu pula proses-proses di halaman administrasi seperti input dan update produk, bulk data import, sinkronisasi data, dan reporting, semua bisa berjalan sebagai fungsi yang terpisah.

Dan semua micro services tersebut diakses secara langsung oleh aplikasi frontend. Frontend meminta data-data yang dibutuhkan dan proses-proses yang perlu dilakukan, semua langsung melalui API sebagai layer interface microservices. Pengunjung website mengakses website tersebut hanya melalui aplikasi frontend, tanpa pernah mengetahui layer data dan proses yang terjadi dibelakang semua itu.

Kompasiana.com

Arsitektur kompasiana

Arsitektur kompasiana

Sebagai salah satu website penyedia layanan Blog terbesar di Indonesia, Kompasiana tidak hanya fokus pada aktifitas Online saja, tetapi kegiatan-kegiatan Offline seperti workshop dan pertemuan komunitas, yang membuat mereka berhasil dalam membangun ekosistem blog di Indonesia.

Karakteristik: Dengan fasilitas menulis konten yang membuat siapa saja dapat berkontribusi, begitu pula dengan fitur saling balas komentar antar komunitas, membuat Kompasiana memiliki beban kerja yang sama antara proses baca dan tulis database.

Arsitektur: Meskipun sama-sama mengadopsi pendekatan microservices seperti pada contoh sebelumnya, tetapi akan terlihat perbedaannya pada saat pengaplikasian akhir.

Beberapa service micro tersebut banyak di ekspose langsung ke client (browser).

Teknik ini dapat dilakukan dengan menggunakan Ajax call, XHR yang dikemas kedalam bentuk widget, iframe dan lainnya. Dan salah satu kelebihan dari pendekatan ini adalah meminimalisir beban pada aplikasi utama (frontend). Dan apabila ada salah satu service yang mengalami masalah maka tidak akan mempengaruhi layanan secara keseluruhan, kemungkinannya adalah halaman blog akan terlihat tidak ter-load dengan sempurna.

Kesimpulan

Beda layanan membutuhkan pendekatan arsitektur yang berbeda pula, bisa dengan dengan pendekatan arsitektur aplikasi ataupun arsitektur infrastruktur. Tidak ada arsitektur sempurna yang dapat diaplikasikan di semua kondisi dan teknologi. Dan terkandang hanya dengan memiliki arsitektur aplikasi yang tepat, dapat menghasilkan performance aplikasi yang lebih baik, tanpa perlu (dulu) melakukan scaling up/out atau mengadopsi teknologi yang canggih.

1 comment

Leave a Reply

Your email address will not be published.