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.

Instalasi Gitlab Runner Autoscale

Setelah kita berhasil memasang Gitlab CE di Google Cloud Platform, sekarang kita akan lanjutkan untuk memasang Gitlab Runner. Ada satu fitur menarik dari Gitlab Runner ini, yaitu autoscale. Fitur ini memungkinkan kita untuk menghemat biaya sewa VPS di penyedia layanan cloud seperti Digital Ocean, Amazon, Google, dan lainnya. Caranya adalah dengan membuat VPS untuk menjalankan build sesuai kebutuhan. Bila sedang ramai antrian, Gitlab akan membuat banyak VPS. Bila antrian sepi, VPS tersebut akan dihapus sehingga tidak menimbulkan biaya.

Berikut langkah-langkah untuk memasang Gitlab Runner dengan fitur autoscale:

Lanjut membaca ...


Instalasi Gitlab CE di Google Cloud Engine

Jaman sekarang, version control system (VCS) sudah merupakan keharusan dalam proses pembuatan aplikasi. Tanpa VCS, kita tidak bisa bekerja dalam tim dengan baik. Bahkan kerja sendiri saja sulit untuk menerapkan release management yang baik tanpa VCS. Lagipula jaman sekarang VCS gratis. Kita tinggal daftar di Gitlab dan bikin project sebanyak-banyaknya dan mengundang kolaborator se-Indonesia Raya tanpa dikenakan biaya sepeser pun.

Walaupun demikian, buat banyak perusahaan tetap merasa lebih nyaman kalau source codenya tidak dikelola pihak lain. Tidak masalah, karena Gitlab juga menyediakan aplikasinya untuk kita install di server sendiri, atau istilah kerennya on premise. Mari kita coba setup Gitlab Community Edition di Google Cloud Platform. Bahkan Gitlab sudah menyediakan fitur Continuous Integration yang sangat komprehensif.

Dalam rangkaian artikel ini, kita akan memasang Gitlab lengkap dengan Gitlab CI, Runner, lengkap dengan build cache dan docker registry sendiri seperti pada diagram berikut

Diagram Instalasi Gitlab Sekeluarga

Lanjut membaca ...


Membuat Aplikasi yang Cluster Ready

Beberapa tahun yang lalu, kita sudah membahas tentang konsep clustering aplikasi. Ada beberapa konsep dan istilah penting di sana seperti:

  • Dua jenis aplikasi failover
  • Session Affinity atau Sticky/Non-Sticky Session

Kita tidak akan bahas lagi tentang istilah tersebut, silahkan baca artikel terdahulu untuk memahaminya. Pada artikel kali ini, kita akan membahas tentang implementasi konsep tersebut dalam aplikasi kita, sehingga diharapkan pembaca sudah paham artinya.

Memasang aplikasi yang sama di beberapa mesin (baik fisik ataupun virtual) disebut dengan istilah clustering atau replication. Kita akan menggunakan istilah replikasi pada artikel ini.

Contoh kode program dibuat menggunakan Java. Akan tetapi, prinsip-prinsipnya bisa juga diterapkan pada aplikasi yang menggunakan bahasa pemrograman lain.

Lanjut membaca ...


Otomasi Deployment Kubernetes dengan Gitlab CI

Jaman sekarang, solusi Continuous Integration dan Delivery sudah banyak sekali pilihannya. Yang sudah kita bahas diantaranya:

Dan yang belum kita coba diantaranya:

  • CircleCI
  • Bamboo
  • dan mungkin masih banyak lagi yang saya belum dengar

Pada artikel kali ini, kita akan coba GitlabCI.

Lanjut membaca ...


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 ...