Meetup #1


Melangkah Awal Dengan Localhost

Mengenal localhost

Apa sih localhost itu?

Dalam dunia komputer jaringan (networking), localhost artinya komputer ini (komputer yang sedang digunakan). Yaitu sebenernya nama host yang digunakan software komputer dan user untuk mengakses service jaringannya sendiri melalui jaringan loopback (127.0.0.1), melalui perangkat keras jaringan lokal.

Dalam meetup kali ini, pembahasannya akan dipersempit ke dalam web server di localhost. Artinya localhost disini sebagai webserver di localhost.

ilustrasi request localhost dengan request langsung melalui internet


Memberi nama lain Localhost

Sebenarnya kita dapat memberi nama lain localhost. 
Windows: 
C:\Windows\System32\drivers\etc\hosts 
# localhost name resolution is handled within DNS itself. 
# 127.0.0.1 localhost misal pengen nama domain unik 
127.0.0.1 namakubagus.com 

 Linux: /etc/hosts

Port di localhost

Kita bisa memakai port berapapun, misalnya mulai dari 80 - 65535. Asalkan port tersebut tidak digunakan oleh service / aplikasi lain.

 Pada umumnya protokol http memakai port 80. http://localhost:80 (atau kita bisa hilangkan :80, karena secara baku, http memakai port 80)

Dengan adanya banyak port, kita dapat mempunyai beberapa web server sekaligus dengan syarat pengaturan port harus berbeda-beda dan port belum digunakan oleh aplikasi lain.

Kegunaan localhost

Sebagai wadah untuk menampung service, di komputer bersangkutan.

Service paling umum misalnya:
  • Web Server (http server)
  • Database Server
  • Sebagai reverse proxy
  • dan lain-lain

Sedangkan localhost web server sendiri sangat berguna untuk kegiatan development (pengembangan) sebelum kita deploy di server sesungguhnya (production).

Web server di localhost



Mengenal Solution Server Stack

di windows dan linux


Apa itu solution stack?


Server stack / Solution Stack adalah kumpulan aplikasi yang membentuk insfrastruktur server secara lengkap. Sederhana nya, adalah aplikasi-aplikasi untuk kegiatan membuat server yang dijadikan dalam satu paket.


Singkatnya: membuat web server di localhost hanya dengan menginstall satu paket aplikasi / software


Misalnya sebuah server stack bisa terdiri dari:

  1. Web server (Apache, nginX, lighthttpd, Lite speed, dsb)
  2. Interpreter bahasa pemograman server (php, python, ruby, asp dsb)
  3. Database (mysql / mariaDb, postgresql, mongoDB, dsb)
  4. Aplikasi Admin (phpMyAdmin, rockmongo)
  5. Shortcut untuk konfigurasi
  6. dan lain sebagainya bervariasi.


Gambaran Solution Stack


Solution Stack di Windows


Beberapa server stack di windows 
  • IIS (WISA)
  • XAMP
  • WAMPServer
  • WPN-XM
  • Dan lain-lain, tidak akan dibahas semua

Solution Stack di Windows

# IIS (WISA)

Terdiri dari Windows Server, IIS, Microsoft SQL Server, ASP.NET dsb.

Lebih populer di kalangan perusahaan (enterprise), dan biaya membangun server ini relatif lebih mahal di kegiatan production.

*kedepannya server stack ini tidak akan dibahas, karena komunitas SBS lebih mementingkan menggunakan aplikasi open source, dan bukan skala enterprise

Solution Stack di Windows

# XAMPP

X ( dapat dibaca cross, artinya dapat diinstall di berbagai sistem operasi [linux, windows, macOS])
A (Apache sebagai web server)
M(MySQL sebagai database)
P (PHP)
P (PERL)

Addon (aplikasi web tambahan) :
phpMyAdmin (Untuk manajemen database)

Download: http://www.apachefriends.org/index.html

Solution Stack di Windows

# WAMPServer

Windows
Apache
MySQL
PHP

Addon (aplikasi web tambahan) :
  • phpMyAdmin (Untuk manajemen database)
  • SQLBuddy (Untuk manajemen database)
  • XDebug (Untuk mendebug / mengetahui secara detail script kita)

Download: http://www.wampserver.com/en/

Solution Stack di Windows

# wpn-xm

  • W - Windows (operating system) 
  • P - PHP (scripting & programming language) 
  • N - NGINX (web server) 
  • X - XDebug (debugger) + XHprof (profiler) 
  • M - MariaDB (database)

Addon (aplikasi web tambahan) :
Banyak, bisa dicek sendiri di web resminya


Solution Stack di Linux


Beberapa server stack di Linux
  • LAMP (Linux Apache MySQL PHP) (paling dipakai dan terkenal )
  • LEAP (Linux [Sistem Operasi], Yaws (web server) ditulis dalam bahasaErlang, Mnesia or CouchDB (database) written in Erlang, Erlang)
  • GLASS
  • LEAP
  • Open Stack dsb

Mengenal Apache & NginX

kelebihan dan kekurangan apache dan nginx


Penggunaan Web Server berdasarkan Web Server Survey


http://news.netcraft.com/archives/2014/03/03/march-2014-web-server-survey.html

Kelebihan dan kekurangan Apache


Kelebihan: 
  • Komunitas banyak
  • Banyak hosting yang support .httaccess
  • Mudah melakukan konfigurasi
  • Banyak module / addon tambahan

Kekurangan
  • Memakan CPU dan memory banyak karena membuat proses per request

Kelebihan dan Kekurangan Nginx


Kelebihan: 
  • Lebih cepat dari apache 
  • Tidak memecah proses ketika ada permintaan koneksi

Kekurangan:
  • Komunitas sedikit
  • Dokumentasi (hal untuk dipelajari) sedikit
  • Tidak mendukung .htaccess (tetapi punya rule sendiri)

Performa Memory Apache vs Nginx


Performa Apache vs Nginx


Localhost Tunneling

cara membuat online localhost kita

Membuat online localhost


localhost bersifat local, artinya komputer sendiri dan jaringan local yang terhubung dengan komputer tersebut yang bisa mengakses.

Untuk membuat localhost kita online, kita harus melakukan localhost tunneling

Untuk apa tunneling?

  • Beberapa diantaranya adalah sebagai sarana untuk orang yang berada di tempat yang jauh (tidak terikat jaringan kita) yang ingin melihat website localhost kita.
  • Untuk membuat keperluan membuat applikasi facebook, tanpa menyewa hosting
  • Simulasi sebelum benar-benar deploy ke server (status produksi).
  • Testing website localhost kita.

Beberapa cara tunneling


  • Membuka NAT di modem (intinya membuat modem kita bisa diakses di publik)
  • PageKite
  • Ngrok
  • Dan lain-lain

Tunneling dengan Ngrok


  1. Daftar ngrok.com
  2. Ambil kode auth nya
  3. Download ngrok
  4. Jalankan melalui commandline


*untuk lebih jelas bisa melihat screencast
Made with Slides.com