2. Setelah mengikuti pertemuan ini, diharapkan
mahasiswa dapat :
Mendeskripsikan Kontributor Latency
Mendeskripsikan Skalabilitas Aplikasi
Mendeskripsikan Ketersediaan Aplikasi
3.
Aplikasi dengan Low web latency
Berarti memberikan waktu loading halaman web
yang rendah
Aplikasi yang dapat melayani pengguna
meskipun jumlah pengguna bertambah secara
signifikan (scalability)
Aplikasi tidak down (highly available atau
continuously available)
4.
5.
Bawa data lebih dekat ke Aplikasi
Aplikasi dapat me-cache data untuk mengurangi pemanggilan ke DB.
▪ memcached / ehCache to cache data at the Web/application Tier.
▪ Web Tier dapat me-cache data seperti static HTML
fragments/images/javascript/CSS files.
▪ Application Tier dapat me-cache data non-transactional seperti lookup
maps.
▪ OR Mapping tool seperti Hibernate juga mendukung data caching
▪ Aplikasi Internet Web dapat menggunakan CDN (content delivery
networks)/ Edge Networks ( seperti Akamai) mempercepat pengiriman
konten statik.
6.
Solusi : Menyimpan data di Memori
Gunakan in Memory databases (Volt DB, Solid DB,
atau Oracle TimesTen), XTP solutions (Oracle
coherence, IBM eXtreme Scale, GigaSpaces eXtreme
Application Platform) untuk meningkatkan kinerja
aplikasi
7.
request sebuah layanan dapat dibagi ke dalam pekerjaan-pekerjaan kecil
yang dieksekusi secara paralel dan hasil-hasinya lalu dikombinasikan
kembali.
Contoh teknik
partisi sistem secara fungsional yang secara independent melakukann
komputasi dan memproses request,
Map Reduce seperti Hadoop, CouchDB memungkinkan pekrjaan
dibagi ke dalam smaller chucks dan hasilnya dikombinasikan kembali
sebelum dikirim sebagai respon.
Bahasa pemrograman Scala, ERLang, Ada dan sebagainya
mendukung bahasa konstruksi untuk concurrency.
Concurrency library seperti Akka untuk Java, API terbaru tersedia
mulai dari Java 1.5 (ExecutorService)
8.
Optimasi Hardware – Hardware yang menjalankan aplikasi dapat
di tune up untuk mengurangi latency.
Optimasi 10G/20G network, fiber channel, low latency switches,
SSD (Solid State Drives), tidak menggunakan virtualisasi dapat
mengurangi latency.
Mekanisme Transport– Mekanisme transport dapat menambah
latency aplikasi. Sebagai contoh, komunikasi aman seperti https
dapat menyebabkan latency karena adanya penambahan
overhead dari proses decipher data pada sisi penerima. Satu cara
untuk ini adalah mematikan SSL pada Load Balancer/Firewall.
10.
Skalabilitas berarti kemampuan aplikasi untuk menangani
pertumbuhan jumlah data dan concurrency tanpa
memberikan dampak pada kinerja.
11.
Aplikasi seharusnya menyimpan state-nya dalam repositori yang
tersentalisasi, tetapi aplikasi sendiri bersifat stateless.
Tidak ada penyimpanan data atau state pada sistem file lokal.
Aplikasi Stateless memungkinkan penambahan jumlah instan aplikasi
untuk mengakomodasi pertumbuhan pengguna.
Namun, repository tersentarlisai akan menyebabkan bottleneck. Dengan
penambahan data, repositori seperti RDBMS dapat memperlambat proses.
Satu pendekatan untuk menyelesaikan isu ini adalah
menimalisasi mutable state dalam database melalui teknik :
data sharding : membagi database besar ke dalam database kecil yang
cepat dan mudah dikelola
Penggunaan NoSQL data stores untuk beberapa atau semua data aplikasi
12.
13.
14.
Ketika menjalankan sistem dalam cluster yang besar,
sangat penting untuk mengurangi intervensi manual.
Sebagai contoh ketika beban aplikasi mencapai beban
maksmimal yang ditentukan, monitoring aplikasi
seharusnya mampu menambah instan baru dan load
balancer baru seharusnya mampu mengenali hal yang
sama untuk menanggulanginya.
Ketika aplikasi tidak dapat terhubung dengan resource
yang diinginkan, aplikasi seharusnya secara intelligent
mengenali kegagalan dan mencoba mengakses alternatif
resource yang tersedia. Aplikasi membutuhkan meta data
repository terpusat untuk skenario fault tolerance.
15. Faktor-faktor yang berpengaruh pada
Availability :
Redudancy
Fault Tolerance
Monitoring and Testing
Data Konfigurasi
16.
Redundancy perlu dibangun
pada semua layer, software,
hardware, power dan data
center. Meskipun data center
sedang down, pengguna masih
harus dapat mengakses aplikasi.
Tingkat redundancy dan down
time adalah faktor yang
menentukan berapa dana
investasi yang ditanamkan untuk
sebuah solusi. Beberapa
masalah tidak memiliki solusi
dalam konteks teknologi saat ini,
misalnya real time data
mirroring atau sinkronisasi data
antar data center yang terpisah
secara geografis.
17.
Aplikasi perlu fault tolerance (contoh
mekanisme retry) untuk menjamin bahwa
aplikasi mengambil manfaat dari sumber
daya yang dialokasikan dinamis untuk tetap
berjalan.
Menerapkan repositori meta data terpusat
yang memiliki informasi tentang sumber
daya baru alternatif ketika meningkatkan
nskala infrastruktur aplikasi.
18.
Jika Aplikasi tidak dimonitor
dengan baik, maka kegagalan
sistem tidak terdeteksi sehingga
menyebabkan aplikasi menjadi
unavailabe.
Kemampuan untuk memonitor
stack aplikasi dan mengambil aksi
korektif sangat penting.
Aplikasi harus memiliki fitur-fitur
monitoring, auto-scaling, dan
testing untuk menjamin bahwa
aplikasi bekerja