Tuesday, April 16, 2019

Komputasi Cloud(Awan)


Pengertian Komputasi Cloud
Komputasi cloud adalah suatu pengiriman atau penyediaan berdasarkan permintaan, daya komputasi, penyimpanan database, aplikasi, dan sumber daya IT lain melalui sebuah platform layanan cloud via internet dengan harga sesuai penggunaan.

Dasar-dasar Komputasi Cloud
Bagi kalian yang menjalankan aplikasi dan membagikan foto dengan jutaan pengguna ponsel atau kalian yang menjalankan operasi penting bagi bisnis, platform layanan cloud dapat menyediakan akses cepat ke sumber daya IT yang fleksibel dan berbiaya rendah. Dengan menggunakan komputasi cloud, kalian tidak perlu melakukan investasi awal yang besar untuk sebuah perangkat keras dan menghabiskan banyak waktu untuk mengelola perangkat keras tersebut. Dengan begitu, kalian juga dapat menyediakan jenis dan ukuran sumber daya komputasi tepat yang kalian inginkan untuk mendukung ide cemerlang terbaru kalian atau mengoperasikan departemen IT. Kalian juga dapat mengakses sumber daya sebanyak yang kalian mau, saat itu juga, dan membayar sesuai dengan yang kalian gunakan

Cara Kerja Komputasi Cloud
Komputasi cloud menyediakan cara yang amat sederhana untuk mengakses suatu server, penyimpanan, database, dan serangkaian layanan aplikasi yang luas melalui fitur Internet. Platform layanan Cloud juga memiliki dan memelihara perangkat keras yang terhubung dengan jaringan yang dibutuhkan untuk layanan aplikasi ini.

Keuntungan dan Manfaat Komputasi Cloud
Keuntungan dan manfaat Komputasi Cloud terdiri dari enam bagian yaitu:
1.      Biaya modal usaha untuk biaya variabel:
Daripada harus banyak berinvestasi dalam pusat data dan server sebelum tahu cara menggunakannya, kalian dapat membayar hanya saat kalian mengkonsumsi sumber daya komputasi, dan hanya membayar seberapa banyak yang kalian gunakan.
2.      Manfaat dari skala ekonomi massif:
Dengan menggunakan komputasi cloud, kalian bisa mendapatkan biaya variabel lebih rendah daripada yang bisa kalian dapatkan sendiri. Karena penggunaan ratusan ribu pelanggan dikumpulkan di cloud, penyedia layanan dapat mencapai skala ekonomi yang lebih tinggi, berujung pada harga sesuai penggunaan, dengan biaya pembayaran yang lebih rendah.
3.      Berhenti menebak-nebak kapasitas
Tak perlu menebak-nebak kebutuhan kapasitas infrastruktur kalian. Jika kalian membuat keputusan kapasitas lebih terdahulu sebelum menerapkan aplikasi, seringkali sumber daya menjadi sangat lah tidak efektif dan kalian juga harus membayar tinggi, atau kalian menjumpai suatu masalah dengan keterbatasan kapasitas. Dengan komputasi cloud, kalian dapat mengakses sebanyak atau sesedikit yang dibutuhkan, dan meningkatkan atau menurunkan kapasitas seperlunya hanya dengan pemberitahuan hanya dengan beberapa menit sebelumnya.
4.      Meningkatkan kecepatan dan fleksibilitas
Di dalam lingkungan komputasi cloud, sumber daya IT hanya tinggal diklik saja, mengurangi waktu kalian untuk menyediakan sumber daya pengembang kalian sendiri, dari yang tadinya memerlukan waktu berminggu-minggu untuk melakukannya menjadi hitungan menit dengan menggunakan Komputasi cloud. Hal ini sangat meningkatkan fleksibilitas bagi organisasi, karena biaya dan waktu yang dibutuhkan untuk bereksperimen dan berkembang akan berkurang jauh.
5.      Berhenti menghabur-hamburkan uang untuk menjalakan dan memelihara pusat data
Fokus pada proyek yang membedakan bisnis kalian sendiri, bukan pada infrastruktur. Komputasi cloud memungkinkan kalian berfokus pada pelanggan, bukan pekerjaan berat yang seperti menempatkan, menumpuk, dan mengurus server.
6.      Merambah global dalam hitungan menit
Kalian dapat Mmnerapkan aplikasi kalian sendiri dengan mudah di beberapa wilayah di seluruh dunia, hanya dengan beberapa klik saja. Kalian juga dapat memberikan latensi yang lebih rendah dan pengalaman yang lebih baik bagi pelanggan kalian dengan mudah dan dengan biaya yang minimal.

