Container VS Virtual Machine

Container VS Virtual Machine

 

Salah satu kendala yang paling awal saat dihadapi oleh tim developer pada saat melakukan pengembangan app adalah kekhawatiran jika aplikasi yang mereka kembangkan tidak berjalan secara sempurna ketika ketika dideploy. Perbedaan konfigurasi di environment milik seorang developer dengan server atau dengan developer yang lain merupakan penyebab utamanya. Hal ini juga sering dirasakan oleh sysadmin ketika mereka hendak mengupdate kernel. Ada beberapa app dalam server mereka jadi bermasalah karena belum mendukung kernel terbaru.

Sebenarnya solusi untuk permasalahan ini sudah ada sejak lama dengan hadirnya teknologi virtualisasi. Ada dua macam teknologi virtualisasi yaitu virtual machine dan container. Apa saja perbedaan dua teknologi virtualisasi ini? Mari kita kupas satu per satu dari teknologi virtualisasi tersebut.

 

Apa itu Virtual Machine

Virtual machine (VM) adalah sebuah emulasi dari sebuah sistem komputer. Secara sederhana, virtual machine membuat kita bisa membagi resource hardware dari satu hardware fisik menjadi beberapa sistem komputer.

Sebagai contoh, kita memiliki satu PC yang memiliki prosesor dengan 4 core, RAM sebesar 8 GB serta harddisk 500GB misalnya. Tanpa VM tentu kita hanya bisa menginstall 1 OS atau beberapa OS tapi tak bisa berjalan bersamaan. Dengan VM, kita bisa membagi sistem komputer menjadi dua masing-masing memiliki prosesor 2 core,  RAM 4GB, serta harddisk 250GB dan tentu saja pembagian resource hardware tidak harus sama rata. Dengan ini, maka kita dapat menginstall OS di setiap sistem komputer dan dapat menjalankannya secara bersamaan sehingga kita seolah memiliki 2 PC yang berbeda.

Teknologi ini sering digunakan untuk server dan memunculkan istilah Virtual Private Server (VPS) tapi sedikit pula digunakan oleh app developer karena project yang sedang dikerjakannya memiliki platform yang berbeda dengan platform yang dimiliki.

 

Keunggulan VM

  • Resource hardware yang eksklusif sehingga tidak terganggu jika ada apps yang lain tiba-tiba membutuhkan resource yang tinggi
  • Memiliki management tools dan security tools yang sudah matang
  • Secara umum memiliki tingkat keamanan sedikit lebih tinggi bila dibandingkan dengan container

 

 

Apa Itu Container

Berbeda dari VM, container adalah sebuah virtualisasi OS yang dapat membungkus suatu aplikasi beserta dependency dan environment-nya. Setiap container ini memiliki process yang terisolir sehingga tidak mengganggu host OS ataupun container yang lain. Prinsip container ini mirip dengan kontainer yang ada di kapal kargo di mana kapal kargo tersebut diibaratkan sebagai sistem komputer.

Jika dibandingkan dengan VM, secara pengaturan kontainer lebih mudah. Hal ini disebabkan karena konsep berbagi resource hardware dari container lebih fleksibel bila dibandingkan VM. Sebagai contoh, tadi disebutkan bahwa kita mempunyai 1 PC dengan 4 Core, RAM 8 GB, dan storage sebesar 500GB. Katakanlah kita mempunyai 2 container dengan kebutuhan RAM berbeda. Beberapa apps dalam container A membutuhkan RAM 5GB sedangkan apps dalam container B membutuhkan RAM 2GB. Dengan container, kita tak perlu menset kebutuhan hardware resource setiap container karena berada dalam satu sistem komputer. Sementara jika kita memakai VM dengan hardware resource yang sudah kita bagi sama rata seperti disebutkan di contoh sebelumnya, kita tidak mungkin memasang apps di container A di salah satu sistem komputer karena RAM maksimal yang bisa kita pakai hanyalah 4GB.

Faktor portabilitas juga menjadi kelebihan yang dimiliki oleh container. Para developer bisa membagikan container dengan format ISO image ke setiap perangkat yang dia pakai ataupun ke developer lain.

 

