Living life and Make it Better

life, learn, contribute

Endy Muhardin

Software Developer berdomisili di Jabodetabek, berkutat di lingkungan open source, terutama Java dan Linux.

Mendeploy Docker Container ke Google Container Engine

Pada artikel sebelumnya, kita telah membuat docker image, merangkainya dengan docker compose, kemudian menjalankannya di Docker Engine di Digital Ocean. Di artikel ini, kita akan coba naikkan level kekiniannya dengan mendeploy ke Google Container Engine yang biasa disingkat GKE. Ingat!! Pakai K ya. Bukan GCE, karena singkatan GCE sudah dipakai oleh Google Compute Engine.

Untuk mendeploy ke GKE, kita akan menggunakan Kubernetes, bukan Docker Compose.

Apa bedanya?

Singkatnya begini, dalam Docker Compose, kita berbicara di level instance. Aplikasi web kita satu instance, database server satu instance. Beda ya, instance dengan node. Node itu bisa disebut satu mesin. Dalam satu mesin bisa menampung banyak instance aplikasi kita.

Bila aplikasi web kita digandakan menjadi beberapa instance (mungkin untuk alasan failover, mungkin untuk meningkatkan kapasitas melayani request), maka itu disebut replikasi atau clustering. Untuk mengelola replikasi ini, terutama replikasi docker container, ada beberapa alternatif solusi yang tersedia, diantaranya:

  • Docker Swarm
  • Kubernetes
  • Apache Mesos
  • dan sebagainya, termasuk bikin sendiri.

Pada artikel ini, kita akan mendeploy aplikasi menggunakan Kubernetes.

Kenapa pilih Kubernetes?

Alasan utama sih sebenarnya karena saya pengen belajar Kubernetes, biar kekinian :D Selain itu, karena kita ingin deploy ke layanan cloud yang disediakan oleh Google. Ke Heroku kan sudah, ke Digital Ocean sudah, ke Pivotal sudah, nah jadi sekarang kita coba produknya Google.

Kok gak ke Amazon? Kan terkenal juga?

Ya simply karena jatah gratisan Amazon saya sudah habis. Jadi kita maksimalkan yang masih gratis dulu :D

Mari kita mulai …

Lanjut membaca ...


Workflow Pengembangan Aplikasi dengan Docker

Pada artikel terdahulu, kita sudah membahas apa itu docker, bagaimana cara instalasinya, dan cara membuat docker image sederhana. Kali ini, kita akan lanjutkan tentang cara pemakaian docker untuk mendistribusikan aplikasi yang sudah kita buat.

Di artikel ini, kita akan membahas tentang:

  • Use case / kegunaan docker dalam pengembangan aplikasi
  • Workflow distribusi aplikasi dengan Docker
  • Best practices arsitektur aplikasi yang menggunakan docker

Lanjut membaca ...


Mendeploy Aplikasi dari Jenkins ke VPS

Pada artikel sebelumnya, kita telah membahas tentang cara mendeploy dari Jenkins ke layanan PaaS, seperti Pivotal Web Services. Deployment ke PaaS relatif lebih mudah, karena platform (Java SDK, database MySQL) sudah tersedia, sehingga kita tinggal mengunggah dan menjalankan aplikasi saja.

Kali ini, kita akan coba deploy ke layanan IaaS yang lebih sedikit fiturnya. Kita hanya mendapatkan server yang baru terinstal sistem operasi saja. Sehingga kita harus mempersiapkan segala sesuatu yang dibutuhkan oleh aplikasi kita supaya berjalan dengan baik.

Sebagai ilustrasi, saya akan gunakan VPS di Digital Ocean yang relatif mudah digunakan dan terjangkau harganya. Penagihannya juga dihitung perjam, sehingga kalau para pembaca ingin mencoba, bisa langsung praktek dan segera destroy setelah selesai agar tagihan tidak besar. Kita bisa gunakan paket memori 1GB dengan harga $0.015/jam.

Lanjut membaca ...


Mendeploy Aplikasi dari Jenkins ke Pivotal Web Service

Setelah Jenkins berhasil melakukan proses build tiap kali ada push, selanjutnya kita ingin meneruskan proses deployment apabila proses build berjalan sukses.

Deployment kali ini akan kita lakukan ke layanan cloud milik Pivotal, yaitu Pivotal Web Service. Saya lebih suka deploy ke layanan PaaS dimana environment sudah tersedia siap pakai dibandingkan dengan IaaS dimana kita harus setup sendiri Java, Maven, MySQL, dan aplikasi pendukung lainnya. Dengan demikian, kita bisa berfokus pada penulisan source code, tidak perlu pusing memikirkan infrastruktur. Ini terutama sangat memudahkan bagi tim/perusahaan dengan resource terbatas (baca: tidak mampu menggaji sysadmin ;p)

Pada saat artikel ini ditulis, harga Pivotal paling murah dibanding layanan PaaS lain seperti Heroku. Oleh karena itu, kita akan melakukan deployment ke Pivotal.

Ada beberapa langkah dalam menyambungkan Jenkins ke Pivotal :

  1. Memasukkan credentials (username/password) Pivotal ke Jenkins.
  2. Menambahkan post-build action di Jenkins untuk mendeploy aplikasi apabila proses build berjalan sukses.
  3. Membuat file konfigurasi Pivotal Cloud Foundry, yaitu manifest.yml dalam project kita.
  4. Menambahkan konfigurator otomatis untuk koneksi database di Pivotal.
  5. Lakukan git push untuk menjalankan Jenkins dan deployment.

Lanjut membaca ...


Mengakses Repository Gitlab dari Jenkins

Pada artikel sebelumnya, kita telah menyiapkan server Jenkins untuk melakukan build pada project kita. Di artikel ini, kita akan mengkonfigurasikan project kita yang ada di Gitlab supaya bisa terhubung dengan Jenkins. Setelah selesai konfigurasi, kita akan bisa mendapatkan workflow seperti ini:

  1. Programmer mengedit source code di laptopnya. Kemudian mengetes di laptopnya apakah sudah berjalan dengan baik.
  2. Setelah oke, programmer commit dan push perubahan yang dia lakukan ke server Gitlab.
  3. Gitlab akan mengontak Jenkins, memberitahukan bahwa ada perubahan source code terbaru.
  4. Jenkins akan mengambil source code yang terbaru dari Gitlab.
  5. Jenkins menjalankan proses build.
  6. Jenkins memberitahukan hasilnya kembali ke server Gitlab.
  7. Gitlab memberitahukan hasilnya pada programmer.

Langkah-langkah setup:

  1. Buat SSH Keypair
  2. Setup SSH Key di Jenkins
  3. Buat project di Gitlab
  4. Daftarkan deploy key di Gitlab
  5. Generate API token di Gitlab
  6. Buat project di Jenkins
  7. Daftarkan trigger Jenkins di Gitlab

Lanjut membaca ...