Jenis-jenis Komputasi Cloud
Komputasi cloud memiliki tiga jenis utama yang biasa disebut:
1.      Infrastructure as a Service (IaaS)
Berisikan blok bangunan dasar untuk IT cloud dan biasanya menyediakan akses ke fitur jaringan, komputer (virtual atau pada perangkat keras khusus), dan ruang penyimpanan data. Infrastruktur sebagai Layanan memberi kalian tingkat fleksibilitas tertinggi dan kontrol manajemen atas sumber daya IT kalian.
2.      Platform as a Service (PaaS)
Penyediaan platform sebagai layanan menghapus kebutuhan organisasi untuk mengelola infrastruktur yang mendasari (biasanya perangkat keras dan sistem operasi) dan memungkinkan kalian berfokus pada penyebaran dan pengelolaan aplikasi kalian saja. PaaS membantu kalian menjadi lebih efisien dikarenakan tidak memerlukan pengkhawatiran tentang pengadaan sumber daya, perencanaan kapasitas, pemeliharaan perangkat lunak, patching, atau salah satu dari kerja berat yang tidak terdiferensiasi lainnya yang terlibat dalam aplikasi kalian sendiri.
3.      Software as a Service (SaaS)
SaaS ini memberi kalian sebuah produk lengkap yang dijalankan dan dikelola oleh penyedia layanan. Dalam kebanyakan kasus, orang yang merujuk ke Software sebagai Layanan mengacu pada aplikasi pengguna akhir. Dengan penawaran SaaS kalian tidak perlu khawatir tentang bagaimana layanan dipertahankan atau bagaimana infrastruktur yang mendasarinya dikelola, kalian hanya perlu memikirkan bagaimana cara menggunakan software tertentu untuk kalian sendiri.

Komputasi Paralel


Pengertian Komputasi Paralel
Komputasi Paralel merupakan salah satu Teknik untuk melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer independen secara bersamaan. Teknik ini umumnya dipergunakan saat kapasitas yang diperlukan sangat lah besar, baik dengan mengolah data dalam jumlah besar (di industri keuangan, bioinformatika, dll) ataupun juga disebabkan oleh tuntutan proses komputasi yang banyak.
Di dalam Komputasi Paralel ada yang disebut dengan pemrograman parallel. Pemrograman paralel merupakan suatu teknik pemrograman komputer yang memungkinkan dapat mengeksekusi perintah atau operasi secara bersamaan (komputasi paralel), baik dalam komputer dengan satu(prosesor tunggal) ataupun banyak (prosesor ganda dengan mesin paralel) CPU. Komputer-komputer yang terpisah dan terhubung dalam suatu jaringan komputer dengan cara menggunakannya secara bersamaan bisa di sebut dengan istilah sistem terdistribusi (distributed computing).
Dan juga yang perlu diingat ialah komputasi paralel berbeda dengan multitasking. Pengertian multitasking adalah sebuah komputer dengan processor tunggal dapat mengeksekusi beberapa tugas secara bersamaan. Dan juga ada beberapa orang yang tidak dapat menerima bahwa di dalam bidang system operasi sebuah komputer tunggal tidak bisa melakukan beberapa pekerjaan secara bersamaan dalam waktu sama, melainkan proses penjadwalan yang berjalan pada sistem operasi membuat sebuah komputer seperti mengerjakan tugas secara bersamaan dalam waktu yang sama. Sedangkan komputasi paralel sudah dijelaskan sebelumnya, bahwa komputasi paralel menggunakan beberapa processor atau komputer. Selain itu komputasi paralel tidak menggunakan arsitektur Von Neumann.

Tujuan Komputasi Paralel
Tujuan utama penggunaan komputasi paralel ialah untuk mempersingkat waktu eksekusi program yang menggunakan komputasi serial. Ada beberapa alasan lain yang menjadikan suatu program menggunakan komputasi paralel antara lain:
  1. Untuk permasalahan yang besar, terkadang sumber daya komputasi yang ada sekarang belum cukup mampu untuk mendukung penyelesaian terhadap permasalahan tersebut
  2. Adanya sumber daya non-lokal yang dapat digunakan melalui jaringan atau internet
  3. Penghematan biaya pengadaan perangkat keras, dengan menggunakan beberapa mesin yang murah meriah sebagai suatu alternatif penggunaan satu mesin yang bagus tapi mahal, walaupun menggunakan n buah prosesor
  4. Adanya suatu keterbatasan dalam kapasitas memori pada mesin untuk komputasi serial itu sendiri.

Hambatan Komputasi Paralel
Penggunaan komputasi paralel sebagai suatu solusi untuk mempersingkat waktu yang dibutuhkan untuk melakukan eksekusi program yang mempunyai beberapa hambatan. Hambatan-hambatan tersebut antara lain adalah:
  1. Hukum Amdahl: percepatan waktu suatu eksekusi program dengan menggunakan komputasi paralel tidak akan pernah mencapai kesempurnaan karena selalu ada bagian program yang harus dieksekusi secara serial.
  2. Hambatan yang diakibatkan karena beban jaringan: dalam suatu eksekusi program secara paralel, prosesor yang berada di mesin yang berbeda memerlukan pengiriman dan penerimaan data (atau instruksi) melalui suatu jaringan. Untuk program yang dibagi menjadi task-task yang sering membutuhkan sinkronisasi, network latency menjadi masalah utama. Permasalahan ini muncul dikarenakan suatu task membutuhkan data dari task yang lain, state ini dikirimkan melalui suatu jaringan dimana kecepatan transfer sebuah data kurang dari kecepatan prosesor yang mengeksekusi instruksi task itu sendiri. Hal ini menyebabkan task tersebut harus menunggu hingga data sampai terlebih dahulu, sebelum melakukan eksekusi instruksi selanjutnya. Jumlah waktu yang dibutuhkan untuk berkomunikasi melalui jaringan antar dua titik adalah jumlah dari startup time, per-hop time, dan per-word transfer time.
  3. Hambatan yang terkait dengan beban waktu untuk inisiasi task, terminasi task, dan sinkronisasi.

