Gatsby
ΠΠΠ§ΠΠ«Π
Gatsby
ΠΠΠ§ΠΠ«Π
- Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ
- 10 ΠΠΊΡ 2018
- Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
- 44,465
- ΠΠ°ΠΉΠΊΠΈ
- 204,515
ΠΠ²ΡΠΎΡ: javascript.ninja
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅: CI/CD Π΄Π»Ρ frontend-ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ° (2021)

DevOps - ΡΡΠΎ ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ ΠΊΡΠ»ΡΡΡΡΠ°, Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΡ. ΠΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ DevOps-ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΡΠ΅Π·ΠΊΠΎ ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ Π²Π°ΡΡ ΡΠ΅Π½Π½ΠΎΡΡΡ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Π° CI/CD - ΡΠ΅ΡΠ΄ΡΠ΅ DevOps
ΠΡΠ½ΠΎΠ²Π°Π½ΠΎ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΡΡ ΡΠΎΠ±ΡΡΠΈΡΡ
ΠΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π² GitLab ΠΈ ΡΡΡΠΎΠΈΠΌ (ΠΏΠΎ Π½Π°ΡΠ΅ΠΌΡ ΠΌΠ½Π΅Π½ΠΈΡ) ΠΎΠ΄Π½Ρ ΠΈΠ· ΠΌΠΎΡΠ½Π΅ΠΉΡΠΈΡ CI/CD ΡΠΈΡΡΠ΅ΠΌ Π² ΠΌΠΈΡΠ΅. ΠΡ ΠΏΡΠΎΡΠΈΠ²Π½ΠΈΠΊΠΈ "Π³ΠΎΠ»ΠΎΡΠΎΠ² Π² Π³ΠΎΠ»ΠΎΠ²Π΅" ΠΈ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ²ΠΎΠΉ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠΏΡΡ
ΠΠΎΠ»Π΅Π΅ 30 Π²ΠΈΠ΄Π΅ΠΎ Ρ ΡΠ΅ΠΎΡΠΈΠ΅ΠΉ ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°ΠΌΠΈ
ΠΠ°ΡΠ° Π·Π°Π΄Π°ΡΠ° - Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π²Π°ΠΌ copy-paste Π·Π°ΠΊΠ»ΠΈΠ½Π°Π½ΠΈΠΉ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ CI/CD, Π° Π΄Π°ΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈ ΠΊ ΡΠ΅ΠΌΡ Π²Ρ ΡΡΡΠ΅ΠΌΠΈΡΠ΅ΡΡ
4 ΡΠ΅ΠΌΠΈΠ½Π°ΡΠ° Ρ ΠΆΠΈΠ²ΡΠΌ ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ
Π ΡΠ΅ΠΎΡΠΈΠΈ, ΡΠ΅ΠΎΡΠΈΡ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ, Π½ΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅... ΠΡΠΎΠΉΠ΄ΠΈΡΠ΅ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π½Π°ΠΌΠΈ Π²ΡΠ΅ ΡΠ°Π³ΠΈ ΠΏΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ CI/CD Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ , ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΡΡ ΠΊ ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ
C ΡΠΎΠΊΡΡΠΎΠΌ Π½Π° JS. ΠΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΠ½Ρ, Π½ΠΎ ΠΈ Π±ΡΠΊ
CI/CD - ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½Π°Ρ ΡΡΡΠΊΠ°, Π½Π΅ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½Π°Ρ ΠΊ ΡΠ·ΡΠΊΡ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π²Π΅Π·Π΄Π΅ Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ° ΠΈ Π½ΡΠ°Π½ΡΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΈ ΡΡΠ΅ΠΊΠΎΠΌ
ΠΠΎΠ³Π΄Π° ΠΌΡ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°, Π²ΡΡΡΡΠΏΠΈΠ»ΠΈ Π½Π° DevOps.js ΠΈ HolyJS Ρ Π΄ΠΎΠΊΠ»Π°Π΄Π°ΠΌΠΈ ΡΡ ΠΎΠΆΠ΅ΠΉ ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠΈ, ΡΡΠ°Π»ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π²ΡΠ΅ ΡΠΎΠ³Π»Π°ΡΠ½Ρ ΡΡΠΎ Β«DevOps ΡΡΠΎ ΠΊΡΠ»ΡΡΡΡΠ°, Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΡΒ», Π΄Π»Ρ ΡΡΠ΄ΠΎΠ²ΠΎΠ³ΠΎ javascript-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠ»ΠΎΠ²Π°. ΠΠ΅Π· ΡΠ΅ΡΡΡΠ·Π½ΠΎΠ³ΠΎ Π±ΡΠΊΠ³ΡΠ°ΡΠ½Π΄Π° Π² Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ *nix-ΡΠΈΡΡΠ΅ΠΌ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΡΡ ΠΊΡΠ΄Π°-ΡΠΎ Π΄Π°Π»ΡΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ "eslint - docker - docker registry" ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π° Π΅ΡΠ»ΠΈ Π½Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΠ΅Π· ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΎΡΠΎΠ·Π½Π°Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ - Π΄Π°ΠΆΠ΅ ΡΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Π·Π°ΠΏΡΠΎΡ Π² Google ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΠΏΡΠΎΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ, Π½Π΅ Π³ΠΎΠ²ΠΎΡΡ ΡΠΆΠ΅ ΠΎΠ± ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ, Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅.
Π ΡΡΡΡΠΊΡΡΡΠ΅ ΠΌΠ°ΡΡΠ΅Ρ-ΠΊΠ»Π°ΡΡΠΎΠ²
ΠΠ°ΡΠ° Π·Π°Π΄Π°ΡΠ° - Π½Π΅ ΠΏΡΠΎΠ΄Π°ΡΡ Π²Π°ΠΌ GitLab (Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Π²Π΅Π·Π΄Π΅ Π³Π΄Π΅ GitLab Π±ΡΠ΄Π΅Ρ ΡΠΏΠΎΠΌΠΈΠ½Π°ΡΡΡΡ - ΡΠΎΠΊΡΡ Π½Π° Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ), Π° Π΄Π°ΡΡ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ Π±Π°Π·Ρ ΠΏΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ CI/CD Π² ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ Π»ΡΠ±ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ
Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠ΄Π΅Π»Π°ΡΡ Π²Π°Ρ ΠΈ Π²Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ Elite DevOps performer, ΡΠΎ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΡ ΠΊ ΡΡΠΎΠΌΡ, Π΄Π°Π² ΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΊΠ°ΠΊ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠΎΠΈΡΡ pipeline, ΡΠ°Π³ Π·Π° ΡΠ°Π³ΠΎΠΌ ΡΠ»ΡΡΡΠ°Ρ Π΅Π³ΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠΎΠΈΡ ΡΠ΅ΡΠΈΡΡ ΠΈ Π³Π΄Π΅ Π΅ΡΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π» Π΄Π»Ρ ΡΠ°Π·Π²ΠΈΡΠΈΡ.
ΠΡ ΠΎΡΠΎΠ·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡΡ ΠΏΡΡΡ "from zero to hero" Π·Π° ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΠ½ΠΎ, Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, - Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ Π½Π΅Π·Π°Π²ΠΈΡΡΡΠΈΠΌ ΠΎΡ Π²Π°Ρ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ, Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ GitLab ΠΊΠ°ΠΊ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ CI/CD. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΡΠ°Π·Π±ΠΈΠ»ΠΈ Π²Π΅ΡΡ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π½Π° Π΄Π²Π° ΠΌΠ°ΡΡΠ΅Ρ-ΠΊΠ»Π°ΡΡΠ° - Π²Π²ΠΎΠ΄Π½ΡΠΉ, Π³Π΄Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π±Π΅Π· ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅, ΠΈ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ, Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠ΅ GitLab ΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΡΡΠΈΡΡ "DevOps-Π·ΡΠ΅Π»ΠΎΡΡΠΈ"
ΠΠ°ΡΡΠ΅Ρ-ΠΊΠ»Π°ΡΡ "ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² CI/CD/":
Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ (ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ, ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡΡΡΡ)
Π‘ 0 Π΄ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π΄Π΅ΠΏΠ»ΠΎΡ
Π Π°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ CI/CD ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° node.js + frontend c Π½ΡΠ»Ρ (ΡΠΈΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°) Π΄ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π΄Π΅ΠΏΠ»ΠΎΡ Π½Π° "ΠΆΠ΅Π»Π΅Π·ΠΎ"
CI/CD Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΠΈ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π°, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ΅ΠΌΠΈΠ½Π°ΡΠ΅, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ: ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΡ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π²Π΅ΡΠΊΠ°Ρ .
ΠΠ°ΡΡΠ΅Ρ-ΠΊΠ»Π°ΡΡ "ΠΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ CI/CD c GitLab":
TΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ (ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ, ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡΡΡΡ)
Π‘Π΅ΠΌΠΈΠ½Π°Ρ "Π’ΡΡΠ±ΠΎ-ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ Ρ GitLab"
Π‘ΠΊΠΎΡΠΎΡΡΡ - Π½Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ CI/CD. ΠΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π²ΡΠ΅ΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π½Π°ΠΌ DevOps-ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ° Π² ΡΠ΅Π»ΠΎΠΌ ΠΈ GitLab Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ pipeline ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π³ΠΎΡΠ΄ΠΈΡΡΡΡ
Π‘Π΅ΠΌΠΈΠ½Π°Ρ "Kubernetes ΠΈ CI/CD"
Kubernetes ΡΡΠ°Π» ΠΌΠ΅ΠΉΠ½ΡΡΡΠΈΠΌΠΎΠΌ ΠΎΠ±Π»Π°ΡΠ½ΠΎΠ³ΠΎ ΠΌΠΈΡΠ°. ΠΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΈΠΌ, ΡΡΠΎΠ±Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π½Π°Ρ ΠΊΠΎΠ΄ Π² ΠΎΠ±Π»Π°ΠΊΠ° ΠΈ Π²ΡΠ΅ ΡΡΠΎ - ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ pipeline ΠΈ ΠΈΠ· ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ "Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ" - ΠΊΠΎΠ³Π΄Π° frontend ΠΈ backend Π»Π΅ΠΆΠ°Ρ Π² ΡΠ°Π·Π½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡ .
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅:
Π‘ΠΊΠ°ΡΠ°ΡΡ:
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅: CI/CD Π΄Π»Ρ frontend-ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ° (2021)

