Minggu, 05 Maret 2017

VERSION CONTROL (Git)

0 komentar

 1.1 Memulai Git - Tentang Version Control

Tentang Version Control

Apa itu version control, dan kenapa anda harus peduli? Version control adalah sebuah sistem yang mencatat setiap perubahan terhadap sebuah berkas atau kumpulan berkas sehingga pada suatu saat anda dapat kembali kepada salah satu versi dari berkas tersebut. Sebagai contoh dalam buku ini anda akan menggunakan kode sumber perangkat lunak sebagai berkas yang akan dilakukan version controlling, meskipun pada kenyataannya anda dapat melakukan ini pada hampir semua tipe berkas di komputer.
Jika anda adalah seorang desainer grafis atau desainer web dan anda ingin menyimpan setiap versi dari gambar atau layout yang anda buat (kemungkinan besar anda pasti ingin melakukannya), maka Version Control System (VCS) merupakan sebuah solusi bijak untuk digunakan. Sistem ini memungkinkan anda untuk mengembalikan berkas anda pada kondisi/keadaan sebelumnya, mengembalikan seluruh proyek pada keadaan sebelumnya, membandingkan perubahan setiap saat, melihat siapa yang terakhir melakukan perubahan terbaru pada suatu objek sehingga berpotensi menimbulkan masalah, siapa yang menerbitkan isu, dan lainnya. Dengan menggunakan VCS dapat berarti jika anda telah mengacaukan atau kehilangan berkas, anda dapat dengan mudah mengembalikannya. Ditambah lagi, anda mendapatkan semua ini dengan overhead yang sangat sedikit.

Version Control System Lokal

Kebanyakan orang melakukan pengontrolan versi dengan cara menyalin berkas-berkas pada direktori lain (mungkin dengan memberikan penanggalan pada direktori tersebut, jika mereka rajin). Metode seperti ini sangat umum karena sangat sederhana, namun cenderung rawan terhadap kesalahan. Anda akan sangat mudah lupa dimana direktori anda sedang berada, selain itu dapat pula terjadi ketidak sengajaan penulisan pada berkas yang salah atau menyalin pada berkas yang bukan anda maksudkan.
Untuk mengatasi permasalahan ini, para programmer mengembangkan berbagai VCS lokal yang memiliki sebuah basis data sederhana untuk menyimpan semua perubahan pada berkas yang berada dalam cakupan revision control (Lihat Gambar 1-1).

Gambar 1-1. Diagram version control lokal. Salah satu perkakas VCS yang populer adalah rcs, kakas ini masih didistribusikan dengan berbagai komputer pada masa kini. Bahkan sistem operasi Mac OS X menyertakan rcs ketika menginstal Developer Tools. Kakas ini pada dasarnya bekerja dengan cara menyimpan kumpulan patch dari satu perubahan ke perubahan lainnya dalam format khusus pada disk; ini kemudian dapat digunakan untuk menciptakan kembali wujud/keadaan suatu berkas pada suatu saat dengan cara menggunakan patch yang berkesesuaian dengan berkas dan waktu yang diinginkan.

Version Control Systems Terpusat

Permasalahan berikutnya yang dihadapi adalah para pengembang perlu melakukan kolaborasi dengan pengembang pada sistem lainnya. Untuk mengatasi permasalahan ini maka dibangunlah Centralized Version Control Systems (CVCSs). Sistem ini, diantaranya CVS, Subversion, dan Perforce, memiliki sebuah server untuk menyimpan setiap versi berkas, dan beberapa klien yang dapat melakukan checkout berkas dari server pusat. Untuk beberapa tahun, sistem seperti ini menjadi standard untuk version control (lihat Gambar 1-2).

Gambar 1-2. Diagram version control terpusat. Sistem seperti ini memiliki beberapa kelebihan, terutama jika dibandingkan dengan VCS lokal. Misalnya, setiap orang pada tingkat tertentu mengetahui apa yang orang lain lakukan pada proyek. Administrator memiliki kendali yang mantap atas siapa yang dapat melakukan apa; dan adalah jauh lebih mudah untuk mengelola sebuah CVCS dibandingkan menangani database lokal pada setiap client.
Walau demikian, sistem dengan tatanan seperti ini memiliki kelemahan serius. Kelemahan nyata yang direpresesntasikan oleh sistem dengan server terpusat. Jika server mati untuk beberapa jam, maka tidak ada seorangpun yang bisa berkolaborasi atau menyimpan perubahan terhadap apa yang mereka telah kerjakan. Jika harddisk yang menyimpan basisdata mengalami kerusakan, dan salinan yang beran belum tersimpan, anda akan kehilangan setiap perubahan dari proyek kecuali snapshot yang dimiliki oleh setiap kolaborator pada komputernya masing-masing. VCS lokal juga mengalami nasib yang sama jika anda menyimpan seluruh history perubahan proyek pada satu tempat, anda mempunyai resiko kehilangan semuanya.

Version Control System Terdistribusi

Inilah saatnya bagi Distributed Version Control Systems untuk mengambil tempat. dalam sebuah DVCS (seperti Git, Mercurial, Bazaar atau Darcs), klien tidak hanya melakukan checkout untuk snapshot terakhir setiap berkas, namun mereka (klien) memiliki salinan penuh dari repositori tersebut. Jadi, jika server mati, dan sistem berkolaborasi melalui server tersebut, maka klien manapun dapat mengirimkan salinan repositori tersebut kembali ke server. Setiap checkout pada DVCS merupakan sebuah backup dari keseluruhan data (lihat Gambar 1-3).

Gambar 1-3. Diagram distributed version control. Lebih jauh lagi, kebanyakan sistem seperti ini mampu menangani sejumlah remote repository dengan baik, jadi anda dapat melakukan kolaborasi dengan berbagai kelompok kolaborator dalam berbagai cara secara bersama-sama pada suatu proyek. Hal ini memungkinkan anda untuk menyusun beberapa jenis alur kerja yang tidak mungkin dilakukan pada sistem terpusat, seperti hierarchical model.

1.2 Memulai Git - Sejarah Singkat Git

Sejarah Singkat Git

Seperti hal besar lainnya, Git diawali dengan sedikit permasalahan dan kontroversi. Kernel Linux merupakan sebuah proyek perangkat lunak open source skala besar. Sepanjang perjalanan perawatan Kernel Linux (1991-2002), perubahan disimpan sebagai patch dan arsip-arsip berkas. Pada tahun 2002, proyek ini mulai menggunakan sebuah DVCS proprietary bernama BitKeeper.
Pada tahun 2005, hubungan antara komunitas pengembang Kernel Linux dengan perusahan yang mengembangkan Bitkeeper retak, dan status "gratis" pada BitKeeper dicabut. Hal ini membuat komunitas pengembang Kernel Linux (dan khususnya Linus Torvalds, sang pencipta Linux) harus mengembangkan perkakas sendiri dengan berbekal pengalaman yang mereka peroleh ketika menggunakan BitKeeper. Dan sistem tersebut diharapkan dapat memenuhi beberapa hal berikut:
  • Kecepatan
  • Desain yang sederhana
  • Dukungan penuh untuk pengembangan non-linear (ribuan cabang paralel)
  • Terdistribusi secara penuh
  • Mampu menangani proyek besar seperti Kernel Linux secara efisien (dalam kecepatan dan ukuran data)
