4 NOVEMBER 2022
DevOps
IAC
Proxmox
with
PROXMOX
By Victor Mongi IaC
Hypervisor
KANDOU TECH STACK
Implementasi SIMRS menggunakan
teknologi stack dan integrasinya
dengan infrastruktur di RSUP Kandou
Kandou Tech Stack FRONTEND
Kandou Tech Stack BACKEND
Kandou Tech Stack INFRASTRUCTURE TOOLS
HYPERVISOR
Hypervisor adalah salah satu teknik
virtualisasi yang bertugas untuk
membagi-bagikan sumber daya dan
mengalokasikannya ke beberapa sistem
operasi/virtual machine yang berbeda.
Program yang bertindak sebagai
hypervisor biasanya mampu
mempartisi, mengisolasi, dan
mengabstraksi sumber daya dalam
sebuah server. Ia bisa juga disebut
sebagai Virtual Machine Manager
(VMM).
2 TIPE HYPERVISOR
TYPE 1 BARE METAL ARC
Type 1 Hypervisor adalah tipe yang berjalan
bersamaan dengan hardware server, sehingga
kita tidak perlu sistem operasi lagi untuk
menjalankan hypervisor tipe ini.
TYPE 2 HOSTED ARC
Type 2 Hypervisor adalah jenis yang berperan
sebagai software dalam sebuah server.
Hypervisor tipe ini akan berjalan sebagai aplikasi
diatas Sistem Operasi utama yang sudah ada.
CONTOH 2 TIPE HYPERVISOR
TYPE 1 BARE METAL ARC
TYPE 2 HOSTED ARC
PROXMOX
Proxmox Virtual Environment (VE)
merupakan salah satu platform
virtualisasi open-source berbasis
Linux Debian, baik hardware
maupun operating system, untuk
mengelola dua teknologi virtualisasi.
KELEBIHAN PROXMOX
GRATIS
Keunggulan Proxmox VE yang pertama adalah pengguna dapat mengunduh dan
menggunakannya secara gratis. Kita juga dapat membuat cluster data dengan fitur yang
lengkap, tanpa perlu membayar. Walau demikian, bila kita sewaktu-waktu membutuhkan
dukungan support, kita dapat membeli layanan support agar dapat membantu keluhan atau
pertanyaan mengenai Proxmox VE. Untuk update aplikasi, kita tetap dapat memperbarui
aplikasi secara gratis atau berbayar. Bila memilih update yang berbayar, kita akan
mendapatkan fitur yang lebih lengkap.
KELEBIHAN PROXMOX
TERINTEGRASI KVM DAN LXC
Kernel-based Virtual Machine atau KVM adalah sebuah teknologi virtualisasi yang
digunakan untuk membagi server fisik secara virtual menjadi beberapa resource dedicated.
Virtualisasi KVM memungkinkan kita memiliki RAM dan CPU sendiri. Artinya, pengguna lain
tak bisa “nyomot” resource yang ada pada RAM dan CPU Anda. Begitu juga sebaliknya.
Linux Container (LXC) merupakan suatu metode virtualisasi level sistem operasi linux
menggunakan untuk menjalankan beberapa os linux yang terisolasi pada satu host. LXC yaitu
virtualisasi operating system (OS), LXC adalah virtualisasi yang menggunakan container.
Virtualisasi ini memiliki tingkat efisiensi yang tinggi dan juga kecepatan aksesnya
menjadikan LXC berkembang dengan cepat.
KELEBIHAN PROXMOX
CLUSTERING DAN HIGH AVAILIBILITY
Clustering server proxmox yaitu kita bisa membuat kumpulan beberapa server proxmox
menjadi satu, jadi pada server utama kita bisa menjoinkan server-server yang lain untuk
nantinya bisa di kontrol di satu server saja. Dan dengan cara ini kita dapat
mengimplementasi high availibility, atau menggabungkan ketiga sumber daya server
tersebut sehingga dapat berkolaborasi untuk menangani trafic.
KELEBIHAN PROXMOX
WEB MANAGEMENT AND CLI
Untuk urusan mengatur mesin-mesin virtual dan cluster, Proxmox
menyediakan sebuah kontrol panel berbasis web, dari kontrol panel ini
anda bisa melakukan semua pekerjaan yang dibutuhkan untuk
mengatur mesin virtual anda.
KELEBIHAN PROXMOX
VARIASI STORAGE SUPPORT
Proxmox VE mendukung local directory, iSCSI, LVM, NFS, GlusterFS,
Ceph RBD, dan ZFS. Adapun Proxmox VE dapat dipasang pada
hardware apa saja selama kompatibel dengan Linux. Namun, ada
beberapa hal yang harus dipertimbangkan, seperti memiliki RAM dan
kapasitas hard disk yang harus besar.
KELEBIHAN PROXMOX
BACKUP AND RESTORE
Kita bisa membuat backup dan restore virtual machine, bahkan
memindahkan hasil backup ke node/server proxmox yang lainnya.
KELEBIHAN PROXMOX
RESTFUL WEB API
Proxmox juga support RESTful API, jadi bisa kita akses server,
mengatur konfigurasi dan fitur ini.
REQUIREMENTS
CPU: 64bit (Intel EMT64 or AMD64)
Intel VT/AMD-V capable CPU/Mainboard (for
KVM Full Virtualization support)
Minimal RAM 8 GB
Hardware RAID with batteries protected write
cache (BBU) atau flash protection Fast hard
drives, best results with 15k rpm SAS, Raid10
Minimal 2 Network Interface Card (NIC)
https://www.proxmox.com/en/proxmox-ve/pricing
https://www.proxmox.com/en/downloads
INSTALASI
TIMESTAMP
Bootable Proxmox
Instalasi Proxmox di Server
Web Interface
Update Proxmox
Clustering
Storage (Menghapus/Membuat Partisi)
Networking
Membuat Linux Container
Membuat Linux VM
Membuat Template
Backup dan Restore
BOOTABLE PROXMOX
INSTALASI PROXMOX VE
PILIH HARDISK DAN FILESYSTEM
LOKALISASI DAN ZONA WAKTU
PASSWORD
SETTING IP ADDRESS DAN HOSTNAME
SUMMARY
UPDATE PROXMOX
WEB INTERFACE
Model Infrastruktur
172.31.64.50/24 172.31.64.51/24 10.0.N.N/24
Entrypoint to cluster
10.0.1.101 10.0.2.101 10.0.N.N
Ingress
LB to cluster k8s
10.0.1.102 10.0.2.102 10.0.N.N
K8S - Clusters
10.0.1.N 10.0.2.N 10.0.N.N
UPDATE PROXMOX
IAC
Infrastruktur sebagai kode
(infrastructure as code, atau
selanjutnya kita singkat sebagai IaC)
merupakan DevOps practice. Secara
spesifik, IaC merupakan salah satu
cara untuk melakukan otomasi pada
infrastruktur sebuah sistem
perangkat lunak.
TRANSISI MODEL
Kandou Tech Stack INFRASTRUCTURE MODEL
Kandou Virtual Network
10.0.1.1/16 Horizontal Scaling
10.0.1.1/24 10.0.2.1/24 10.0.N.N/24
Entrypoint to cluster
10.0.1.101 10.0.2.101 10.0.N.N
Vertical Scaling
Ingress
LB to cluster k8s
10.0.1.102 10.0.2.102 10.0.N.N
K8S - Clusters
10.0.1.N 10.0.2.N 10.0.N.N
TIPE IAC
TIPE 1
Tipe pertama adalah ad-hoc scripts. Biasanya ad-hoc scripts dibuat
dengan menggunakan Bash script, Python, atau Ruby. Berikut adalah
contoh ad-hoc script untuk menjalankan webserver dengan docker
container:
TIPE IAC
TIPE 2
Selanjutnya, pada tipe kedua, kita juga bisa
menggunakan configuration management tools
semacam Ansible, Chef, atau Puppet sebagai
teknologi IaC pilihan kita. Berikut adalah manifes
konfigurasi Ansible untuk melakukan hal yang
sama dengan ad-hoc script di sebelumnya:
KELEBIHAN TIPE 2
Konvensi. Dengan configuration management tools, kita bisa menerapkan konvensi pada kode
yang kita tulis. Dengan mengikuti konvensi yang sama, kolaborasi dalam menulis kode lebih
mudah dilakukan.
Idempotensi. Diambil dari istilah matematika, idempotensi merupakan atribut dari operasi
matematika yang jika dilakukan berulang kali akan menghasilkan hasil yang sama. Dalam
konteks IaC, idempotensi artinya kita bisa berulangkali menjalankan perintahansible-playbook
terhadap manifestasi provision-web-server.yml di atas dan akan mendapatkan hasil yang sama
persis setiap kalinya.
Distribusi. Jika kita perlu mengelola beberapa server sekaligus, dengan ad-hoc script, kita
harus menjalankan script provision-web-server.sh di atas secara manual di semua server
tersebut. Dengan Ansible, misalnya, kita cukup menuliskan daftar server yang perlu dikelola
pada inventori Ansible, maka ketika kita menjalankan perintah ansible-playbook, operasi akan
dilakukan terhadap seluruh server pada daftar inventori kita.
TIPE IAC
TIPE 3
Tipe IaC yang ketiga adalah server templating
tools. Pada model ini, kita membuat sebuah
template yang kemudian diubah menjadi artifak
yang mudah didistribusikan. Contoh dari ragam
ketiga ini adalah tekologi-teknologi semacam
Docker, Packer, dan Vagrant. Di bawah ini
merupakan manifes Packer untuk melakukan hal
yang sama dengan dua ragam yang sudah kita
bahas sebelumnya:
TIPE IAC
TIPE 4
Tipe yang keempat dan terakhir biasa disebut
sebagai server provisioning tools. Terraform,
CloudFormation, dan Open Stack termasuk dalam
kelompok ini. Berikut adalah manifes Terraform
untuk melakukan tugas yang sama dengan
berbagai teknologi IaC di sebelumnya
KELEBIHAN TIPE 4
Self-service. Dengan menggunakan teknologi IaC, tim pengembang bisa menulis sendiri kode
yang diperlukan untuk mempersiapkan infrastruktur sistem yang mereka butuhkan karena
kodenya tidak berbeda jauh dengan kode bahasa pemrograman yang mereka gunakan sehari-
hari.
Kecepatan. Operasi-operasi yang diperlukan untuk mengelola infrastruktur jauh lebih cepat
jika dijalankan oleh mesin (melalui teknologi IaC) ketimbang jika diketikkan secara manual
oleh manusia.
Keamanan. Mayoritas teknologi IaC memiliki mekanisme untuk memastikan konsistensi pada
kode yang ditulis. Hal ini meminimalisir peluang terjadinya kesalahan fatal ketika kode
diterapkan ke infrastruktur kita.
Dokumentasi. Sepanjang seluruh anggota tim kita bisa membaca kode, maka semua anggota
tim bisa melihat dengan jelas dari kode IaC yang kita tulis bagaimana infrastruktur tersebut
dibuat dan apa saja komponennya.
KELEBIHAN TIPE 4
Version Control. Sebagaimana semua kode, kode IaC yang kita tulis bisa dikelola
dengan version control tools seperti git. Dengan demikian maka kita bisa
senantiasa memantau riwayat perubahan kode IaC yang kita kelola.
Validasi. Dengan menggunakan IaC, kita bisa melakukan code review, automated
test (baik unit test maupun integration test), atau teknik lainnya yang bisa
mengurangi resiko cacat produksi pada kode IaC kita.
Penggunaan Ulang. Sebagian besar teknologi IaC memiliki modul yang bisa
disebarluaskan dan digunakan ulang dengan mudah. Misalnya saja Ansible
memiliki playbook, Chef memiliki cookbook, dan Terraform memiliki module.
Kebahagiaan. Teknologi IaC memudahkan pengembang untuk melakukan apa
yang menjadi keahliannya (menulis kode) dan menyerahkan sisanya untuk
diotomasi oleh mesin.
https://medium.com/@iqbal_farabi/pengenalan-teknologi-infrastruktur-sebagai-kode-62b295d0285c
Keduanya sama-sama merupakan tool
Infrastuktur as Code. Artinya, kedua tool ini sama-
sama mengotomasi, provision, Konfigurasi, dan
manage infrastruktur.
Terraform biasanya hanya dipakai untuk
provision infra. Sementara, Ansible adalah tool
untuk konfigurasi infra yang sudah ada/sudah jadi
YAML
YAML (YAML Yet Another Markup
Language) adalah format serialisasi data
yang biasanya digunakan sebagai
configuration file maupun hanya sebagai
penyimpan data. Sebagai configuration file,
YAML kerap digunakan pada DevOps
(Docker, Kubernetes, Ansible, etc.)
TIMESTAMP
Membuat SSH Keys (Public dan Private Key)
Ubuntu CloudImage dan CloudInit
Provision infrastruktur dengan Terraform
Otomasi konfigurasi dan penginstalan dengan
Ansible
SETUP TERRAFORM DAN ANSIBLE
MEMBUAT SSH KEYS
INTEGRASI CLOUD INIT - HAL 1
INTEGRASI CLOUD INIT - HAL 2
DIGITAL MARKETING
THANK I sincerely appreciate that
I’ve had this opportunity
to present to you.
YOU