Architecture Decision Record

Active theme: Light

← முடிவு பதிவு எடுத்துக்காட்டுகள்

சூழல் மாறி உள்ளமைவு

உள்ளடக்கம்:

சுருக்கம்

சிக்கல்

எங்கள் பயன்பாடுகள் கலைப்பொருட்கள்/பைனரிகள்/மூலத்துக்கு அப்பாலும் உள்ளமைக்கக்கூடியவையாக இருக்க விரும்புகிறோம், இதனால் ஒரே உருவாக்கம் அதன் வரிசைப்படுத்தல் சூழலைப் பொறுத்து வெவ்வேறு விதமாக நடந்துகொள்ள முடியும்.

  • இதை அடைய, சூழல் மாறி உள்ளமைவைப் பயன்படுத்த விரும்புகிறோம்.

  • பதிப்புக் கட்டுப்பாட்டில் வைக்கக்கூடிய கோப்புகளைப் பயன்படுத்தி உள்ளமைவை நிர்வகிக்க விரும்புகிறோம்.

  • எதை உள்ளமைக்கலாம், தொடர்புடைய இயல்புநிலைகள் என்ன என்பதை அறிவது போன்ற சில உருவாக்குநர் அனுபவ வசதிகளை வழங்க விரும்புகிறோம்.

முடிவு

தொடர்புடைய இயல்புநிலைக் கோப்பு மற்றும் வரைவுக் கோப்புடன் .env கோப்புகளில் முடிவு செய்யப்பட்டது.

நிலை

முடிவு செய்யப்பட்டது. புதிய திறன்கள் எழும்போது அவற்றைப் பரிசீலிக்கத் திறந்துள்ளோம்.

விவரங்கள்

அனுமானங்கள்

பயன்பாட்டுக் குறியீட்டையும் சூழல் குறியீட்டையும் பிரிப்பதை நாங்கள் விரும்புகிறோம். வளர்ச்சிச் சூழல், சோதனைச் சூழல், செயல்விளக்கச் சூழல், உற்பத்திச் சூழல் போன்ற வெவ்வேறு சூழல்களில் பயன்பாடு வெவ்வேறு விதமாக வேலை செய்ய வேண்டும் என்று அனுமானிக்கிறோம்.

"12 factor app" என்ற தொழில் நடைமுறையையும், அதைவிட தொடர்புடைய "15 factor app" நடைமுறையையும் நாங்கள் விரும்புகிறோம்.

எங்கள் முந்தைய திட்டங்கள் பலவும் .env கோப்பு அல்லது அது போன்ற .env கோப்பகத்தின் மரபைப் பயன்படுத்தியுள்ளன. இவற்றைப் பதிப்புக் கட்டுப்பாட்டிலிருந்து விலக்கி வைத்து, அதற்குப் பதிலாக அவற்றை வரிசைப்படுத்தவும், பதிப்பிடவும், நிர்வகிக்கவும் வேறு வழியைப் பயன்படுத்துவது ஒரு வழக்கமான நடைமுறை.

கட்டுப்பாடுகள்

ரகசியங்களை எங்கள் மூலக் குறியீட்டு மேலாண்மை (SCM) பதிப்புக் கட்டுப்பாட்டு அமைப்பிலிருந்து (VCS) விலக்கி வைக்க விரும்புகிறோம்.

பிரபலமான மென்பொருள் கட்டமைப்புகள் மற்றும் நூலகங்களுடன் இணக்கத்தை இலக்காகக் கொள்ள விரும்புகிறோம். எடுத்துக்காட்டாக, சூழல் மாறி உள்ளமைவைப் படிக்க Node க்கு "dotenv" தொகுதி உள்ளது.

நிலைப்பாடுகள்

சில அணுகுமுறைகளைப் பரிசீலித்தோம்:

  • உள்ளமைவை config.js கோப்பு போன்று பயன்பாட்டிலேயே சேமித்தல்.

  • உள்ளமைவை .env கோப்பு போன்று சூழலில் சேமித்தல்.

  • உரிம சேவையகம் போன்ற அறியப்பட்ட இடத்திலிருந்து உள்ளமைவைப் பெறுதல்.

வாதம்

.env கோப்பு என்ற அணுகுமுறையைத் தேர்ந்தெடுத்தோம், ஏனெனில்:

  • நிபுணர்கள் உட்பட பிரபலமானது.

  • எங்கள் குழுக்கள் பல திட்டங்களில் பல முறை வெற்றிகரமாகப் பயன்படுத்திய .env கோப்புகளின் வடிவத்தைப் பின்பற்றுகிறது.

  • எளிமையானது. குறிப்பாக, உரிம சேவையக அணுகுமுறையுடன் ஒப்பிடும்போது தணிக்கைத் திறன்கள் இல்லாதது போன்ற நாங்கள் காணும் குறிப்பிடத்தக்க சமரசங்களை இப்போதைக்கு ஏற்றுக்கொள்கிறோம்.

தாக்கங்கள்

பொதுவான சூழல் மாறி உள்ளமைவை எந்த ரகசிய மேலாண்மையிலிருந்தும் பிரிப்பதற்கான வழியை நாங்கள் கண்டறிய வேண்டும்.

தொடர்புடையவை

தொடர்புடைய முடிவுகள்

எங்கள் அனைத்துப் பயன்பாடுகளும் இந்த அணுகுமுறையைப் பயன்படுத்தும் என எதிர்பார்க்கிறோம்.

பைனரி அல்லது மூலக் குறியீட்டில் கடினக்குறியீடு செய்வது போன்ற குறைந்த திறனுள்ள அணுகுமுறையைப் பயன்படுத்தும் எங்கள் பயன்பாடுகளை மேம்படுத்தத் திட்டமிடுவோம்.

உரிம சேவையகம் போன்ற அதிக திறனுள்ள அணுகுமுறையைப் பயன்படுத்தும் எங்கள் பயன்பாடுகளை அப்படியே வைத்திருப்போம்.

தொடர்புடைய தேவைகள்

கோப்புகளுக்கான hooks, சோதனைகள், தொடர்ச்சியான ஒருங்கிணைப்பு உட்பட devops திறன்களைச் சேர்ப்போம்.

இந்த முடிவில் அனைத்து உருவாக்குநர் குழுத் தோழர்களுக்கும் பயிற்சி அளிக்க வேண்டும்.

தொடர்புடைய படைப்புகள்

நாங்கள் வரிசைப்படுத்தும் ஒவ்வொரு பகுதிக்கும் அதன் சொந்த .env கோப்பும் தொடர்புடைய கோப்புகளும் தேவைப்படும்.

தொடர்புடைய கொள்கைகள்

எளிதில் மாற்றியமைக்கக்கூடியது.

குறிப்புகள்

எடுத்துக்காட்டுக் கோப்பு .env:

NAME=Alice Anderson
EMAIL=alice@example.com

எடுத்துக்காட்டுக் கோப்பு .env.defaults:

NAME=Joe Doe
EMAIL=joe@example.com

விசைகள் மட்டும் கொண்ட எடுத்துக்காட்டுக் கோப்பு .env.schema:

NAME
EMAIL