BAB II DASAR TEORI 2.1 Virtualisasi

dokumen-dokumen yang mirip
TEKNOLOGI APLIKASI WEB BERBASIS SERVER

TUGAS KELOMPOK Tutorial Konfigurasi Web Server NginX Pada Virtualization Windows Xp

BAB III ANALISIS DAN PERANCANGAN SISTEM

LAPORAN PENDAHULUAN PRAKTIKUM ADMINISTRASI MANAJEMEN JARINGAN WEB SERVER

BAB I PENDAHULUAN. 1.1 Latar Belakang

Bab 2 Tinjauan Pustaka

IMPLEMENTASI TEKNOLOGI LOAD BALANCER DENGAN WEB SERVER NGINX UNTUK MENGATASI BEBAN SERVER

BAB II DASAR TEORI Gambar 2.1. Cubieboard2

BAB III TINJAUAN PUSTAKA

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB III TINJAUAN PUSTAKA

PEMROGRAMAN WEB. Agussalim

BAB II DASAR TEORI. bersifat umum/non-spesifik (general purpose), dan secara khusus dirancang untuk

TASK 5 JARINGAN KOMPUTER

BAB II LANDASAN TEORI

Hal yang paling utama dalam proses pembuatan web server adalah memilih software mana yang akan digunakan sebagai web server yang akan digunan.

BAB III LANDASAN TEORI

Web Server A. DASAR TEORI

APPLICATION LAYER. Oleh : Reza Chandra

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI

Tugas Teknologi Open Source

PENGERTIAN WEB web adalah

DATABASE SERVER WEB SERVER SUBDOMAIN

APLIKASI BERBASIS WEB

BAB II TINJAUAN PUSTAKA DAN DASAR TEORI. Codelgnite (CI) aplikasi sumber terbuka yang berupa framework PHP

Virtualisasi, Cloud Computing & Teknologi Open Source Dosen Pembina: Imam Suharjo, ST, M.Eng Ditulis Oleh:

Remote Execution. Oleh: Idris Winarno

BAB IV HASIL DAN UJI COBA

BAB I PENDAHULUAN 1.1. Latar Belakang Masalah

Belajar Teknologi Virtualisasi : VMWare vsphere Hypervisor ESXi (1)

ANALISIS AVAILABILITAS LOAD BALANCING PADA WEB SERVER LOKAL

BAB IV HASIL DAN UJI COBA

MODUL 1 PRAKTIKUM ADMINISTRASI JARINGAN. Pengenalan dan Instalasi Sistem Operasi Jaringan

HTTP Protocol Ketika sebuah alamat web (atau URL) yang diketik ke dalam web browser, web browser melakukan koneksi ke web service yang berjalan pada

BAB III LANDASAN TEORI

BAB 4 IMPLEMENTASI DAN EVALUASI. 4.1 Perancangan jaringan cloud computing Implementasi dan pengembangan Cloud Computing di BPPT dimulai dengan

INSTALASI DAN KONFIGURASI SERVER DALAM SATU PERANGKAT KOMPUTER SEBAGAI MEDIA PEMBELAJARAN ALTERNATIF

VNC SERVER. Oleh : Yoel Steven

PERBANDINGAN KINERJA VIRTUAL XEN DAN KVM. Andika Firdaus Jurusan Teknik Informatika STMIK PalComTech Palembang

Making Provisions for Applications and Services

Infrastruktur Server. By. Nyoman Suryadipta Rev 0.0

Bab VI Aplikasi pada IPV6. Iljitsch van Beijnum

Pengantar Cloud Computing Berbasis Linux & FOSS

BAB I PENDAHULUAN. 1.1 Virtualisasi

Pemrograman Web I (Mengenal. Web) Oleh : Devie Rosa Anamisa

BAB II TINJAUAN PUSTAKA DAN DASAR TEORI. tentang load balancing terus dilakukan dan metode load balancing terus

Lebih kompatibel dengan Windows karena memang IIS adalah keluaran Microsoft.

Tujuan Pembangunan Jaringan Komputer. mengantarkan informasi secara tepat dan akurat dari sisi pengirim ke sisi penerima

Proposal Tugas Akhir

virtualisasi adalah proses menyatakan atau membuat sesuatu menjadi nyata.

BAB III LANDASAN TEORI. Sistem merupakan kumpulan dari sub-sub sistem, elemen-elemen,


BAB III LANDASAN TEORI. layanan (service) tertentu dalam sebuah jaringan komputer. Server. sebagai sistem operasi jaringan (network operating system).

Andi Dwi Riyanto, M.Kom

Tutorial VirtualBox Oleh: Jon Kartago Lamida

Pemrograman Web Teknik Informatika Fakultas Teknologi Industri

BAB III PERANCANGAN DAN PEMBUATAN SISTEM

MAKALAH. Perbandingan Web Server antara Apache vs Nginx vs Micosoft - IIS

Komputer Perkantoran. Salhazan Nasution, S.Kom

BAB III LANDASAN TEORI

AJAX. Pemrograman Web 1. Asynchronous JavaScript and XML. Genap

Komputer Perkantoran. Internet. Salhazan Nasution, S.Kom

BAB II DASAR TEORI. Teknologi TCP/IP adalah hasil penelitian dan pengembangan protocol

Aplikasi Dasar Internet

TUGAS JARINGANN KOMPUTER

BAB III DESAIN DAN IMPLEMENTASI SISTEM

SISTEM INFORMASI RUMAH SAKIT

ARTIKEL. Rekayasa Perangkat Lunak. Fitur Windows 8. Dosen : Ali Tarmuji, S.T.,M.Cs. Disusun Nama : Dimas Ragil T NIM : Kelas : D

JURUSAN SISTEM KOMPUTER FAKULTAS ILMU KOMPUTER UNIVERSITAS SRIWIJAYA

SISTEM INFORMASI PELATIHAN LEMBAGA PENGEMBANGAN DAN PENJAMINAN MUTU PENDIDIKAN UNIVERSITAS DIPONEGORO SEMARANG

ADMINISTRASI SERVER KELAS 11. Oleh Alimansyah Aprianto Tek. Komputer dan Jaringan

BAB I PENDAHULUAN. Cloud computing dalam pengertian bahasa Indonesia yang diterjemahkan

DAFTAR ISI DAFTAR ISI

BAB I PENDAHULUAN I.1 Latar Belakang

Dasar Pemrograman Web. Pemrograman Web. Adam Hendra Brata

BAB III PERANCANGAN SISTEM

Cloud Computing Windows Azure

BAB III METODOLOGI. Penelitian ini dilaksanakan di Ruang Server Biro Sistem Informasi (BSI)

UJI AVAILABILITAS LOAD BALANCING WEB SERVER MENGGUNAKAN LINUX VIRTUAL SERVER

TUTORIAL DIGITAL PENGINDERAAN JAUH DAN SISTEM INFORMASI GEOGRAFI

BAB IV HASIL DAN PEMBAHASAN

BAB III ANALISIS PRAKTEK KERJA LAPANGAN. bagian-bagian komponennya dengan maksud untuk mengidentifikasikan dan

A I S Y A T U L K A R I M A

BAB I PENDAHULUAN 1.1 Latar Belakang

WEB SERVER MODULE & VIRTUAL HOST. Exp : Admin Server Kelas : XII TKJ B. No. Exp : 6 2. Trimans Yogiana

BABI II DASAR TEORI DAN TINJAUAN PUSTAKA

BAB II KONSEP DASAR VIDEO STREAMING SERVER. komputer. Komputer server didukung dengan spesifikasi hardware yang lebih

BAB III LANDASAN TEORI

BAB 15 KEAMANAN JARINGAN DENGAN FIREWALL

JARINGAN KOMPUTER JURUSAN SISTEM KOMPUTER FAKULTAS ILMU KOMPUTER UNIVERSITAS SRIWIJAYA : MARINI SUPRIANTY NIM :

BAB III LANDASAN TEORI

Perancangan Website Ujian. Teknik Elektro UNDIP Berbasis HTML

: ANALISIS DAN PERANCANGAN SISTEM. berbasis web dengan gambaran umum rancangannya.

A. TUJUAN PEMBELAJARAN

PRAKTIKUM 1 TELNET DAN SSH SERVER

FERNANDYA RISKI HARTANTRI / F DASAR-DASAR HTML

BAB 2 LANDASAN TEORI. bahasa pemrograman java dan bersifat open source. Yang mana artinya aplikasi

Jurnal Elektronik Ilmu Komputer - Universitas Udayana JELIKU Vol 1 No. 2 Nopember 2012

Transkripsi:

BAB II DASAR TEORI 2.1 Virtualisasi Virtualisasi dalam ilmu komputer, virtualisasi adalah istilah umum yang mengacu kepada abstraksi dari sumber daya komputer [2]. Definisi lainnya adalah sebuah teknik untuk menyembunyikan karakteristik fisik dari sumber daya komputer dari bagaimana cara sistem lain, aplikasi atau pengguna berinteraksi dengan sumber daya tersebut. Hal ini termasuk membuat sebuah sumber daya tunggal (seperti server, sebuah sistem operasi, sebuah aplikasi, atau peralatan penyimpanan terlihat berfungsi sebagai beberapa sumber daya logikal; atau dapat juga termasuk definisi untuk membuat beberapa sumber daya fisik (seperti beberapa peralatan penyimpanan atau server) terlihat sebagai satu sumber daya logikal. Virtualisasi secara umum juga dapat diartikan sebagai pembuatan suatu bentuk atau versi virtual dari sesuatu yang bersifat fisik. Dalam ilmu komputer teknologi virtualisasi adalah upaya untuk menciptakan satu atau lebih mesin virtual yang menjalankan sistem operasi sendiri diatas komputer fisik tertentu [2]. a. Tujuan Virtualisasi Beberapa tujuan aplikasi antara lain: - Memungkinkan setiap perangkat jaringan-diaktifkan untuk mengakses aplikasi jaringan yang dapat diakses melalui jaringan apapun, bahkan jika aplikasi yang tidak pernah dirancang untuk bekerja dengan itu jenis perangkat [3]. - Mengisolasi suatu beban kerja atau aplikasi dari yang lain untuk meningkatkan keamanan dan pengelolaan lingkungan [3]. - Mengsolasi aplikasi dari sistem operasi, yang memungkinkan aplikasi untuk terus berfungsi meskipun itu dirancang untuk versi yang berbeda dari sistem operasi [3]. - Mengisolasi aplikasi dari sistem operasi, yang memungkinkan aplikasi berfungsi pada sistem operasi asing [3]. 4

- Meningkatan jumlah orang yang aplikasi dapat mendukung, dengan memungkinkan beberapa aplikasi berjalan pada mesin yang berbeda secara bersamaan [3]. - Mengurangi waktu yang dibutuhkan sebuah aplikasi untuk berjalan, dengan melakukan segmentasi data atau aplikasi itu sendiri dan menyebarkannya ke banyak sistem [3]. - Mengoptimalkan penggunaan sistem tunggal, yang memungkinkan untuk bekerja lebih keras dan lebih cerdas (yaitu, mengurangi jumlah waktu prosesor dalam posisi idle) [3]. b. Jenis Virtualisasi - Para-virtualisasi: Perangkat keras tidak disimulasikan tetapi perangkatlunak tamu berjalan dalam domainnya sendiri seolah-olah dalam sistem yang berbeda. Dalam hal ini perangkat-lunak tamu perlu disesuaikan untuk dapat berjalan [2]. - Virtualisasi sebagian: Tidak semua aspek lingkungan disimulasikan tidak semua perangkat-lunak dapat langsung berjalan, beberapa perlu disesuaikan untuk dapat berjalan dalam lingkungan virtual ini [2]. - Virtualisasi penuh: Hampir menyerupai mesin asli dan mampu menjalankan perangkat lunak tanpa perlu diubah [2]. Vitualisasi perangkat-keras harus dibedakan dengan emulasi perangkat-keras. Pada emulasi perangkat-keras sebuah perangkat-keras meniru kerja perangkatkeras lain, sementara pada virtualisasi perangkat-keras sebuah hypervisor (sebuah software) meniru kerja perangkat keras tertentu atau bahkan keseluruhan komputer. Lebih lanjut hypervisor jangan dirancu dengan emulator. Keduanya mempunyai definisi yang sama tapi domain pembicaraannya berbeda. 2.2 CoreOS CoreOS adalah sistem operasi Linux minimal yang dibangun untuk menjalankan docker dan rkt container. Secara default, CoreOS dirancang untuk membangun server yang kuat dan mudah diatur clusters. CoreOS ini menyediakan 5

update otomatis, sangat handal dan stabil untuk semua mesin. Dan dengan menjalankan segala sesuatu dalam aplikasi containers, pengaturan tersebut memungkinkan Anda untuk dengan mudah mengatur skala server dan aplikasi, menggantikan server yang rusak di sebagian kecil dari kedua, dan seterusnya [4]. CoreOS mengotomatiskan pembaruan perangkat lunak untuk memastikan keamanan yang lebih baik dan keandalan mesin dan container yang berjalan di cluster skala besar. Pembaruan sistem operasi dan patch keamanan secara teratur dilakukan CoreOS Linux tanpa memerlukan intervensi oleh administrator. Ketika aplikasi didistribusikan, update otomatis ini secara otomatis meningkatkan keamanan tanpa menyebabkan downtime layanan. Semua kode aplikasi dan dependensi aplikasi diisolasi dalam container, berarti update sistem operasi ini dapat memberikan fitur terbaru dan perbaikan keamanan tanpa resiko dengan aplikasi berjalan [5]. 2.3 Docker Docker merupakan project open-source yang menyediakan platform terbuka dalam bentuk teknologi virtualisasi berbasis container, ditujukan bagi para developer maupun sysadmin untuk dapat membangun, membundel dan menjalankan aplikasi dimanapun dalam satu container yang ringan. Mirip seperti Virtual Machine namun lebih ringan karena Docker tidak membawa keseluruhan sistem operasi, melainkan berbagi sistem dengan host induknya [6]. Docker menyatukan perangkat lunak dalam filesystem lengkap yang berisi semua yang diperlukan menjalankannya: source code, paket sistem untuk runtime, perangkat sistem, sistem pustaka software apapun yang dapat diinstal pada server. Hal ini menjamin bahwa perangkat lunak akan selalu berjalan sama, tidak tergantung pada lingkungannya. Pada perkembangan terkini, Docker bahkan bisa dijalankan diatas sistem Windows maupun MacOS [6]. a. Arsitektur Docker Arsitektur Docker menggunakan client dan server. Docker client mengirimkan request ke docker daemon untuk untuk membangun, mendistribusikan, dan menjalankan container docker. Keduanya docker client dan daemon dapat berjalan pada sistem yang sama. Antara docker client dan 6

docker daemon berkomunikasi via socket menggunakan RESTful API [6]. Gambar 2.1 Arsitektur Docker [7] b. Istilah Dalam Docker Docker Client : Adalah seperangkat perintah command line untuk mengoperasikan docker container, misalnya membuat container, start/stop container, menghapus (destroy), dan sebagainya. Docker client hanya bertugas mengirim perintah saja. Pekerjaan sesungguhnya dilakukan oleh docker daemon [7]. Docker Container : Adalah virtual machine atau guest operating system. Aplikasi kita berjalan di dalam docker container dan merasa bahwa dia berjalan di dalam sistem operasi biasa. Docker container berjalan di atas docker engine [7]. Docker Daemon : Adalah aplikasi yang berjalan di host machine. Docker server berjalan di background (sebagai daemon) dan menunggu perintah dari docker client. Begitu mendapatkan perintah, docker server bekerja membuat container, menjalankan/mematikan container, dan sebagainya [7]. Docker Engine : Adalah gabungan aplikasi yang menjalankan docker container, docker client, dan docker daemon. Dia menyediakan layanan umum agar container dapat berjalan dengan baik, misalnya: networking, storage, alokasi memori, CPU, dan sebagainya [7]. 7

Gambar 2.2 Docker Engine [7] Docker Image : Adalah template yang digunakan untuk membuat container. Contohnya, ada image Ubuntu, CentOS, dan sebagainya. Kita juga bisa membuat image baru dari image yang lama. Misalnya kita buat image Ubuntu yang sudah terinstal Java dan MySQL [7]. Docker Machine : Adalah sistem untuk mengelola docker engine. Dia bisa menginstal engine baru di berbagai target. Saat ini dia mendukung VirtualBox, Digital Ocean, dan Amazon. Dengan Docker Machine, kita bisa membuat dan menjalankan container dengan docker client, dan hasilnya container kita berjalan di local (dengan VirtualBox) atau di cloud (dengan DigitalOcean atau Amazon) [7]. 2.4 Web server Web server merupakan sebuah perangkat lunak dalam server yang berfungsi menerima permintaan (request) berupa halaman web melalui HTTP atau HTTPS dari client yang dikenal dengan browser web dan mengirimkan kembali (response) hasilnya dalam bentuk halaman-halaman web yang umumnya berbentuk dokumen HTML [8]. 8

Dari pengertian diatas, dapat disimpulkan bahwa web server merupakan pelayan (pemberi layanan) bagi web client (browser) seperti Mozilla, Chrome, Internet Explorer, Opera, Safari dan lain sebagainya, supaya browser dapat menampilkan halaman atau data yang anda minta a. Cara Kerja Web server Sederhananya tugas web server adalah untuk menerima permintaan dari client dan mengirimkan kembali berkas yang diminta oleh client tersebut. Seperti yang sudah saya informasikan diatas bahwa client yang dimaksud disini adalah komputer desktop yang memiliki atau telah menginstall web browser seperti Chrome, Mozilla, Opera dan lain-lain yang dapat terhubung ke web server melalui jaringan internet atau intranet. Perangkat lunak web server terdapat pada komputer server, dan di komputer ini pula-lah data-data Website tersimpan dengan rapi. Sama halnya dengan komputer client, komputer server juga harus terhubung dengan jaringan internet atau jaringan intranet untuk dapat diakses oleh client. Pada saat client (browser) meminta data web page kepada server, maka instruksi permintaan data oleh browser tersebut akan dikemas di dalam TCP yang merupakan protokol transport dan dikirim ke alamat yang dalam hal ini merupakan protokol berikutnya yaitu Hyper Text Transfer Protocol (HTTP) dan atau Hyper Text Transfer Protocol Secure (HTTPS). Data yang diminta dari browser ke web server disebut dengan HTTP request yang kemudian akan dicarikan oleh web server di dalam komputer server. Jika ditemukan, data tersebut akan dikemas oleh web server dalam TCP dan dikirim kembali ke browser untuk ditampilkan. Data yang dikirim dari server ke browser dikenal dengan HTTP response. Jika data yang diminta oleh browser tersebut ternyata tidak ditemukan oleh web server, maka web server akan menolak permintaan tersebut dan browser akan menampilkan notifikasi error 404 atau Page Not Found. Meskipun proses atau cara kerja web server diatas seperti sangat rumit, tapi pada prakteknya proses tersebut berlangsung dengan sangat cepat. Anda bahkan bisa sampai tidak menyadari bahwa pada saat anda meminta suatu 9

halaman web, ternyata hal itu membutuhkan proses yang sangat panjang sampai halaman tersebut dapat anda lihat di browser anda. b. Fungsi Web server Fungsi utama dari web server adalah untuk mentransfer atau memindahkan berkas yang diminta oleh pengguna melalui protokol komunikasi tertentu. Oleh karena dalam satu halaman web biasanya terdiri dari berbagai macam jenis berkas seperti gambar, video, teks, audio, file dan lain sebagainya, maka pemanfaatan web server berfungsi juga untuk mentransfer keseluruhan aspek pemberkasan dalam halaman tersebut, termasuk teks, gambar, video, audio, file dan sebagainya. Pada saat anda ingin mengakses sebuah halaman Website, biasanya anda mengetik halaman tersebut di browser seperti mozilla, chrome dan lain-lain. Setelah anda meminta (biasanya dengan menekan enter) untuk dapat mengakses halaman tersebut, browser akan melakukan permintaan ke web server. Disinilah web server berperan, web server akan mencarikan data yang diminta browser, lalu mengirimkan data tersebut ke browser atau menolaknya jika ternyata data yang diminta tidak ditemukan. 2.5 Nginx Nginx, merupakan server HTTP ringan yang berasal dari Rusia (diucapkan mesin X). Nginx mulai dikembangkan pada tahun 2002, pertama kali dikembangan oleh Igor Sysoev untuk kebetuhan salah satu Website Rusia yang memiliki high traffic yaitu Rambler yan per September 2008 menerima lebih dari 500 juta permintaan HTTP per hari. Namun saat ini Nginx telah digunakan oleh beberapa web populer di dunia seperti Facebook, Nertflix, WordPress, SourceForge, dan banyak lainnya. Karena Nginx telah terbukti efisien, ringan, dan merupakan web server yang powerfull [9]. Nginx lebih efisien dibandingkan dengan aplikasi web server yang lain, terutama dalam hal kecepatan. Memanfaaatkan soket asynchronous, Nginx tidak menghasilkan banyak proses sebanyak penerimaan permintaan. Satu proses per 10

core suffces sanggup menangani ribuan koneksi, sehingga dapat meringankan beban CPU dan konsumsi memori. Fitur Nginx Kemampuan meng-handle banyak koneksi tanpa memakan banyak memory. Cocok bagi anda yang menggunakan VPS kecil dengan memory dedicated 256M-512M [9]. Kemampuan menjalankan file statis, index file, dan auto indexing [9]. Bisa dijalankan untuk proxy dengan kemampuan caching [9]. Load Balancer [9]. Fault Tolerance [9]. TLS/SSL [9]. Support FastCGI, SCGI, dan uwsgi dengan kemampuan caching [9]. Support virtual server (server block) berbasis nama domain dan IP [9]. Support IPv6 [9]. Support kompresi gzip [9]. Support URL Rewrite [9]. Support Streaming FLV dan MP4 [9]. Support limitasi untuk koneksi/request dari satu alamat [9]. Keep-Alive [9]. 2.6 VirtualBox VirtualBox adalah program virtualisasi populer tanpa biaya di bawah ketentuan General Public License (GNU) versi 2 (GPL v2), dan tersedia untuk platform 32 dan 64-bit. VirtualBox saat ini dapat berjalan pada Linux, Windows, Macintosh dan Solaris host dan mendukung berbagai sistem operasi sebagai guest. Dengan kata lain, dengan menginstal dan menggunakan VirtualBox pada komputer, Anda dapat menjalankan beberapa mesin virtual di atas mesin host, masing-masing dengan sistem operasi sendiri. Sementara untuk resources hardware harus berbagai pada komputer host. [10] Untuk meningkatkan pengalaman seseorang dengan VirtualBox, dua jenis perangkat lunak tambahan yang disediakan: 11

Guest Addtions adalah driver dan aplikasi yang mengoptimalkan komunikasi dan integrasi antara host dan guest dan meningkatkan kegunaan dari sistem operasi guest (bersama clipboard dan folder antara host dan guest, mouse pointer integrasi, dukungan untuk beberapa resolusi layar, untuk nama beberapa contoh). Tanpa guest addtion, fitur yang disebutkan diatas tidak tersedia. [10] Extention Packs menyediakan fungsionalitas tambahan untuk mendukung USB 2.0 dan 3.0 integrasi antara host dan guest (memungkinkan guest untuk menggunakan drive USB atau perangkat yang terhubung ke host, seperti webcam), virtual remote desktop (yang berarti virtual mesin dapat berjalan pada satu host tetapi ditampilkan dan dikontrol dari komputer yang terpisah), dan enkripsi untuk image disk. [10] 12