Architecture Decision Record

Active theme: Light

← ನಿರ್ಧಾರ ದಾಖಲೆ ಉದಾಹರಣೆಗಳು

ಪರಿಸರ ಚರ ಸಂರಚನೆ

ವಿಷಯಗಳು:

ಸಾರಾಂಶ

ಸಮಸ್ಯೆ

ನಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಆರ್ಟಿಫ್ಯಾಕ್ಟ್‌ಗಳು/ಬೈನರಿಗಳು/ಮೂಲ ಕೋಡ್ ಅನ್ನು ಮೀರಿ ಸಂರಚಿಸಬಹುದಾದವುಗಳಾಗಿರಬೇಕೆಂದು ನಾವು ಬಯಸುತ್ತೇವೆ, ಇದರಿಂದ ಒಂದೇ ಬಿಲ್ಡ್ ಅದರ ನಿಯೋಜನೆ ಪರಿಸರವನ್ನು ಅವಲಂಬಿಸಿ ಬೇರೆ ರೀತಿ ವರ್ತಿಸಬಹುದು.

  • ಇದನ್ನು ಸಾಧಿಸಲು, ನಾವು ಪರಿಸರ ಚರ ಸಂರಚನೆಯನ್ನು ಬಳಸಲು ಬಯಸುತ್ತೇವೆ.

  • ಆವೃತ್ತಿ ನಿಯಂತ್ರಣದಲ್ಲಿಡಬಹುದಾದ ಕಡತಗಳನ್ನು ಬಳಸಿ ಸಂರಚನೆಯನ್ನು ನಿರ್ವಹಿಸಲು ನಾವು ಬಯಸುತ್ತೇವೆ.

  • ಯಾವುದನ್ನು ಸಂರಚಿಸಬಹುದು ಮತ್ತು ಸಂಬಂಧಿತ ಡೀಫಾಲ್ಟ್‌ಗಳು ಯಾವುವು ಎಂದು ತಿಳಿಯುವಂತಹ ಕೆಲವು ಡೆವಲಪರ್ ಅನುಭವ ಸೌಕರ್ಯಗಳನ್ನು ಒದಗಿಸಲು ನಾವು ಬಯಸುತ್ತೇವೆ.

ನಿರ್ಧಾರ

ಸಂಬಂಧಿತ ಡೀಫಾಲ್ಟ್ ಕಡತ ಮತ್ತು ಸ್ಕೀಮಾ ಕಡತದೊಂದಿಗೆ .env ಕಡತಗಳನ್ನು ಆರಿಸಲು ನಿರ್ಧರಿಸಲಾಗಿದೆ.

ಸ್ಥಿತಿ

ನಿರ್ಧರಿಸಲಾಗಿದೆ. ಹೊಸ ಸಾಮರ್ಥ್ಯಗಳು ಬಂದಂತೆ ಅವನ್ನು ಪರಿಗಣಿಸಲು ಮುಕ್ತವಾಗಿದ್ದೇವೆ.

ವಿವರಗಳು

ಊಹೆಗಳು

ಅಪ್ಲಿಕೇಶನ್ ಕೋಡ್ ಮತ್ತು ಪರಿಸರ ಕೋಡ್ ಅನ್ನು ಬೇರ್ಪಡಿಸುವುದನ್ನು ನಾವು ಬೆಂಬಲಿಸುತ್ತೇವೆ. ಅಭಿವೃದ್ಧಿ ಪರಿಸರ, ಪರೀಕ್ಷಾ ಪರಿಸರ, ಡೆಮೊ ಪರಿಸರ, ಉತ್ಪಾದನಾ ಪರಿಸರ ಇತ್ಯಾದಿ ವಿಭಿನ್ನ ಪರಿಸರಗಳಲ್ಲಿ ಅಪ್ಲಿಕೇಶನ್ ಬೇರೆ ರೀತಿ ಕೆಲಸ ಮಾಡಬೇಕಾಗುತ್ತದೆ ಎಂದು ನಾವು ಊಹಿಸುತ್ತೇವೆ.