Platform Container

Linux Containers (LXC)

Platform ini merupakan cikal bakal lahirnya container. Linux Containers (LXC) ini adalah virtualisasi OS yang memungkinkan kita menjalankan beberapa sistem Linux di dalam satu sistem komputer secara bersamaan. Tentu saja platform ini hanya berlaku untuk Linux saja.

Docker

Pada awalnya, project pertama Docker adalah membangun single app LXC container, mengenalkan beberapa perubahan pada LXC sehingga lebih portabel dan fleksibel. Lama-kelamaan Docker berkembang hingga memiliki container runtime sendiri.

 

Keunggulan Container

  • Fleksibel dan scalable
  • Mengurangi resource yang dibutuhkan dalam IT Management
  • Waktu yang dibutuhkan untuk mengemas dan memasang app dalam container lebih cepat bila dibandingkan dengan VM

 

 

VM vs Container (Final Round)

Secara singkat, perbedaan antara VM dan Docker dapat dijabarkan dalam tabel berikut :

 

Virtual Machine

Container

Berat

Ringan

Performa terbatas pada konfigurasi VM

Performa maksimum tergantung pada hardware fisik

Virtualisasi pada level hardware

Virtualisasi pada level OS

Waktu start up dalam hitungan menit

Waktu start up dalam hitungan detik

Terisolasi penuh pada level hardware sehingga lebih aman

Terisolasi pada level proses

 

Tentu jika melihat rangkuman perbedaan antara VM dan Docker pada tabel di atas kita tahu bahwa VM dan container memiliki fungsi masing-masing. Untuk project yang bersifat monolitik di mana setiap apps yang kita kembangkan membutuhkan environment dan dependencies yang tidak terlalu berbeda maka menggunakan VM lebih bijak. Akan tetapi jika kita menggunakan arsitektur microservices dalam pengembangan software, penggunaan container lebih dianjurkan.

***

Jika Anda tertarik dalam pengembangan software dengan arsitektur microservice menggunakan Docker dan Kubernetes, Anda dapat mengikuti workshop cloud native di Inixindo Jogja.

 

8 Situs Freelancing yang Direkomendasikan Untuk Programmer

8 Situs Freelancing yang Direkomendasikan Untuk Programmer

Beberapa bulan yang lalu, kami sempat menulis artikel tentang tips menjadi programmer freelance. Setelah sekian lama, sebuah pertanyaan lalu muncul yang kemudian menjadi beban pikiran kami “bagaimana jika ada dari pembaca yang benar-benar resign dari pekerjaannya dan memutuskan menjadi programmer freelance?”

Seketika tim penulis Inixindo Jogja memiliki perasaan yang campur aduk, ada yang merasa bertanggung jawab, ada yang merasa bersalah, bahkan ada yang khawatir setengah mati bagaimana jika pembaca yang nekat tersebut diceraikan pasangannya, dihukum orang tuanya, atau jadi bahan obrolan tetangga gara-gara status ‘kerja serabutan’. Walaupun sebenarnya ada juga di antara kami yang cuek dan masih asik makan bubur kacang ijo di pantry, tapi kami sepakat untuk membantu pembaca yang nekat dalam mencari pekerjaan serabutan sebagai programmer atau developer lepas.

Biasanya karena sibuk coding, para programmer freelance kurang bersosialisasi dengan orang yang berpotensi menjadi klien mereka. Memang ada yang suka berkumpul atau ‘nongkrong bareng’ tapi itu pun biasanya dengan rekan seprofesi yang notabene adalah kompetitor mereka. Solusi untuk masalah ‘kurang main’ programmer freelance sebenarnya sudah ada sejak beberapa tahun yang lalu dengan hadirnya situs-situs cari kerja lepas.

Mirip dengan marketplace produk, situs-situs freelance dibuat untuk mempertemukan orang yang mencari pekerja dengan orang yang membutuhkan kerja tentu saja dalam konteks freelance yang berarti kontrak pekerjaannya per project. Dalam situs ini, kita sebagai freelancer harus bersaing dengan freelancer lain yang menawarkan jasa dengan skill tertentu. Si pemberi kerja biasanya memilih berdasarkan preferensinya sendiri-sendiri, ada yang menilai berdasarkan kualitas portfolio, pengalaman, popularitas, dan yang paling sering adalah harga.