Sejak kelahirannya pada tahun 2005, Git telah berkembang dan semakin mudah digunakan serta hingga saat ini masih mempertahankan kualitasnya tersebut. Git luar biasa cepat, sangat efisien dalam proyek besar, dan memiliki sistem pencabangan yang luar biasa untuk pengembangan non-linear (Lihat Bab 3).

1.3 Memulai Git - Dasar Git

Dasar Git

Jadi, sebenarnya apa yang dimaksud dengan Git? Ini adalah bagian penting untuk dipahami, karena jika anda memahami apa itu Git dan cara kerjanya, maka dapat dipastikan anda dapat menggunakan Git secara efektif dengan mudah. Selama mempelajari Git, cobalah untuk melupakan VCS lain yang mungkin telah anda kenal sebelumnya, misalnya Subversion dan Perforce. Git sangat berbeda dengan sistem-sistem tersebut dalam hal menyimpan dan memperlakukan informasi yang digunakan, walaupun antar-muka penggunanya hampir mirip. Dengan memahami perbedaan tersebut diharapkan dapat membantu anda menghindari kebingungan saat menggunakan Git.

Snapshot, Bukan Perbedaan

Salah satu perbedaan yang mencolok antar Git dengan VCS lainnya (Subversion dan kawan-kawan) adalah dalam cara Git memperlakukan datanya. Secara konseptual, kebanyakan sistem lain menyimpan informasi sebagai sebuah daftar perubahan berkas. Sistem seperti ini (CVS, Subversion, Bazaar, dan yang lainnya) memperlakukan informasi yang disimpannya sebagai sekumpulan berkas dan perubahan yang terjadi pada berkas-berkas tersebut, sebagaimana yang diperlihatkan pada Gambar 1-4.

Gambar 1-4. Sistem lain menyimpan data perubahan terhadap versi awal setiap berkas. Git tidak bekerja seperti ini. Melainkan, Git memperlakukan datanya sebagai sebuah kumpulan snapshot dari sebuah miniatur sistem berkas. Setiap kali anda melakukan commit, atau melakukan perubahan pada proyek Git anda, pada dasarnya Git merekam gambaran keadaan berkas-berkas anda pada saat itu dan menyimpan referensi untuk gambaran tersebut. Agar efisien, jika berkas tidak mengalami perubahan, Git tidak akan menyimpan berkas tersebut melainkan hanya pada file yang sama yang sebelumnya telah disimpan. Git memperlakukan datanya seperti terlihat pada Gambar 1-5.

Gambar 1-5. Git menyimpan datanya sebagai snapshot dari proyek setiap saat. Ini adalah sebuah perbedaan penting antara Git dengan hampir semua VCS lain. Hal ini membuat Git mempertimbangkan kembali hampir setiap aspek dari version control yang oleh kebanyakan sistem lainnya disalin dari generasi sebelumnya. Ini membuat Git lebih seperti sebuah miniatur sistem berkas dengan beberapa tool yang luar biasa ampuh yang dibangun di atasnya, ketimbang sekadar sebuah VCS. Kita akan mempelajari beberapa manfaat yang anda dapatkan dengan memikirkan data anda dengan cara ini ketika kita membahas "Git branching" pada Bab 3.

Hampir Semua Operasi Dilakukan Secara Lokal

Kebanyakan operasi pada Git hanya membutuhkan berkas-berkas dan resource lokal – tidak ada informasi yang dibutuhkan dari komputer lain pada jaringan anda. Jika Anda terbiasa dengan VCS terpusat dimana kebanyakan operasi memiliki overhead latensi jaringan, aspek Git satu ini akan membuat anda berpikir bahwa para dewa kecepatan telah memberkati Git dengan kekuatan. Karena anda memiliki seluruh sejarah dari proyek di lokal disk anda, dengan kebanyakan operasi yang tampak hampir seketika.
Sebagai contoh, untuk melihat history dari proyek, Git tidak membutuhkan data histori dari server untuk kemudian menampilkannya untuk anda, namun secara sedarhana Git membaca historinya langsung dari basisdata lokal proyek tersebut. Ini berarti anda melihat histori proyek hampir secara instant. Jika anda ingin membandingkan perubahan pada sebuah berkas antara versi saat ini dengan versi sebulan yang lalu, Git dapat mencari berkas yang sama pada sebulan yang lalu dan melakukan pembandingan perubahan secara lokal, bukan dengan cara meminta remote server melakukannya atau meminta server mengirimkan berkas versi yang lebih lama kemudian membandingkannya secara lokal.
Hal ini berarti bahwa sangat sedikit yang tidak bisa anda kerjakan jika anda sedang offline atau berada diluar VPN. Jika anda sedang berada dalam pesawat terbang atau sebuah kereta dan ingin melakukan pekerjaan kecil, anda dapat melakukan commit sampai anda memperoleh koneksi internet hingga anda dapat menguploadnya. Jika anda pulang ke rumah dan VPN client anda tidak bekerja dengan benar, anda tetap dapat bekerja. Pada kebanyakan sistem lainnya, melakukan hal ini cukup sulit atau bahkan tidak mungkin sama sekali. Pada Perforce misalnya, anda tidak dapat berbuat banyak ketika anda tidak terhubung dengan server; pada Subversion dan CVS, anda dapat mengubah berkas, tapi anda tidak dapat melakukan commit pada basisdata anda (karena anda tidak terhubung dengan basisdata). Hal ini mungkin saja bukanlah masalah yang besar, namun anda akan terkejut dengan perbedaan besar yang disebabkannya.

Git Memiliki Integritas

Segala sesuatu pada Git akan melalui proses checksum terlebih dahulu sebelum disimpan yang kemudian direferensikan oleh hasil checksum tersebut. Hal ini berarti tidak mungkin melakukan perubahan terhadap berkas manapun tanpa diketahui oleh Git. Fungsionalitas ini dimiliki oleh Git pada level terendahnya dan ini merupakan bagian tak terpisahkan dari filosofi Git. Anda tidak akan kehilangan informasi atau mendapatkan file yang cacat tanpa diketahui oleh Git.
Mekanisme checksum yang digunakan oleh Git adalah SHA-1 hash. Ini merupakan sebuah susunan string yang terdiri dari 40 karakter heksadesimal (0 hingga 9 dan a hingga f) dan dihitung berdasarkan isi dari sebuah berkas atau struktur direktori pada Git. sebuah hash SHA-1 berupa seperti berikut:
24b9da6552252987aa493b52f8696cd6d3b00373
Anda akan melihat nilai seperti ini pada berbagai tempat di Git. Faktanya, Git tidak menyimpan nama berkas pada basisdatanya, melainkan nilai hash dari isi berkas.

Secara Umum Git Hanya Menambahkan Data

Ketika anda melakukan operasi pada Git, kebanyakan dari operasi tersebut hanya menambahkan data pada basisdata Git. It is very difficult to get the system to do anything that is not undoable or to make it erase data in any way. Seperti pada berbagai VCS, anda dapat kehilangan atau mengacaukan perubahan yang belum di-commit; namun jika anda melakukan commit pada Git, akan sangat sulit kehilanngannya, terutama jika anda secara teratur melakukan push basisdata anda pada repositori lain.
Hal ini menjadikan Git menyenangkan karena kita dapat berexperimen tanpa kehawatiran untuk mengacaukan proyek. Untuk lebih jelas dan dalam lagi tentang bagaimana Git menyimpan datanya dan bagaimana anda dapat mengembalikan yang hilang, lihat "Under the Covers" pada Bab 9.