"12 factor app" ಎಂಬ ಉದ್ಯಮ ಅಭ್ಯಾಸವನ್ನು ಮತ್ತು ಅದಕ್ಕಿಂತ ಹೆಚ್ಚಾಗಿ ಸಂಬಂಧಿತ "15 factor app" ಅಭ್ಯಾಸವನ್ನು ನಾವು ಬೆಂಬಲಿಸುತ್ತೇವೆ.

ನಮ್ಮ ಅನೇಕ ಹಿಂದಿನ ಯೋಜನೆಗಳು .env ಕಡತ ಅಥವಾ ಅಂತಹುದೇ .env ಡೈರೆಕ್ಟರಿಯ ಸಂಪ್ರದಾಯವನ್ನು ಬಳಸಿವೆ. ಇವನ್ನು ಆವೃತ್ತಿ ನಿಯಂತ್ರಣದಿಂದ ಹೊರಗಿಡುವುದು, ಮತ್ತು ಬದಲಿಗೆ ಅವನ್ನು ನಿಯೋಜಿಸಲು, ಆವೃತ್ತಿ ಮಾಡಲು ಮತ್ತು ನಿರ್ವಹಿಸಲು ಬೇರೆ ಮಾರ್ಗವನ್ನು ಬಳಸುವುದು ವಿಶಿಷ್ಟ ಅಭ್ಯಾಸ.

ನಿರ್ಬಂಧಗಳು

ನಮ್ಮ ಮೂಲ ಕೋಡ್ ನಿರ್ವಹಣೆ (SCM) ಆವೃತ್ತಿ ನಿಯಂತ್ರಣ ವ್ಯವಸ್ಥೆಯಿಂದ (VCS) ರಹಸ್ಯಗಳನ್ನು ಹೊರಗಿಡಲು ನಾವು ಬಯಸುತ್ತೇವೆ.

ಜನಪ್ರಿಯ ತಂತ್ರಾಂಶ ಚೌಕಟ್ಟುಗಳು ಮತ್ತು ಗ್ರಂಥಾಲಯಗಳೊಂದಿಗೆ ಹೊಂದಾಣಿಕೆಯನ್ನು ಗುರಿಯಾಗಿಸಲು ನಾವು ಬಯಸುತ್ತೇವೆ. ಉದಾಹರಣೆಗೆ, ಪರಿಸರ ಚರ ಸಂರಚನೆಯನ್ನು ಓದಲು Node ನಲ್ಲಿ "dotenv" ಮಾಡ್ಯೂಲ್ ಇದೆ.

ನಿಲುವುಗಳು

ನಾವು ಕೆಲವು ವಿಧಾನಗಳನ್ನು ಪರಿಗಣಿಸಿದೆವು:

  • ಸಂರಚನೆಯನ್ನು config.js ಕಡತದಂತಹ ಅಪ್ಲಿಕೇಶನ್‌ನಲ್ಲಿ ಸಂಗ್ರಹಿಸುವುದು.

  • ಸಂರಚನೆಯನ್ನು .env ಕಡತದಂತಹ ಪರಿಸರದಲ್ಲಿ ಸಂಗ್ರಹಿಸುವುದು.

  • ಪರವಾನಗಿ ಸರ್ವರ್‌ನಂತಹ ತಿಳಿದ ಸ್ಥಳದಿಂದ ಸಂರಚನೆಯನ್ನು ಪಡೆಯುವುದು.

ವಾದ

ನಾವು .env ಕಡತದ ವಿಧಾನವನ್ನು ಆರಿಸಿದೆವು ಏಕೆಂದರೆ:

  • ಇದು ತಜ್ಞರಲ್ಲಿಯೂ ಸೇರಿದಂತೆ ಜನಪ್ರಿಯವಾಗಿದೆ.

  • ಇದು ನಮ್ಮ ತಂಡಗಳು ಅನೇಕ ಯೋಜನೆಗಳಲ್ಲಿ ಅನೇಕ ಬಾರಿ ಯಶಸ್ವಿಯಾಗಿ ಬಳಸಿರುವ .env ಕಡತಗಳ ಮಾದರಿಯನ್ನು ಅನುಸರಿಸುತ್ತದೆ.

  • ಇದು ಸರಳ. ಗಮನಾರ್ಹವಾಗಿ, ಪರವಾನಗಿ ಸರ್ವರ್ ವಿಧಾನಕ್ಕೆ ಹೋಲಿಸಿದರೆ ಲೆಕ್ಕಪರಿಶೋಧನೆ ಸಾಮರ್ಥ್ಯಗಳ ಕೊರತೆಯಂತಹ ನಾವು ಕಾಣುವ ಗಮನಾರ್ಹ ಸಾಧಕ-ಬಾಧಕ ಹೊಂದಾಣಿಕೆಗಳೊಂದಿಗೆ ನಾವು ಸದ್ಯಕ್ಕೆ ಸರಿಯಾಗಿದ್ದೇವೆ.

