Concept and Terminology
PaaS: Basic Concept and Terminology #
Dokumen ini merupakan gambaran umum konsep dasar platform, solusi serbaguna untuk hosting di dalam Public, Private, Hybrid, atau Multi-Cloud. Referensi di bawah ini ditargetkan bagi mereka yang baru mengenal PaaS dan membantu untuk memahami landscape platform secara keseluruhan.
Di sini, kami menawarkan garis besar yang konsisten dari komponen platform yang mendasarinya dengan petunjuk ke dokumentasi yang sesuai, yaitu:
- Cloudlet
- Container
- Layer
- Environment
- Application
- Host
- Environment Region
- Platform Installation
- Cloud Union
Setelah mengetahui tentang komponen dasar dan bagaimana mereka saling terkait, Kamu bisa melanjutkan dengan skenario yang lebih kompleks yang tersedia di dalam platform.
Cloudlet #
Cloudlet adalah platform infrastruktur komponen terkecil. Cloudlet sendiri merupakan sumbe daya khusus yang setara dengan 128 MiB RAM dan 400 MHz CPU. Tingkat detail sumber daya yang tinggi memungkinkan sistem untuk mengalokasikan kapasitas yang benar benad dibutuhkan untuk setiap instance dalam suatu lingkungan. Dengan cara ini, sistem hanya menagih biaya berdasarkan pemakaian. Jadi pengguna hanya perlu membayar untuk sumber daya (resource) yang benar benar digunakan.
Terdapat 2 tipe cloudlet :
- Reserved Cloudlets adalah sejumlah resource yang dipesan terlebih dahulu dan akan dikenakan biaya tetap, terlepas dari seberapa banyak resource yang digunakan. Reserved Cloudlets lebih murah dibandingkan yang dinamis dan disarankan untuk digunakan jika beban aplikasi yang stabil dan jalan terus menerus.
- Dynamic Cloudlets adalah resourceΒ yang bisa bertambah atau berkurang sesuai dengan kebutuhan aplikasi. Apabila beban yang diberikan naik maka otomatis bertambah dan kalau beban yang diberikan berkurang maka otomatis akan menurun. Dynamic Cloudlets ini cocok untuk aplikasi dengan beban kerjanya tidak stabil atau susah untuk ditentukan.
π NOTE
Saat menghitung penggunaan cloudlet, sistem hanya mengambil angka yang lebih besar antara penggunaan RAM atau CPU per jam (bukan dijumlahkan). Misalnya, kalau selama satu jam rata-rata penggunaan CPU kamu 2400 MHz (setara 6 cloudlets), dan penggunaan RAM tertinggi 1024 MiB (setara 8 cloudlets), maka yang dihitung hanya 8 cloudlets β bukan total gabungannya (14 cloudlets).
Baik Reserved maupun Dynamic punya fitur otomatis diskon berdasarkan jumlah pemakaian β semakin banyak yang dipakai, semakin murah harga dasarnya.
Container #
Container atau node adalah instance virtual yang terisolasi, biasanya digunakan untuk menjalankan software seperti aplikasi server, database, load balancer, dan lainnya. Container ini ditempatkan di host tertentu. Setiap container bisa diskalakan otomatis, baik secara vertikal (menambahkan resource di container yang sama) maupun horizontal (menambahkan jumlah container), jadi hosting aplikasi jadi lebih fleksibel dan lebih mudah untuk menyesuaikan kebutuhan
Platform ini menyediakan container resmi untuk berbagai bahasa pemrograman seperti Java, PHP, Ruby, NodeJS, Python, Go, .NET, dan juga mendukung deploy Docker Container buatan sendiri. Setiap container punya IP pribadi dan DNS nya sendiri. Kalau butuh akses dari luar, Kamu bisa dengan mudah pasang IP Public lewat dashboard UI atau pakai API.
Layer #
Layer, atau yang juga disebut Node Group, adalah sekumpulan container sejenis dalam satu environment. Di platform ini, sudah disediakan beberapa layer bawaan lewat topology wizard untuk container yang sudah tersertifikasi, seperti:
- Load Balancer (LB) β buat membagikan trafic ke beberapa server
- Compute (CP) β tempat aplikasi utama berjalan
- Database (DB) β untuk menyimpan data aplikasi
- Data Storage (DS) β khusus untuk penyimpanan data
- Cache β buat menyimpan data sementara biar aksesnya lebih cepat
- VPS β Virtual Private Server dengan akses root
- Build Node β buat proses build atau kompilasi aplikasi
- Extra β layer tambahan/custom, cocok banget buat Docker environment karena bisa nambahin beberapa sesuai kebutuhan
Layer dibuat supaya kamu bisa melakukan berbagai aksi sekaligus ke semua container sejenis dalam satu group. Misalnya, kamu bisa restart, redeploy, atau scale semua node dalam layer secara bersamaan. Scalling bisa dilakukan:
- Secara Manual lewat dashboard, API Platform, atau CLI
- Secara Otomatis berdasarkan beban (load trigger)
Selain itu, kamu juga bisa:
- Lihat log dan statistik yang sama untuk semua container dalam layer
- Lakukan konfigurasi lewat file manager secara serentak
Yang menarik, container dalam satu layer juga disebar ke beberapa host yang berbeda pakai aturan anti-affinity. Jadi, kalau ada satu host yang bermasalah, container lain tetap jalan di host lain β bikin aplikasi kamu lebih reliable dan high-availability.
Environment #
Environment adalah kumpulan container terisolasi yang digunakan untuk menjalankan layanan aplikasi tertentu. Platform ini juga menyediakan berbagai tools bawaan yang memudahkan kamu dalam mengelola environment, seperti konfigurasi, monitoring, hingga troubleshooting.
Setiap environment secara default punya domain internal tingkat 3 (subdomain) sendiri. Tapi kamu juga bisa dengan mudah menghubungkan domain custom dari luar lewat CNAME Β atau A record. Bahkan, domain itu bisa ditukar ke environment lain kalau kamu mau alihkan trafik β praktis banget buat rolling update atau testing.
Application #
Aplikasi adalah gabungan dari beberapa environment yang digunakan untuk menjalankan satu proyek. Tapi kalau proyeknya sederhana, misalnya cuma pakai satu atau dua stack (seperti backend dan database), cukup dijalankan dalam satu environment aja.
π‘ TIP
Aplikasi dengan topologi yang lebih kompleks biasanya membutuhkan lebih banyak fleksibilitas selama proses deploy atau update, sehingga lebih baik untuk mendistribusikan berbagai jenis server di beberapa lingkungan, untuk dapat di-maintenance secara mandiri.
Source code aplikasi atau file hasil build bisa dideploy lewat beberapa cara, yaitu:
- Repository GIT/SVN β enaknya, bisa auto-update tiap ada perubahan di repo
- File lokal (kayak .zip, .war, .ear, dll.) β bisa upload langsung lewat dashboard atau pakai FTP
- Template Docker custom β cocok kalau kamu punya image sendiri.
Selain itu, ada juga banyak aplikasi yang udah siap pakai di Marketplace platform. Tinggal klik beberapa kali, langsung bisa jalan.
Host #
Host adalah server fisik atau virtual machine berukuran besar yang divirtualisasi menggunakan teknologi seperti KVM, ESXi, Hyper-V, dan sejenisnya. Host ini jadi tempat jalannya berbagai container atau environment di platform.
Host dibagi-bagi menjadi container-container kecil yang terisolasi, lalu digunakan untuk membentuk environment. Pembagian seperti ini memungkinkan multitenancy tingkat tinggi (banyak pengguna di satu sistem dengan tetap aman), serta pemanfaatan resource yang efisien. Container juga didistribusikan secara cerdas ke berbagai host sesuai beban, jadi performa tetap optimal meskipun dipakai banyak aplikasi sekaligus.
Environment Region #
Environment region adalah sekumpulan host yang dikelola bersama dalam satu jaringan terisolasi. Region ini jadi batasan tempat environment kamu dijalankan, lengkap dengan pengaturan jaringan dan keamanannya sendiri.
Setiap environment region punya kapasitas sendiri di data center tertentu, lengkap dengan kumpulan IP privat dan publik yang sudah disediakan, serta harga resource yang sesuai. Kalau kamu butuh pindah lokasi, proyek bisa dengan mudah dimigrasikan ke region lain yang tersedia β simpel dan fleksibel.
Platform Installation #
Platform adalah kumpulan dari beberapa environment region, di mana tiap region bisa berada di data center yang berbeda dan berfungsi sebagai cloud yang terisolasi. Semua region ini dikelola oleh satu cluster orchestrator, jadi tetap terasa seperti satu sistem utuh. Dengan konsep ini, kamu bisa lebih fleksibel dalam mengembangkan, mengetes, menjalankan, hingga maintenance aplikasi β karena bisa pilih hardware sesuai kebutuhan, mulai dari kapasitas, harga, sampai lokasi data center-nya.
Hasilnya, kamu bisa jalankan aplikasi dalam solusi multi-data center bahkan multi-cloud, tapi tetap dikelola dari satu panel yang sama. Selain itu, tiap Platform dioperasikan oleh penyedia hosting yang berbeda, lengkap dengan tim support lokal mereka masing-masing β jadi bantuan tetap cepat dan sesuai kebutuhan.
Cloud Union #
Platform ini punya model bisnis unik, yaitu mendistribusikan layanan cloud-nya secara global lewat kerja sama dengan berbagai penyedia hosting yang tergabung dalam Cloud Union. Kamu bisa pilih vendor platform yang sesuai, dan semuanya beroperasi sesuai regulasi dan hukum di negara masing-masing. Singkatnya, partner hosting kami ngomong pakai bahasa kamu dan ngerti kebutuhan lokal kamu dengan lebih baik.
Cloud Union saat ini sudah mencakup 100 data center di 38 negara β bahkan lebih banyak dari yang ditawarkan oleh cloud besar. Komunitas partner ini memberi kamu kebebasan memilih, tanpa terikat oleh satu vendor (no vendor lock-in), dan tanpa harus mengorbankan lokasi data center, kualitas support, performa, atau harga. Kamu bisa tentukan sendiri apa yang paling pas buat kebutuhan aplikasi kamu.
Powered by BetterDocs