DevOps - ΡΡΠΎ ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ ΠΊΡΠ»ΡΡΡΡΠ°, Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΡ. ΠΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ DevOps-ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΡΠ΅Π·ΠΊΠΎ ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ Π²Π°ΡΡ ΡΠ΅Π½Π½ΠΎΡΡΡ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Π° CI/CD - ΡΠ΅ΡΠ΄ΡΠ΅ DevOps
ΠΡΠ½ΠΎΠ²Π°Π½ΠΎ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΡΡ ΡΠΎΠ±ΡΡΠΈΡΡ
ΠΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π² GitLab ΠΈ ΡΡΡΠΎΠΈΠΌ (ΠΏΠΎ Π½Π°ΡΠ΅ΠΌΡ ΠΌΠ½Π΅Π½ΠΈΡ) ΠΎΠ΄Π½Ρ ΠΈΠ· ΠΌΠΎΡΠ½Π΅ΠΉΡΠΈΡ CI/CD ΡΠΈΡΡΠ΅ΠΌ Π² ΠΌΠΈΡΠ΅. ΠΡ ΠΏΡΠΎΡΠΈΠ²Π½ΠΈΠΊΠΈ "Π³ΠΎΠ»ΠΎΡΠΎΠ² Π² Π³ΠΎΠ»ΠΎΠ²Π΅" ΠΈ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ²ΠΎΠΉ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠΏΡΡ
ΠΠΎΠ»Π΅Π΅ 30 Π²ΠΈΠ΄Π΅ΠΎ Ρ ΡΠ΅ΠΎΡΠΈΠ΅ΠΉ ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°ΠΌΠΈ
ΠΠ°ΡΠ° Π·Π°Π΄Π°ΡΠ° - Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π²Π°ΠΌ copy-paste Π·Π°ΠΊΠ»ΠΈΠ½Π°Π½ΠΈΠΉ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ CI/CD, Π° Π΄Π°ΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈ ΠΊ ΡΠ΅ΠΌΡ Π²Ρ ΡΡΡΠ΅ΠΌΠΈΡΠ΅ΡΡ
4 ΡΠ΅ΠΌΠΈΠ½Π°ΡΠ° Ρ ΠΆΠΈΠ²ΡΠΌ ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ
Π ΡΠ΅ΠΎΡΠΈΠΈ, ΡΠ΅ΠΎΡΠΈΡ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ, Π½ΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅... ΠΡΠΎΠΉΠ΄ΠΈΡΠ΅ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π½Π°ΠΌΠΈ Π²ΡΠ΅ ΡΠ°Π³ΠΈ ΠΏΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ CI/CD Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ , ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΡΡ ΠΊ ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ
C ΡΠΎΠΊΡΡΠΎΠΌ Π½Π° JS. ΠΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΠ½Ρ, Π½ΠΎ ΠΈ Π±ΡΠΊ
CI/CD - ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½Π°Ρ ΡΡΡΠΊΠ°, Π½Π΅ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½Π°Ρ ΠΊ ΡΠ·ΡΠΊΡ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π²Π΅Π·Π΄Π΅ Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ° ΠΈ Π½ΡΠ°Π½ΡΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΈ ΡΡΠ΅ΠΊΠΎΠΌ
ΠΠΎΠ³Π΄Π° ΠΌΡ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°, Π²ΡΡΡΡΠΏΠΈΠ»ΠΈ Π½Π° DevOps.js ΠΈ HolyJS Ρ Π΄ΠΎΠΊΠ»Π°Π΄Π°ΠΌΠΈ ΡΡ ΠΎΠΆΠ΅ΠΉ ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠΈ, ΡΡΠ°Π»ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π²ΡΠ΅ ΡΠΎΠ³Π»Π°ΡΠ½Ρ ΡΡΠΎ Β«DevOps ΡΡΠΎ ΠΊΡΠ»ΡΡΡΡΠ°, Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΡΒ», Π΄Π»Ρ ΡΡΠ΄ΠΎΠ²ΠΎΠ³ΠΎ javascript-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠ»ΠΎΠ²Π°. ΠΠ΅Π· ΡΠ΅ΡΡΡΠ·Π½ΠΎΠ³ΠΎ Π±ΡΠΊΠ³ΡΠ°ΡΠ½Π΄Π° Π² Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ *nix-ΡΠΈΡΡΠ΅ΠΌ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΡΡ ΠΊΡΠ΄Π°-ΡΠΎ Π΄Π°Π»ΡΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ "eslint - docker - docker registry" ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π° Π΅ΡΠ»ΠΈ Π½Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΠ΅Π· ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΎΡΠΎΠ·Π½Π°Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ - Π΄Π°ΠΆΠ΅ ΡΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Π·Π°ΠΏΡΠΎΡ Π² Google ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΠΏΡΠΎΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ, Π½Π΅ Π³ΠΎΠ²ΠΎΡΡ ΡΠΆΠ΅ ΠΎΠ± ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ, Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅.
Π ΡΡΡΡΠΊΡΡΡΠ΅ ΠΌΠ°ΡΡΠ΅Ρ-ΠΊΠ»Π°ΡΡΠΎΠ²
ΠΠ°ΡΠ° Π·Π°Π΄Π°ΡΠ° - Π½Π΅ ΠΏΡΠΎΠ΄Π°ΡΡ Π²Π°ΠΌ GitLab (Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Π²Π΅Π·Π΄Π΅ Π³Π΄Π΅ GitLab Π±ΡΠ΄Π΅Ρ ΡΠΏΠΎΠΌΠΈΠ½Π°ΡΡΡΡ - ΡΠΎΠΊΡΡ Π½Π° Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ), Π° Π΄Π°ΡΡ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ Π±Π°Π·Ρ ΠΏΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ CI/CD Π² ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ Π»ΡΠ±ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ
Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠ΄Π΅Π»Π°ΡΡ Π²Π°Ρ ΠΈ Π²Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ Elite DevOps performer, ΡΠΎ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΡ ΠΊ ΡΡΠΎΠΌΡ, Π΄Π°Π² ΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΊΠ°ΠΊ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠΎΠΈΡΡ pipeline, ΡΠ°Π³ Π·Π° ΡΠ°Π³ΠΎΠΌ ΡΠ»ΡΡΡΠ°Ρ Π΅Π³ΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠΎΠΈΡ ΡΠ΅ΡΠΈΡΡ ΠΈ Π³Π΄Π΅ Π΅ΡΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π» Π΄Π»Ρ ΡΠ°Π·Π²ΠΈΡΠΈΡ.
ΠΡ ΠΎΡΠΎΠ·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡΡ ΠΏΡΡΡ "from zero to hero" Π·Π° ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΠ½ΠΎ, Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, - Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ Π½Π΅Π·Π°Π²ΠΈΡΡΡΠΈΠΌ ΠΎΡ Π²Π°Ρ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ, Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ GitLab ΠΊΠ°ΠΊ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ CI/CD. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΡΠ°Π·Π±ΠΈΠ»ΠΈ Π²Π΅ΡΡ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π½Π° Π΄Π²Π° ΠΌΠ°ΡΡΠ΅Ρ-ΠΊΠ»Π°ΡΡΠ° - Π²Π²ΠΎΠ΄Π½ΡΠΉ, Π³Π΄Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π±Π΅Π· ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅, ΠΈ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ, Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠ΅ GitLab ΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΡΡΠΈΡΡ "DevOps-Π·ΡΠ΅Π»ΠΎΡΡΠΈ"
ΠΠ°ΡΡΠ΅Ρ-ΠΊΠ»Π°ΡΡ "ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² CI/CD/":
Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ (ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ, ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡΡΡΡ)
- ΠΠΎΠ½ΡΡΠΈΠ΅ CI/CD ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΎΠ½ΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π°Π΄ΠΎ. ΠΠ΅ΡΡΠΈΠΊΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎΡΡΠΈ Π²Π°ΡΠ΅Π³ΠΎ CI/CD
- ΠΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΠ·Π½ΡΡΡΠΈ βΠ½Π° ΠΏΠ°Π»ΡΡΠ°Ρ β
- ΠΠ°Π·ΠΎΠ²ΡΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ CI: pipeline, stage, steps ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ
- ΠΠ΅ΡΠ²ΡΠ΅ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ ΡΠ°Π³ΠΈ: Π»ΠΈΠ½ΡΠΈΠ½Π³ ΠΊΠΎΠ΄Π°, ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ.Π΄.
- ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠΎΠ΄Π° (ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ)
- ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°
- Docker ΠΊΠ°ΠΊ ΡΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ CI: Π·Π°ΡΠ΅ΠΌ ΠΈ ΡΡΠΎ Ρ ΡΡΠΈΠΌ Π΄Π΅Π»Π°ΡΡ
- Π ΡΡΠ½ΡΠ΅ job - Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Ρ ΠΈ ΠΊΠ°ΠΊ Ρ Π½ΠΈΠΌΠΈ ΠΆΠΈΡΡ
- ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° βΠΆΠ΅Π»Π΅Π·Π°β Π΄Π»Ρ Π΄Π΅ΠΏΠ»ΠΎΡ
- ΠΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ Π΄Π΅ΠΏΠ»ΠΎΠΉ βΠ½Π° ΠΆΠ΅Π»Π΅Π·ΠΎβ
- ΠΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΎΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ
- ΠΡΡΠ΅ΡΠ°ΠΊΡΡ ΠΈ ΡΠ΅ΠΌ ΠΎΠ½ΠΈ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΠΊΠ΅ΡΠ΅ΠΉ. ΠΠΎΠ³Π΄Π° ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π°ΡΡΠ΅ΡΠ°ΠΊΡΡ
- Review apps - ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ ΠΈ Π΅Π³ΠΎ ΡΡΡΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ
- ΠΠΎΠ΄Π²ΠΎΠ΄Π½ΡΠ΅ ΠΊΠ°ΠΌΠ½ΠΈ Continuous Delivery Π΄Π»Ρ javascript-ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ²
- Webpack, lazy-load, ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ°Π½ΠΊΠΈ ΠΏΠΎΡΠ»Π΅ Π΄Π΅ΠΏΠ»ΠΎΡ
- Π‘ΡΡΠ°ΡΠΈΠ»ΠΊΠΈ CI/CD - ΠΊΠ°ΠΊ ΠΏΠΎΡΠ΅ΡΡΡΡ Π²ΡΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ
- ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΎ ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Π½Π΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ
Π‘ 0 Π΄ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π΄Π΅ΠΏΠ»ΠΎΡ
Π Π°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ CI/CD ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° node.js + frontend c Π½ΡΠ»Ρ (ΡΠΈΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°) Π΄ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π΄Π΅ΠΏΠ»ΠΎΡ Π½Π° "ΠΆΠ΅Π»Π΅Π·ΠΎ"
CI/CD Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΠΈ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π°, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ΅ΠΌΠΈΠ½Π°ΡΠ΅, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ: ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΡ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π²Π΅ΡΠΊΠ°Ρ .
ΠΠ°ΡΡΠ΅Ρ-ΠΊΠ»Π°ΡΡ "ΠΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ CI/CD c GitLab":
TΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ (ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ, ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡΡΡΡ)
- Π§Π΅ΠΌ ΠΏΠ»ΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΡΠΎΡΠ»ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠ΅Ρ-ΠΊΠ»Π°ΡΡΠ° ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»ΡΡΡΠΈΡΡ?
- Π‘Π±ΠΎΡΠΊΠ° ΡΠ²ΠΎΠΈΡ Docker-ΠΎΠ±ΡΠ°Π·ΠΎΠ² ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ repository (npm, docker, etc.) ΠΠΎΡΠ΅ΠΌΡ Π»ΡΠ±ΡΠ΅ Repository Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ΅ΡΠ½ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Ρ Ρ CI
- Π‘Π±ΠΎΡΠΊΠ° Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². ΠΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π°ΠΌΠΈ (Π·Π°ΠΏΡΡΠΊ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡΠΌΠΈ)
- ΠΠ°ΠΊ ΠΈ Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΊΠΎΡΠΈΡΡΡΡ Π΅ΡΠ»ΠΈ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΆΠ΅ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ (DAG, ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·Π°ΡΠΈΡ Π·Π°ΠΏΡΡΠΊΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π΄ΠΆΠΎΠ±ΠΎΠ² ΠΏΡΡΠ΅ΠΌ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΡ ΠΈΡ Π½Π° ΠΊΡΡΠΊΠΈ - Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ jest-ΡΠ΅ΡΡΠΎΠ²)
- ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ UI merge request ΠΈ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π°
- ΠΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΡΡ βΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΉβ Π½Π΅Ρ - Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ API GitLab Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ²ΠΎΠΈΡ ΠΆΠ΅Π»Π°Π½ΠΈΠΉ
- ΠΠ΅ΡΡΠΎ Kubernetes Π² ΠΆΠΈΠ·Π½ΠΈ CI/CD ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅Ρ ΠΆΠΈΠ·Π½Ρ
- Π‘Π°ΠΌΡΠΉ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΉ ΠΊΡΠ΅Ρ-ΠΊΡΡΡ Kubernetes Π΄Π»Ρ Π΄Π΅ΠΏΠ»ΠΎΡ Π² ΠΌΠΈΡΠ΅
- ΠΠΎΡΠ΅ΠΌΡ Helm ΡΡΠΎ Π²Π°ΠΆΠ½ΠΎ?
- ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ blue/green deployment
- ΠΡΠ΅ΠΌΠΈΡΠΌ ΠΏΠ»ΡΡΠΊΠΈ GitLab ΠΏΡΠΎ CI ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Π±ΠΎΠ»ΠΈ ΠΎΠ½ΠΈ ΡΠ΅ΡΠ°ΡΡ
Π‘Π΅ΠΌΠΈΠ½Π°Ρ "Π’ΡΡΠ±ΠΎ-ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ Ρ GitLab"
Π‘ΠΊΠΎΡΠΎΡΡΡ - Π½Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ CI/CD. ΠΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π²ΡΠ΅ΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π½Π°ΠΌ DevOps-ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ° Π² ΡΠ΅Π»ΠΎΠΌ ΠΈ GitLab Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ pipeline ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π³ΠΎΡΠ΄ΠΈΡΡΡΡ
Π‘Π΅ΠΌΠΈΠ½Π°Ρ "Kubernetes ΠΈ CI/CD"
Kubernetes ΡΡΠ°Π» ΠΌΠ΅ΠΉΠ½ΡΡΡΠΈΠΌΠΎΠΌ ΠΎΠ±Π»Π°ΡΠ½ΠΎΠ³ΠΎ ΠΌΠΈΡΠ°. ΠΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΈΠΌ, ΡΡΠΎΠ±Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π½Π°Ρ ΠΊΠΎΠ΄ Π² ΠΎΠ±Π»Π°ΠΊΠ° ΠΈ Π²ΡΠ΅ ΡΡΠΎ - ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ pipeline ΠΈ ΠΈΠ· ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ "Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ" - ΠΊΠΎΠ³Π΄Π° frontend ΠΈ backend Π»Π΅ΠΆΠ°Ρ Π² ΡΠ°Π·Π½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡ .
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅:
Π‘ΠΊΡΡΡΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π΄Π»Ρ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ!
Π‘ΠΊΠ°ΡΠ°ΡΡ:
ΠΠ»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΠΊΡΡΡΠΎΠ³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΠΎΠΉΡΠΈ ΠΈΠ»ΠΈ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ.