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 : 

  1. Autentikasi Pengguna: Pengguna harus bisa mendaftar dan masuk ke platform dengan aman menggunakan email, nomor telepon, atau akun media sosial mereka.

  2. Manage Profil Pengguna: Setiap pengguna harus memiliki profil yang menampilkan informasi dasar mereka, seperti nama, foto profil, bio, dan informasi kontak.

  3. Posting: Pengguna harus bisa membuat dan membagikan berbagai jenis postingan, seperti foto, video, dan cerita.

  4. News Feed: Pengguna harus memiliki majalah berita personal yang menampilkan konten dari akun yang mereka ikuti, berdasarkan minat dan preferensi mereka.

  5. Pencarian : Pengguna harus bisa menemukan konten dan pengguna baru melalui berbagai fungsionalitas pencarian, seperti pencarian berdasarkan nama pengguna, tagar, atau lokasi.

  6. Suka dan Komentar: Pengguna harus bisa menyukai dan mengomentari postingan yang dibagikan oleh pengguna lain.

  7. Pesan: Pengguna harus bisa berkomunikasi satu sama lain melalui pesan langsung, baik satu lawan satu atau dalam grup.

  8. Privasi dan Keamanan: Privasi dan keamanan pengguna harus dijamin dengan menerapkan langkah-langkah seperti enkripsi data, otentikasi dua faktor, dan moderasi konten.

  9. Notifikasi: Pengguna harus menerima notifikasi waktu nyata untuk tindakan yang terkait dengan akun mereka, seperti suka, komentar, dan pesan.

  10. Analytics and Insights: Platform harus menyediakan pengguna dengan analisis dan wawasan terkait kinerja akun mereka, seperti keterlibatan postingan, pertumbuhan pengikut, dan data demografis.

  11. 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.

  12. 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

  1. 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

  1. 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


  1. 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

Postingan populer dari blog ini

Tugas 6 PPL - Studi kasus 1 - Desain Sistem Restauran

Tugas 5 PPL - Low Level Design (LLD)