Tugas 4 : High Level Design
Nama : Fathin Muhashibi Putra
NRP : 5025211229
Kelas : PPL - A
High Level Design
Tugas yang diberikan pada mata kuliah Perancangan Perangkat Lunak (A), yaitu terkait High Level Design. Berikut merupakan dokumentasinya :
Deskripsi High Level Design
High Level Design (HLD) atau Desain Tingkat Tinggi adalah desain sistem umum yang mengacu pada desain sistem secara keseluruhan, dan mendeskripsikan keseluruhan atau arsitektur aplikasi. HLD ini mencakup deskripsi keseluruhan dari arsitektur sistem, bersamaan dengan desain database dan deskripsi singkat mengenai sistem, platform, layanan, desain basis data, serta hubungan antar modul. HLD juga dikenal sebagai desain tingkat makro/sistem yang dibuat oleh solution architect. Desain ini mengubah kebutuhan bisnis menjadi high level solution, dan dibuat terlebih dahulu sebelum Low Level Design. Pada kesempatan kali ini akan dibahas terkait High Level Design dari Twitter.
Twitter adalah platform media sosial yang memungkinkan pengguna untuk berbagi pemikiran, berita, dan informasi dalam format pesan pendek yang dikenal sebagai "tweet". Dengan jangkauan global yang luas, Twitter telah menjadi salah satu saluran utama bagi individu, organisasi, dan perusahaan untuk berkomunikasi dengan audiens mereka secara real-time. Dengan fitur-fitur seperti retweet, like, dan hashtag, Twitter memfasilitasi interaksi antara pengguna dan memungkinkan informasi untuk dengan cepat menjadi viral. High Level Design dari Twitter akan menguraikan arsitektur sistem secara keseluruhan, termasuk infrastruktur yang mendukung situs web dan aplikasi seluler, manajemen basis data untuk menyimpan tweet dan informasi pengguna.
A. Persyaratan (Requirements) Sistem Twitter
Pada sistem Twitter terdapat beberapa persyaratan sebagai berikut :
a.) Persyaratan Fungsional
- Harus dapat membuat tweet baru (bisa berupa teks, gambar, video, dll.).
- Harus dapat mengikuti pengguna lain.
- Harus memiliki fitur newsfeed yang terdiri dari tweet dari orang-orang yang diikuti pengguna.
- Harus dapat mencari tweet.
b.) Persyaratan Non-Fungsional
- Ketersediaan tinggi dengan latensi minimal.
- Sistem harus dapat diskalakan dan efisien.
c.) Persyaratan Tambahan
- Metrik dan analitika
- Fungsionalitas retweet
- Tweet favorit
B. Estimasi Kapasitas Sistem Twitter
a.) Lalu Lintas (Traffic)
Twitter akan menjadi sistem yang banyak dibaca, jika diasumsikan kita memiliki total 1 miliar pengguna dengan 200 juta pengguna aktif harian (DAU), dan rata-rata setiap pengguna melakukan tweet 5 kali sehari. Hal ini memberikan kita 1 miliar tweet per hari.Tweet juga dapat berisi media seperti gambar atau video. Kita dapat mengasumsikan bahwa 10 persen dari tweet adalah file media yang dibagikan oleh pengguna, yang memberikan kita tambahan 100 juta file yang perlu kita simpan.
b.) Penyimpanan (Storage)
Jika diasumsikan setiap pesan rata-rata adalah 100 byte, kita akan memerlukan sekitar 100 GB penyimpanan basis data setiap hari.Kita juga tahu bahwa sekitar 10 persen dari pesan harian kita (100 juta) adalah file media sesuai dengan kebutuhan kita. Jika kita mengasumsikan setiap file memiliki rata-rata ukuran 50 KB, kita akan memerlukan 5 TB penyimpanan setiap hari.
Lalu, untuk 10 tahun, kita akan memerlukan sekitar 19 PB penyimpanan.
c.) Bandwidth
Dengan sistem twitter menangani 5,1 TB masuk setiap hari, kita akan memerlukan bandwidth minimum sekitar 60 MB per detik.d.) Estimasi Tingkat Tinggi (High-level estimate)
Berikut adalah estimasi tingkat tinggi dari sistem twitter:
C. High Level Design Sistem Twitter
- Arsitektur
- Layanan Pengguna
- Layanan Berita Terbaru
- Layanan Tweet
- Retweet
- Layanan Pencarian:
- Layanan Media:
- Layanan Analitik:
- Algoritma Perankingan
- Layanan Pencarian
- Identifikasi Topik Tren
- Layanan Pemberitahuan
D. System Architecture Twitter
E. Data Model Design Twitter
- Users
- Followers
- Tweets
- Favourites
- Feeds
- Feeds_Tweets
https://kuliahppl.blogspot.com/2024/03/high-level-design.html
Comments
Post a Comment