ಪರಿಣಾಮಗಳು

ಸಾರ್ವಜನಿಕವಾಗಿರುವ ಪರಿಸರ ಚರ ಸಂರಚನೆಯನ್ನು ಯಾವುದೇ ರಹಸ್ಯಗಳ ನಿರ್ವಹಣೆಯಿಂದ ಬೇರ್ಪಡಿಸುವ ಮಾರ್ಗವನ್ನು ನಾವು ಕಂಡುಕೊಳ್ಳಬೇಕು.

ಸಂಬಂಧಿತ

ಸಂಬಂಧಿತ ನಿರ್ಧಾರಗಳು

ನಮ್ಮ ಎಲ್ಲಾ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಈ ವಿಧಾನವನ್ನು ಬಳಸುತ್ತವೆ ಎಂದು ನಾವು ನಿರೀಕ್ಷಿಸುತ್ತೇವೆ.

ಬೈನರಿ ಅಥವಾ ಮೂಲ ಕೋಡ್‌ನಲ್ಲಿ ಹಾರ್ಡ್‌ಕೋಡ್ ಮಾಡುವಂತಹ ಕಡಿಮೆ ಸಾಮರ್ಥ್ಯದ ವಿಧಾನವನ್ನು ಬಳಸುವ ನಮ್ಮ ಯಾವುದೇ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಉನ್ನತೀಕರಿಸಲು ನಾವು ಯೋಜಿಸುತ್ತೇವೆ.

ಪರವಾನಗಿ ಸರ್ವರ್‌ನಂತಹ ಹೆಚ್ಚು ಸಾಮರ್ಥ್ಯದ ವಿಧಾನವನ್ನು ಬಳಸುವ ನಮ್ಮ ಯಾವುದೇ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಇರುವಂತೆಯೇ ಇಡುತ್ತೇವೆ.

ಸಂಬಂಧಿತ ಅವಶ್ಯಕತೆಗಳು

ಹುಕ್‌ಗಳು, ಪರೀಕ್ಷೆಗಳು ಮತ್ತು ನಿರಂತರ ಏಕೀಕರಣ ಸೇರಿದಂತೆ ಕಡತಗಳಿಗಾಗಿ ನಾವು devops ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಸೇರಿಸುತ್ತೇವೆ.

ಈ ನಿರ್ಧಾರದ ಬಗ್ಗೆ ನಾವು ಎಲ್ಲಾ ಡೆವಲಪರ್ ಸಹೋದ್ಯೋಗಿಗಳಿಗೆ ತರಬೇತಿ ನೀಡಬೇಕು.

ಸಂಬಂಧಿತ ಆರ್ಟಿಫ್ಯಾಕ್ಟುಗಳು

ನಾವು ನಿಯೋಜಿಸುವ ಪ್ರತಿ ಪ್ರದೇಶಕ್ಕೂ ತನ್ನದೇ .env ಕಡತ ಮತ್ತು ಸಂಬಂಧಿತ ಕಡತಗಳು ಬೇಕಾಗುತ್ತವೆ.

ಸಂಬಂಧಿತ ತತ್ವಗಳು

ಸುಲಭವಾಗಿ ಹಿಂದಿರುಗಿಸಬಹುದಾದ.

ಟಿಪ್ಪಣಿಗಳು

ಉದಾಹರಣೆ ಕಡತ .env:

NAME=Alice Anderson
EMAIL=alice@example.com

ಉದಾಹರಣೆ ಕಡತ .env.defaults:

NAME=Joe Doe
EMAIL=joe@example.com

ಕೀಗಳನ್ನು ಮಾತ್ರ ಹೊಂದಿರುವ ಉದಾಹರಣೆ ಕಡತ .env.schema:

NAME
EMAIL