Ya! Kami mengetahui betapa sakitnya freelancer yang handal dan memiliki jam terbang yang tinggi harus mengalah kepada fresh graduate atau juga mahasiswa yang memasang rate jauh lebih murah dibanding harga pasaran. Tapi bagaimanapun juga mereka tidak bisa disalahkan karena kita pernah mengalami betapa sulitnya membangun portfolio pada saat awal kita terjun di dunia freelancing.

Meskipun begitu, kita tak boleh menyerah begitu saja. Saatnya melebarkan sayap demi meningkatkan reach dari personal brand kita dengan memasang lapak di setiap situs freelancing yang ada di muka bumi! Yup, itu usulan dari digital marketing kami. Agak berlebihan memang, tapi paling tidak inilah delapan situs baik dari luar maupun dalam negeri yang bisa kalian coba agar kesempatan mendapatkan klien semakin besar.

 

  1. Sribulancer
    Jika kalian belum seberapa percaya diri untuk memiliki klien dari luar negeri, kalian bisa mencoba situs dalam negeri ini. ‘Act locally’ kata pepatah. Selain berkomunikasi dengan klien lokal lebih mudah, saingan kalian juga tak sebanyak situs internasional yang datang dari berbagai penjuru dunia untuk memperebutkan satu gelar yaitu deal dengan klien. Kekurangan dari situs ini adalah rate yang sudah ditetapkan oleh situs tersebut.  
  2. Freelancer
    Walaupun bukan berasal dari Indonesia, situs dari Australia ini memiliki basis pengguna yang kuat di Indonesia dan juga di seluruh dunia. Situs ini juga merupakan salah satu pionir situs freelancing.  
  3. Upwork
    Situs ini adalah paling populer di antara para developer walaupun sebenarnya situs ini menyediakan berbagai pilihan jenis pekerjaan. Sempat beken 2 tahun lalu, Upwork banyak menuai kritikan karena customer support yang buruk padahal Upwork mengambil komisi yang cukup besar yaitu sebesar 20%.  
  4. Fivver
    Situs ini sebenarnya lebih cocok untuk para freelancer di bidang kreatif seperti desain, animasi, dan musik. Meski begitu, situs ini juga menyediakan tempat bagi para freelancer di bidang teknologi seperti web & app development sampai ke database. Aura kreatif memang sengaja diciptakan oleh situsini dengan menyebut suatu pekerjaan dengan kata ‘gig’.  
  5. Gigster
    Kelebihan Gigster yang mungkin bisa menjadi panutan bagi situs freelancing lainnya adalah milestone pekerjaan yang telah ditentukan oleh Gigster. Milestone ini sangat realistis jika dibandingkan freelancer di situs lain yang menawarkan web development dalam satu hari saja (walaupun kita tahu itu hanya memasukkan data ke dalam template saja).  
  6. Toptal
    Salah satu unique selling proposition yang ditawarkan Toptal adalah kualitas dari freelancer. Website ini mengklaim bahwa mereka menawarkan developer pilihan top 3% yang artinya jika ada 100 developer dengan rate dan keahlian yang sama maka yang ditawarkan 3 developer peringkat teratas. Sampai artikel ini terpublikasi, kami masih belum mengetahui bagaimana proses screening yang dilakukan oleh Toptal.  
  7. Stack Overflow
    Kiblat untuk copy paste kode pemrograman ini juga menyediakan fitur marketplace pekerjaan. Sebagian besar project yang ditawarkan di sini bersifat long term jadi bagi yang gemar akan stabilitas ketahanan dompet tentu situs ini dapat dijadikan pilihan.  
  8. Hired
    Sistem yang digunakan Hired ini mirip seperti Tinder. Maksudnya, klien yang akan menghubungi programmer freelance hanyalah yang berstatus ‘match’ saja di mana kecocokan antara kebutuhan klien dan skill freelancer. Walaupun terlihat praktis, baik klien maupun freelancer harus melewati proses yang cukup panjang (sekitar 90 menit termasuk tes untuk freelancer). Karena proses yang agak rumit ini, kebanyakan project yang ditawarkan bersifat jangka panjang.

