de Shruti Tanwar

Ce am învățat în timpul desfășurării producției

Ce am invatat in timpul desfasurarii productiei

Implementarea producției. Etapa finală a fiecărui proiect. Când toată munca grea pe care ați depus-o de-a lungul timpului devine live pentru a fi folosită de publicul țintă. Este sigur că este un moment interesant, mai ales când faceți parte din procesul de configurare a infrastructurii!

Făcusem parte din procesele de implementare în trecut. Dar de data aceasta, am ajuns să lucrez la un sistem imens în termeni de volum, stivă tehnologică și infrastructură, care a fost o escapadă atrăgătoare! A trebuit să experimentez întregul proces din prima mână și am învățat destul de multe lucruri.

Iată lista învățăturilor mele pe care le voi aminti și le voi aplica de-a lungul carierei mele de dezvoltator.

Cei doi piloni: Pregătire și planificare⏱️

Este de la sine înțeles că pregătirea și planificarea ar trebui să facă parte din orice faceți. Dar când vine vorba de desfășurarea producției, devine o regulă. Este un dat, un imperativ. Trebuie să cunoașteți complexitatea tehnologiilor la care ați lucrat în proiect. De asemenea, ar trebui să vă gândiți la ce tip de infrastructură ar fi cea mai potrivită pentru rularea diferitelor tipuri de sisteme.

Sistemul pe care l-am construit a constat din nodejs, MongoDB, InfluxDB, redis, asp.netși rabbitMQ ca parte a stivei sale de tehnologie. Una dintre cerințele principale ale sistemului a fost gestionarea zilnică a unui volum imens de date. Astfel, sistemul a trebuit să funcționeze cu o hartă de implementare adecvată în minte, care să precizeze în mod clar lucruri precum:

  • Ce tip de sistem / tehnologie trebuia să ruleze pe ce tip de mașină
  • Specificațiile privind gruparea sistemelor
  • Cum toate aceste cutii independente aveau să vorbească între ele într-un mod infailibil.

Local, cred global?

Ei bine, acesta a fost un sfat din partea arhitectului / prietenului meu de proiect. Eu și alți tineri dezvoltatori din echipă nu am avut nicio experiență prealabilă în implementarea unui sistem atât de mare în carierele noastre. Așadar, arhitectul nostru ne-a sfătuit să creăm un sistem identic de producție la nivel local.

Acest lucru însemna că trebuie să avem o experiență practică în toate. Dintr-un grup NodeJS mediu (format din 8 clustere) și server multiplu MongoDB configurați cu un dispozitiv pregătit pentru producție Redis instalare, până la pregătirea producției pm2 configuri și variabile de mediu!

Și am documentat totul. Am lucrat la toate setările de producție pe mașinile noastre locale și apoi le-am testat cap la cap. Ulterior am notat toți pașii pe care i-a făcut pentru a ajunge la infrastructura finală de lucru la nivel local pe mașinile noastre. Această practică ne-a ajutat să găsim problemele tipice întâmpinate în timpul configurării infrastructurii și cum am putea să le depășim.

Am notat toate indicațiile, lecțiile și modificările speciale pe care le-am efectuat pentru a face sistemul să funcționeze. Mi-a sporit încrederea cu câteva crestături și m-am simțit gata să extind mediul de producție pentru aplicația noastră.

Document, document și document !!?

Știu, știu. Acest lucru s-a spus foarte mult. Fiind dezvoltator, l-ai auzit suficient. Probabil că nu doriți o altă prelegere despre importanța documentării. Așa că o voi ține scurt, evidențiind punctele glonț:

  • Configurarea producției trebuie documentată pe biți. Trebuie să fie îngrijit, infailibil și de înțeles.
  • Ar trebui să aibă toate configurațiile sistemului, adresele IP, specificațiile sistemului și instrucțiunile de instalare. Și, de asemenea, orice considerați suficient de important pe care ar trebui să îl cunoașteți dvs. sau un coleg dezvoltator.
  • Trebuie actualizat pe măsură ce se face orice modificare a mediului de producție al sistemului.

Fiind om, este destul de obișnuit să ne gândim la felul „Oh! Îmi voi aminti asta! ” Aveți încredere în mine, nu vei face. Nimeni din istoria dezvoltării de software nu a avut vreodată (Bine, s-ar putea să o ducă puțin prea departe, dar îți vine ideea.?)!

Documentați toate datele și meta-datele din jurul setării de producție. O să-ți mulțumești mai târziu. Viitorii dezvoltatori care vor fi la bordul proiectului dvs. vă vor mulțumi ulterior!

Monitorizare și înregistrare?

În timpul perioadei de dezvoltare a unui proiect, este relativ mai ușor să faceți față erorilor și erorilor. Ceva nu funcționează? Lemme, pur și simplu conectează-te rapid la caseta dev și verifică. Ei bine, asta nu se întâmplă în producție. Nu vă puteți conecta la un sistem live și puteți începe să vă plimbați doar pentru că nu înțelegeți de unde vine problema.

Configurarea unui sistem adecvat de monitorizare și înregistrare este esențială pentru a ține un control de sănătate al sistemului live. Sisteme inteligente de monitorizare sunt disponibile astăzi pe piață, care vă pot oferi rapoarte de frecvență a erorilor, e-mailuri programate pentru verificarea stării de sănătate și multe altele.

Ne-am decis Sumologic și DataDog însoțitorii noștri în crearea sistemului de înregistrare și monitorizare a aplicației noastre. A fost aproape captivant când am putut să-mi dau seama de problema sistemului fără să fac un „ssh”.

O configurare decorativă a unui sistem de monitorizare merge mult în a pune bazele solide pentru produsul dvs. live. Nu ratați asta!

Phew! Ei bine, asta e un pachet! Care sunt constatările tale? Simțiți-vă liber să împărtășiți învățăturile, sfaturile sau indicațiile dvs. în comentariile de mai jos!