Optimitzant cost i rendiment
Moodle és un dels sistemes de gestió d’aprenentatge —en anglès, Learning Management System (LMS)— més coneguts a escala mundial, amb més de 240 milions d’usuaris d’arreu del món registrats.
Aquesta solució permet a les organitzacions disposar d’una plataforma pròpia i personalitzable per a la formació online, i es fa servir tant en el sector educatiu com en la formació corporativa.
Com molts altres sistemes d’informació, un dels principals reptes que es presenten als equips de TI és el de trobar l’equilibri entre cost i rendiment en un escenari amb demanda variable.
En especial, en grans entorns educatius (universitats, escoles públiques i privades, empreses “TechEd”, etc.) i en grans organitzacions i empreses amb sistemes propis de formació contínua, la plataforma ha d’estar preparada per donar un rendiment excel·lent en períodes amb una concurrència elevada d’usuaris combinats amb períodes de baixa activitat.
En aquests escenaris, el fet de disposar de la plataforma instal·lada sobre un entorn de cloud públic com AWS ofereix grans avantatges i possibilitats, gràcies, especialment, a les seves característiques d’elasticitat i escalabilitat, combinades amb una excel·lent seguretat i alta disponibilitat.
A continuació, fruit de la nostra experiència amb plataformes Moodle sobre AWS, us compartim deu punts clau per optimitzar-les i trobar l’equilibri perfecte entre cost i rendiment.
Cinc serveis AWS a tenir en compte
Els nostres cinc primers punts clau estan directament relacionats amb serveis AWS:
- Auto-Scaling Group (ASG): la funcionalitat d’autoescalat d’instàncies permet l’adequació dels recursos de front-end (servidors web) necessaris per a la càrrega real en tot moment, cosa que n’optimitza el cost. Per aconseguir un autoescalat eficient en entorns Moodle, és molt important triar correctament la mètrica usada sobre les instàncies per fixar els llindars d’autoescalat. A més, amb la combinació adequada de diferents tipus d’instàncies (reserved, on-demand i spot) i saving plans aconseguirem optimitzar-ne al màxim el cost.
- Bases de dades: les RDS multi-AZ (amb diferents motors de BD disponibles) permeten executar la majoria de les accions de manteniment de la BD sense pèrdua de servei, inclòs un escalat en calent. En entorns molt dinàmics i amb un ús molt volàtil de la BD, es pot considerar l’ús de bases de dades serverless (Amazon Aurora), que permeten un escalat automàtic en funció de la demanda.
- AWS CloudFront: aquest servei de CDN d’AWS ens ofereix diversos beneficis: suposa una millora de les latències per a entorns geogràfics separats, representa de per si un estalvi de costs i permet afegir mesures de seguretat, com, per exemple, AWS Shield o WAF, fet servir habitualment de manera conjunta amb CloudFront.
- Amazon ElastiCache for Redis: Moodle recomana que la plataforma tingui dos servidors de memòria cau; un per a sessions i un altre per a objectes PHP. Per a les últimes versions de Moodle, recomanem l’ús de RedIs en lloc de Memcached com a solució de memòria cau per obtenir el millor rendiment.
- EC2 Graviton: l’ús d’AMIs generades sobre instàncies Graviton (en lloc de les típiques x86) per a les EC2 que conformen els front-end aporten un rendiment superior amb un nombre menor d’instàncies i a un menor cost unitari, amb la qual cosa es pot aconseguir en global un estalvi de més del 30 %.
Quatre pràctiques aconsellables
Els següents punts recomanats estan relacionats amb bones pràctiques en els processos de configuració, proves i operació del servei:
- Configuració d’elements Moodle: més enllà dels serveis AWS, és essencial una correcta selecció i configuració dels diferents elements que conformaran l’entorn Moodle (servidors web, configuració PHP, motor de base de dades, etc.).
- Proves de càrrega: la seva execució prèvia al pas de producció de la plataforma, simulant els casos d’ús prevists per a aquest entorn, és molt recomanable, ja que ens permet la detecció de punts de l’arquitectura que podrien representar un coll d’ampolla, l’estimació del nombre de recursos necessaris (i, per tant, el cost) en funció de la càrrega variable i la validació del correcte funcionament tècnic i ajust de llindars dels components amb autoescalat.
- Monitorització i seguiment: la monitorització contínua de l’entorn mitjançant Amazon CloudWatch i la possibilitat de consultar logs generats pels front-end de l’ASG de manera centralitzada són aspectes indispensables per garantir la disponibilitat i el rendiment òptim de la plataforma.
- Automatització de desplegaments: tot i que no afecti directament el rendiment, l’automatització de desplegaments mitjançant l’ús d’eines DevOps, combinada amb l’ús de tecnologia d’infraestructura com a codi (IaC: CloudFormation, Terraform…) redueixen dràsticament els temps de desplegament i el cost de les operacions, ja que s’eliminen possibles errors de gestió manual i s’aconsegueix una disponibilitat més elevada de la plataforma.
I millora contínua…
- Evolució: la tecnologia avança a un ritme imparable, i la necessitat d’optimitzar costos per ser competitius és una constant. Les arquitectures són vives. AWS genera contínuament noves opcions i serveis que permeten continuar optimitzant les plataformes Moodle, un LMS en constant evolució tant en les seves versions open-source com comercials (Moodle Workplace).
Des d’IThinkUPC, AWS Advanced Partner i Moodle Premium Partner, et podem ajudar a implantar, administrar i optimitzar la teva plataforma Moodle sobre AWS.
També et podem oferir una solució Moodle en modalitat Saas, “Powered by AWS”, totalment gestionada per nosaltres.
Si és del tu interès, contacta amb nosaltres.