PPL Pertemuan 11 - Estimasi Kapasitas Sistem

Nama : Cindi Dwi Pramudita

NRP : 5025201042

Kelas : Perancangan Perangkat Lunak A


Estimasi Kapasitas Sistem  WhatsApp


Estimasi kapasitas untuk aplikasi seperti WhatsApp mencakup analisis berbagai aspek seperti lalu lintas data, penyimpanan, dan bandwidth yang diperlukan untuk mendukung layanan pengiriman pesan instan secara efisien. Berikut adalah rincian estimasi kapasitas untuk WhatsApp:

A. Deskripsi Singkat
    WhatsApp adalah aplikasi pengiriman pesan instan yang memungkinkan pengguna untuk mengirim teks, gambar, video, dan pesan suara, serta melakukan panggilan suara dan video. Aplikasi ini mendukung komunikasi satu-ke-satu dan grup.

B. System Requirements
  • Persyaratan Fungsional:
    • Pengguna harus dapat mengirim dan menerima pesan teks, gambar, video, dan pesan suara.
    • Pengguna harus dapat melakukan panggilan suara dan video.
    • Pengguna harus dapat membuat dan mengelola grup.
    • Aplikasi harus menyediakan notifikasi pesan baru.
    • Aplikasi harus mendukung enkripsi end-to-end untuk keamanan komunikasi.
  • Persyaratan Non-Fungsional:
    • Skalabilitas: Sistem harus mampu menangani jutaan pengguna aktif secara bersamaan.
    • Keandalan: Sistem harus selalu tersedia dengan downtime yang minimal.
    • Latensi rendah: Sistem harus memberikan waktu respons yang cepat untuk pengiriman dan penerimaan pesan.
    • Keamanan: Sistem harus melindungi data pengguna dan komunikasi dari akses yang tidak sah.
    • Kapasitas penyimpanan besar: Sistem harus menyimpan sejumlah besar pesan, media, dan log.
  • Persyaratan yang Diperpanjang:
    • Dukungan multi-platform: Aplikasi harus berjalan pada berbagai platform seperti iOS, Android, dan Web.
    • Backup dan pemulihan data: Sistem harus mendukung backup dan pemulihan data pengguna.
    • Kompatibilitas jaringan: Aplikasi harus berfungsi baik pada jaringan 2G, 3G, 4G, dan Wi-Fi.
C. Estimasi Kapasitas Perancangan Sistem WhatsApp
  • Estimasi Lalu Lintas:
    • Misalkan ada 500 juta pengguna aktif harian (DAU).
    • Rata-rata setiap pengguna mengirim 50 pesan per hari.
    • Total pesan per hari = 500 juta * 50 = 25 miliar pesan.
    • Rata-rata setiap pesan adalah 1 KB.
    • Total lalu lintas data per hari = 25 miliar * 1 KB = 25 TB per hari.
  • Estimasi Penyimpanan:
    • Misalkan setiap pengguna memiliki rata-rata penyimpanan data 100 MB (pesan, gambar, video, audio).
    • Total penyimpanan yang diperlukan untuk 500 juta pengguna = 500 juta * 100 MB = 50 PB (petabyte).
    • Dengan replikasi data untuk redundansi dan pemulihan bencana, total penyimpanan mungkin mencapai 100 PB.
  • Estimasi Bandwidth:
    • Total lalu lintas data per hari = 25 TB.
    • Dengan 30 hari dalam sebulan, total lalu lintas data per bulan = 25 TB * 30 = 750 TB.
    • Mengasumsikan aktivitas puncak, bandwidth yang diperlukan mungkin sekitar 1-2 Gbps untuk menjaga latensi rendah dan kinerja optimal.
D. System Design
  • Arsitektur:
    • Frontend: Aplikasi mobile (iOS, Android) dan aplikasi web.
    • Backend: Server aplikasi yang menangani otentikasi pengguna, pengiriman pesan, manajemen grup, dan enkripsi end-to-end.
    • Database: NoSQL database (misalnya, Cassandra) untuk menyimpan pesan dan metadata.
    • Media Storage: Sistem penyimpanan terdistribusi (misalnya, Amazon S3) untuk menyimpan file media (gambar, video, audio).
    • Load Balancer: Untuk mendistribusikan permintaan ke server backend yang tersedia.
    • Content Delivery Network (CDN): Untuk mengurangi latensi dan mempercepat pengiriman media.
  • Skalabilitas:
    • Horizontal scaling untuk menambah lebih banyak server seiring pertumbuhan pengguna.
    • Sharding dan replikasi data untuk meningkatkan throughput dan ketersediaan.
E. Low Level Design dan High Level Design
  • High Level Design:
    • User Interface (UI) pada aplikasi mobile dan web untuk interaksi pengguna.
    • API Gateway untuk mengarahkan permintaan dari klien ke layanan backend.
    • Service Layer yang mengelola logika bisnis seperti pengiriman pesan, enkripsi, dan manajemen grup.
  • Low Level Design:
    • Detil implementasi dari setiap komponen seperti database schema, algoritma enkripsi, protokol komunikasi antar server, dan pengelolaan sesi pengguna.
F. Data Model Design
  • Pengguna:
    • UserID, Username, PasswordHash, ProfilePicture, ContactList, Status.
  • Pesan:
    • MessageID, SenderID, ReceiverID, Content, Timestamp, MessageType (text, image, video, audio).
  • Grup:
    • GroupID, GroupName, Members, GroupMessages.
  • Media:
    • MediaID, UserID, FileType, FilePath, UploadTimestamp.
G. Conclusion
    Estimasi kapasitas untuk WhatsApp menunjukkan kebutuhan yang sangat besar akan penyimpanan, bandwidth, dan kemampuan pemrosesan untuk mendukung jutaan pengguna aktif harian. Dengan desain yang skalabel dan handal, sistem dapat menangani volume lalu lintas yang tinggi sambil menyediakan layanan yang cepat dan aman. Struktur dan arsitektur sistem yang dirancang dengan baik akan memastikan WhatsApp tetap dapat diandalkan dan efisien dalam memberikan pengalaman komunikasi yang berkualitas kepada pengguna di seluruh dunia.

Comments

Popular posts from this blog

PPL Pertemuan 7 - Desain Sistem Restaurant

Evaluasi Tengah Semester Perancangan Perangkat Lunak

PPL Pertemuan 14 - Desain Database