Arsitektur Komputasi Paralel
Taksonomi Flynn membagi arsitektur komputer paralel dengan sudut pandang instruksi dan data, sehingga terdapat empat jenis arsitektur komputer paralel:
  1. SISD (Single Instruction, Single Data): arsitektur ini ialah arsitektur yang mewakili komputer serial, di mana hanya ada satu prosesor dan satu aliran masukan data (memori) sehingga hanya ada satu task saja yang dapat dieksekusi pada suatu waktu. Jenis ini termasuk dalam katagori Arsitektur von Neumann.
  2. SIMD (Single Instruction, Multiple Data): pada arsitektur ini, suatu eksekusi instruksi yang akan dilakukan secara bersamaan oleh beberapa prosesor, di mana suatu prosesor dapat menggunakan data yang berbeda dengan prosesor yang lain. Karakteristik lain dari arsitektur ini ialah alur eksekusi instruksinya yang deterministik (state dari instruksi dan data pada suatu waktu dapat dengan mudah diketahui). Arsitektur ini sangat cocok untuk program yang dibagi menjadi task-task dan mempunyai derajat keteraturan yang tinggi, contohnya adalah sistem pengolah grafik
  3. MISD (Multiple Instruction, Single Data): pada arsitektur ini, berbagai instruksi akan dieksekusi secara bersamaan oleh beberapa prosesor dengan menggunakan data yang sama. Arsitektur ini tidak cukup populer dikarenakan hanya sedikit permasalahan yang membutuhkan solusi dengan menggunakan karakteristik arsitektur ini. Contoh adalah ada suatu permasalahan yang mungkin membutuhkan arsitektur ini antara lain adalah multiple frequency filter dan program pemecah sandi yang menggunakan beberapa algoritma kriptografi sekaligus
  4. MIMD (Multiple Instruction, Multiple Data): pada arsitektur ini, berbagai instruksi dan dieksekusi oleh beberapa prosesor di mana masing-masing prosesor dapat menggunakan data yang berbeda-beda. Eksekusi instruksi pada arsitektur ini dapat dilakukan secara sinkron (pada suatu rentang waktu, jumlah instruksi yang dieksekusi oleh semua prosesor adalah sama) maupun asinkron, deterministik maupun non-deterministik. Dan juga arsitektur ini dapat melakukan pekerjaan sesuai dengan karakteristik dari ketiga asitektur sebelumnya.

Arsitektur Memori pada Komputasi Paralel
Pada umumnya, ada dua buah arsitektur memori pada komputer paralel, yaitu shared memory dan distributed memory
  1. Shared memory: arsitektur ini menyediakan global addressing sehingga berbagai prosesor dapat mengakses memori yang seragam. Setiap perubahan pada suatu lokasi memori oleh suatu prosesor akan selalu terlihat oleh prosesor yang lain. Kelebihan dari arsitektur ini adalah pengaksesan memori yang user friendly dan performansi yang baik dalam penggunaan data bersama antar task. Sedangkan kekurangannya antara adalah kurangnya skalabilitas ketika terjadinya penambahan prosesor, dimana akan terjadinya peningkatan traffic antara prosesor ke shared memory dan antara cache coherent system dengan memori sebenarnya.
  • Berdasarkan frekuensi akses, ada dua jenis shared memory: Uniform Memory Access (UMA): setiap prosesor memiliki hak untuk melakukan pengaksesan yang seragam dengan prosesor lain
  • Non Uniform Memory Access (NUMA): tidak semua prosesor memiliki hak yang sama dalam melakukan pengaksesan memori
  1. Distributed memory: arsitektur ini mempunyai karakteristik di mana setiap prosesor memiliki memorinya masing-masing, sehingga eksekusi instruksi dapat berjalan dengan cara independen antara satu prosesor dengan prosesor yang lainnya. Prosesor akan menggunakan suatu jaringan ketika ia membutuhkan suatu akses ke dalam memori non lokal. Dan akses ini sepenuhnya menjadi tanggung jawab penulis program itu sendiri. Kelebihan dari arsitektur ini ialah terjaganya skalabilitas ketika terjadi penambahan prosesor. Sedangkan kekurangannya ialah sang penulis program harus berurusan dengan detail komunikasi data antara prosesor dan memori non lokal.