03 Apr 2017
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 ...
18 Mar 2017
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 ...
25 Jan 2017
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 :
- Memasukkan credentials (username/password) Pivotal ke Jenkins.
- Menambahkan post-build action di Jenkins untuk mendeploy aplikasi apabila proses build berjalan sukses.
- Membuat file konfigurasi Pivotal Cloud Foundry, yaitu
manifest.yml
dalam project kita.
- Menambahkan konfigurator otomatis untuk koneksi database di Pivotal.
- Lakukan
git push
untuk menjalankan Jenkins dan deployment.
Lanjut membaca ...
23 Jan 2017
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:
- Programmer mengedit source code di laptopnya. Kemudian mengetes di laptopnya apakah sudah berjalan dengan baik.
- Setelah oke, programmer commit dan push perubahan yang dia lakukan ke server Gitlab.
- Gitlab akan mengontak Jenkins, memberitahukan bahwa ada perubahan source code terbaru.
- Jenkins akan mengambil source code yang terbaru dari Gitlab.
- Jenkins menjalankan proses build.
- Jenkins memberitahukan hasilnya kembali ke server Gitlab.
- Gitlab memberitahukan hasilnya pada programmer.
Langkah-langkah setup:
- Buat SSH Keypair
- Setup SSH Key di Jenkins
- Buat project di Gitlab
- Daftarkan deploy key di Gitlab
- Generate API token di Gitlab
- Buat project di Jenkins
- Daftarkan trigger Jenkins di Gitlab
Lanjut membaca ...
22 Jan 2017
Hampir setahun yang lalu, saya menulis serangkaian artikel yang terdiri dari 4 artikel mengenai cara setup project Java, konfigurasi continuous integration, deployment ke Heroku dan Openshift, dan continuous delivery supaya tiap kali programmer commit, aplikasi langsung terdeploy ke server testing. Akan tetapi, artikel tersebut hanya cocok buat project open source yang source codenya tersedia bebas di Github, sehingga kita bisa menggunakan layanan gratis seperti Travis dan Coveralls. Bila kita ingin menggunakannya untuk project yang tidak publik (misalnya project yang dibayar oleh client, ataupun produk yang tidak kita rilis source codenya), kita harus membayar cukup mahal untuk menggunakan layanan Github, Travis, dan Coveralls tersebut.
Untuk itu, sekarang saya akan menulis lagi panduan untuk membuat workflow yang serupa, tapi untuk project privat. Konfigurasinya adalah sebagai berikut:
Lanjut membaca ...