Tiga Keadaan

Sekarang perhatikan. Ini adalah hal utama yang harus diingat tentang Git jika anda ingin proses belajar anda berjalan lancar. Git memiliki 3 keadaan utama dimana berkas anda dapat berada: committed, modified dan staged. Committed berarti data telah tersimpan secara aman pada basisdata lokal. Modified berarti anda telah melakukan perubahan pada berkas namun anda belum melakukan commit pada basisdata. Staged berarti anda telah menandai berkas yang telah diubah pada versi yang sedang berlangsung untuk kemudian dilakukan commit.
Ini membawa kita ke tiga bagian utama dari sebuah projek Git: direktori Git, direktori kerja, dan staging area.

Figure 1-6. Direktori kerja, staging area, dan direktori git. Direktori Git adalah dimana Git menyimpan metadata dan database objek untuk projek anda. Ini adalah bahagian terpenting dari Git, dan inilah yang disalin ketika anda melakukan kloning sebuah repository dari komputer lain.
Direktori kerja adalah sebuah checkout tunggal dari satu versi dari projek. Berkas-berkas ini kemudian ditarik keluar dari basisdata yang terkompresi dalam direktori Git dan disimpan pada disk untuk anda gunakan atau modifikasi.
Staging area adalah sebuah berkas sederhana, umumnya berada dalam direktori Git anda, yang menyimpan informasi mengenai apa yang menjadi commit selanjutnya. Ini terkadang disebut sebagai index, tetapi semakin menjadi standard untuk menyebutnya sebagai staging area.
Alur kerja dasar Git adalah seperti ini:
  1. Anda mengubah berkas dalam direktori kerja anda.
  2. Anda membawa berkas ke stage, menambahkan snapshotnya ke staging area.
  3. Anda melakukan commit, yang mengambil berkas seperti yang ada di staging area dan menyimpan snapshotnya secara permanen ke direktori Git anda.
Jika sebuah versi tertentu dari sebuah berkas telah ada di direktori git, ia dianggap 'committed'. Jika berkas diubah (modified) tetapi sudah ditambahkan ke staging area, maka itu adalah 'staged'. Dan jika berkas telah diubah sejak terakhir dilakukan checked out tetapi belum ditambahkan ke staging area maka itu adalah 'modified'. Pada Bab 2, anda akan mempelajari lebih lanjut mengenai keadaan-keadaan ini dan bagaimana anda dapat memanfaatkan keadaan-keadaan tersebut ataupun melewatkan bagian 'staged' seluruhnya.

1.4 Memulai Git - Menginstall Git

Menginstall Git

Mari memulai menggunakan Git. Pertama, tentu saja anda harus menginstallnya terlebih dahulu. Anda dapat melakukan melalui berbagai cara; dua cara paling poluler adalah menginstallnya dari kode sumbernya atau menginstalkan paket yang telah disediakan untuk platform anda.

Menginstall Dari Kode Sumber

Jika anda dapat melakukannya, akan sangat berguna untuk dapat menginstallnya dari kode sumber, karena anda akan mendapatkan versi terbaru dari Git. Setiap versi dari Git cenderung akan menampilkan kemajuan pada sisi antarmuka pengguna, jadi menggunakan versi terbaru seringkali menjadi jalan terbaik jika anda terbiasa melakukan kompilasi perangkat lunak dari kode sumbernya. Dan juga menjadi masalah bahwa banyak distribusi Linux yang menyertakan versi Git yang sangat lama; kecuali anda mempergunakan distribusi Linux paling up-to-date atau menggunakan backport, menginstall dari kode sumbernya mungkin menjadi solusi terbaik.
Untuk menginstall Git, anda membutuhkan beberapa library yang dibutuhkan oleh Git: curl, zlib, openssl, expat, dan libiconv. Sebagai contoh, jika anda berada pada sistem yang menggunakan yum (seperti Fedora) atau apt-get (seperti sistem berbasis Debian), anda dapat menggunakan salah satu dari perintah berikut untuk menginstall semua library yang dibutuhkan oleh Git:
$ yum install curl-devel expat-devel gettext-devel \
  openssl-devel zlib-devel

$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \
  libz-dev
Setelah anda memperoleh semua library yang dibutuhkan, anda kemudian dapat melanjutkan dengan mengunduh Git dari situsnya:
http://git-scm.com/download
Kemudian, kompilasi dan install:
$ tar -zxf git-1.6.0.5.tar.gz
$ cd git-1.6.0.5
$ make prefix=/usr/local all
$ sudo make prefix=/usr/local install
Setelah semua ini selesai, anda juga dapat memperoleh Git terbaru melalui Git sendiri:
$ git clone git://git.kernel.org/pub/scm/git/git.git

Menginstall Git di Linux

Jika anda ingin menginstall Git di Linux menggunakan installer biner, anda bisa melakukannya melalui perkakas manajemen paket yang anda pada distribusi Linux yang anda gunakan. Jika anda menggunakan Fedora, anda dapat menggunakan yum:
$ yum install git-core
Atau jika anda menggunakan distro berbasis Debian seperti Ubuntu, coba gunakan apt-get:
$ apt-get install git

Menginstall Git pada Mac

Terdapat dua cara mudah untuk menginstal Git pada sebuah komputer Mac. Cara termudah adalah menggunakan installer Git berbasis GUI, yang dapat anda peroleh dari halaman SourceForge (lihat Gambar 1-7):
http://sourceforge.net/projects/git-osx-installer/

