Hvad jeg lærte under produktionsinstallationen

Produktion implementering. Den sidste fase af hvert projekt. Når alt det hårde arbejde, du har lagt ned i løbet af tiden, bliver live for at blive brugt af målgruppen. Det er bestemt en spændende tid, især når du er en del af installationsprocessen for infrastrukturen!

Jeg har tidligere været en del af implementeringsprocesser. Men denne gang kom jeg i gang med et stort system med hensyn til volumen, teknologistak og infrastruktur, som var en lokkende eskapade! Jeg fik opleve hele processen fra første hånd, og jeg lærte en hel del ting.

Her går listen over mine lærdomme, som jeg kommer til at huske og anvende i hele min karriere som udvikler.

De to søjler: Forberedelse og planlægning⏱️

Det siger sig selv, at forberedelse og planlægning skal være en del af alt, hvad du gør. Men når det kommer til implementering af produktion, bliver det en regel. Det er en given, et bydende nødvendigt . Du har brug for at kende indviklingen i de teknologier, du har arbejdet med i dit projekt. Du bliver også nødt til at overveje, hvilken slags infrastruktur der er bedst egnet til at køre forskellige slags systemer.

Det system, vi byggede, bestod af nodejs, MongoDB, InfluxDB, redis, asp.net og rabbitMQ som en del af dets teknologiestak. Et af systemets primære krav var at håndtere en enorm mængde data dagligt. Således måtte systemet gå live med et ordentligt implementeringskort i tankerne, som tydeligt angav ting som:

  • Hvilken type system / teknologi skulle køre på hvilken slags maskine
  • Specifikationerne vedrørende gruppering af systemer
  • Hvordan alle disse enkeltstående kasser skulle tale med hinanden på en idiotsikker måde.

Tænk lokalt, tænk globalt?

Nå, dette var nogle råd fra min projektarkitekt / ven. Mig selv og nogle andre unge udviklere på holdet havde ikke nogen tidligere erfaring med at implementere et så stort system i vores karriere. Så vores arkitekt rådede os til at oprette et produktionsidentisk system lokalt.

Dette betød, at vi havde brug for en praktisk oplevelse af alt. Fra et klynget NodeJS- miljø (bestående af 8 klynger) og MongoDB- opsætning med flere servere med en produktionsklar Redis- installation til at have produktionsklare pm2- konfigurationer og miljøvariabler!

Og vi dokumenterede alt. Vi arbejdede op med alle produktionsopsætningerne på vores lokale maskiner og testede dem derefter fra ende til anden. Senere noterede vi alle de skridt, det tog for at nå den endelige arbejdsinfrastruktur lokalt på vores maskiner. Denne praksis hjalp os med at finde de typiske problemer, vi stødte på under installation af infrastruktur, og hvordan vi kunne overvinde dem.

Vi noterede alle pointer, lektioner og særlige tweaks, som vi udførte for at få systemet til at fungere. Det øgede min tillid med flere hak, og jeg følte mig klar til at udvide produktionsmiljøet til vores applikation.

Dokument, dokument og dokument !!?

Jeg ved, jeg ved det. Dette er blevet sagt meget. At være udvikler har du hørt det nok. Du vil sandsynligvis ikke have endnu et foredrag om vigtigheden af ​​dokumentation. Så jeg vil holde det kort ved blot at fremhæve punkttegnene:

  • Produktionsopsætning skal dokumenteres i bit. Det skal være pænt, idiotsikkert og forståeligt.
  • Det skal have alle systemkonfigurationer, IP-adresser, systemspecifikationer og installationsinstruktioner. Og også alt, hvad du finder vigtigt nok, som du eller en udvikler skal vide.
  • Det skal opdateres, når og når der foretages ændringer i systemets produktionsmiljø.

At være menneske er det ret almindeligt at tænke i retning af, ”Åh! Det skal jeg huske! ” Tro mig, det gør du ikke . Ingen i historien om softwareudvikling har nogensinde gjort (Okay, det tager måske lidt for langt, men du får ideen.?)!

Dokumenter alle data og metadata omkring din produktionsopsætning. Du vil takke dig selv senere. Fremtidige udviklere, der vil være ombord på dit projekt, vil takke dig efterfølgende!

Overvågning & logning?

Under udviklingsperioden for et projekt er det forholdsvis lettere at håndtere fejl og fejl. Er der noget, der ikke fungerer? Lemme logger bare hurtigt på dev-boksen og kontrollerer. Nå, det sker ikke i produktionen. Du kan ikke logge ind på et live system og begynde at kaste rundt bare fordi du ikke forstår, hvor problemet kommer fra.

Opsætning af et ordentligt overvågnings- og loggningssystem er afgørende for at holde et sundhedstjek på det levende system. Intelligente overvågningssystemer er tilgængelige på markedet i dag, som kan give dig fejlfrekvensrapporter, planlagte e-mails for sundhedstjek og mere.

Vi besluttede os for Sumologic og DataDog som vores ledsagere til at gyde log- og overvågningssystemet til vores applikation. Det var næsten betagende, da jeg kunne finde ud af problemet i systemet uden at lave en "ssh".

En dekorativ opsætning af et overvågningssystem går langt med at lægge et stærkt fundament for dit live produkt . Gå ikke glip af det!

Pis! Nå, det er en wrap! Hvad er dine fund? Del gerne dine lærdomme, råd eller tip i kommentarerne nedenfor!