Lewati ke konten utama

Ruby PaaS Hosting

Ruby cloud hosting

Ruby adalah bahasa pemrograman open source yang populer dengan sintaksis yang kuat dan praktis, namun alami dan mudah dibaca/tulis. Ruby menggabungkan praktik terbaik dari berbagai solusi untuk menyediakan bahasa berorientasi objek yang unik, yang bertujuan untuk kesederhanaan dan menyediakan fitur seperti fitur berorientasi objek dasar & khusus; operator overloading; penanganan pengecualian; iterators dan closures; garbage collection, dan banyak lagi.

Platform ini menyediakan integrasi langsung dari server web Ruby, menyediakan semua alat manajemen dan otomatisasi (mis. kerangka pengembangan web Ruby on Rails) untuk hosting yang nyaman dan pengembangan aplikasi Ruby yang sangat nyaman.

Dalam artikel ini, kita akan membahas fitur-fitur khas dari hosting Ruby dan memperkenalkan kemungkinan terkait Ruby di dalam platform. Gunakan daftar isi di bawah ini untuk menemukan informasi yang diperlukan dalam panduan ini dengan lebih cepat:

Ruby Environment Hosting

Platform ini menyediakan wizard topologi yang kuat dan intuitif untuk menyiapkan hosting dari environment baru.

Beralih ke tab bahasa Ruby, pilih server aplikasi dan versi engine yang dibutuhkan, tambahkan stack perangkat lunak lain yang diperlukan. Jika diperlukan, sesuaikan parameter lain seperti cloudlets (RAM dan CPU), ruang disk, public IPv4/IPv6, jumlah node, dll.

catatan

Both Apache Ruby and NGINX Ruby templates utilize a modern systemd initialization daemon.

Ruby topology wizard
catatan

All instances are completely isolated and fully independent containers. Additionally, scaled out nodes are automatically distributed across the physical servers (or VMs), ensuring high availability.

Ruby Application Servers

Platform ini menyediakan server aplikasi Ruby yang berbasis pada stack perangkat lunak Apache dan NGINX. Keduanya dikonfigurasi untuk menggunakan kerangka Ruby on Rails untuk mengimplementasikan aplikasi web dan server aplikasi Passenger secara default.

Jika diperlukan, stack NGINX Ruby dapat dengan mudah dikonfigurasi untuk bekerja dengan server inbuilt yang berbeda:

  • Passenger - salah satu server aplikasi paling kaya fitur untuk Ruby, yang sangat berharga untuk aplikasi web modern dan API layanan mikro.
  • Puma - server web Ruby yang berorientasi pada kecepatan dan paralelisme karena parsing protokol HTTP 1.1 yang cepat dan akurat.
  • Unicorn - server HTTP yang memanfaatkan fitur kernel Unix/Unix-like untuk melayani klien cepat pada koneksi berlatensi rendah dan bandwidth tinggi.

Ruby Versioning

Versi Ruby berikut didukung pada saat penulisan ini:

  • 3.0.6
  • 3.1.6
  • 3.2.5
  • 3.3.5

Daftar rilis terkini yang tersedia di platform disediakan melalui dokumen Software Stack Versions yang diperbarui secara berkala (mingguan).

Anda dapat memilih versi Ruby yang dibutuhkan melalui wizard topologi selama pembuatan environment baru, serta menyesuaikannya untuk instance yang ada melalui container redeployment.

Ruby Application Deployment

Platform ini mengotomatisasi proses deployment untuk server aplikasi Apache Ruby dan NGINX Ruby yang dikelola menggunakan:

  • aplikasi archive yang diunggah dari mesin lokal atau melalui URL eksternal.
  • repository VCS (mis. GitHub) jarak jauh.
ruby application deployment

Saat mendepoykan aplikasi Ruby, hanya satu konteks (ROOT) yang dapat digunakan. Namun, Anda dapat memilih dari tiga Deployment Types (mis. RAILS_ENV) untuk itu:

  • development - memuat ulang semua kelas aplikasi dan mematikan caching (memungkinkan siklus pengembangan lebih cepat).
  • production - menyalakan semua caching.
  • test - menghapus basis data antara pengujian.

Jika diperlukan, Anda dapat beralih antara jenis deployment Ruby melalui daftar drop-down yang sesuai di sebelah aplikasi Anda (lihat gambar di bawah).

Ruby deployment types

Baca dokumen terkait untuk mengetahui lebih lanjut tentang deployment aplikasi Ruby:

Ruby Dependency Management

Semua instance Ruby dalam platform disediakan dengan pengelola ketergantungan Bundler untuk pelacakan otomatis dan instalasi gems dan versi yang tepat yang dibutuhkan proyek Anda. Jika proyek memiliki file Gemfile di folder root, itu akan secara otomatis menyelesaikan ketergantungan dengan Bundler setelah deployment ke server tanpa memerlukan intervensi manual.

