Hosting Terbaik untuk Aplikasi & Environment Golang di Dewacloud

Hosting Terbaik untuk Aplikasi & Environment Golang di Dewacloud

Dewacloud PaaS merupakan platform dengan berbagai bahasa. Sampai saat ini kurang lebih terdapat bahasa Java, PHP, Ruby, .NET, Node.js, Python, dan Golang. 

Nah, setelah kemarin kita membahas beberapa bahasa pemrograman lain, kali ini kita akan berkenalan lebih jauh tentang bahasa Golang pada Dewacloud PaaS. Apa saja yang bisa kamu lakukan dengan bahasa Go ini? Simak penjelasannya berikut.

Baca juga artikel lain terkait Dewacloud PaaS untuk berbagai bahasa pemrograman:

Go Environment Hosting

Untuk meng-host aplikasi Go milik kamu di Dewacloud, kamu perlu membuat environment baru terlebih dulu menggunakan topology wizard. Seperti biasa, klik tanda +New Environmentdi pojok kiri atas dashboard Dewacloud.

Lalu nanti muncul tampilan seperti berikut, pilih pada tab Go. Tambahkan Golang sebagai server aplikasi kamu dan software stack yang diperlukan untuk project aplikasi tersebut, seperti load balancers, database, atau shared storage.

Selain itu, kamu juga bisa mengatur jumlah nodes environment, limit cloudlet untuk RAM dan CPU, menghubungkan public IP, dan sebagainya. Jika sudah yakin, klik Create untuk membuat environment baru.

buat environment golang

Catatan : Semua instance yang ada pada Dewacloud adalah isolated container yang nantinya akan dibagikan secara merata ke seluruh hardware nodes yang tersedia (e.g. server fisik atau VM) menggunakan anti-affinity. Hal ini akan menghilangkan risiko downtime pada aplikasi kamu. 

Versi Golang di Dewacloud

Ada beberapa versi Golang yang didukung oleh Dewacloud, diantaranya adalah:

  • 1.17.2
  • 1.17.1
  • 1.17
  • 1.16.9
  • 1.16.8
  • 1.16.7
  • 1.15.15
  • 1.15.14
  • 1.15.13
  • 1.14.15
  • 1.14.13
  • 1.14.12

Kamu juga bisa melihat versinya ketika membuat environment baru seperti gambar berikut.

versi golang Dewacloud

Apabila sebelumnya kamu sudah memilih versi ketika pembuatan environment, maka kamu masih bisa menggantinya ketika melakukan container redeploy. Dengan begitu, semua data terkait node akan disimpan, misalnya seperti memungkinkan untuk upgrade software ketika rilis new stack template.

Go Application Deployment

Setelah environment baru sudah terbuat, kamu bisa mulai melakukan deploy project aplikasi Golang dari repositori Git kamu. 

Hal ini memungkinkan kamu untuk menyesuaikan proses deployment dengan menyediakan container variables berikut ini.

  • GO_RUN: untuk menetapkan nama file biner. Apabila kamu tidak membuat variables tersebut, maka deployment script akan mencarinya berdasarkan nama project Git nya.
  • GOPATH: untuk mendefinisikan folder deployment seperti  /home/dewacloud/webapp.
  • GO_BUILD_OPTIONS: menyediakan opsi tambahan untuk build operation (secara default biasanya untuk melakukan rebuilding packages yang sudah lama atau mutakhir)
  • GO_RUN_OPTIONS: menyediakan opsi untuk menjalankan operasi.
  •  
    deploy aplikasi golang

Ketika melakukan deployment pada Dewacloud PaaS, maka secara otomatis akan terjadi langkah seperti berikut.

  • Mem-parsing URL Git yang sudah dimasukan untuk mendapatkan link ke project Go tersebut.
  • Mengunduh package dengan semua dependensinya menggunakan go get command. Apabila terjadi error, maka lakukan pengunduhan seperti untuk project Git dan coba lagi untuk mendapatkan Go dependencies.
  • Builds project menggunakan command go build (menggunakan opsi tambahan seperti pada variabel GO_BUILD_OPTIONS).
  • Menjalankan biner yang sudah ditentukan oleh variable GO_RUN dengan perintah go run (menggunakan opsi tambahan yang ditentukan pada variable GO_RUN_OPTIONS).

