Ex Machina (2015) 's Review

Image
From the beginning of this film, which is how humans can't be escaped from the name of Technology. Yes, modern humans today certainly can't be escaped from laptops, smartphones, and other things related to technology. In this film where a boss named Nathan intends to create an interface that can help people make their work easier. We all know if making an interface is not easy. In this case, the computer and its equipment must be designed in accordance with the desired needs and can help humans in their daily work (according to specific tasks given). If we talk about interfaces, it will offend the User Interface. User Interface here is more than what humans can see, touch or hear. The user interface includes concepts, user needs to know computer systems, and must be integrated into the entire system. The user interface isn't enough to just look 'good' but must be able to support tasks done by humans and has made to avoid minor mistakes. In this film, it c

Cloud Computing



CLOUD COMPUTING






Semua orang berbicara tentang "cloud computing" Tapi apa artinya?
    
     Dalam bahasa Indonesia, "cloud" berarti awan dan "computing" berarti komputasi. Semakin banyak, kita melihat teknologi bergerak ke cloud. Ini bukan hanya mode-pergeseran dari model perangkat lunak tradisional ke Internet tapi sudah melewati masanya. Penggunaan Internet mendapatkan masanya selama 10 tahun terakhir. Dekade berikutnya komputasi awan menjanjikan kita cara baru untuk berkolaborasi dengan apapun melalui perangkat mobile.

   Jadi apa itu cloud computing? Intinya, komputasi awan adalah sejenis outsourcing program komputer. Dengan menggunakan komputasi awan, pengguna dapat mengakses perangkat lunak dan aplikasi dari manapun mereka membutuhkannya, sementara sedang dipandu oleh pihak luar - di "awan." Ini berarti bahwa mereka tidak perlu khawatir dengan hal-hal seperti penyimpanan dan daya, mereka hanya bisa menikmati hasil akhirnya.


Hidup saat sebelum Cloud Computing

     Aplikasi bisnis tradisional selalu sangat rumit dan mahal. Jumlah dan variasi perangkat keras dan perangkat lunak yang dibutuhkan untuk menjalankannya butuh sekali pertimbangan. Kita memerlukan seluruh tim ahli untuk menginstal, mengkonfigurasi, menguji, menjalankan, mengamankan, dan memperbaruinya. Bila kita membandingkan usaha ini dengan puluhan atau ratusan aplikasi, mudah untuk melihat mengapa perusahaan terbesar dengan departemen TI terbaik tidak mendapatkan aplikasi yang mereka butuhkan. Usaha kecil dan menengah umumnya tidak memiliki peluang karena keterbatasannya.


Cloud Computing adalah cara yang lebih baik

     Dengan komputasi awan, kita dapat menghilangkan kekhawatiran kita yang akan datang tiba-tiba dengan menyimpan data kita sendiri, hal tersebut dapat kita lakukan karena kita tidak mengelola perangkat keras dan perangkat lunak sendiri karena hal tersebut menjadi tanggung jawab vendor berpengalaman. Kita hanya membayar untuk apa yang akan kita butuhkan, pembaruan otomatis, dan penskalaan naik atau turunnya output dari penggunaan.


Fitur-fitur yang dimiliki Cloud Computing :

     Cloud Computing adalah salah satu hal yang cukup memberi pengaruh besar dalam pembangunan aplikasi web dan mobile yang juga dapat membantu kita menangani jumlah traffic yang masif. Dalam memberdayakan cloud computing, kita bisa membangunnya sendiri yang tentu butuh ongkos dan tenaga yang tidak murah. Atau menggunakan penyedia cloud yang sudah teruji kehandalannya namun harus merogok koceh juga yang walaupun belum tentu murah.
        Dalam cloud computingdeveloper diberi harapan dengan adanya less configuration dan less manage terhadap suatu infrastruktur yang menyokong solusi mereka. Umumnya penyedia cloud hanya menyediakan virtual private server saja. Namun ada juga yang mengembangkan layananya hingga beragam layanan yang membuat developer tidak harus reinvent the wheel dan dont repeat yourself.
        Seperti kita tahu vendor besar seperti IBM, Microsoft, Google, Alibaba Cloud, dan Amazon Web Service sudah menyediakan berbagai layanan yang membuat developer semakin kepincut untuk menggunakannya dalam proyek mereka. Namun bagi kita yang belum pernah tahu sama sekali ada apa aja sih layanan yang disediakan cloude computing vendor. Kita bisa lihat disini.