Juga, jika diperlukan, Anda dapat menyertakan kerangka Ruby apa pun ke dalam Gemfile Anda (Sinatra, Rack, therubyracer, Ramaze, dll.) atau memanfaatkan Ruby on Rails - salah satu kerangka kerja paling populer untuk mengembangkan dan mengimplementasikan aplikasi web, yang tersedia secara default.

Lihat dokumentasi Ruby Dependency Management untuk informasi tambahan.

Ruby Post Deploy Configuration

Untuk mengotomatiskan tindakan berulang yang perlu dilakukan proyek Ruby setelah aplikasi dideploy (mis. db:migrate), file rake_deploy (berlokasi di folder root proyek) dapat dibuat.

File ini harus berisi daftar perintah (setiap satu dari baris baru) yang akan dieksekusi secara berurutan melalui alat rake setelah setiap restart node Apache/NGINX. Setelah eksekusi berhasil, file rake_deploy secara otomatis dihapus. Lihat dokumentasi Ruby Post Deploy Configuration untuk informasi tambahan.

Domains Management

Anda dapat menyediakan custom domain untuk aplikasi Ruby Anda untuk digunakan sebagai pengganti yang default. Berdasarkan topologi environment, Anda harus menggunakan:

  • CNAME redirect jika menggunakan Shared Load Balancer; direkomendasikan untuk environment dev dan test.
  • DNS A Record jika menggunakan public IP; dapat menangani beban lalu lintas tinggi dan cocok untuk environment production.

Untuk mengalihkan lalu lintas dari satu environment ke environment lainnya (mis. untuk mengarahkan pelanggan ke versi aplikasi baru tanpa downtime), harus digunakan fitur swap domains. Ini juga tersedia sebagai metode SwapExtIps API/CLI.

Ruby domain management

Automatic Vertical Scaling

Salah satu fitur utama dari platform ini adalah penyediaan dinamis jumlah sumber daya (RAM dan CPU) yang tepat yang dibutuhkan oleh node Anda sesuai dengan beban saat ini tanpa intervensi manual. Cukup setel batas cloudlets yang diperlukan (128 MiB RAM dan 400 MHz CPU masing-masing) untuk server aplikasi Ruby Anda dan semua akan ditangani oleh platform secara otomatis.

Ruby automatic vertical scaling

Sebagai hasilnya, Anda secara otomatis mendapatkan keuntungan dari pendekatan pengisian Pay-per-Use yang benar-benar berorientasi pada pengguna dan tidak perlu menebak atau memprediksi beban yang masuk. Ini memastikan bahwa Anda tidak pernah membayar lebih untuk sumber daya yang tidak digunakan dan menghemat waktu Anda karena platform menghilangkan kebutuhan untuk menangani penyesuaian terkait beban atau melakukan perubahan arsitektur secara manual.

Ruby pay-per-use pricing

Rujuk ke dokumentasi automatic vertical scaling untuk informasi lebih lanjut.

Manual Horizontal Scaling

Horizontal scaling dengan platform ini semudah memilih jumlah node yang diperlukan melalui bagian yang sesuai dalam wizard topologi. Selain itu, Anda dapat memilih antara dua mode scaling:

  • Stateless - secara bersamaan membuat semua node baru dari templat gambar dasar.
  • Stateful - secara berurutan menyalin sistem file dari container master ke node baru.
Ruby horizontal scaling
catatan

Untuk distribusi permintaan yang tepat, sebuah instance load balancer secara otomatis ditambahkan ketika server Ruby di scaling.

Jumlah maksimum server tipe yang sama dalam satu lapisan environment tergantung pada pengaturan penyedia hosting tertentu (biasanya batas ini ditetapkan untuk 16 node dan dapat diperbesar dengan mengirimkan permintaan yang sesuai ke dukungan).

Automatic Horizontal Scaling

Anda dapat mengkonfigurasi automatic horizontal scaling untuk environment Ruby Anda melalui pemicu yang dapat disesuaikan, yang memantau perubahan dalam beban node dan meningkatkan/mengurangi jumlahnya sesuai.

Prosesnya sederhana, akses Settings > Monitoring > Auto Horizontal Scaling di environment, pilih lapisan yang diperlukan dan sumber daya yang akan dipantau (CPU, RAM, Network, Disk I/O, Disk IOPS). Atur kondisi dan spesifikasi scaling yang tepat melalui formulir antarmuka pengguna yang intuitif.

Ruby automatic horizontal scaling

Selain itu, hosting di PaaS memungkinkan penggunaan alat dan fitur bawaan lainnya, misalnya:

Jelajahi manfaat hosting Ruby dalam platform!

Baca Juga