Setelah deployment berhasil dilakukan, project Go tersebut terletak pada direktori yang sudah di set pada variable GOPATH. 

Domains Management 

Dengan Dewacloud PaaS, kamu dapat dengan mudah melakukan bind custom domain ke aplikasi Go tersebut. Yang nantinya digunakan sebagai pengganti default  environment domain. Ada dua opsi yang bisa dipilih.

  • CNAME Redirect – apabila kamu menggunakan Shared Load Balancer, ini direkomendasikan untuk environment developer dan test.
  • DNS A Record – apabila kamu menggunakan IP Publik, hal ini dapat menghandle trafik yang tinggi dan cocok untuk environment production.

domains management

Selain itu, kamu juga bisa melakukan swap domains yang bertujuan untuk mengalihkan satu environment ke environment lainnya. Misalnya untuk beralih ke versi aplikasi yang lebih baru.

Catatan: apabila kamu menggunakan IP Publik, trafik dapat dialihkan ke environment lain dengan bantuan metode API SwapExtIps.

Automatic Vertical Scaling

Automatic Vertical Scaling secara dinamis dapat diatur untuk menyediakan resource seperti RAM dan CPU untuk server dalam batas yang sudah ditentukan, sesuai dengan demands-nya saat ini tanpa perlu melakukan intervensi manual.

Dengan fitur ini, kamu tidak akan lagi membayar biaya lebih untuk resource yang tidak digunakan. Selain itu akan lebih menghemat waktu karena tidak ada lagi kebutuhan untuk penyesuaian terkait beban (load) atau perubahan arsitektur.

automatic vertical scaling

Proses scaling dilakukan oleh platform secara otomatis, kamu hanya perlu menentukan limit cloudlet minimum dan maksimum (masing-masing 128 MiB RAM dan 400 MHz CPU) untuk server Go kamu.

Oleh karena itu, aplikasi kamu mengurangi konsumsi resource ketika ketika beban turun, dan meningkatkannya ketika beban atau load-nya naik.  Dengan demikian, kamu hanya perlu membayar untuk resource yang dikonsumsi saja. 

Manual Horizontal Scaling

Kamu dapat dengan mudah menambahkan Golang server tambahan topology wizard ketika membuat environment baru atau mengelola environment yang telah ada. Kamu hanya perlu mengklik tombol + seperti gambar di bawah, dan tentukan jumlah resource yang diperlukan.

manual horizontal scaling

Di Dewacloud, kamu dapat menggunakan Tapi biasanya batasnya yaitu 16 node, dan dapat diperbesar lagi dengan meminta request khusus pada team support.

Selain itu, kamu juga bisa melihat pada Golang Server Scaling, bahwa node load balancing-nya secara otomatis ditambahkan pada environment topology.

Automatic Horizontal Scaling

Automatic horizontal scaling dapat diimplementasikan menggunakan trigger yang dapat di-setting, nantinya memungkinkan untuk menambah atau mengurangi jumlah node karena load aplikasi.

Untuk mengatur automatic scaling, kamu bisa pilih environment-nya terlebih dulu. Selanjutnya klik Settings > Auto Horizontal Scaling lalu pilih tombol Add.

Di sini kamu bisa melakukan konfigurasi triggers untuk stacks dan resource seperti CPU, RAM, Network, disk sesuai dengan kondisi scaling.

automatic horizontal scaling

Kesimpulan

Itu merupakan beberapa hal yang bisa dilakukan terkait bahasa Golang. Tapi tidak hanya itu, masih banyak fitur lagi seperti Custom SSL, Public IPv4 atau IPv6  dan yang lainnya.

Untuk merasakan semua fitur tersebut dan bisa bermanfaat bagi project aplikasi Golang kamu, maka segera bergabung bersama Dewacloud PaaS.