Gambar 1-7. Git OS X installer. Cara lainnya adalah dengan menggunakan MacPorts (http://www.macports.org). Jika anda telah menginstall MacPorts, maka anda dapat menginstall Git melalui cara berikut
$ sudo port install git-core +svn +doc +bash_completion +gitweb
Anda tidak harus menambahkan extras-nya, tetapi anda mungkin membutuhkan +svn jika anda harus menggunakan Git pada repositori Subversion (lihat Bab 8).

Menginstall pada Sistem Operasi Windows

Menginstall Git pada Windows sangatlah mudah. Cara termudah dapat anda peroleh dengan menggunakan msysGit. Cukup download file installernya dari halaman GitHub, lalu eksekusi.
http://msysgit.github.com/
Setelah terinstall, anda akan memperoleh versi command-line (bersama dengan klien SSH yang praktis) dan versi GUI-nya.

1.5 Memulai Git - Setup Git Untuk Pertama Kalinya

Setup Git Untuk Pertama Kalinya

Sekarang anda telah memiliki Git pada sistem anda, berikutnya anda akan harus melakukan beberapa penyesuai pada lingkungan Git anda. Anda hanya perlu melakukan hal ini sekali saja; pada saat memperbaharui versi Git anda, penyesuai tidak perlu dilakukan lagi. Anda pun dapat mengubah penyesuaian tersebut setiap saat.
Pada Git terdapat sebuah perkakas yang disebut dengan git config yang memungkinkan anda untuk memperoleh informasi dan menetapkan variable konfigurasi yang mengontrol segala aspek bagaimana Git beroperasi dan berperilaku. Variable-variable ini dapat disimpan pada tiga tempat berbeda:
  • /etc/gitconfig file: Menyimpan berbagai nilai-nilai variable untuk setiap pengguna pada sistem dan semua repositori milik para pengguna tersebut. Jika anda memberikan opsi --system pada git config, maka Git akan membaca dan menulis file konfigurasi ini secara spesifik.
  • ~/.gitconfig file: Spesifik hanya untuk pengguna yang bersangkutan. Anda dapat membuat Git membaca dan menulis pada berkas ini secara spesifik dengan memberikan opsi --global.
  • config file pada direktori git (yaitu, .git/config) atau reposotori manapun yang sedang anda gunakan: Spesifik hanya pada repositori itu saja. Setiap nilai pada setiap tingkat akan selalu menimpa nilai yang telah ditetapkan pada level sebelumnya, jadi nilai yang telah di-set pada .git/config akan menimpa nilai yang telah di-set pada /etc/gitconfig.
Pada Sistem Operasi Windows, Git akan mencari berkas .gitconfig pada direktori $HOME (C:\Documents and Settings\$USER untuk kebanyakan kasus). Selain itu juga akan mencari /etc/gitconfig, direktori ini relatif terhadap direktori root MSys, yang mana tergantung dari direktori yang dipilih saat anda menginstall Git pada Windows anda.

Identitas Anda

Hal pertama yang harus anda lakukan ketika menginstalkan Git adalah mengatur username dan alamat e-mail anda. Hal ini penting karena setiap commit pada Git akan menggunakan informasi ini, dan informasi ini akan selamanya disimpan dengan commit yang anda buat tersebut:
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
Lagi-lagi, anda hanya perlu melakukan ini sekali saja jika anda menggunakan opsi --global, karena Git akan selalu menggunakan informasi tersebut selama anda berada pada sistem yang sama. Jika anda ingin menimpa informasi ini dengan menggunakan e-mail atau username yang berbeda untuk proyek tertentu, anda dapat perintah tersebut tanpa menggunakan opsi --global ketika anda berada pada proyek tersebut.

Editor Anda

Sekarang identitas anda telah siap, berikutnya anda dapat memilih text editor default yang akan digunakan manakala Git membutuhkan anda untuk menulis sebuah pesan. Secara default, Git akan menggunakan default editor sesuai dengan sistem operasi, biasanya adalah Vi atau Vim pada sistem Unix. Jika anda ingin menggunakan text editor yang lainnya, seperti Emacs, anda dapat melakukan perintah seperti berikut:
$ git config --global core.editor emacs

Perkakas Diff Anda

Opsi lainnya yang mungkin berguna dan mungkin ingin anda ubah adalah perkakas diff yang digunakan untuk menyelesaikan konflik yang terjadi ketika dilakukannya merge (penggabungan). Katakanlah anda ingin menggunakan vimdiff:
$ git config --global merge.tool vimdiff
Git dapat menggunakan berbagai perkakas diff ini diantaranya kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge, dan opendiff. Anda pun dapat menggunakan perkakas kastem; lihat Bab 7 untuk informasi lebih jauh lagi mengenai hal tersebut.

Mengecek Settingan Anda

Jika anda ingin mengecek settingan anda, anda dapat menggunakan peritah git config --list untuk menampilkan semua settingan yang digunakan Git:
$ git config --list
user.name=Scott Chacon
user.email=schacon@gmail.com
color.status=auto
color.branch=auto
color.interactive=auto
color.diff=auto
...
Anda mungkin akan melihat beberapa variable yang ditampilkan lebih dari sekali, hal ini terjadi karena variable yang sama diperoleh dari beberapa file konfigurasi berbeda (misalnya, /etc/gitconfig dan ~/.gitconfig). Pada kasus seperti ini, Git hanya akan menggunakan nilai yang terlihat paling akhir saja.
Andapun dapat melihat apa nilai yang Git pergunakan untuk suatu variable secara spesifik dengan mengunakan git config {key}:
$ git config user.name
Scott Chacon 
 
 

1.6 Memulai Git - Memperoleh Pertolongan

Memperoleh Pertolongan

Jika anda membutuhkan pertolongan ketika menggunakan Git, terdapat 3 cara yang dapat digunakan untuk membuka halaman manual (manpage) untuk setiap perintah Git:
$ git help <verb> $ git <verb> --help $ man git-<verb> Sebagai contoh, anda dapat memperoleh halaman manual untuk perintah config dengan menjalankan perintah:
$ git help config Perintah ini sangatlah luar biasa karena anda dapat mengaksesnya kapan saja, bahkan ketika sedang offline. Jika manpage (halaman manual) dan buku ini tidaklah cukup, dan anda membutuhkan pertolongan dari seorang manusia, anda dapat mencoba channel #git atau #github pada Freenode IRC server (irc.freenode.net). Channel ini biasanya berisi ratusan orang yang memiliki pengetahuan tentang Git dan sering kali memiliki kemauan untuk menolong
 

1.7 Memulai Git - Kesimpulan

Kesimpulan

Sekarang anda memiliki pengetahuan dasar mengenai apa yang dimaksud dengan Git dan perbedaannya dari VCS terpusat yang mungkin pernah anda gunakan. Anda pun seharusnya sekarang memiliki Git pada sistem anda yang telah diatur dengan identitas personal anda. Sekarang saatnya untuk mempelajari beberapa dasar Git
 
SELANJUTNYA>>>




Read more ►

Pengertian Captive Portal

0 komentar
Pengertian Captive Portal  


Captive Portal adalah suatu teknik autentikasi dan pengamanan data yang lewat dari network internal ke network eksternal. Captive Portal sebenarnya merupakan mesin router atau gateway yang memproteksi atau tidak mengizinkan adanya trafik, hingga user melakukan registrasi. Biasanya Captive Portal ini digunakan pada infrastruktur wireless sseperti hotspot area, tapi tidak menutup kemungkinan diterapkan pada jaringan kabel.

Berikut cara kerja Captive Portal :  Pada saat seorang pengguna berusaha untuk melakukan browsing ke Internet, captive portal akan memaksa pengguna yang belum terauthentikasi untuk menuju ke Authentication web dan akan di beri prompt login termasuk informasi tentang hotspot yang sedang dia gunakan. Router / wireless gateway mempunyai mekanisme untuk menghubungi sebuah Authentication server untuk mengetahui identitas dari pengguna wireless yang tersambung, maka wireless gateway akan dapat menentukan untuk membuka aturan firewall-nya untuk pengguna tertentu.
A captive portal ternyata adalah sebuah Web browser ke dalam perangkat otentikasi.  Hal ini dilakukan dengan mencegat semua paket, terlepas dari alamat atau port, sampai user membuka browser dan mencoba untuk mengakses Internet.  Pada Saat itu browser ini dialihkan ke halaman web yang membutuhkan otentikasi, atau hanya menampilkan acceptable use policy dan meminta user untuk setuju.
Ada beberapa  cara untuk menerapkan captive portal.

Redirection oleh HTTP
Jika  klien yang tidak terauthentikasi melakukan permintaan untuk menampilkan sebuah situs web, DNS server mendapatkan permintaan resolve IP alamat web  oleh browser seperti biasa.  Browser kemudian mengirimkan permintaan HTTP ke alamat IP.  Permintaan ini, kemudian dicegat oleh firewall dan diteruskan ke sebuah server redirect.  Server redirect ini menanggapi  respon HTTP yang berisi kode status HTTP 302 untuk mengarahkan klien ke Captive Portal. Untuk klien, proses ini benar-benar transparan. Klien mengasumsikan bahwa situs web menanggapi permintaan awal dan mengirim redirect.
IP Alias
Lalu lintas Klien  dapat juga diarahkan dengan menggunakan IP pada tingkat layer 3. Metode ini memiliki kelemahan yaitu konten yang disajikan kepada klien tidak sesuai dengan URL.
Redirection oleh DNS
Ketika klien meminta sebuah situs web, DNS server  diminta meresolve alamat adalah browser. Firewall akan memastikan bahwa hanya server DNS  yang diberikan oleh DHCP yang dapat digunakan oleh klien yang tidak terauthentikasi (atau, sebaliknya, akan meneruskan seluruh permintaan DNS oleh klien tidak terauthentikasi ke server DNS). Server DNS ini akan mengembalikan alamat IP dari halaman Portal Captive sebagai hasil dari semua DNS lookup. Teknik ini dinamakan DNS poisoning.


Captive Portal adalah suatu teknik autentikasi dan pengamanan data yang lewat dari network internal ke network eksternal. Captive Portal sebenarnya merupakan mesin router atau gateway yang memproteksi atau tidak mengizinkan adanya trafik, hingga user melakukan registrasi. Biasanya Captive Portal ini digunakan pada infrastruktur wireless sseperti hotspot area, tapi tidak menutup kemungkinan diterapkan pada jaringan kabel.
Berikut cara kerja Captive Portal: Pada saat seorang pengguna berusaha untuk melakukan browsing ke Internet, captive portal akan memaksa pengguna yang belum terauthentikasi untuk menuju ke Authentication web dan akan di beri prompt login termasuk informasi tentang hotspot yang sedang dia gunakan. Router / wireless gateway mempunyai mekanisme untuk menghubungi sebuah Authentication server untuk mengetahui identitas dari pengguna wireless yang tersambung, maka wireless gateway akan dapat menentukan untuk membuka aturan firewall-nya untuk pengguna tertentu.
Beberapa Software Captive Portal :
  • DuxTel Internet Commander – commercial hotspot solution designed for Mikrotik wireless systems
  • HotSpot Studio – commercial Windows based hotspot software
  • ChilliSpot – open source Linux daemon [abandoned]
  • CoovaChilli – both an open source linksys firmware and linux daemon
  • HotSpotSystem.com – Chillispot-based solution for free and Pay-Per-Use Hotspots
  • FirstSpot – commercial Windows based hotspot software
  • Hotspotexpress – software based for Linux platform (commercial)
  • WiFiDog Captive Portal Suite – small C based kernel solution (embeddable)
  • Wilmagate – C++ based and is executable both in Linux and Windows/Cygwin environments
  • pfSenseFreeBSD 6.2 based firewall software derived from m0n0wall
  • SweetSpot – Linux user-space, layer-3 daemon (open source)
  • Air Marshal – software based for Linux platform (commercial)

Sumber :

http://sugeng.staff.ipb.ac.id
http://faruqafif.student.fkip.uns.ac.id
Read more ►

Perbedaan antara Front End, Back End dan Full Stack Developer

0 komentar

Perbedaan antara Front End, Back End dan Full Stack Developer

 

Front-End Developer

front-end-developer
Front-End adalah bagian utama dari sebuah situs web yang berinteraksi langsung dengan pengguna atau pengunjung situs. Segala sesuatu yang teman-teman lihat ketika melakukan navigasi dalam sebuah halaman web, baik dari font, warna, menu dropdown, dan slider adalah hasil penggabungan dari fungsi HTML, CSS, dan JavaScript dikontrol oleh browser pada komputer teman-teman. Front-End developer adalah programmer yang fokus pada front-end/ layout web, mereka dituntut untuk membuat sebuah layout yang baik, menarik dan interaktif sehingga pengunjung web merasa nyaman ketika mengunjungi website tersebut.

KETERAMPILAN DAN TOOLS

Dalam mencapai tujuan tersebut, front-end developer harus menguasai tiga bahasa utama: HTML, CSS, dan Javascript. Selain itu front-end developer juga harus terbiasa menggunakan framework seperti Bootstrap, Foundation, Backbone, AngularJS, dan EmberJS untuk membantu membuat layout tetap sempurna ketika dibuka menggunakan perangkat apapun, juga penggunakan library seperti jQuery dan LESS, sehingga proses pengembangan menjadi lebih mudah dan efisien. Sebagian besar lowongan pekerjaan untuk front-end developer juga mengharuskan memiliki pengalaman menggunakan Ajax, teknik yang digunakan secara luas untuk menggunakan Javascript yang memungkinkan mengambil data dari server tanpa meload keseluruhan halaman.
front-end developer bertanggung jawab atas desain interior sebuah rumah yang telah dibangun oleh back-end developer.
Secara keseluruhan, front-end developer bertanggung jawab atas desain interior rumah yang telah dibangun oleh back-end develepor. Seperti yang dikatakan oleh Greg Matranga, Direktur Pemasaran Produk di Apptix, “Front-End developer kadang-kadang lebih bersemangat tentang apa yang mereka lakukan karena mereka benar-benar mampu memanfaatkan segala kreativitas mereka.”

Back-End Developer

back end developer
Kemudian, siapa yang membuat front-end developer akhirnya dapat mengerjakan tugasnya dekorasinya? Dimana semua data disimpan? disinilah letak peran back-end developer. Back-End dari sebuah situs web terdiri dari server, aplikasi, dan database, dan seorang back-end developer harus menguasai teknologi yang akan menunjang kekuatan komponen back-end.

KETERAMPILAN DAN TOOLS

Dalam membangun server, aplikasi, dan database yang akan berkomunikasi satu sama lain, seorang back-end developer menggunakan bahasa pemrogramn sisi-server seperti PHP, Ruby, Python, Java, dan Net untuk membangun aplikasi, juga menggunakan tools seperti MySQL, Oracle, dan SQL Server untuk menemukan, menyimpan, atau mengubah data dan menyajikannya kembali ke pengguna dalam kode front-end. Lowongan pekerjaan untuk pengembang back-end sebagian besar juga mempersyaratkan kemampuan menggunakan framework PHP seperti Zend, Symfony, CakePHP; pengetahuan menggunakan aplikasi version-control seperti SVN, CVS, atau Git; dan pengetahuan menggunakan Sistem Operasi Linux sebagai development and deployment systemnya.

Back-End developer menggunakan tools diatas untuk membuat aplikasi web yang bersih, portable, dan terdokumentasi dengan baik. Tapi sebelum menulis kode, mereka harus bekerja sama dengan para pemangku kepentingan bisnis untuk memahami kebutuhan utama mereka, kemudian menerjemahkannya ke dalam bahasa teknis kemudian memberikan solusi yang paling efektif dan efisien untuk menciptakan teknologi yg benar-benar dibutuhkan.

Full Stack Developer

full-stack
Ada daerah abu-abu antara front-end developer dan back-end developer. “Front-end developer tidak jarang harus mempelajari keterampilan back-end tambahan, begitupun sebaliknya, terutama dalam model manajemen profit saat ini dimana perusahaan memaksimalkan resource untuk menekan pengeluaran,” kata Matranga. “Developer perlu pengetahuan dan keterampilan lintas disiplin. maka teman-teman harus menjadi keduanya (fron-end dan back-end developer).”
Full-Stack Developer pertama kali dipopulerkan empat tahun lalu oleh Facebook’s engineering department. Idenya adalah bahwa full-stack developer dapat bekerja lintas-fungsional pada dua teknologi yang berbeda, yaitu front-end dan back-end, dan full-stack developer menawarkan sebuah paket yang lengkap.
“Bekerja pada keduanya; sisi server dan sisi client, secara profesional membuka lebih banyak kesempatan,” kata Federico Ulfo, Full Stack Developer di Grovo. Tapi, tentu saja, full-stack developer tidak hadir tanpa tantangan. “Kita analogikan sebuah makanan,  teman-teman bisa membuat kue atau teman-temani memasak makanan, namun jika ingin menguasai keduanya teman-teman membutuhkan waktu dan pengalaman. Dan saya tidak berbicara tentang mengikuti resep, siapa pun bisa melakukannya. Aku sedang berbicara tentang memiliki bahan-bahan untuk mempersiapkan sesuatu yang benar-benar baik”.

KETERAMPILAN DAN TOOLS

Full-Stack Developer bejerja seperti back-end developer, pada sisi server, tetapi mereka juga bisa mampu menggunakan bahasa front-end yang mengontrol bagaimana tampilan dari situs yang dibuat.
Berikut ini adalah perbandingan peningkatan kompleksitas full-stack developer beberapa tahun lalu dengan yang ada sekarang:
old-full-stack
full-stackFull-stack developer harus memiliki pengetahuan di setiap tingkatan pengembangan web: pemasangan dan konfigurasi server Linux, menulis API pada server-side, mengatur JavaScript pada sisi client untuk mendukung aplikasi, dan membuat desain CSS. Dengan menggunakan tools yang ada, full-stack developer harus dapat dengan cepat mengidentifikasi solusi pemecahan masalah pada client-side dan server-side yang ada untuk kemudian mengartikulasikan pro dan kontra dari solusi yang telah di dapat.




Read more ►

Apa Bedanya Cloud Server, VPS dan Web Hosting ?

0 komentar


Apa Bedanya Cloud Server, VPS dan Web Hosting ?



Web Hosting




Web hosting adalah layanan yang menyewakan space untuk aplikasi berbasis web milik anda, dimana anda bisa menggunakan nama domain yang anda miliki untuk diarahkan ke aplikasi tersebut. Biasanya anda diberikan fasilitas manajemen untuk aplikasi anda seperti upload / download file untuk webnya maupun databasenya. Platform yang disediakan bervariasi, biasanya PHP dan database mySQL. Selain itu anda juga umumnya diberikan akun email dengan domain anda oleh penyedia layanan. Layanan ini memiliki harga paling mura. Namun memiliki keterbatasan hanya pada platform yang disediakan. Selain itu umumnya penyedia layanan hanya menyediakan 1 fisik server yang dishare bersama pelanggan lain untuk menekan harga jual. Jadi kualitas layanan juga terbatas dengan kondisi tersebut.





VPS (Virtual Private Server)
VPS adalah layanan yang menyewakan server virtual, bedanya dengan web hosting adalah anda memiliki kebebasan menentukan sistem operasi dan platform yang anda gunakan sehingga anda dapat mengoptimalkan layanan bisnis online anda. Layanan ini harganya umumnya sedikit di atas web hosting. Namun VPS tidak bisa mengakomodir kebutuhan koneksi privat antar server. Jadi ketika anda membutuhkan konfigurasi yang lebih optimal untuk security dan keandalan web online anda VPS tidak bisa lagi memenuhi. Harap anda berhati-hati juga dengan layanan VPS yang karena umumnya infrastrukturnya hanya terdiri dari 1 server fisik yang di share dengan software virtualisasi sehingga bisa menampung banyak guest OS. Artinya secara kualitas tidak berbeda dengan web hosting, kelebihannya hanya anda memiliki kebebasan menentukan OS dan platformnya saja.
Cloud Server
Teknologi cloud berbeda dengan 2 di atas. Teknologi cloud memungkinkan beberapa server dijadikan “satu” berfungsi sebagai storage (disk virtual), beberapa server lain (Host) di”satu”kan berfungsi sebagai computing node (CPU virtual). Diatas platform cloud tersebut bisa berjalan beberapa server virtual (Guest). Teknologi cloud juga memungkinkan sekumpulan server virtual (Guest) membentuk suatu network VLAN seperti layaknya server-server fisik yang terhubung dengan LAN. Dimana tiap pelanggan memiliki secure VLAN masing-masing yang tidak bisa saling memasuki. Sehingga aplikasi business online anda terutama di Indonesia, yang membutuhkan konfigurasi beberapa server dapat di akomodir oleh layanan cloud server. Selain itu layanan Cloud Server memberikan anda kemudahan menaikan atau menurunkan resource server anda seperti jumlah Core CPU, maupun jumlah RAM sesuai kebutuhan anda atau biasa disebut On Demand. Anda layak berhati-hati jika ada layanan mengaku Cloud Server terutama di Indonesia tapi tidak bisa memberikan fasilitas On Demand karena teknologi ini yang membedakan dengan VPS. Pada layanan Cloud, Anda juga masih bisa berlanganan 1 server, dengan konsekuensi harga sedikit mahal namun kualitas tentu saja lebih baik karena infrastrukturnya terdiri dari beberapa server yang saling membackup.


Read more ►

Perbedaan SaaS, PaaS dan IaaS

0 komentar

Perbedaan SaaS, PaaS dan IaaS

Saat ini cloud computing sudah menjadi perbincangan hangat diantara topik IT lainnya. Namun tidak setiap orang memiliki pemahaman yang sama tentang cloud computing. Menurut NIST, cloud computing adalah sebuah model yang nyaman, akses jaringan on-demand untuk berbagi konfigurasi jaringan sumber daya komputasi (antara lain network, server, storage, application, dan services) yang dapat cepat ditetapkan dan dirilis  hanya dengan sedikit usaha dari manajemen  atau interaksi dengan penyedia layanan [1]. Pada umumnya cloud computing menawarkan berbagai cara bagi perusahaan untuk meningkatkan kapasitas atau fungsi IT tanpa harus menambah infrastruktur, personil dan software.

Cloud computing memiliki beberapa jenis, NIST mengkategorikan cloud computing berdasarkan model layanan yakni Software as a Service (SaaS), Platform as a Service (PaaS), dan Infrastructure as a Service (IaaS).

undefined

  1. Software as a Service (SaaS)
SaaS dirancang untuk end user, unit ini memungkinan user mendapatkan fungsi bisnis. Vendor bertugas untuk mengelola aplikasi, data, runtime, middleware, O/S, virtualization, server, storage dan networking. Aplikasi yang sudah disediakan vendor diberikan kepada beberapa user, biasanya menggunakan browser web atau program interface.
Karakteristik SaaS [2]:
  • Akses Web untuk perangkat lunak komersial
  • Software dikelola dari lokasi pusat
  • Software disampaikan dengan model "one to many"
  • Pengguna tidak diperlukan untuk menangani upgrade software dan patch
  • Application Programming Interfaces (API) memungkinkan untuk integrasi antara bagian yang berbeda dari perangkat lunak

  1. Platform as a Service (PaaS)
PaaS adalah seperangkat alat dan layanan yang dirancang untuk membuat coding dan menyebarkan aplikasi secara cepat dan efisien. Paas memungkinkan pembuatan aplikasi web dengan cepat dan mudah tanpa kompleksitas, membeli dan memelihara software dan infrastruktur di bawahnya. Pengguna hanya perlu mengelola data dan aplikasi yang dirancang.
Karakteristik PaaS [2]:
  • Layanan untuk mengembangkan, menguji, menyebarkan, hosting dan memelihara aplikasi dalam lingkungan pengembangan terpadu yang sama. Semua variasi layanan diperlukan untuk memenuhi proses pengembangan aplikasi.
  • Web berbasis user tool creation interface membantu untuk membuat, memodifikasi, menguji dan menggunakan skenario UI yang berbeda.
  • Arsitektur multi-tenant dimana beberapa user secara bersamaan dapat memanfaatkan pengembangan aplikasi yang sama.

  1. Infrastructure as a Service (IaaS)
IaaS pada dasarnya adalah fisik kotak server. IaaS menyediakan perusahaan dengan sumberdaya komputasi meliputi server, jaringan, storage dan ruang data center secara pay-per-use.
Karakteristik IaaS [2] :
  • Sumber daya yang didistribusikan sebagai layanan
  • Memungkinkan untuk skala dinamis
  • Memiliki biaya variabel, penetapan harga sesuai penggunaan
  • Umumnya terdapat beberapa pengguna pada satu bagian dari hardware

Secara sederhana tanggung jawab manajemen vendor terhadap layanan SaaS, IaaS dan PaaS dapatdivisualisasikan seperti gambar berikut [3]:

undefined

#Pazcal #WorkForYou #Efisien #Ekslusif #Reliable

 Referensi :
[1] http://www.nist.gov/itl/cloud/
[2]http://www.rackspace.com/knowledge_center/whitepaper/understanding-the-cloud-computing-stack-saas-paas-iaas
[3]http://www.silverlighthack.com/post/2011/02/27/iaas-paas-and-saas-terms-explained-and-defined.aspx
 Sumber gambar : http://www.silverlighthack.com/post/2011/02/27/iaas-paas-and-saas-terms-explained-and-defined.aspx
  sumber : http://www.erudeye.id/blog/perbedaan-saas-paas-dan-iaas/
      
ARTIKEL TERKAIT
      - Apa itu Cloud Computing?
Read more ►

Pengenalan Cloud Computing

0 komentar

Pengenalan Cloud Computing

Apa Itu Cloud Computing ?

Menurut Wikipedia Cloud Computing adalah layanan komputasi dan sumber daya secara online yang melibatkan server-server yang memungkikan penyimpanan data secara terpusat. Menurut Oxford Dictionaries Cloud Computing adalah praktik penggunaan jaringan server secara remote di internet untuk meyimpan, mengelola, dan memproses data. Menurut NIST (National Institute of Standard and Technology) Cloud Computing adalah sebuah model yang memungkinkan penggunaan sumber daya (server, jaringan, storage, aplikasi, layanan, dll) bersama-sama yang dapat dikonfigurasi dengan mudah dan meminimalisir interaksi dengan penyedia layanan (provider). Jadi Cloud Computing adalah layanan sumber daya komputasi (perangkat keras, sistem operasi, aplikasi, media penyimpanan, jaringan) melalui jaringan baik intranet maupun internet yang melibatkan sejumlah server dan dapat digunakan bersama-sama (berbagi sumber daya).

Karakteristik Cloud Computing

Cloud Computing memilik 5 (lima) karakteristik utama yaitu :
1.On-Demand Self-Service : Pengguna dapat langsung memilih jenis dan spesifikasi layanan yang dibutuhkan sehingga mengurangi interaksi dengan pihak penyedia layanan cloud (cloud provider).
2.Broad Network Access : Layanan cloud memerlukan akses jaringan yang cukup memadai agar layanan tersebut bisa diakses dengan lancar.
3.Resource Pooling : Sumber daya komputasi berasal dari sekumpulan server yang lokasinya berbeda-beda, tidak terpusat pada satu lokasi saja.
4.Rapid Elasticity : kapabilitas layanan harus dapat diatur kapasitasnya sesuai dengan yang diinginkan dan dapat dilakukan dalam waktu yang singkat.
5.Measured Service : Layanan yang digunakan oleh pengguna dapat terukur dengan jelas sehingga pengguna hanya membayar sewa sesuai jumlah layanan yang digunakan.

Model Layanan Cloud Computing

Dalam cloud computing ada 3 (tiga) model layanan yaitu :
1.Software as a Service (SaaS) : layanan yang diberikan kepada pengguna berupa perangkat lunak seperti office suite. Contoh Google Doc dan Apple iWork yang merupakan aplikasi office. Tipe pengguna dari layanan SaaS adalah End User, pengguna yang tinggal menggunakan aplikasi saja.
2.Platform as a Service (PaaS) : layanan yang diberikan kepada pengguna berupa platform untuk membantu proses pengembangan perangkat lunak seperti database, service, dan platform bahasa pemrograman. Contoh Google App Engine, RedHat OpenShift, dan Koding. Tipe penggunan dari layanan PaaS adalah Application Developer, pengembang aplikasi bisa langsung fokus mengembangkan aplikasi tanpa perlu menyiapkan sendiri platform pengembangannya.
3.Infrastructure as a Service (IaaS) : layanan yang diberikan kepada pengguna berupa komputer server (mesin virtual) dan jaringan seperti layanan VPS (Virtual Private Server). Contoh Amazon Web Service (AWS), Linode, Digital Ocean, dan Cloud Kilat. Tipe pengguna dari layanan IaaS adalah Network/System Architect, sysadmin yang menyiapkan semua konfigurasi sistem mulai dari sistem operasi, jaringan, sampai platform pengembangan aplikasi.
Layanan Cloud via Save Manos @ slideshare.net
Layanan Cloud via Save Manos @ slideshare.net

Model Deployment Cloud Computing

Ada 4 (empat) model deployment pada cloud computing :
1.Public Cloud : layanan cloud dapat diakses oleh siapa saja (Public). Layanan Public Cloud ada yang berbayar dan ada yang gratis. Pengguna Public Cloud pada umumnya adalah masyarakat umum. Kelebihan menggunakan Public Cloud, pengguna tidak perlu pusing memikirkan biaya investasi, penyediaan infrastruktur dan sumber daya manusia agar layanan bisa terus berjalan. Data juga dapat mudah disimpan dan diakses selama terkonkesi dengan internet. Kekurangannya memerlukan akses internet yang memadai dan sangat bergantung dengan penyedia layanan.
2.Private Cloud : layanan cloud hanya dapat diakses oleh orang/organisasi tertentu saja (Private). Model ini banyak diterapkan pada lingkungan pendidikan atau perusahaan. Kelebihan paling utama dari Private Cloud adalah kerahasiaan data. Jika Private Cloud ini diimplementasikan pada jaringan intranet maka dapat menghemat biaya dan aksespun lebih cepat. Kekurangannya memerlukan biaya investasi infrastruktur dan sumber daya manusia.
3.Community Cloud : layanan cloud yang dikembangkan oleh komunitas yang memiliki kepentingan atau tujuan yang sama. Misalnya komunitas atau asosiasi perguruan tinggi di Indonesia membangun layanan cloud yang berisi data dan aplikasi untuk lingkungan pendidikan.
4.Hybrid Cloud : layanan cloud yang merupakan gabungan dari Private Cloud, Public Cloud, dan/atau Community Cloud. Misalnya sebuah perusahaan menggunakan gabungan Private dan Public Cloud, aplikasi dan data-data yang tidak rahasia atau ditujukan untuk konsumen ditempatkan pada Public Cloud sementara untuk aplikasi dan data yang sangat sensitif ditempatkan pada Private Cloud.
Model Deployment Cloud Computing via spkaa.com
Model Deployment Cloud Computing via spkaa.com

Resiko Cloud Computing

Cloud Computing memang hadir dengan membawa berbagai macam solusi dari permasalahan komputasi, tapi ada juga resiko yang membuat suatu organisasi tidak mau mengadaptasi cloud computing. Dua resiko yang paling penting adalah masalah keamanan dan kerahasiaan data, karena data kita diupload ke internet dimana semua orang bisa mengaksesnya atau khawatir layanan tersebut mengalami serangan cyber.
referensi:
I Putu Agus Eka Pratama, S.T., M.T – Smart City Beserta Cloud Computing dan Teknologi-Teknologi Pendukung Lainnya
The NIST Defintion of Cloud Computing
en.wikipedia.org/Cloud_Computing
oxforddictionaries.com – definition cloud computing
sumber : https://musaamin.web.id/pengenalan-cloud-computing/
Read more ►

Perbedaan Cloud Server, VPS dan Web Hosting

0 komentar


Perbedaan Cloud Server, VPS dan Web Hosting


Mungkin banyak yang bertanya tentang Perbedaan Cloud Server, VPS dan Web Hosting hal ini cukup wajar sekali karena memang sebagian orang tidak tahu menahu tentang beberapa layanan hosting untuk sekarang. Perkembangan dunia website sangat pesat dan bisa dibilang untuk saat ini milyaran bahkan triliunan website menggunakan layanan hosting. Secara garis besarnya saja hosting adalah penampung dari semua script, teks, file, gambar dan video. ini pengertian dari pada hosting, Dan pertanyaannya bukan masalah hosting tapi Perbedaan Cloud Server, VPS dan Web Hosting. Nah jika Anda belum mengenal dari istilah ini semoga artikel ini akan membantu Anda untuk lebih tahu tentang VPS, Web Hosting dan Cloud Server. Berikut ini penjelasan singkat dari kami

Web Hosting

Perbedaan Cloud Server, VPS dan Web Hosting
Web Hosting adalah layanan internet yang menyewakan space aplikasi untuk digunakan sebagai salah satu sarana untuk membuat website. Anda akan diberikan kemudahan untuk membuat website menggunakan layanan web hosting. Biasanya anda diberikan fasilitas manajemen aplikasi seperti upload atau download file untuk web maupun database.
Platform yang disediakan oleh web hosting bervariasi mulai dari PHP dan database mySQL. Selain itu anda juga diberikan akun email dengan domain anda oleh penyedia layanan web hosting. Layanan web hosting terbilang paling murah bila dibandingkan dengan layanan hosting lainnya.

VPS Hosting

Perbedaan Cloud Server, VPS dan Web Hosting
VPS atau Virtual Private Server adalah alternatif dari layanan web hosting bila mana shared hosting sudah tidak bisa lagi untuk menampung kegiatan website Anda misalnya besar trafik kunjungan atau besarnya kapasitas file web Anda. Layanan VPS Hosting juga tersedia di pusat hosting.
Perbedaan VPS dengan web hosting adalah anda dapat mengelola server vps secara mandiri sehingga anda bisa menginstall applikasi sesuai dengan kebutuhan anda untuk dapat mengoptimalkan web bisnis online anda.
Untuk melihat bagaimana layanan VPS dari pusat hosting Anda bisa berkunjung ke halaman VPS MURAH. Semua kebutuhan tentang VPS Hosting sudah tercantum dengan jelas. Layanan VPS tidak hanya untuk web saja namun bisa juga digunakan untuk hosting Email bila mana Anda membutuhkan lebih banyak pengiriman email secara masal terutama bagi perusahaan yang setiap harinya mengirim email hingga ribuan. Layanan VPS email bisa Anda temukan di halaman VPS Email Server.

Cloud Server

Perbedaan Cloud Server, VPS dan Web Hosting
Untuk yang terakhir adalah Cloud Server. Melihat namanya saja tentu sudah tidak sama dengan web hosting atau VPS. Cloud Server merupakan layanan web hosting terbaru dan belum banyak yang menggunakan layanan ini karena dilihat dari biayanya Cloud Server memang sedikit mahal dari pada kedua layanan hosting diatas.
Teknologi cloud server memungkinkan beberapa server dijadikan  satu yang berfungsi sebagai storage (disk virtual), beberapa server lain (Host) dijadikan satu yang berfungsi sebagai computing node (CPU virtual). Pada platform cloud tersebut bisa berjalan beberapa server virtual.
Teknologi cloud juga memungkinkan sekumpulan server virtual membentuk suatu network VLAN seperti layaknya server-server fisik yang terhubung dengan LAN. Dimana tiap pelanggan memiliki secure VLAN masing-masing yang tidak bisa saling memasuki. ini salah satu kehebatan dari Cloud Server. Untuk itulah kenapa terbilang Cloud server ini sedikit mahal.
Selain itu Cloud Server juga memberikan anda kemudahan menaikan atau menurunkan resource server seperti jumlah Core CPU, maupun jumlah RAM sesuai kebutuhan web Anda atau biasa disebut On Demand.
Anda juga harus berhati-hati jika ada layanan yang mengaku Cloud Server terutama di Indonesia karena banyak sekali hosting indonesia memberikan layanan Cloud Server namun tidak bisa memberikan fasilitas On Demand karena teknologi ini yang membedakan dengan VPS hosting.
Pada layanan Cloud Anda masih bisa berlanganan 1 server, dengan harga yang sedikit mahal namun kualitas dari cloud ini tentu saja lebih baik karena infrastrukturnya sudah jelas dan terdiri dari beberapa server yang saling membackup satu sama lain.
Itulah Perbedaan Cloud Server, VPS dan Web Hosting. Anda bisa mempertimbangkan untuk memilih hosting. Semua fasilitas diatas untuk sekarang ini memang banyak diperbincangkan. Namun begitu memilih dan mempertimbangkan tentang layanan web hosting sangat diperlukan sekali untuk saat ini, Jangan pernah untuk tergiur dengan harga, Karena harga tidak akan lebih bagus dari kualitas.

sumber : http://blog.pusathosting.com/2015/09/24/perbedaan-cloud-server-vps-dan-web-hosting/
Read more ►
 

Copyright © INFORMASI TEKNOLOGI by AROHMAD