***

Itu tadi 8 situs yang dapat kalian jadikan referensi untuk mendapatkan gigs/project. Serta jangan lupa bahwa kebanyakan situs di atas mengambil komisi antara 10-30% dari rate yang kita tawarkan. Jadi perlu hitung-hitung lagi tentang neraca pengeluaran dan pendapatan kita untuk kebutuhan sehari-hari. Selamat mencoba dan terus belajar!

Fundamental Digital Investigation and Mobile Forensic

Fundamental Digital Investigation and Mobile Forensic

Fundamental Digital Investigation and Mobile Forensic

28-29 Mei 2019

Dengan banyaknya kasus kejahatan komputer di dunia maya (Cyber Crime), dibutuhkan pengetahuan mengenai proses penanganan insiden Hacking dan Cyber Crime yang mencakup teknik investigasi komputer (Digital Investigation), baik itu pengumpulan dan pengamanan bukti, forensik digital, dan perangkat mobile.

Registrasi

Mengapa Mempelajarinya?

Dengan banyaknya kasus kejahatan komputer di dunia maya (Cyber Crime), dibutuhkan pengetahuan mengenai proses penanganan insiden Hacking dan Cyber Crime yang mencakup teknik investigasi komputer (Digital Investigation), baik itu pengumpulan dan pengamanan bukti, forensik digital, dan perangkat mobile. Teknik investigasi komputer tersebut bisa digunakan oleh instansi kepolisian, pemerintah, dan entitas perusahaan lokal/global untuk mengumpulkan bukti-bukti serta melakukan analisis forensik terhadap bukti-bukti tersebut sehingga dapat ditunjukkan dalam pengadilan untuk menangkap dan mempidanakan pelaku kejahatan komputer.

Fundamental Digital Investigation and Mobile Forensic 1

Apa Saja yang Dipelajari?

Peserta akan diajarkan untuk melakukan investigasi komputer dengan menggunakan teknologi Groundbreaking Digital Forensics. Selain menemukan bukti-bukti kejahatan, para peserta akan memahami penggunaan mobile forensic sebagai salah satu cara untuk mendapatkan barang bukti mobile.

Trend dan Kebutuhan Komputer Forensik

/

Proses Investigasi Komputer Forensik

Digital Evidence ( Barang Bukti Digital)

Lab Komputer Forensik

Akuisisi dan Duplikasi Data

Forensik Mobile

Biaya?

Daftar Segera!

Dapatkan harga spesial!

This form does not exist

#ComDay – Menerapkan Single Sign On dengan OAuth untuk Integrasi Aplikasi

#ComDay – Menerapkan Single Sign On dengan OAuth untuk Integrasi Aplikasi

#ComDay – Menerapkan Single Sign On dengan OAuth untuk Integrasi Aplikasi

#ComDay - Menerapkan Single Sign On dengan OAuth untuk Integrasi Aplikasi 2

Salah satu manfaat Sistem informasi adalah menghadirkan informasi dengan cepat dan akurat. Contohnya pengelolaan data kependudukan, jika dikerjakan secara manual, untuk mencari satu data saja bisa memakan waktu yang sangat lama dan kompleks. Adanya manfaat ini menjadi dorongan antusiasme bagi pemerintah baik pusat maupun daerah untuk membuat berbagai sistem informasi dalam rangka melayani masyarakat dengan lebih baik, cepat, dan akurat.

Namun maraknya pembuatan aplikasi ini, seringkali tidak didukung dengan konsep yang terintegrasi, baik dari sisi pemanfaatan data maupun pengelolaan keamanan seperti akses menuju data. Sehingga bagi pengguna sistem, semakin banyak sistem, semakin banyak juga username dan password yang harus mereka hafalkan untuk masuk ke dalam sistem-sistem tersebut.

