Anda di halaman 1dari 32

LMS Moodle Scalability With Google for Education

- Studi Kasus di Universitas Kristen Petra

Disiapkan oleh:
Lewi Supranata Kristianto
PT. Visiniaga Mitra Kreasindo
Permasalahan - Transformasi Digital
Pendidikan Adaptasi Platform

Sebuah studi oleh Proses transformasi digital Untuk membantu guru


UNESCO mengatakan khususnya bagi pendidikan mengelola dan mengatur
untuk beradaptasi dengan materi pendidikan secara
bahwa masih 200+ juta
lingkungan belajar baru online dan melakukan kursus
siswa di 23 negara yang
akibat Covid-19. online. Sederhanakan proses
terkena dampak pandemi pembelajaran dengan
covid-19 sekarang, dan menyediakan lokasi sentral
E-learning telah muncul
percaya bahwa kita tidak dan meningkat untuk mengakses materi
akan segera kembali secara online dan
pemanfaatannya untuk
normal 100% mengembangkan konten.
sekolah di tahun 2020.
Tantangan yang dihadapi

Platform LMS Infrastruktur Skalabilitas

e-Learning Cepat untuk Deploy Mampu Scale Up


Aplikasi untuk administrasi, Sekolah menghadapi masalah Skalabilitas adalah persyaratan
dokumentasi, pelacakan, tentang cara membangun utama karena LMS menjadi
pelaporan, otomatisasi, dan platform yang cepat diterapkan aplikasi penting bagi sekolah
penyampaian kursus pendidikan, dan hemat biaya untuk melayani untuk memperluas metode
program pelatihan, atau program semua siswa pada waktu yang pendidikan dan kegiatan
pembelajaran dan sama atau koneksi bersamaan. pengajaran.
pengembangan.
Moodle

Solusi Open Source

Learning Management System


LMS Moodle
Scalability On

Google Cloud IaaS

(Infrastructure as a Service)
Topik Bahasan
1. LMS Moodle
2. Ubuntu Linux sebagai OS dengan Aplikasi Nginx, Mariadb, NFS.
3. Infrastruktur Cloud menggunakan Google Cloud dengan Auto Scaling dan
Load Balancing.
Komponen:
1. Sistem Operasi
Sistem operasi adalah perangkat lunak sistem yang mengelola perangkat keras komputer, sumber daya perangkat
lunak, dan menyediakan layanan umum untuk program komputer. Linux telah lama menjadi dasar perangkat jaringan
komersial, tetapi sekarang menjadi andalan infrastruktur perusahaan.

2. Web Server
Nginx, adalah server web yang juga dapat digunakan sebagai proxy terbalik, penyeimbang muatan, proxy email, dan
cache HTTP. Perangkat lunak ini dibuat oleh Igor Sysoev dan dirilis ke publik pada tahun 2004. Nginx adalah
perangkat lunak bebas dan sumber terbuka, dirilis di bawah ketentuan lisensi 2-klausa BSD. Penelitian ini akan
menggunakan Nginx sebagai web server.

3. PHP
PHP-FPM (FastCGI Process Manager) adalah alat web yang digunakan untuk mempercepat kinerja situs web. Ini jauh
lebih cepat daripada metode berbasis CGI tradisional dan memiliki kemampuan untuk menangani beban yang luar
biasa secara bersamaan. Penelitian ini akan menggunakan PHP-FPM 7.4.3 sebagai bahasa scripting untuk Moodle.

4. Database
MariaDB adalah sistem manajemen basis data relasional MySQL yang dikembangkan oleh komunitas dan didukung
secara komersial, dimaksudkan untuk tetap bebas dan perangkat lunak sumber terbuka di bawah Lisensi Publik
Umum GNU, dengan menggunakan MariaDB versi 10.5 sebagai database.
Komponen:
5. NFS
NFS 1.3.4 untuk berbagi file jaringan pada arsitektur autoscaling adalah protokol sistem file terdistribusi yang
awalnya dikembangkan oleh Sun Microsystems pada tahun 1984, memungkinkan pengguna di komputer klien untuk
mengakses file melalui jaringan komputer seperti halnya penyimpanan lokal diakses.

6. Redis Cache Server


Redis 5.0 sebagai server cache adalah penyimpanan struktur data dalam memori, digunakan sebagai basis data nilai
kunci, cache, dan perantara pesan terdistribusi dalam memori, dengan daya tahan opsional.

7. Aplikasi LMS
Moodle 3.9.x sebagai platform LMS adalah sistem manajemen pembelajaran sumber terbuka dan gratis, rilis Moodle
3.8 menyoroti fitur-fitur baru, menghadirkan peningkatan forum, fungsi analitik pembelajaran lebih lanjut, dan integrasi
H5P.