1. Virtual Private Server (VPS)
Virtual Private Server menawarkan spesifikasi yang cukup beragam. Ada instance yang memiliki RAM tinggi, ada yang memiliki prosesor tinggi, dan ada juga yang memiliki ukuran harddisk lebih besar. Biasanya kita dapat melakukan perubahan plan menjadi skala yang lebih besar atau menjadi lebih kecil. Perubahan dilakukan apabila kebutuhan yang diharapkan semakin meninggi.
Contoh: Azure VM, AWS EC2, GCP Compute Engine.

2. File Storage
Tak elok rasanya bila kita ingin menyimpan jumlah data yang masif namun harus membuat instance baru dari server yang kita inginkan. Vendor biasanya menyediakan layanan yang dapat menampung berbagai file dari customer-nya tanpa harus membuat instance server baru dan memiliki ukuran yang cukup besar. Selain itu colocation juga diharapkan menjadi salah satu fitur built-in terhadap suatu file storage yang disediakan cloud vendor.
Contoh: Azure Blob Storage, AWS S3, AWS Glacier , GCP Cloud Storage.
3. Relational Database
      Ini yang paling menarik, untuk mendapatkan high availbilitydeveloper biasanya harus repot dalam konfigurasi replikasi database ataupun konfigurasi cluster database. Belum lagi bila harus melakukan vertical scaling terhadap ukuran server. Vendor seharusnya menyediakan layanan relational database management system ini untuk menangani masalah high availbility dan masalah keamanan. Diharapkan juga bila ada update dari penyedia RDBMS, vendor dapat menanganinya secara sigap, tanpa harus menunggu update terlalu lama. Contoh: Azure SQL Database, AWS Aurora, AWS Relational Database Service, GCP Cloud SQL.
4. NoSQL Database
      Tidak berbeda jauh dengan relational database, hanya saja yang disediakan adalah berbagai nosql database dengan segala paradigma. Ada yang dapat menyediakan untuk berupa dokumen, ada juga yang berupa key value, ada juga yang berupa graf.  Kelebihannya dibandingkan dengan on-premise tentu adalah kita tidak perlu mengkonfigurasi ulang database tersebut. Terlebih kita dapat memperbaharui spesifikasi server yang digunakan untuk nosql database tersebut dan biasanya terintegrasi dengan layanan lain yang dimiliki oleh cloud vendor tersebut.
Contoh: AWS DynamoDB, IBM Cloudant, Azure DocumentDB, GCP Cloud BigTable, GCP Cloud DataStore
5. Message Queue
Message queue sendiri adalah sebuah layanan dimana kita dapat dengan mudah mengirimkan sejumlah pesan yang akan diproses belakangan. Pesan akan ditampung dalam rentang waktu tertentu dan memiliki ukuran tertentu. Dan untuk mengolahnya, kita harus memiliki worker yang dipasang di tempat terpisah atau menggunakan layanan worker as a service yang dimiliki oleh cloud vendor.
Contoh: AWS Kinesis Stream, Azure Event Hub, Azure HDInsight Kafka, AWS SQS, AWS Service Bus Queue
6. Platform As A Service
       Bila untuk deployment seringkali harus menyiapkan sendiri infrastruktur untuk aplikasi web kita, maka ada juga cloud vendor yang menyediakan setumpuk infrastruktur yang dibutuhkan dalam satu tempat. Biasa dinamakan dengan application service atau platform as a service. Di dalamnya sudah terdapat sistem operasi, web server, bahasa pemrograman yang dibutuhkan, standard library, dan tools - tools lain yang terkait dengan kebutuhan aplikasi web kita. Selain itu scaling-nya pun lebih mudah dilakukan karena kita tinggal upgrade plan saja tanpa harus melakukan konfigurasi ulang mesin server kita.
Contoh: GCP App Engine, Azure App Service, AWS ElasticBeanstalk, Heroku, Redhat Openshift.
7. Machine Learning
      Machine learning akan memakan sejumlah dataset yang kita miliki dan mengolahnya dengan algoritma tertentu untuk menentukan suatu prediksi pada input data yang dia respon. Tentu cukup banyak usaha yang harus dikeluarkan bila harus membuat infrastruktur sendiri. Belum lagi menampung dataset yang bejibun jumlahnya hingga petabytes. Biasanya cloud vendor menyediakan layanan machine learning untuk domain klasifikasi, clustering, dan frequent item set. Ada juga yang menyediakan layanan lain untuk deep learning dalam pengolahan gambar untuk menentukan objek apa saja yang terdapat di dalam gambar itu. Selain machine learning ada juga cloud vendor yang menyediakan layanan pendukung seperti image processing dan computer vision.
