Ανάπτυξη
Ροή εργασιών
Παρακάτω παρουσιάζεται το διάγραμμα ροής εργασιών ανάπτυξης που συνίσταται για το hcmr portal.
flowchart TD
A[Προγραμματισμός Core Wrapper ή frontend ή backend] --> B[Δοκιμές τοπικά]
B --> C[Git Commit & Push σε dev branch]
C --> D[ανάπτυξη/deploy σε portal-dev]
D --> E[Δοκιμές online]
G --> H[Pull master branch σε production]
H --> N{Αναφέρεται Σφάλμα?}
E --> N
N -->|Όχι| O[Αποδοχή έκδοσης: yarn version σε frontend, npm version <x.x.x> σε backend, ενημέρωση CHANGELOG σε wrapper]
O --> G[merge με master branch τοπικά]
N -->|Ναι| P[Ανάγνωση logs]
P --> K{Συγκεκριμένος χρήστης?}
K -->|Ναι| R[Impersonate μέσω Keycloak]
K -->|Όχι| Z
R --> Z[αποσφαλμάτωση τοπικά]
Z --> A
H --> S[Done ✅]
Λεπτομέρειες για ενδοεπικοινωνία μεταξύ μικρουπηρεσιών
Είναι σημαντικό να διαχωριστούν ορισμένα στοιχεία της αρχιτεκτονικής μεταξύ ανάπτυξης και παραγωγικού περιβάλλοντος. Αυτό φαίνεται και με μία πρώτη ματιά στα docker compose files για development και για production καθώς και στις αντίστοιχες περιβαλλοντικές μεταβλητές.
Σε περιβάλλον development πρέπει να δοθεί προσοχή ότι η επικοινωνία μεταξύ των μικροϋπηρεσιών γίνεται με τη χρήση του localhost + την πόρτα του host που εκθέτει την αντίστοιχη υπηρεσία. Αντιθέτως σε περιβάλλον production καθώς υπάρχει reverse proxy αλλά και για λόγους ελάττωσης της επιφάνειας επιθέσεων, η επικοινωνία γίνεται με το container hostname + την εσωτερική πόρτα της κάθε υπηρεσίας η οποία είναι συνήθως μία σταθερή (8888) εκτός και αν δηλωθεί διαφορετικά.