DEV Community

Cover image for Twelve-Factor App módszer a gyakorlatban / 1. rész
Simon Benjámin
Simon Benjámin

Posted on

Twelve-Factor App módszer a gyakorlatban / 1. rész

A Twelve-factor app alapján fogok pár dolgot az egyik projektemmel kapcsolatban megosztani. Jelenlegi cél a kiinduló állapot feljavítása, kezelhetőbbé tétele. A szokásos: megy a versenyautó és menet közben cserélünk motort. Szépen lépésenként egy jobb, karbantarthatóbb, stabilabb, biztosabb, működőbb környezet és kód felé haladva.
Tanulni, fejlődni, minden nap!

I. Codebase

A kódbázissal nem volt gond, ugyanis nem volt verziókezelve 😎 😆 (meglepő de egy másik projekt kapcsán is pont ezt mesélték, hogy eddig 2 fejlesztő dolgozott és most kezdték verziókelőbe beemelni a kódot) ezt gyorsan lehetett orvosolni egy github repositoryval. Ami még engem zavart, hogy semmi archívum, előzmény nem állt rendelkezésre, hogy mit csinált az előző fejlesztő az elmúlt időszakban.
Szerencsére a szerveren talált mentésekből (havi és napi 1 hétre visszamenőleg) végül sikerült gyártani egy kis verziótörténetet.

II. Dependencies

A függőségek a kódbázissal kéz a kézben jártak, a jövőben Composer-t használunk erre.

III. Config

Itt lesz teendő bőven, minden IS a kódba van égetve. Ezeket szépen el kell kezdeni kiszervezni. Ennek az első lépései megtörténtek. Én régebben az Apache-ban használtam ENV beállításokat, pl:

SetEnv APP_ENV "development"
Enter fullscreen mode Exit fullscreen mode

Ez alapján már a fejlesztőkörnyezetből (Vagrant virtuális gép) az emailek nem kerülnek kiküldésre, hanem a MailHog kapja el őket.

Elkezdtem néhány Bash scriptet készíteni: init, külső programok telepítése (Composer, PHPUnit, PHPCPD, PHPMD és PHP-CS-Fixer) és itt is szükségem lett volna az APP_ENV értékére, ami ugye Apache beállítás és CLI-ben nem elérhető.

Első körben átraktam mindent az /env/environment-be, majd mivel nem akartam ezt a globális részt szemetelni, meg amúgy is szebb elkülönítve, illetve az ebben használt formátumot (APP_ENV=development) az Apache /etc/apache2/envvars nem tudta betölteni / feldolgozni, így a /etc/profile.d/CUSTOM-environment.sh-be kerültek át az adatok, ide viszont már az export APP_ENV=development formában.

Az Apache /etc/apache2/envvars-ban meg simán berántható a fenti file tartalma:

# Load all the CUSTOM environment variables.
. /etc/profile.d/CUSTOM-environment.sh
Enter fullscreen mode Exit fullscreen mode

Így most CLI-ben is megvannak a beállítások és az Apache-on keresztül a PHP is megkapja őket.

Image of Datadog

Master Mobile Monitoring for iOS Apps

Monitor your app’s health with real-time insights into crash-free rates, start times, and more. Optimize performance and prevent user churn by addressing critical issues like app hangs, and ANRs. Learn how to keep your iOS app running smoothly across all devices by downloading this eBook.

Get The eBook

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay