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.

External Services dengan Docker Compose

Di jaman sekarang, aplikasi yang saya buat umumnya sudah mengadopsi arsitektur Cloud Native, yaitu aplikasi yang bisa berjalan dengan baik di environment cloud. Penjelasan detail tentang aplikasi Cloud Native ini sudah pernah saya jelaskan di Youtube.

Singkatnya, aplikasi cloud native biasanya menggunakan beberapa external services, misalnya:

  • Database relasional (MySQL, PostgreSQL, dsb)
  • Message Broker (Kafka, dsb)
  • Database non-relasional / NoSQL (Redis, Elasticsearch, dsb)

External service ini harus bisa diganti dengan implementasi lain, misalnya dari local ke cloud, dari cloud ke on-premise, dan berbagai skenario lainnya.

Agar kita bisa develop aplikasi dengan external service tersebut, maka development environment kita (misalnya PC atau laptop) harus menyediakan service yang dibutuhkan. Kebutuhan ini berbeda-beda antar project. Misal di project A saya menggunakan MySQL. Project B menggunakan PostgreSQL. Project C menggunakan PostgreSQL dan Kafka. Project D menggunakan MySQL dan Redis. Project E menggunakan ElasticSearch dan MongoDB. Dan seterusnya.

Apabila kita harus menginstal semua service tersebut, dan jalan pada waktu booting, waduh berapa RAM yang harus kita sediakan. Belum lagi nanti kita harus membuatkan database instance untuk masing-masing aplikasi. Bisa-bisa kita instal MySQL yang isinya belasan database sesuai dengan project yang pernah kita tangani.

Ini juga menjadi lebih sulit buat para team leader atau arsitek yang harus melakukan supervisi ke banyak project sekaligus. Oleh karena itu, kita perlu membuat sistem kerja yang baik agar tidak kusut.

Solusi yang biasa saya gunakan, terdiri dari 3 aspek:

  1. Project harus portable
  2. Project harus self-contained
  3. External service yang dibutuhkan, harus dideklarasikan dengan konsep Infrastructure as a Code

Mari kita elaborasi …

Lanjut membaca ...


Instalasi Netbeans di MacOS

Sebetulnya di tahun 2021 ini, saya sudah lama tidak menggunakan Netbeans. Terakhir pakai di versi 8, dan sekarang sudah versi 11. Tapi ya apa boleh buat, ada client yang pengen pakai ini dan tanya bagaimana caranya. Dengan semangat maju tak gentar membela yang bayar, baiklah mari kita install.

Biasanya, instalasi Netbeans tinggal next-next saja sampai finish. Tapi karena Java di laptop saya diinstal menggunakan SDKMAN, maka installernya Netbeans macet dengan pesan error berikut ini

Lanjut membaca ...


Internet Ngebut dengan WAN Bonding

Sebagai orang IT, kita selalu dipanggil apabila ada hal-hal yang berkaitan dengan komputer. Baik itu printer, proyektor, apalagi internet. Ditambah lagi di jaman ini, meeting online sudah menjadi kebutuhan dasar di semua institusi. Apabila terjadi gangguan internet, maka kita orang IT adalah yang paling pertama dipanggil.

Sejak sebelum jaman Zoom/GMeet/dsb, saya sebetulnya sudah sering juga menangani live streaming event. Salah satu artikel di blog ini membahas tentang cara melakukan live streaming berbarengan ke banyak platform sekaligus. Ada videonya juga, yang bisa ditonton di sini

Salah satu masalah yang kita alami pada waktu melakukan live streaming, apalagi di lokasi event, adalah ketersediaan internet. Kita belum tentu dapat akses internet gedung yang biasanya menggunakan fiber optik dan kabel, stabil dan kencang. Biasanya kita mengandalkan koneksi modem wifi (mifi) yang menggunakan koneksi seluler. Beberapa rekan bahkan membeli wajan mikrotik untuk memperkuat sinyal.

Walaupun demikian, kita tetap mengalami kepanikan apabila provider seluler yang kita gunakan ternyata sedang gangguan. Mau pakai wajan selebar apapun, kalau providernya sedang bermasalah, ya tentu tidak akan menolong.

Selain itu, kondisi sinyal di lokasi kita tidak bisa pastikan. Ada lokasi yang Telkomsel berjaya, XL tiarap. Tapi di lokasi lain, justru XL ngebut, Indosat ngesot. Jadi kita harus gonta-ganti simcard sesuai yang sinyal yang bagus.

Jadi, akhirnya saya mencari cara untuk menggabungkan beberapa provider seluler sehingga tidak terlalu manual gonta-ganti modem dan simcard.

Setelah menjelajah dunia maya bertahun-tahun – sebetulnya saya mulai kepikiran masalah ini sejak awal live streaming di tahun 2019 dulu – akhirnya saya menemukan solusi yang sesuai dengan keinginan saya.

Lanjut membaca ...


Upgrade Major Version Gitlab

Buat yang ingin menginstal repository Git di server sendiri, Gitlab adalah aplikasi yang populer dan banyak digunakan karena open source, gratis, dan lengkap fiturnya. Gitlab juga sampai sekarang sangat aktif dikembangkan oleh para maintainernya, sehingga fitur-fitur baru terus bermunculan.

Hal ini tentu menggembirakan bagi para penggunanya, tapi juga relatif merepotkan bagi yang bertugas mengurus servernya. Ya apa lagi kalau bukan urusan upgrade versi. Begitu kita lupa upgrade beberapa bulan saja, maka kita akan ketinggalan rilis major version, sehingga urusan upgrade tidak lagi sesederhana apt update && apt upgrade -y.

Nah pada artikel ini saya akan mencatat langkah-langkah yang perlu dilakukan untuk mengupgrade Gitlab agar bisa kembali menyusul versi terbaru.

Lanjut membaca ...


Persiapan Coding Flutter

Flutter adalah framework pengembangan aplikasi untuk membuat aplikasi Android dan iOS sekaligus. Jadi dengan coding satu kali saja, kita bisa menghasilkan dua versi aplikasi, Android dan iOS. Sebetulnya framework multiplatform seperti ini bukanlah hal yang baru. Di jaman dahulu, kita mengenal PhoneGap (yang sekarang disebut Apache Cordova) dan Sencha Touch. Kemudian yang agak modern ada Ionic dan ReactNative.

Yang membuat Flutter relatif cepat naik daun adalah karena disponsori Google. Iming-iming Google sebagai sponsor utama Android membuat banyak developer yakin dengan adopsi Flutter, minimal di platform Android. Walaupun demikian, Google memiliki track record yang kurang meyakinkan dalam hal framework. Kita sudah melihat apa yang terjadi dengan AngularJS. Setelah banyak yang mengadopsi, kemudian ditulis ulang. Sehingga semua aplikasi yang sudah dibuat dengan AngularJS, harus dibuat ulang dari nol dengan Angular.

Walaupun demikian, sepertinya Flutter ini cukup populer dan masif adopsinya. Sehingga perlu kita explore lebih jauh. Untuk itu, pada artikel ini kita akan membahas tentang persiapan coding Flutter.

Lanjut membaca ...