Cum am mutat Situri pe GCP

mart. 9, 2021 Cloud

Cum am mutat Situri CMS pe GCP

Cu toții am auzit despre celebrul concept „treceți la nor” și, pentru mulți, conceptul de mutare a lucrurilor din propriul birou sau din centrul de găzduire și în acest „nor” pare descurajant. În acest articol, voi oferi câteva informații despre cum am făcut acest lucru pentru una dintre aplicațiile noastre, o aplicație CMS care rulează în PHP și care utilizează o bază de date MySQL. Această aplicație a fost utilizată ca un cadru pentru a furniza mai multe proiecte client de complexitate variabilă, cu integrări multiple față de servicii terțe și conține multe mii de linii de cod.

Am început să investigăm ce beneficii am avea și ce provocări potențiale am putea întâmpina în timp ce mutăm această aplicație în cloud. Am evaluat mai multe opțiuni diferite, de la „doar” lift-and-shift, utilizând diverse opțiuni de infrastructură GCP până la convertirea aplicației pentru a fi complet nativă în cloud. Am decis să facem modificări minime aplicației în sine și să facem doar câteva modificări structurale minore.

În ceea ce privește versiunea, singurul lucru de care aveam nevoie pentru a face upgrade a fost baza de date MySQL pentru a putea utiliza Google Cloud SQL ca bază de date găzduită în locul serverului de baze de date și a ne elibera de operațiunile de gestionare a bazei de date. Google Cloud SQL este un serviciu de baze de date complet gestionat pe Google Cloud Platform care acceptă atât MySQL, cât și PostgreSQL. Deoarece am folosit câteva funcții și extensii care nu erau acceptate pe Google Cloud SQL, a trebuit să le rescriem într-un limbaj standard acceptat. Datorită versiunii mai noi, am putea face acest lucru cu ușurință cu noua funcționalitate inclusă în acea versiune.

După ce am analizat implicațiile Cloud față de mediul local găzduit complet, singurele modificări pe care trebuia să le facem au fost modificările bazei de date pentru a sprijini Google Cloud SQL și modificările aduse rutei de e-mail pentru a utiliza Sendgrid SMTP pentru trimiterea de e-mail din cadrul Google Cloud Platform. Trimiterea e-mailurilor de pe platforma cloud Google pe portul 25 nu este permisă, deoarece acest port este întotdeauna blocat pe GCP.

De asemenea, am văzut câteva potențiale îmbunătățiri viitoare în împărțirea aplicației monolitice în microservicii, folosind Google Cloud Load Balancer și mutarea aplicației într-un cluster Kubernetes, dar acest lucru a depășit scopul proiectului nostru.

Am decis să facem o mutare „lift-and-shift” a VM-ului curent către Google Cloud Compute Engine, ceea ce înseamnă, pe scurt, replicarea VM-ului (inclusiv unele modificări necesare în configurația rețelei). Am mutat apoi bazele de date în Cloud SQL. „Lift-and-shift” a fost realizat în mod ordonat și a mers fără probleme și am reușit să lansăm aplicația Site-uriile CMS pe GCP pentru testare în câteva ore, utilizând serverul de baze de date MySQL local, care se află pe aceeași VM. Am modificat configurațiile, astfel încât să putem utiliza Sendgrid și am făcut câteva testări pe CMS, găzduind paginile și testând performanța aplicației.

Având la dispoziție toate testările și configurațiile inițiale, am pregătit baza de date pentru transferul la Google Cloud SQL. Am rescris funcțiile SQL de care aveam nevoie și am creat instanța noastră Google Cloud SQL și am importat baza de date în instanța cloud. După configurarea setărilor de securitate necesare pentru a permite aplicației noastre să comunice cu instanța Google Cloud SQL, am început testând soluția completă prin comutarea unuia dintre site-urile noastre dev pentru a utiliza noua instanță Cloud. După testarea intensivă a funcționalității, am decis mai întâi să mutăm site-urile noastre pentru dezvoltatori pe Google Cloud Platform, apoi să mutăm site-urile de producție corespunzătoare după ce a fost confirmată verificarea unei mutări de succes.

Treptat, am mutat site-urile, unul câte unul, pe soluția GCP, fără nicio perioadă de inactivitate pe site-urile web. Singurul lucru care a fost afectat a fost că oriarce articol publicat între preluarea bazei de date și trecerea la noua soluție ar trebui să fie re-publicate atunci când noua soluție a fost implementată. Aceasta a fost o decizie de afaceri bazată pe costuri / beneficii și am fi putut arhitectura o soluție fără întrerupere pentru mutare, dacă este necesar.

Am trecut de la a avea un total de 6 servere care găzduiesc site-uri (de la dev la prod), în versiuni diferite, la doar 2 servere găzduite Google Cloud și două instanțe Google Cloud SQL. Nu au fost necesare modificări ale codului la nivel de aplicație. De la această mișcare, dezvoltatorii au început să utilizeze caracteristicile Cloud Native, cum ar fi Pub Sub în aplicații. Cu Google Cloud Platform, securitatea este ridicată în mod implicit și totul este criptat în repaus sau în tranzit.

Această aplicație face parte dintr-o serie de aplicații vechi pe care le-am mutat din medii găzduite în diferite medii GCP, inclusiv Kubernetes și Google Compute Engine. De asemenea, am implementat aplicații Cloud Native folosind Kubernetes și Google App Engine.

Programe IT – Unelte simple și inteligente bazate pe cloud, program de gestionare a clienților, software pentru

Google workspace o suită de programe informatice bazate pe cloud, de birou, de colaborare și software oferite de Partener Google pe bază de abonament.programare online, servicii de marketing

cms

Lasă un răspuns