Solusi untuk masalah ini adalah dengan memanfaatkan konsep Single Sign On (SSO). Dengan konsep ini pengguna sistem dapat mengurangi jumlah username dan password yang harus mereka hafalkan, bahkan ketika mereka mempergunakan perangkat pribadi, pengguna sistem tidak perlu mengisikan apapun untuk masuk ke dalam sistem-sistem tersebut.

OAuth merupakan salah satu protokol standar industri untuk proses otorisasi sehingga kita dapat menerapkan konsep Single Sign On. OAuth memiliki fokus pada penyederhanaan pengembangan aplikasi klien, juga memberikan aliran otorisasi khusus untuk aplikasi web, aplikasi desktop, ponsel, dan perangkat cerdas.

Lalu bagaimana jika aplikasi-aplikasi tersebut sudah terlanjur dibuat tanpa menggunakan SSO sebelumnya? Untuk tahu jawabannya ikuti Comday pada tanggal 16 Mei 2019 di Inixindo Jogja dengan tema “Menerapkan Single Sign On dengan OAuth untuk Integrasi Aplikasi.”

Dalam Comday ini akan dibahas tentang integrasi aplikasi dan analisis pemanfaatan OAuth sebagai teknologi untuk menerapkan Single Sign On di aplikasi-aplikasi yang sudah ada.

Biaya

Free (tempat terbatas)

DATE AND TIME

Kamis, 16 Mei 2019
14.00 WIB – Selesai

LOCATION

Eduparx – Inixindo Jogja
Jalan Kenari No 69 Yogyakarta
View Maps

Comday Recap : Menerapkan Single Sign On dengan OAuth untuk Integrasi Aplikasi

Comday Recap : Menerapkan Single Sign On dengan OAuth untuk Integrasi Aplikasi

Pada hari Kamis tanggal 16 Mei 2019 kemarin, Inixindo Jogja mengadakan acara Comday yang memiliki tema ‘Menerapkan Single Sign On dengan OAuth untuk Integrasi.’ Acara ini diisi oleh Yanuar Hadiyanto selaku instruktur di Inixindo Jogja. Sebagai pembukaan, Mas Yanuar menyampaikan tentang silo mentality dalam sebuah organisasi di mana antar departemen enggan untuk saling berbagi informasi. Kondisi ini dapat mengurangi efisiensi kerja dalam organisasi tersebut. Mas Yanuar kemudian menjelaskan bagaimana evolusi sistem informasi dapat menjembatani silo-silo antar departemen ini.

Dalam Comday ini, Mas Yanuar mengambil contoh kasus tentang banyaknya aplikasi yang dimiliki oleh pemerintah sehingga kita dapat membayangkan betapa repotnya pengguna ketika akan login untuk menggunakan semua aplikasi tersebut. Untuk itulah perlu dilakukan sebuah integrasi antar aplikasi tersebut. Tanpa berbasa-basi lagi Mas Yanuar langsung menjelaskan langkah-langkah yang perlu diambil untuk melakukan integrasi tersebut.

Comday Recap : Menerapkan Single Sign On dengan OAuth untuk Integrasi Aplikasi 3 Comday Recap : Menerapkan Single Sign On dengan OAuth untuk Integrasi Aplikasi 4 Comday Recap : Menerapkan Single Sign On dengan OAuth untuk Integrasi Aplikasi 5

Salah satu solusi untuk mengatasi masalah yang dibahas dalam contoh kasus adalah dengan menggunakan OAuth2, sebuah standar teknologi yang dapat membuat pengguna mengakses informasi suatu aplikasi dengan proses otorisasi menggunakan service dari aplikasi lain. Contoh dari penggunaan OAuth2 yang sering kita jumpai adalah ketika sign in atau sign up ke sebuah aplikasi hanya dengan menggunakan akun Google atau Facebook kita. Mas Yanuar kemudian menjelaskan secara teknis tentang proses dan alur informasi dengan OAuth2 ini.

Acara ini dihadiri oleh kalangan pemerintah daerah terutama dari Dinas Komunikasi dan Informatika di daerah Jawa Tengah dan DIY.