8. Google IaaS
IaaS (infrastruktur sebagai layanan) adalah model layanan cloud yang menawarkan sumber daya infrastruktur sesuai
permintaan, seperti komputasi, penyimpanan, jaringan, dan virtualisasi, untuk bisnis dan individu melalui cloud.Semua
ini menantang untuk diukur ketika permintaan melonjak atau bisnis tumbuh. Anda berisiko kehabisan kapasitas atau
membangun berlebihan dan membayar infrastruktur yang tidak pernah Anda gunakan.
Aplikasi Linux Server & Google Cloud tools
No OS / Software Version

1 Ubuntu Linux 20.04

2 Nginx Web Server 1.18.0

3 PHP-FPM Scripting Language 7.4.3

4 MariaDB Database 10.5

5 NFS 1.3.4
Network File System

6 Redis Memory Store Cache Server 5.0.7

7 Moodle Learning Management System 3.9.x

8 Cloud Armor, Load Balancer, CDN Google Cloud


Konfigurasi Moodle & Linux OS
1. Moodle Directory Path
- /moodle
- /moodledata

2. Performance Tuning Configuration


A. Moodle Application Configuration
B. PHP FPM Pool Configuration
C. Nginx Web Server Configuration
D. MariaDB Database Configuration
E. NFSv4 File Server & Client Configuration
F. Operating System File Limit Configuration
1. Moodle Directory Path
2. Konfigurasi Moodle & Linux OS
A. Moodle Application Configuration
$CFG->wwwroot
$CFG->dataroot
$CFG->tempdir
$CFG->xsendfile = 'X-Accel-Redirect';
$CFG->xsendfilealiases = array(
'/dataroot/' => $CFG->dataroot
);
2. Konfigurasi Moodle & Linux OS
B. PHP FPM Pool Configuration
pm = dynamic
pm.max_children
pm.start_servers
pm.min_spare_servers
pm.max_spare_servers
pm.max_requests
php_admin_value[open_basedir]
2. Konfigurasi Moodle & Linux OS
C. Nginx Web Server Configuration
listen *:443 ssl http2;
server_tokens off;
client_max_body_size 2500M;
client_body_buffer_size 2500M;
proxy_read_timeout 1800;
proxy_connect_timeout 1800;
proxy_send_timeout 1800;
access_log syslog:server=10.x.x.x:514,facility=local7,tag=nginx,severity=info combined;

#LB Public IP address


set_real_ip_from x.x.x.x/32;
#Private IP range for GCP Load Balancers
set_real_ip_from 130.211.0.0/22;
#Private IP range for GCP Load Balancers
set_real_ip_from 35.191.0.0/16;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
2. Konfigurasi Moodle & Linux OS
D. MariaDB Database Configuration
table_definition_cache = -1
innodb_buffer_pool_size
innodb_log_file_size
innodb_temp_data_file_path
thread_pool_max_threads
max_connections
max_user_connections
open_files_limit

#for troubleshooting
log_warnings = 3
log_error = /var/log/mysql/error.log
log_queries_not_using_indexes = 1
long_query_time = 15
slow_query_log = 0 # Disabled for production
slow_query_log_file = /var/log/mysql/mariadb-slow.log
min_examined_row_limit = 100000
2. Konfigurasi Moodle & Linux OS
E. NFSv4 File Server & Client Configuration
1. Systemd
$ systemctl edit nfs-server
# Add following
[Service]
LimitNOFILE=2097152
LimitNPROC=2097152

2. Exports
/etc/exports:
/var/www/moodledata 10.184.0.0/16(rw,sync,no_subtree_check,no_root_squash)

3. NFS client
/etc/fstab:
10.184.0.X:/var/www/moodledata /var/www/moodledata nfs4
auto,nofail,noatime,nodiratime,nolock,intr,tcp,actimeo=1800,proto=tcp,port=2049 0 0
2. Konfigurasi Moodle & Linux OS
F. Operating System File Limit Configuration
1. Sysctl
/etc/sysctl.conf:
# file max limit
fs.file-max = 3145728
fs.nr_open = 31457282

# Default Socket Receive Buffer


net.core.rmem_default = 262144
# Maximum Socket Receive Buffer
net.core.rmem_max = 262144
# Increase number of incoming connections
net.core.somaxconn = 1048576
Konfigurasi Keamanan dan Optimalisasi
3. Security Configuration

A. Moodle Installation -> config.php


$CFG->dataroot = '/var/www/moodledata';
$CFG->tempdir = '/var/www/moodledata-temp';
$CFG->admin = 'admin';
$CFG->preventexecpath = true;
$CFG->pathtophp = '/usr/bin/php';
$CFG->pathtodu = '/usr/bin/du';
$CFG->aspellpath = '/usr/bin/aspell';
$CFG->pathtodot = '/usr/bin/dot';
$CFG->pathtogs = '/usr/bin/gs';
$CFG->pathtopython = '/usr/bin/python3';
$CFG->upgradekey = ‘secretkey’;
Konfigurasi Keamanan dan Optimalisasi
3. Security Configuration