Contoh: AWS ML, Azure ML, BigML, GCP Machine Learning Engine.
8. Caching
      Tidak semua data harus diakses langsung ke database apalagi yang sering diambil. Misal seperti statistik user atau papan skor sebuah permainan. Cukup sekali load dan simpan di sebuah tempat yang bernama caching. Caching memiliki kelebihan yaitu 4 sistem kadaluwarsa yang bila sudah kadaluwarsa kita tinggal ambil lagi data terbaru dan simpan di dalam caching. Alhasil kita tak perlu ribet - ribet menulis ulang banyak query dan cukup gunakan caching untuk menghemat tenaga yang dibutuhkan. Bentuknya biasanya key-value dimana key adalah nama informasi yang akan disimpan, dan value adalah struktur sederhana atau kompleks yang akan disimpan di dalam baris caching.
Contoh: AWS Elastic Cache, Azure Redis Cache, GCP Cloud Storage.
9. Container Service
       Saat ini microservice sedang booming - booming-nya. Dimana kita dapat men-deploy sub aplikasi kita di dalam sebuah container yang dinamakan dengan Docker. Dengan menggunakan Docker, sub aplikasi tertentu dapat di-scale secara khusus dan tidak perlu mengubah keseluruhan sistem, sehingga sub aplikasi lain yang tidak perlu di-scale tetap pada spesifikasi sebelumnya.  Untuk melakukan hal ini memang cukup banyak teknik yang diperlukan, namun beberapa cloud vendor sudah mempermudah urusan ini dan kita cukup menyediakan source code dan beberapa definisi, dan tinggal upload saja di cloud vendor tersebut. Untuk scaling pun cukup mudah dilakukan karena kita sudah disediakan panel yang lebih menarik.Contoh: AWS Elastic Container Service, Azure Container Service, GCP Container Engine.
10. Email dan Push Notification
       Notifikasi tentu diperlukan sebuah aplikasi untuk mengabari user bila ada informasi tertentu. Ada yang masih menggunakan e-mail ada juga yang memberitahu informasi terbaru langsung ke handphone milik user baik itu berbasis Android ataupun iOS. Ada juga yang langsung mengirim notifikasi lewat SMS ataupun langsung ke laptop melalui desktop notification. Teknik tersebut dinamakan dengan push notification, dimana kita dapat mengirim pesan tertentu langsung ke device milik user melalui metode tertentu. 
Contoh: AWS SNS, AWS SES, Azure Notification Hub, Google Firebase.

11. Big Data
       Jangan meremehkan big data walaupun data yang kita kumpulkan cuma tiga kolom. Kalau data tersebut ada 1 milyar baris, bagaimanakah cara kita menyimpan dan mengelolanya? Di beberapa cloud vendor, bila kita menyimpan file di layanan storage mereka, biasanya sudah terintegrasi dengan layanan Hadoop yang mereka (vendor) miliki. Begitu pula berbagai aplikasi yang berjalan diatas Hadoop disediakan juga diatasnya hanya dengan beberapa klik saja. Bila kita harus membangunnya tentu perlu banyak hal yang harus dilalui. Dan tentu saja scaling-nya pun perlu waktu dan dana lebih dibandingkan bila kita mengandalkan cloud vendor.
Contoh: Azure DataLake, Azure HDInsight, AWS Athena, AWS Elastic Map Reduce, GCP BigQuery, GCP Cloud DataProc.
12. Content Delivery Network (CDN)
   Content Delivery Network adalah sebuah infrastruktur dimana kita dapat menyimpan sejumlah static file dari aplikasi yang kita miliki, dan akan dikloning ke beberapa data center milik cloud vendor. Kemudian user dari aplikasi yang kita kembangkan akan mengakses static file yang terdekat dengan lokasi dimana data center itu berada. Static file disini bisa berupa file Javascript, CSS, JPEG, Gif, dan lainnya. Dengan demikian respon aplikasi kita pun akan semakin gegas dan tidak menunggu waktu lama untuk memuat semua static file.
Contoh: AWS CDN, Azure CDN, GCP Cloud CDN.




Referensi :
https://www.academia.edu/5726092/Makalah_Cloud_Computing
https://www.slideshare.net/p188/makalah-cloudcomputing

Comments

Popular posts from this blog

PERANGKAT BERGERAK (MOBILE DEVICE)

Membuat Aplikasi Penjualan Sederhana Menggunakan VB.Net dan database Access 2010 (CRUD)

Ex Machina (2015) 's Review