Tugas 8 PPL - Estimasi Kapasitas Sistem
Nama : I Gusti Ngurah Ervan Juli Ardana
NRP : 5025211205
Kelas : Perancangan Perangkat Lunak A
Tahun : 2024
Pada Pertemuan kuliah kali, kami ditugaskan untuk melakukan peninjauan estimasi kapasitas desain sistem untuk membuat sebuah aplikasi. Maka dari itu, saya akan meninjau estimasi kapasitas yang dibutuhkan aplikasi Instagram.
Estimasi Kapasitas
Dalam Mendesain sebuah aplikasi, kita harus melalui beberapa langkah diantaranya menentukan estimasi kapasitas. Estimasi kapasitas dalam desain sistem adalah proses krusial dalam memperkirakan kemampuan sebuah sistem untuk menangani beban kerja yang diantisipasi. Ini melibatkan evaluasi menyeluruh terhadap sejumlah faktor, termasuk daya tahan perangkat keras, efisiensi perangkat lunak, kecepatan jaringan, dan perilaku pengguna. Sasarannya adalah untuk menjamin bahwa sistem dapat menanggung beban kerja yang diantisipasi tanpa mengalami penurunan kinerja, kebuntuan, atau kegagalan. Estimasi kapasitas memainkan peran penting dalam mengembangkan desain yang efisien dan scalable untuk memenuhi kebutuhan saat ini dan masa depan, baik itu dalam domain situs web, infrastruktur jaringan, atau sistem yang lebih kompleks.
Deskripsi Aplikasi:
Instagram adalah platform media sosial yang memungkinkan pengguna untuk berbagi foto dan video dengan pengikut mereka. Diluncurkan pada tahun 2010, Instagram telah berkembang menjadi salah satu platform yang paling populer di dunia, dengan lebih dari satu miliar pengguna aktif bulanan pada saat terakhir data tersedia. Aplikasi ini memungkinkan pengguna untuk mengunggah foto dan video dari perangkat mereka, memberikan filter dan efek khusus, serta menambahkan keterangan dan tagar untuk meningkatkan visibilitasnya. Pengguna juga dapat mengatur privasi postingan mereka, memilih untuk membuatnya publik, pribadi, atau hanya terlihat oleh pengikut tertentu. Selain berbagi konten, pengguna Instagram dapat berinteraksi dengan konten yang dibagikan oleh pengguna lain dengan cara seperti menyukai, mengomentari, dan menyimpan postingan. Mereka juga dapat mengirim pesan langsung ke pengguna lain dan berbagi postingan secara pribadi.
Requirements :
Autentikasi Pengguna: Pengguna harus bisa mendaftar dan masuk ke platform dengan aman menggunakan email, nomor telepon, atau akun media sosial mereka.
Manage Profil Pengguna: Setiap pengguna harus memiliki profil yang menampilkan informasi dasar mereka, seperti nama, foto profil, bio, dan informasi kontak.
Posting: Pengguna harus bisa membuat dan membagikan berbagai jenis postingan, seperti foto, video, dan cerita.
News Feed: Pengguna harus memiliki majalah berita personal yang menampilkan konten dari akun yang mereka ikuti, berdasarkan minat dan preferensi mereka.
Pencarian : Pengguna harus bisa menemukan konten dan pengguna baru melalui berbagai fungsionalitas pencarian, seperti pencarian berdasarkan nama pengguna, tagar, atau lokasi.
Suka dan Komentar: Pengguna harus bisa menyukai dan mengomentari postingan yang dibagikan oleh pengguna lain.
Pesan: Pengguna harus bisa berkomunikasi satu sama lain melalui pesan langsung, baik satu lawan satu atau dalam grup.
Privasi dan Keamanan: Privasi dan keamanan pengguna harus dijamin dengan menerapkan langkah-langkah seperti enkripsi data, otentikasi dua faktor, dan moderasi konten.
Notifikasi: Pengguna harus menerima notifikasi waktu nyata untuk tindakan yang terkait dengan akun mereka, seperti suka, komentar, dan pesan.
Analytics and Insights: Platform harus menyediakan pengguna dengan analisis dan wawasan terkait kinerja akun mereka, seperti keterlibatan postingan, pertumbuhan pengikut, dan data demografis.
Business Tools: Instagram juga menawarkan fitur bisnis, seperti iklan dan integrasi e-commerce, yang memungkinkan bisnis untuk mempromosikan produk dan layanan mereka di platform. Fungsionalitas ini harus dirancang dengan memperhatikan kebutuhan bisnis.
Scaling: Sistem harus dirancang untuk menangani lalu lintas dan aktivitas pengguna yang tinggi, karena Instagram memiliki lebih dari 1 miliar pengguna aktif di seluruh dunia. Ini membutuhkan arsitektur yang dapat diskalakan yang dapat menangani volume permintaan dan penyimpanan data yang besar.
dari requirements diatas, kita dapat menentukan estimasi kapasitas yang dapat digunakan aplikasi instagram.
Estimasi Kapasitas
Estimasi Traffic
Pengguna Aktif Harian: Instagram memiliki lebih dari 1 miliar pengguna aktif bulanan, dengan perkiraan 500 juta pengguna aktif harian. Dengan asumsi peningkatan 20% dalam jumlah pengguna aktif harian dalam setahun ke depan, kita dapat memperkirakan jumlah pengguna aktif harian menjadi 600 juta.
Pengguna Aktif Harian Saat Ini: 500 juta
Perkiraan Peningkatan (20%): 500 juta * 20% = 100 juta
Jumlah Pengguna Aktif Harian dalam Setahun ke Depan: 500 juta + 100 juta = 600 juta
Posting Harian: Berdasarkan statistik saat ini, pengguna Instagram membagikan sekitar 100 juta foto dan video setiap hari. Dengan asumsi peningkatan 20% dalam setahun ke depan, kita dapat memperkirakan jumlah postingan harian menjadi 120 juta.
Jumlah Postingan Harian Saat Ini: 100 juta
Perkiraan Peningkatan (20%): 100 juta * 20% = 20 juta
Jumlah Postingan Harian dalam Setahun ke Depan: 100 juta + 20 juta
= 120 juta
Maka dari itu kita dapat menentukan, request per detik (RPS) yang harus ditangani
oleh sistem :
Estimasi RPS untuk Posting Foto dan Video:
RPS=(Jumlah Postingan Harian)/(Jumlah Detik dalam Sehari)
RPS=120,000,000/86,400
RPS≈1,389
Pesan Harian: Pengguna Instagram mengirim sekitar 10 miliar pesan langsung per bulan. Dengan asumsi bahwa setiap pengguna mengirim rata-rata 10 pesan per hari, kita dapat memperkirakan jumlah pesan harian menjadi 100 miliar.
Jumlah Pesan Langsung per Pengguna per Hari: 10
Jumlah Pengguna Aktif Harian: 600 juta
Jumlah Pesan Harian: 600 juta * 10 = 6 miliar
Jumlah Pesan Harian (dalam miliar): 6 miliar / 1000 = 100 miliar
Maka dari itu kita dapat menentukan, request per detik (RPS) yang harus ditangani
oleh sistem :
Estimasi RPS untuk Pengiriman Pesan Langsung:
RPS=(Jumlah Pesan Harian)/(Jumlah Detik dalam Sehari)
RPS=100,000,000,000/86,400
RPS≈1,157,407
Estimasi Storage
Dengan mengasumsikan ukuran foto rata-rata sebesar 500 KB dan ukuran video sebesar 50 MB, total penyimpanan yang diperlukan untuk postingan harian akan menjadi 6 PB. Dengan mengasumsikan ukuran pesan rata-rata sebesar 1 KB, total penyimpanan yang diperlukan untuk pesan harian akan menjadi 100 TB.
Ukuran Rata-rata Foto: 500 KB
Ukuran Rata-rata Video: 50 MB
Ukuran Foto dalam Byte: 500 KB * 1024 = 512,000 bytes
Ukuran Video dalam Byte: 50 MB * 1024 * 1024 = 52,428,800 bytes
Total Penyimpanan untuk Postingan Harian: (Jumlah Foto * Ukuran Foto) + (Jumlah Video * Ukuran Video) = (120 juta * 512,000 bytes) + (120 juta * 52,428,800 bytes) = 6 PB
Ukuran Rata-rata Pesan: 1 KB
Total Penyimpanan untuk Pesan Harian: Jumlah Pesan * Ukuran Pesan = 100 miliar * 1 KB
= 100 TB
Estimasi Bandwidth
Dengan mengasumsikan tingkat unggah foto rata-rata sebesar 50 Mbps dan tingkat unggah video sebesar 500 Mbps, total bandwidth yang diperlukan untuk postingan harian akan sekitar 6 Tbps. Dengan mengasumsikan tingkat unggah pesan rata-rata sebesar 1 Mbps, total bandwidth yang diperlukan untuk pesan harian akan sekitar 100 Gbps.
Tingkat Unggah Rata-rata Foto: 50 Mbps
Tingkat Unggah Rata-rata Video: 500 Mbps
Total Bandwidth untuk Postingan Harian: (Jumlah Foto * Tingkat Unggah Foto) + (Jumlah Video * Tingkat Unggah Video) = (120 juta * 50 Mbps) + (120 juta * 500 Mbps) = 6 Tbps
Tingkat Unggah Rata-rata Pesan: 1 Mbps
Total Bandwidth untuk Pesan Harian: Jumlah Pesan * Tingkat Unggah Pesan = 100 miliar * 1 Mbps
= 100 Gbps
Referensi : 1. Instagram System Design. Requirements | by Manuchekhr Tursunov
2.https://kuliahppl.blogspot.com/2024/05/estimasi-kapasistas-system.html
Komentar
Posting Komentar