B. PHP FPM Pool Configuration -> php security memory, shell exec
php_admin_value[memory_limit] = 2048M
php_admin_value[post_max_size] = 200M
php_admin_value[upload_max_filesize] = 200M
php_admin_value[disable_functions] =
exec,passthru,shell_exec,system,proc_open,popen,curl_multi_exec,parse_ini_file,show_source
Konfigurasi Google Cloud dan Optimalisasi
4. Google Cloud Platform Configuration

4.1. Create Custom Images from Ubuntu 20.04 Public Images


1. Create VM Instances
2. Choose Ubuntu 20.04 from Public Image as Boot Disk
3. Configure and copy file as necessary for each instance
4. Create custom images from disk

4.2. Create Instance Template

4.3. Create Managed Instance Group

4.4. Create a Load Balancer and Attach an HTTP(s) load balancer to an Managed Instance Group (MIGs)

4.5. Google Cloud Armour

4.6. Google CDN

4.7. Google Cloud Platform Price Calculator


Monitoring Tools
1. System Benchmark
2. Caching Performance Report
Monitoring Tools
3. Ops Agent / System Monitoring
Single Server Architecture
Single server architecture telah digunakan untuk lingkungan pengujian awal yang menggabungkan
4 komponen (Web Server, PHP, Database, Cache) dalam satu server dengan 8 Core CPU, 32 GB
RAM, 500GB SSD Storage.
Single Architecture Concurrent Report Result

Active Spec (CPU,


Date Concurrent Web Server
Users Memory)
8 Core,
01-Aug-2020 - 07-Sep-2020 6,013 496 Apache
32 GB
8 Core,
01-Sep-2020 - 07-Oct-2020 7,547 1,079 Nginx
32 GB
Auto Scaling Architecture
Autoscaling adalah alat yang memungkinkan server web menangani peningkatan load secara
efisien dengan menambahkan kapasitas komputasi secara dinamis, tetapi juga mengurangi
kapasitas dan biaya dalam periode penggunaan dan permintaan sumber daya rendah.
Auto Scaling Architecture Concurrent Report Result
Date Active Users Concurrent Instance # Web Server
22-Oct-2020 7,400 955 8 Nginx
28-Oct-2020 6,822 1,537 12 Nginx
02-Nov-2020 8,109 911 4 Nginx
Max Concurrent Users 16-Nov-2020 11,866 5,549 18 Nginx

Active Users: 12613


Max Concurrent Users: 4673
on Monday, 2022-11-28 00:10:00
Average concurrent users per day of the week
Monday : 281.52
Tuesday : 277.74
Wednesday : 244.9
Thursday : 258.06
Friday : 190.81
Saturday : 45.51
Sunday : 80.87
Global average concurrent users: 202.29
Average concurrent users considering working days & hours: 201.34
Auto Scaling Architecture Specification
CPU Memory
VM CPU Memory SSD Network
Peak Peak
Databases 12 core 80% 12 GB 96.48% 200 GB 35 MB/s
NFS 4 core 50% 6 GB 31% 750 GB 78 MB/s
Managed
@2
Instance 74% 7.5 GB 80% 20 GB 464 MB/s
core
Groups
Redis1 2 core 90% 4 GB 20% 10 GB 325 MB/s

VM CPU Memory SSD Instance #


DB 12 core 24 GB 250 GB 1
NFS 4 core 6 GB 750 GB 1
min: 2
Managed Instance Group @2 core 8 GB 10 GB
max: 20
Managed Managed Managed
Redis Memory Store 2 GB
by Google by Google by Google
LMS Live Site
Konklusi
Autoscaling pada Google Cloud mampu untuk melakukan load balancing dan penambahan vm
secara otomatis. Tujuan utama dari penelitian ini adalah untuk menentukan dan menguji
skalabilitas infrastruktur di Google Cloud sambil mempertahankan efektivitas biaya dalam
lingkungan komputasi awan sebagai Infrastructure as a Services (IaaS) dengan arsitektur
autoscale dan load balance, hal ini akan menguntungkan pengguna akhir untuk mempertahankan
biaya sementara akses off-peak dan liburan sekolah.
Referensi

1. https://www.visiniaga.com/en/blog/our-blog-1/deployment-moodle-lms-on-g
oogle-cloud-platform-gcp-with-autoscaling-and-load-balance-3
2. https://docs.moodle.org/39/en/Security
3. https://cloud.google.com/compute/docs/autoscaler
4. https://cloud.google.com/compute/docs/autoscaler/scaling-cpu
5. https://cloud.google.com/compute/docs/load-balancing-and-autoscaling
6. https://cloud.google.com/stackdriver/docs/solutions/agents/ops-agent
7. https://cloud.google.com/products/calculator
Sesi Pertanyaan

1.
Dipresentasikan:
Terima Kasih 08 Desember 2022
Webinar LMS Moodle Scalability
with Google for Education

Anda mungkin juga menyukai