Mencoba Container Service Back4App

Serta Integrasi dengan MySQL

Bervianto Leo Pratama
4 min readDec 9, 2023

Pendahulan — Apa itu Back4App?

Back4App merupakan suatu layanan yang mempercepat dalam pengembangan BackEnd. Back4App menyediakan dua layanan saat ini yaitu Backend as a Service dan Container as a Service.

Layanan Back4App

Kita tidak akan membahas bagian Backend as a Service. Layanan tersebut cukup simpel dan kita hanya perlu mengelola sedikit dan sangat cocok jika memiliki aplikasi yang tidak kompleks. Namun, jika kamu memiliki proses bisnis yang tidak hanya CRUD (Create, Read, Update, dan Delete), kamu bisa mencoba bagian cloud functions-nya.

Container as a Service

Layanan ini cukup baru dari Back4App. Saya sempat mencobanya sebelum mereka merilis beta public-nya. Layanan ini juga cukup simpel seperti saingannya yang sekarang tidak lagi gratis yaitu Heroku. Kamu hanya cukup mempersiapkan Dockerfile. Lalu, Back4App akan mempersiapkan container-nya berdasarakan Dockerfile tersebut. Saya sarankan untuk baca dokumentasinya untuk belajar lebih detail mengenai layanan ini. Sayangnya, saat ini masih terbatas integrasinya. Hanya bisa dari GitHub.

Pengetahuan yang Dibutuhkan

Kamu perlu paham hal-hal ini dahulu:

  1. Docker
  2. GitHub
  3. Linux
  4. Bash
  5. curl

Contoh Proyek

Saya punya contoh proyek yang akan saya deploy ke Back4App. Proyek ini dibangun dengan Express dan memiliki koneksi ke basis data MySQL. Supaya lebih simpel, saya menggunakan Sequelize untuk koneksi ke basis datanya. Kamu bisa eksplorasi proyeknya di sini.

Persiapkan Dulu MySQL-nya

Kalau kamu hanya butuh untuk testing, kamu bisa coba beberapa layanan free MySQL server. Kalau saya coba pakai ini.

Namun, saya tidak sarankan untuk menggunakan server tersebut untuk data sensitif maupun sifatnya sebagai production.

Alternatif lainnya:

Namun, jika memungkinkan, saya tetap menyarankan untuk menggunakan layanan berbayar dan terpercaya, terutama untuk production.

Catatan:

Saya tidak melakukan endorsement kepada layanan tersebut. Mohon perhatikan lagi syarat dan ketentuan layanan tersebut. Jika terjadi apa-apa mengenai data yang tersimpan, saya tidak bertanggung jawab. Gunakan layanan tersebut dengan bijak.

Konfigurasi dan Membuat Container di Back4App

  • Pastikan kamu sudah mendaftar di Back4App.
  • Lalu navigasi ke My Apps.
My Apps
  • Klik Build new app.
Build new app
  • Pilih Container as a Service.
Container as a Service
  • Pastikan kamu mengikuti instruksi untuk integrasi dengan GitHub.
  • Setelah berhasil di-integrasi-kan, kamu bisa mencari repositorinya dan klik Select.
Select App
  • Masukan nama service/aplikasi-nya.
App Name
  • Pada bagian port, kamu bisa sesuaikan.
Setting Port
  • Pastikan konfigurasi Environment Variables untuk CONNECTION_STRING sudah benar. Formatnya adalah mysql://<username>:<password>@<hostname atau ip>:<port>/<database name>. Contoh: mysql://devtest:devtestpassword@mysqllocation.com:3306/noteapp.
Environment Variables
  • Bagian Health Check sebisa mungkin URL yang dapat segera diakses setelah aplikasi berjalan. Kebetulan, proyek yang saya siapkan punya path / dan hanya mengeluarkan respon dengan status 200 dan Hello world.
Create App dan Health Check
  • Setelah selesai, kamu bisa klik Create App. Kamu bisa menunggu hingga container selesai ter-deploy.
  • Jika berhasil, kamu dapat melihat log ini.
Log
  • Kamu bisa mengakses aplikasinya dengan klik atau ketik URL yang ada di sini.
URL
  • Ini contoh aplikasi yang sudah berjalan.
Sudah berjalan
  • Kamu bisa coba untuk buat Note menggunakan curl.
curl -X POST -H "Content-Type: application/json" -v --data '{"content": "my content", "title": "my title"}' -v <back4app url>/notes
curl create
  • Mari kita cek hasilnya.
Hasil list

Simpulan

Mudah kan? Kamu cukup konfigurasi:

  • Port
  • Environment Variables

Sisanya kita hanya menggunakan pengaturan default. Namun, jika kamu punya kasus lain, kamu masih bisa konfigurasi beberapa hal seperti:

  • Branch
  • Path Dockerfile
  • Path Health Check
  • Domain
  • Mematikan Automatic Deployment

Sayangnya Back4App hanya menyediakan integrasi dengan GitHub. Akan lebih baik lagi jika bisa terintegrasi dengan git secara umum.

Terima Kasih

Terima kasih sudah membaca. Semoga harimu menyenangkan!

Photo by Pete Pedroza on Unsplash

--

--

Bervianto Leo Pratama

Software Engineer | AWS Community Builder | HashiCorp Ambassador | Focus on Microservices and Cloud Computing