AWS Parameter Store vs umhverfisbreytur

Í þessari grein mun ég skoða hvort og hvenær AWS Parameter Store ætti að nota til að skipta um umhverfisbreytur innan AWS innviða. Ég mun ekki vera að skoða hverjar þessar eru eða hvernig eigi að setja þær upp á neinn ítarlegan hátt heldur samanburð á milli þeirra tveggja.

Mál fyrir breytur í umhverfinu

Auðvelt að setja upp

Það er frekar einfalt að fá skipulag með umhverfisbreytum. Hnúturinn hefur til dæmis dotenv mát sem hægt er að setja upp um npm með einni skipun:

npm setja upp dotenv

Við verðum að ganga úr skugga um að dotenv hafi aðgangsstað einhvers staðar í handritinu okkar, venjulega með kröfuyfirlýsingu -

krefjast ('dotenv'). config ()

Héðan frá, allt sem við þurfum að gera er að bæta umhverfi breytum okkar við .env skrá sem er sett í rótarmöppu verkefnisins.

Þú getur fundið frekari upplýsingar um dotenv mát hér:

Rétt er að taka fram að Parameter Store deilir upphaflega ekki sömu þáttum til að auðvelda uppsetninguna - ef þú hefur aldrei unnið með Parameter Store áður, getur uppsetningarferlið virst ansi erfitt með nokkur atriði sem þarf að hafa í huga:

  • Þú þarft aðgang að AWS reikningi
  • Þú þarft að vita hvernig á að sigla á AWS mælaborðinu - sérstaklega SSM hlutanum.
  • Viðkvæm / örugg færibreytur ættu að vera dulkóðuð með KMS - sem í sjálfu sér þarfnast viðbótaruppsetningar (https://aws.amazon.com/kms/)
  • Það fer eftir þínum þörfum, þú gætir þurft stillingarþekkingu á annarri AWS þjónustu eins og IAM og SSM til að Parameter Store geti virkað rétt.
  • Allar breytur eru hýstar í skýinu sem krefjast IAM forritunaraðgangs, sem þýðir að samfelld tenging er nauðsynleg (tekið skal fram að hægt er að búa til sérsniðnar staðbundnar uppsetningar með staðbundnum breytum sem hægt er að nota í stað breytur Parameter Store eftir aðstæðum - I myndi í raun hvetja þessa nálgun).

Auðvelt að uppfæra við þróun, dreifingu og prófun

Auðvelt er að uppfæra umhverfisbreytur með áðurnefndri .env skrá og dotenv mát. Einnig er hægt að búa til og nota afbrigði af þessari skrá til að henta hverju umhverfi sem máli skiptir. Innflutningur umhverfisbreytanna okkar í prufu atburðarás virkar á svipaðan hátt (að flytja inn env vars frá viðeigandi dotenv skrá).

Til að dreifa á sviðsetningar- eða framleiðslumiðlara, það eina sem við myndum gera er að nota aðra útgáfu af .env skránni. Þetta er auðveldlega hægt að gera með því að hunsa núverandi .env skrá í útgáfustýringarkerfinu á staðnum (venjulega git) og búa til nýtt eintak á hverju stigi / netþjónstilfelli.

Umhverfisbreytur samlagast einnig ágætlega við Continuous Integration Systems (CI). Hringur CI, til dæmis, hefur sérstakan kafla til að stjórna umhverfisbreytum þar sem hægt er að bæta þeim við verkefnauppbyggingu og uppfæra á einum stað þegar þeir eru tilbúnir til dreifingar -

Frá sjónarhóli Parameter Store er það tungumál / rammi agnostic, sem þýðir að öll skipulag verður annað hvort að vera gerð handvirkt með því að nota AWS SDK með forritaðan aðgang að Parameter Store þjónustunni, eða á svipaðan hátt í gegnum þriðja aðila (svo sem npm mát) . Þó að AWS og þjónusta þess séu viðmiðun fyrir öryggisstaðla í tölvumálum skýsins, þá geta sérsniðnar einingar sem þú vilt þróa eða nýta öryggis varnarleysi vegna illsku eða eftirlits - með það í huga að það eru iðnaðar viðurkenndar einingar fyrir þetta sem eru viðhaldið og samþykkt af traustum aðilum eins og AWS sjálfum.

Frá sjónarhóli dreifingar / prófa kemur Parameter Store einnig með einstakt sett af áskorunum, eins og þó að það séu leiðbeinandi aðferðir, hvernig og hvenær þú velur að hafa samskipti við Parameter Store er alveg undir þér komið.

Umhverfisbreytur eru ókeypis í notkun

Þrátt fyrir að AWS Parameter Store feli ekki í sér aukagjöld (https://aws.amazon.com/systems-manager/pricing), er verðlagsskipulag Amazon fyrir tengda þjónustu eins og KMS (https://aws.amazon.com/kms/pricing ) mun byrja að leggja á aukakostnað miðað við notkun. Aftur á móti er ókeypis að nota umhverfisbreytur.

Svo hvers vegna skipta um umhverfisbreytur? : mál fyrir Parameter Store

Fram að þessu virðist vanilluhverfisbreytanleg lausnin vera að borða Parameter Store í keppninni um yfirburði á sviðinu / öruggum breytilegum vettvangi. Þó að Parameter Store virðist skapa fleiri áskoranir en hún leysir á þessum tímapunkti, eru þó nokkur atriði sem Parameter Store gerir óumdeilanlega betur en umhverfisbreytur:

Hægt er að deila breytum af breytum í verslun á mörgum verkefnum

Besta skipulagið sem ég hef fundið til að deila umhverfisbreytum milli verkefna er að nota sjálfvirkt dreifingarferli sem sækir umhverfisbreytur úr skrá sem er að finna í sameiginlegri einingu, svo sem S3 fötu sem tengist stillingum verkefnisins eftir þörfum (venjulega gert í gegnum handrit sem er keyrt frá CI þjónustu). Af fyrri reynslu er þetta sá semantískasti kostur (vinsamlegast láttu mig vita ef þú hefur reynslu af betri valkostum). Þetta er því miður leiðinleg æfing til að byrja með og að lokum ekki eitthvað sem þú myndir vilja viðhalda handvirkt til langs tíma, sem er aðallega vegna þess að öll mistök eða yfirsjón í leiðinni þegar þú setur upp eða viðheldur henni gæti leitt til vandræða.

Allt sem við getum afhent AWS þjónustu til að gera sjálfvirkan, ættum við og það er þar sem Parameter Store skín. Að deila KMS lyklum og breytum Parameter Store á milli verkefna kemur út úr kassanum.

Ég vil taka skref til baka og skoða AWS frá heildrænu sjónarhorni. Amazon hefur unnið frábært starf við að stjórna öllum þætti skýjatölvu og hefur mikið af þróunarteymum sem eru tileinkuð sértækri þjónustu sem þú og ég munum aldrei geta afritað. Þetta þýðir að lokum að þegar þú hefur keypt þér Amazon 'upplifunina' ættir þú að nota alla þá þjónustu sem er hönnuð til að vinna saman undir merkjum AWS skýjainnviða. Þó að það hafi sín vandamál (eins og þú og ég að vera alveg lokaðir inni í AWS sem þjónustuaðili), þá er það að lokum auðveldara að losa þig við allt sem þú getur, þar sem það er eitt minna sem þú þarft að hafa áhyggjur af - jafnvel þó að það sé kostar aðeins aukalega.

Parameter Store getur notað aðgangsstýringu

Að hafa sérstaka stjórn á aðgangi notenda gerir IAM þjónustuna að einum mesta eiginleika AWS, sérstaklega þegar kemur að því að takast á við viðkvæmar upplýsingar eins og API lykla eða lykilorð. Hugmyndin um að stjórna aðgengi að umhverfisbreytum í vanillu skilningi (t.d. nota dotenv nálgun) er bara ekki valkostur (nema þú sért tilbúinn að þróa þína eigin sérsniðna lausn - eða hreyfa þig utan heimsins „bestu starfshættir“).

Gildi breytur eru auðveldlega uppfærð

Til þess að uppfæra öll gildi í Parameter Store þínum er allt sem þú þarft viðeigandi aðgang að AWS mælaborðinu þínu (eða CLI), sem þýðir að jafnvel liðsmenn sem ekki eru tæknir geta uppfært gildi með smá reynslu af AWS mælaborðinu.

Í umhverfisbreytilegu hlið rifrildisins verður uppfærsla á umhverfisbreytum erfið þar sem venjulega eru aðeins hæfir liðsmenn sem hafa aðgang að netheimildarheimildum aðgang að og uppfæra þessar. Að auki opnar þetta verkefnið fyrir lagi af varnarleysi þar sem að skrá þig inn á netþjóninn og uppfæra kjarnaverkefnisskrár (jafnvel með sjálfvirkri uppsetningu) getur leitt til vandræða.

KMS getur dulkóða gildi Parameter Store auðveldlega

Þrátt fyrir að upphafsuppsetning dulkóðunargilda í Parameter Store gæti virst svolítið afdrifarík, þá þegar það er vant því, þá er það nokkuð einfalt og skiptir miklu máli - jafnvel frá tæknilegu sjónarmiði. Þetta er líka frábært lag af öryggi sem er bætt við, utan húss.

Það er mögulegt að nota dulkóðun fyrir umhverfisbreytur sem þú vilt kannski ekki geyma í venjulegum texta, en þetta getur verið erfitt að setja upp og viðhalda handvirkt.

Hægt er að skipuleggja breytur á breytum í búðum

Stillingum framleiðslu og stigun er stjórnað á einum stað þegar Parameter Store er notað, sem felur í sér flokkun og síun breytur og jafnvel bæta við lýsingum til að skýra tilgang þeirra.

Frá umhverfisbreytilegu sjónarhorni færðu bara ekki breytanleg skipulag. Að hafa nokkrar umhverfisbreytur gæti verið auðvelt að stjórna en það verður erfitt þegar það eru of margar breytur til að stjórna handvirkt. Það gæti verið mögulegt að skipuleggja umhverfisbreytur í mismunandi skrár og möppur, en það er í raun ekki raunhæfur lausnarlaus fyrir þetta sem virðist ekki flækja hlutina að óþörfu.

Á endanum ætti ákvörðunin um hverjar þessara tveggja lausna að nota að ráðast af flækjustigi og umfangi verkefnisins með hliðsjón af þeim þáttum sem nefndir eru hér að ofan.

Niðurstaða

Það eru aðrir þættir sem þarf að taka tillit til þegar þú velur hvort nota eigi Parameter Store eða umhverfisbreytur til að stjórna stigum / öruggum breytum þínum, en vonandi höfum við í þessari grein fjallað um mikilvægar.

Ef þú hefur einhverja aðra þætti sem þér finnst vert að skoða, langar mig til að heyra hugsanir þínar.