Membuat autoscaling instance pada openstack memanfaatkan layanan heat dan ceilometer

Heat autoscaling merupakan fitur tambahan pada openstack heat yang berfungsi untuk melakukan autoscaling pada sebuah mesin virtual. Komponen utama pada autoscaling adalah layanan orchestration. orchestration memungkinkan untuk mendefinisikan parameter atau aturan mengunakan template YAML yang mudah untuk dibaca. Pada aturan tersebut dapat diintegrasikan dengan layanan telemetri, sehingga ketika aturan tersebut sudah sesuai dengan aturan di layanan telemetri, maka telemetri dapat memberikan perintah ke heat orchestration untuk menambah atau mengurangi instance.

Sebelum mencoba membuat autoscaling ini, anda harus menginstall openstack bisa di coba disini.

tentunya anda akan menanyakan, kenapa kita butuh autoscaling? kapan kita memanfaatkan autoscaling? dan seterusnya…. ya pokoknya banyak pertanyaanlah :P,,,,,,

Sebelum kita membahas bagaimana konfigurasi autoscaling, kita juga harus mencari akar masalah kenapa  autoscaling itu dibutuhkan,,, ayoo kita kupas 😀

Analisis Masalah

  • Variable Demand

Pada analisis ini lebih kearah penggunaan aplikasi website yang digunakan dalam rentang waktu tertentu. Penggunaan aplikasi website tersebut digunakan selama seminggu dengan instensitas yang rendah pada awal dan akhir minggu, sedangkan pertengahan minggu banyak user yang mengakses sehingga penggunaan website meningkat secara signifikan.

Gambar1

  • Secara tradisional untuk mengatasi perubahan kapasitas pada gambar 1 terdapat dua cara yaitu menambahkan server sehingga aplikasi selalu memiliki kapasitas yang cukup untuk memenuhi permintaan seperti pada gambar 2. Namun kelemahan dari pilihan ini adalah terdapat hari dimana suatu aplikasi tidak membutuhkan kapasitas sebanyak itu. Penambahan kapasitas tidak dipakai secara maksimal dan pada dasarnya hanya meningkatkan biaya supaya aplikasi tetap berjalan.

Gambar2

  • pilihan kedua adalah memiliki kapasitas yang cukup untuk menangani permintaan rata-rata pada aplikasi. Pilihan ini lebih murah karena tidak perlu membeli server yang hanyak digunakan sesekali saja. Namun terdapat resiko terhadap user yang mengakses jika permintaan di server sedang melebihi kapasitasnya, maka proses permintaan user akan terganggu. seperti pada gambar 3

Gambar3

  • Dengan menambahkan autoscaling ke aplikasi ini, maka terdapat pilihan ketiga yang lebih efektif dan efisien. Karena instance akan terbentuk jika hanya diperlukan saja dan instance akan diberhentikan ketika sudah tidak dibutuhkan lagi. Sehingga dengan solusi yang ketiga ini memiliki arsitektur yang hemat biaya dan mempercepat layanan tanpa campur tangan admin. seperti pada gambar 4

Gambar4

Analisis Fungsional

secara fungsional autoscaling dapat diterapkan sebagai berikut:

  1. Autoscaling berguna ketika suatu aplikasi membutuhkan sumber daya tambahan untuk memenuhi jumlah permintaan dari pengguna aplikasi secara dinamis.

  2. Autoscaling dapat merancang arsitektur terukur yang secara otomatis meningkatkan atau memperkecil skala untuk memenuhi kebutuhan pengguna.

  3. Autoscaling tidak hanya berguna dalam penanganan lonjakan lalu lintas data ke server namun autoscaling juga berfungsi mempersiapkan infrastruktur untuk satu sampai sepuluh tahun kedepan.

Flowchart autoscaling

Work Flow autoscaling

Alur kerja pada autoscaling memiliki komponen utama yaitu scalingmain yang digunakan untuk memasukan sebuah kode ke beberapa mesin virtual di autoscaling group. Pada awalnya autoscaling group memiliki dua instance. secara detail penjelasan alur kerjanya seperti berikut :

  1. Tahap pertama adalah layanan heat menggunakan ssh untuk melakukan menyisipkan kode dari scalingmain ke mesin virtual.

  2. Setelaah itu layanan ceilometer menggunakan alarm untuk memonitoring utilitas cpu dari semua mesin virtual di scaling group

  3. Kemudian jika rata-rata utilitas cpu dari stack (scaling group) lebih besar atau sama dengan 80% maka layanan ceilometer akan mengaktifkan alarm cpu_high dan jika penggunaan rata-rata cpu kurang dari 15% maka ceilometer akan mengaktifkan alarm cpu_low.

  4. Jika utilitas cpu lebih dari 80% maka ceilometer akan memberikan notifikasi alarm action ke url scaling policy untuk melakukan autoscaling up kemudian akan terbentuk satu instance, Namun jika utilitas cpu kurang dari 15% maka ceilometer akan memberikan notifikasi alarm action ke url scaling policy untuk melakukan autoscaling down dengan menghapus satu instance.

  5. Layanan ceilometer akan memonitoring utilitas cpu di scaling group secara terus-menerus

wah lumayan banyak juga ya penjelesanya, okee………. sekarang kita coba buat template heat orchestration untuk menerapkan autoscaling di openstack 🙂

Membuat template network

sebelum menjalankan template ini, maka kita harus membuat netowrk external dengan nama net-ext, anda bisa coba disini

nama file template ini adalah network.yaml di host controller