Π Π°Π·ΡΠ°Π±ΠΎΡΠΈΡ ΠΌΠ΅ DevOps Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠ΅. ΠΡΡ ΠΌΠ΅ 8 Π΄ΡΡΠΈ, Π° ΠΠ°ΡΡ Π±Π΅ΡΠ΅ Π½Π°ΠΉ-Π³ΠΎΡΠΈΠ½ΠΈΡΡ Π½Π° Windows. ΠΠ·Π²Π΅Π΄Π½ΡΠΆ ΠΠ°ΡΡ ΡΠΈ ΡΡΡΠ³Π½Π° ΠΈ Π°Π· ΠΈΠΌΠ°Ρ Π·Π°Π΄Π°ΡΠ°ΡΠ° Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΠΌ Π½ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π΄ΠΎΡΡΠ°Π²Ρ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Windows. ΠΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΡΠΈΠΏΠ°Ρ ΡΠ΅Π»ΠΈΡ ΡΡΠ΅ΠΊ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Windows Π½Π° ΠΌΠ°ΡΠ°ΡΠ°, ΠΎΡΡΠ·Π½Π°Ρ , ΡΠ΅ ΡΠΈΡΡΠ°ΡΠΈΡΡΠ° Π΅ ΠΌΡΠΊΠ° ...
ΠΡΠΎ ΠΊΠ°ΠΊ Π·Π°ΠΏΠΎΡΠ²Π° ΠΈΡΡΠΎΡΠΈΡΡΠ° ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΠ° Π‘ΠΈΠ½ΡΠΈΠ½ΠΎΠ²Π° Π½Π°
ΠΠ°ΠΊ Π»Π΅ΡΠ½ΠΎ Π΄Π° Π΄ΠΎΡΡΠ°Π²ΡΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° RPM Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° TFS, Puppet, Linux .NET ΡΠ΄ΡΠΎ? ΠΠ°ΠΊ Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΠΌ Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π°ΠΊΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° ΡΡΠ²Π° Π΄ΡΠΌΠΈΡΠ΅ Postgres ΠΈ Flyway Π·Π° ΠΏΡΡΠ²ΠΈ ΠΏΡΡ, Π° ΠΊΡΠ°ΠΉΠ½ΠΈΡΡ ΡΡΠΎΠΊ Π΅ Π²Π΄ΡΡΠ³ΠΈΠ΄Π΅Π½? ΠΠ°ΠΊ Π΄Π° ΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°ΠΌ Ρ Docker? ΠΠ°ΠΊ Π΄Π° ΠΌΠΎΡΠΈΠ²ΠΈΡΠ°ΠΌΠ΅ .NET ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π΄Π° ΡΠ΅ ΠΎΡΠΊΠ°ΠΆΠ°Ρ ΠΎΡ Windows ΠΈ ΡΠΌΡΡΠΈΡΠ°ΡΠ° Π² ΠΏΠΎΠ»Π·Π° Π½Π° Puppet ΠΈ Linux? ΠΠ°ΠΊ Π΄Π° ΡΠ°Π·ΡΠ΅ΡΠΈΠΌ ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΈ, Π°ΠΊΠΎ Π½ΡΠΌΠ° ΡΠΈΠ»Π°, Π½ΡΠΌΠ° ΠΆΠ΅Π»Π°Π½ΠΈΠ΅, Π½ΡΠΌΠ° ΡΠ΅ΡΡΡΡΠΈ Π·Π° ΠΎΠ±ΡΠ»ΡΠΆΠ²Π°Π½Π΅ Π½Π° Windows Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ? ΠΠ° ΡΠΎΠ²Π°, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π·Π° Web Deploy, ΡΠ΅ΡΡΠ²Π°Π½Π΅, CI, Π·Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈΡΠ΅ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° TFS Π² ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΈ, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, Π·Π° ΡΡΡΠΏΠ΅Π½ΠΈ ΠΏΠ°ΡΠ΅ΡΠΈΡΠΈ ΠΈ ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ, Π² ΡΡΠ΅Π½ΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π° Π½Π° ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΡ.
Π ΡΠ°ΠΊΠ°, ΠΠ°ΡΡ ΡΠΈ ΡΡΡΠ³Π½Π°, Π·Π°Π΄Π°ΡΠ°ΡΠ° Π΅ Π²ΡΡΡ Ρ ΠΌΠ΅Π½, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΡΠ°ΠΊΠ°Ρ Π½Π΅ΡΡΡΠΏΠ΅Π»ΠΈΠ²ΠΎ Ρ Π²ΠΈΠ»ΠΈ. ΠΠΎΠ³Π°ΡΠΎ Π½Π°ΠΉ-Π½Π°ΠΊΡΠ°Ρ ΡΠ°Π·Π±ΡΠ°Ρ , ΡΠ΅ ΠΠ°ΡΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π²ΡΡΠ½Π°Ρ, ΡΠ΅ Π·Π°Π΅Ρ Ρ ΡΠ°Π±ΠΎΡΠ°ΡΠ°. ΠΠ°ΡΠΎ Π½Π°ΡΠ°Π»ΠΎ ΠΏΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅Π½ΡΠ° Π½Π° Win VM Π² Π½Π°ΡΠΈΡ ΡΠ»ΠΎΡ. Π Π΅Π·ΡΠ»ΡΠ°ΡΡΡ Π½Π΅ Π±Π΅ΡΠ΅ Π² ΠΏΠΎΠ»Π·Π° Π½Π° Windows.
Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π½ΠΈΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°ΠΌΠ΅ DevOps, ΡΠ°Π·Π±ΡΠ°Ρ
, ΡΠ΅ Π½Π΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π° Π·Π° ΠΈΠ·Π²Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π½ΠΎΠ²ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠΌΠ°ΡΠ΅ ΡΠ°ΠΌΠΎ Π΅Π΄Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ - Π°ΠΊΠΎ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΡΠ΅Ρ
Π²ΡΡΠ»Π΅ΡΠ΅ Π²ΡΠΈΡΠΊΠΎ Π½Π° Linux. Google ΠΌΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π° - ΠΏΠΎ ΡΠΎΠ²Π° Π²ΡΠ΅ΠΌΠ΅ .Net Π²Π΅ΡΠ΅ Π±Π΅ΡΠ΅ ΠΏΡΠ΅Π½Π΅ΡΠ΅Π½ ΠΊΡΠΌ Linux ΠΈ ΡΠ°Π·Π±ΡΠ°Ρ
, ΡΠ΅ ΡΠΎΠ²Π° Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ!
ΠΠ°ΡΠΎ .NET core Π²ΡΠ² Π²ΡΡΠ·ΠΊΠ° Ρ Linux?
ΠΠΌΠ°ΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΈΡΠΈΠ½ΠΈ Π·Π° ΡΠΎΠ²Π°. ΠΠ΅ΠΆΠ΄Ρ βΠΏΠ»Π°ΡΠ°Π½Π΅ Π½Π° ΠΏΠ°ΡΠΈβ ΠΈ βΠ½Π΅ΠΏΠ»Π°ΡΠ°Π½Π΅β ΠΌΠ½ΠΎΠ·ΠΈΠ½ΡΡΠ²ΠΎΡΠΎ ΡΠ΅ ΠΈΠ·Π±Π΅ΡΠ΅ Π²ΡΠΎΡΠΎΡΠΎ - ΠΊΠ°ΡΠΎ ΠΌΠ΅Π½. ΠΠΈΡΠ΅Π½Π·ΡΡ Π·Π° MSDB ΡΡΡΡΠ²Π° ΠΎΠΊΠΎΠ»ΠΎ $1, Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° Π½Π°Π±ΠΎΡ ΠΎΡ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ Ρ Windows ΡΡΡΡΠ²Π° ΡΡΠΎΡΠΈΡΠΈ Π΄ΠΎΠ»Π°ΡΠΈ. ΠΠ° Π³ΠΎΠ»ΡΠΌΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ ΡΠΎΠ²Π° Π΅ Π³ΠΎΠ»ΡΠΌ ΡΠ°Π·Ρ ΠΎΠ΄. ΠΡΠΎ Π·Π°ΡΠΎ ΡΠΏΠ΅ΡΡΡΠ²Π°Π½ΠΈΡ - ΠΏΡΡΠ²Π° ΠΏΡΠΈΡΠΈΠ½Π°. ΠΠ΅ Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΈΡΡ, Π½ΠΎ Π΅Π΄ΠΈΠ½ ΠΎΡ Π½Π°ΠΉ-Π·Π½Π°ΡΠΈΠΌΠΈΡΠ΅.
ΠΠΈΡΡΡΠ°Π»Π½ΠΈΡΠ΅ ΠΌΠ°ΡΠΈΠ½ΠΈ Π½Π° Windows Π·Π°Π΅ΠΌΠ°Ρ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠ΅ΡΡΡΡΠΈ ΠΎΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ ΡΡΠ±ΡΠ°ΡΡ Π½Π° Linux - ΡΠ΅ΠΆΠΊΠΈ ΡΠ°. ΠΡΠ΅Π΄Π²ΠΈΠ΄ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° Π³ΠΎΠ»ΡΠΌΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ, Π½ΠΈΠ΅ ΠΈΠ·Π±ΡΠ°Ρ ΠΌΠ΅ Linux.
Π‘ΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΏΡΠΎΡΡΠΎ ΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ° Π² ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ CI. Π‘ΠΌΡΡΠ°ΠΌΠ΅ ΡΠ΅ Π·Π° ΠΏΡΠΎΠ³ΡΠ΅ΡΠΈΠ²Π΅Π½ DevOps, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Bamboo, Jenkins ΠΈ GitLab CI, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΎΡ Π½Π°Ρ ΡΠ° Π½Π° Linux.
ΠΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΏΡΠΈΡΠΈΠ½Π° Π΅ ΡΠ΄ΠΎΠ±Π΅Π½ ΡΡΠΏΡΠΎΠ²ΠΎΠ΄. Π’ΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΠΌ ΠΏΡΠ°Π³Π° Π·Π° Π²Π»ΠΈΠ·Π°Π½Π΅ Π½Π° "maintainers" - ΠΌΠΎΠΌΡΠ΅ΡΠ°, ΠΊΠΎΠΈΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Ρ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠ°ΡΠ° ΡΠ°ΡΡ, ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Ρ ΠΏΡΠΈΠ΅ΠΌΡΡΠ²Π΅Π½ΠΎΡΡ ΠΈ ΠΎΠ±ΡΠ»ΡΠΆΠ²Π°Ρ ΡΡΠ»ΡΠ³ΠΈ ΠΎΡ Π²ΡΠΎΡΠ° Π»ΠΈΠ½ΠΈΡ. Π’Π΅ Π²Π΅ΡΠ΅ Π±ΡΡ Π° Π·Π°ΠΏΠΎΠ·Π½Π°ΡΠΈ ΡΡΡ ΡΡΠ΅ΠΊΠ° Π½Π° Linux, ΡΠ°ΠΊΠ° ΡΠ΅ Π·Π° ΡΡΡ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ°Ρ Π½ΠΎΠ²ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡ, Π΄Π° Π³ΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ, Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° Ρ Π°ΡΡΠ°Ρ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΠ΅ΡΡΡΡΠΈ, Π·Π° Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²ΡΡ Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π½Π° ΡΠΎΡΡΡΠ΅ΡΠ° Π·Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Windows.
ΠΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ
ΠΡΡΠ²ΠΎ ΠΈ Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΎ - ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ Π½Π° Π½ΠΎΠ²ΠΎΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅. ΠΠ΅ Π²ΡΠΈΡΠΊΠΈ ΠΎΡ ΡΡΡ Π±ΡΡ Π° Π³ΠΎΡΠΎΠ²ΠΈ Π·Π° ΠΏΡΠΎΠΌΡΠ½Π°, ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΡΠ»Π΅Π΄ ΠΈΠ·Π³ΠΎΠ²ΠΎΡΠ΅Π½Π°ΡΠ° Π΄ΡΠΌΠ° Linux. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΠΈΡΠΊΠ°Ρ Π»ΡΠ±ΠΈΠΌΠΎΡΠΎ ΡΠΈ Visual Studio, TFS Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ ΠΈ ΡΠΌΡΡΠΈΡΠ°. ΠΠ° ΡΡΡ Π½Π΅ Π΅ Π²Π°ΠΆΠ½ΠΎ ΠΊΠ°ΠΊ ΡΡΠ°Π²Π° Π΄ΠΎΡΡΠ°Π²ΠΊΠ°ΡΠ° Π΄ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ. ΠΠ°ΡΠΎΠ²Π° ΡΠ΅ΡΠΈΡ ΠΌΠ΅ Π΄Π° Π½Π΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΠΌΠ΅ ΠΎΠ±ΠΈΡΠ°ΠΉΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ ΠΈ Π΄Π° ΠΎΡΡΠ°Π²ΠΈΠΌ Π²ΡΠΈΡΠΊΠΎ Π½Π΅ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ΠΎ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Windows.
Π’ΡΡΠ±Π²Π° Π½ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡ Π²Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π² ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ CI. Π Π΅Π»ΡΠΈΡΠ΅ Π²Π΅ΡΠ΅ Π±ΡΡ Π° ΡΠ°ΠΌ ΠΈ ΡΡΠ»Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ° ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠΈ, ΠΊΠ°ΡΠΎ ΡΠ΅ Π²Π·Π΅ΠΌΠ°Ρ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ°, ΠΏΡΠΈΠ΅ΡΠΈΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠΈ Π·Π° Π΄ΠΎΡΡΠ°Π²ΠΊΠ° ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅.
ΠΠ΅ΡΠ½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° ΠΈ Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡ, ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π·Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π΅Π½ Π²Ρ ΠΎΠ΄Π΅Π½ ΠΏΡΠ°Π³ Π·Π° Π²ΡΠΈΡΠΊΠΈ Π½ΠΎΠ²ΠΈ ΡΡΠ°ΡΡΠ½ΠΈΡΠΈ ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΎΡΠ΄Π΅Π»ΠΈ ΠΈ ΠΎΡΠ΄Π΅Π»Π° Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°.
ΠΡΠ°Π΅Π½ ΡΡΠΎΠΊ - Π²ΡΠ΅ΡΠ°.
Π‘ΠΏΠ΅ΡΠ΅Π»Π΅ΡΠ΅ Π³ΡΡΠΏΠ° Π·Π° ΡΠ°Π·Π²ΠΈΡΠΈΠ΅
ΠΠ°ΠΊΠ²ΠΎ ΠΏΡΠ°Π²Π΅ΡΠ΅ ΡΠΎΠ³Π°Π²Π° Π΅ΠΊΠΈΠΏΡΡ Π½Π° Windows?
Π‘Π΅Π³Π° ΠΌΠΎΠ³Π° ΡΠ²Π΅ΡΠ΅Π½ΠΎ Π΄Π° Π³ΠΎ ΠΊΠ°ΠΆΠ° IdentityServer4 Π΅ ΡΡΡΠ°Ρ
ΠΎΡΠ½Π° Π±Π΅Π·ΠΏΠ»Π°ΡΠ½Π° Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° Π½Π° ADFS Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠ²ΠΎΡΠΎ ΠΈ Π΄Π° Π΅ Π―Π΄ΡΠΎ Π½Π° Entity Framework - ΡΠ°ΠΉ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡ, ΠΊΡΠ΄Π΅ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π΅ ΡΠΈ ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΡΡΠ΄Π° Π΄Π° ΠΏΠΈΡΠ΅ΡΠ΅ SQL ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅, Π½ΠΎ Π΄Π° ΠΎΠΏΠΈΡΠ²Π°ΡΠ΅ Π·Π°ΡΠ²ΠΊΠΈ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° OOP. ΠΠΎ ΡΠΎΠ³Π°Π²Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΎΠ±ΡΡΠΆΠ΄Π°Ρ
ΠΏΠ»Π°Π½Π° Π·Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, ΠΏΠΎΠ³Π»Π΅Π΄Π½Π°Ρ
Π½Π° ΡΠΎΠ·ΠΈ ΡΡΠ΅ΠΊ ΠΊΠ°ΡΠΎ Π½Π° ΡΡΠΌΠ΅ΡΡΠΊΠΈ ΠΊΠ»ΠΈΠ½ΠΎΠΏΠΈΡ, ΡΠ°Π·ΠΏΠΎΠ·Π½Π°Π²Π°ΠΉΠΊΠΈ ΡΠ°ΠΌΠΎ PostgreSQL ΠΈ Git.
ΠΠΎ ΡΠΎΠ²Π° Π²ΡΠ΅ΠΌΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΡΠΊΠ»Π° Π½Π° ΠΊΠΎΠ½ΡΠΈ ΠΊΠ°ΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ°. Π ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΎΡ Π½Π°ΡΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΡΠΌΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π»ΠΈ GitLab CI, ΠΠ»Π°ΡΡΠΈΡΠ΅Π½, Π±Π°Π»Π°Π½ΡΠΈΡΠ°Π½Π΅ Π½Π° Π²ΠΈΡΠΎΠΊΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ΅Π½ΠΈ ΡΡΠ»ΡΠ³ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° HAProxy ΡΠ»Π΅Π΄Π΅ΡΠ΅ Π²ΡΠΈΡΠΊΠΎ Zabbix, Π²ΡΡΠ·ΠΎΠΏΠΈ ΠΡΠ°ΡΠ°Π½Π° ΠΈ ΠΡΠΎΠΌΠ΅ΡΠ΅ΠΉ, ΠΠ³Π΅ΡΠΎΠ²Π° ΡΡΠΊΠ°Π½, ΠΈ Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΡΠ΅ Π²ΡΡΡΠ΅ΡΠ΅ Π½Π° ΠΏΠ°ΡΡΠ΅ΡΠ° ΠΆΠ΅Π»ΡΠ·ΠΎ HP c ESXi Π½Π° VMware. ΠΡΠ΅ΠΊΠΈ Π·Π½Π°Π΅ - ΠΊΠ»Π°ΡΠΈΠΊΠ° Π½Π° ΠΆΠ°Π½ΡΠ°.
ΠΠ΅ΠΊΠ° Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌ ΠΈ Π΄Π° ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ Π΅ ΡΠ»ΡΡΠΈΠ»ΠΎ, ΠΏΡΠ΅Π΄ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π΅Π½ΡΠΈΠΈ.
ΠΠ°ΠΊΠ²ΠΎ ΡΡΠ°Π½Π°
TFS Π΅ Π΄ΠΎΡΡΠ° ΠΌΠΎΡΠ½Π° ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠΎΡΡΠΎ Π½Π΅ ΡΠ°ΠΌΠΎ Π΄ΠΎΡΡΠ°Π²Ρ ΠΊΠΎΠ΄ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π΄ΠΎ ΠΊΡΠ°ΠΉΠ½Π°ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π° ΠΌΠ°ΡΠΈΠ½Π°, Π½ΠΎ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈΠΌΠ° Π½Π°Π±ΠΎΡ Π·Π° ΠΌΠ½ΠΎΠ³ΠΎ Π³ΡΠ²ΠΊΠ°Π²Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ - Π·Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° CI Π½Π° ΠΊΡΠΎΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½ΠΎ Π½ΠΈΠ²ΠΎ.
ΠΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° Π±ΡΡ
Π° ΡΠ²ΡΡΠ΄ΠΈ Π²Π΅Π½ΡΠΈΠ»Π°ΡΠΈΠΎΠ½Π½ΠΈ ΠΎΡΠ²ΠΎΡΠΈ. TFS ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π°Π³Π΅Π½ΡΠΈ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·Π³ΡΠ°Π΄ΠΈΡ
Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈ. ΠΡΠ΅ΠΊΠΈ Π°Π³Π΅Π½Ρ ΠΈΠΌΠ° 3-4 ΡΠ°Π±ΠΎΡΠ½ΠΈΡΠΈ Π·Π° ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°Π΄Π°ΡΠΈΡΠ΅ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ°. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, ΡΠΏΠΎΡΠ΅Π΄ ΠΏΠ»Π°Π½ΠΎΠ²Π΅ΡΠ΅ Π·Π° ΠΈΠ·Π΄Π°Π²Π°Π½Π΅, TFS Π΄ΠΎΡΡΠ°Π²ΠΈ ΠΏΡΡΡΠ½ΠΎ ΠΈΠ·ΠΏΠ΅ΡΠ΅Π½Π°ΡΠ° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ Π½Π° ΡΡΡΠ²ΡΡΠ° Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Windows.
ΠΡΠ΄Π΅ ΠΈΡΠΊΠ°Ρ ΠΌΠ΅ Π΄Π° ΠΎΡΠΈΠ΄Π΅ΠΌ
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ TFS Π·Π° Π΄ΠΎΡΡΠ°Π²ΠΊΠ° ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΠΌΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΡΡΠ²ΡΡΠ° Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Linux ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡ ΠΈΠΌΠ° Π½ΡΠΊΠ°ΠΊΠ²Π° ΠΌΠ°Π³ΠΈΡ. Π’ΠΎΠ²Π° ΠΠ°Π³ΠΈΡΠ΅ΡΠΊΠ° ΠΊΡΡΠΈΡ ΠΈ ΡΠ°ΠΌ Π΅ ΡΠΎΠ»ΡΠ° Π½Π° ΠΏΡΠ΅Π΄ΡΡΠΎΡΡΠ°ΡΠ° ΡΠ°Π±ΠΎΡΠ°. ΠΡΠ΅Π΄ΠΈ Π΄Π° Π³ΠΎ ΡΠ°Π·Π³Π»ΠΎΠ±Ρ, ΡΠ΅ Π½Π°ΠΏΡΠ°Π²Ρ ΠΊΡΠ°ΡΠΊΠ° Π²ΡΡΡΠ°Π½ΠΈ ΠΈ ΡΠ΅ ΠΊΠ°ΠΆΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π΄ΡΠΌΠΈ Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ.
ΠΡΠΎΠ΅ΠΊΡ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΡΠ΅Π΄ΠΏΠ»Π°ΡΠ΅Π½ΠΈ ΠΊΠ°ΡΡΠΈ.
Π£Π΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠ΅Π½ΠΎΡΡ
ΠΠΌΠ°ΡΠ΅ Π΄Π²Π° ΡΠΈΠΏΠ° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ. ΠΡΡΠ²ΠΈ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΡΠ΅Π· Π²Π»ΠΈΠ·Π°Π½Π΅ Ρ SSL SHA-2 ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ. ΠΡΠΈ Π²ΡΠΎΡΠΎΡΠΎ Π±Π΅ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Ρ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎ ΠΈΠΌΠ΅ ΠΈ ΠΏΠ°ΡΠΎΠ»Π°.
HAProxy
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ°ΡΠ° Π·Π°ΡΠ²ΠΊΠ° ΠΎΡΠΈΠ΄Π΅ Π΄ΠΎ HAProxy, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ΡΠΈ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π·Π°Π΄Π°ΡΠΈ:
- ΠΏΡΡΠ²ΠΈΡΠ½ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅;
- ΠΏΡΠ΅ΠΊΡΠ°ΡΡΠ²Π°Π½Π΅ Π½Π° SSL;
- Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° HTTP Π·Π°ΡΠ²ΠΊΠΈ;
- ΠΏΠΎΠΈΡΠΊΠ°ΠΉΡΠ΅ ΠΏΡΠ΅Π²ΠΎΠ΄.
ΠΡΠΎΠ²Π΅ΡΠΊΠ°ΡΠ° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π²ΡΡΠ²Π΅ΡΠ΅ ΠΏΠΎ Π²Π΅ΡΠΈΠ³Π°ΡΠ°. Π½ΠΈΠ΅ - Π²Π»Π°ΡΡ ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠΈ Π³ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠΌ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ°ΠΌΠΈ ΠΈΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ°.
ΠΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΡΠ΅ΡΠ°ΡΠ° ΡΠΎΡΠΊΠ°, ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ ΡΠ΅ ΡΠ΅ Π²ΡΡΠ½Π΅ΠΌ ΠΊΡΠΌ Π½Π΅Ρ.
Π±Π΅ΠΊΠ΅Π½Π΄Π°
ΠΠ΅ΠΊΠ΅Π½Π΄ΡΡ Π±Π΅ΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠ°Π½ Π΄Π° Π±ΡΠ΄Π΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½ Π½Π° Linux. ΠΠ΅ΠΊΠ΅Π½Π΄ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π° Ρ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ, Π·Π°ΡΠ΅ΠΆΠ΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡ ΡΠΏΠΈΡΡΠΊ Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π°, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΡΠΎΠ²Π° ΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ ΠΈΠΌΠ° ΠΎΡΠΎΡΠΈΠ·ΠΈΡΠ°Π½ΠΈΡΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π», ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π΄ΠΎΡΡΡΠΏ Π·Π° ΠΏΠΎΠ΄ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ΡΠΎ ΠΈΠΌ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π½ΡΠΊΠ°ΠΊΡΠ² Π²ΠΈΠ΄ ΠΎΡΡΠ΅Ρ.
Π‘ΠΏΠ΅ΡΡΡΠ²Π°Π½ΠΈΡ Ρ HAProxy
Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ Π΄Π²Π°ΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, Π² ΠΊΠΎΠΈΡΠΎ Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ Π²ΡΡΠ²Π΅ΡΠ΅, ΠΈΠΌΠ°ΡΠ΅ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π½Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎΡΡ. IdentityServer4 ΠΏΡΠΎΡΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π²Π»Π΅Π·Π΅ΡΠ΅, ΡΠΎΠ²Π° Π΅ Π±Π΅Π·ΠΏΠ»Π°ΡΠ΅Π½ ΠΈ ΠΌΠΎΡΠ΅Π½ Π°Π½Π°Π»ΠΎΠ³ Π·Π° ADFS - Π£ΡΠ»ΡΠ³ΠΈ Π·Π° ΡΠ΅Π΄Π΅ΡΠ°ΡΠΈΡ Π½Π° Active Directory.
ΠΠ°ΡΠ²ΠΊΠ°ΡΠ° Π·Π° ΡΠ°ΠΌΠΎΠ»ΠΈΡΠ½ΠΎΡΡ Π±Π΅ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½Π° Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΡΡΠΏΠΊΠΈ. ΠΡΡΠ²Π° ΡΡΡΠΏΠΊΠ° - ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΠ΄Π°ΡΠΈ Π±Π΅ΠΊΠ΅Π½Π΄Π°, ΠΊΠΎΠΉΡΠΎ ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠΈΡΠ° Ρ ΡΠΎΠ·ΠΈ ΡΡΡΠ²ΡΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° Π·Π° Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΡΠΎΠΊΠ΅Π½ Π·Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. ΠΠΊΠΎ Π½Π΅ Π³ΠΎ Π½Π°ΠΌΠ΅ΡΠΈ, Π·Π°ΡΠ²ΠΊΠ°ΡΠ° ΡΠ΅ Π²ΡΡΡΠ° ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΊΡΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, ΠΎΡ ΠΊΠΎΠΉΡΠΎ ΠΈΠ΄Π²Π°, Π½ΠΎ Ρ ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π°Π½Π΅, Π° Ρ ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π°Π½Π΅ ΠΎΡΠΈΠ²Π° ΠΊΡΠΌ ΡΠ°ΠΌΠΎΠ»ΠΈΡΠ½ΠΎΡΡ.
ΠΡΠΎΡΠ°ΡΠ° ΡΡΡΠΏΠΊΠ° - Π·Π°ΡΠ²ΠΊΠ°ΡΠ° Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π° ΠΊΡΠΌ ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° Π·Π° ΠΎΡΠΎΡΠΈΠ·Π°ΡΠΈΡ Π² IdentityServer, ΠΊΡΠ΄Π΅ΡΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ° ΠΈ Π΄ΡΠ»Π³ΠΎΠΎΡΠ°ΠΊΠ²Π°Π½ΠΈΡΡ ΡΠΎΠΊΠ΅Π½ ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ Π½Π° IdentityServer.
ΡΡΠ΅ΡΠ° ΡΡΡΠΏΠΊΠ° - ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ Π΅ ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ΅Π½ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΊΡΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, ΠΎΡ ΠΊΠΎΠΉΡΠΎ ΠΈΠ΄Π²Π°.
IdentityServer4 ΠΈΠΌΠ° ΡΡΠ½ΠΊΡΠΈΡ: ΡΠΎΠΉ Π²ΡΡΡΠ° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ° Π·Π° Π²ΡΡΡΠ°Π½Π΅ ΡΡΠ΅Π· HTTP. ΠΠΎΠ»ΠΊΠΎΡΠΎ ΠΈ Π΄Π° ΡΠ΅ Π±ΠΎΡΠ΅Ρ
ΠΌΠ΅ Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΡΠ° Π½Π° ΡΡΡΠ²ΡΡΠ°, ΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΈ ΠΏΡΠΎΡΠ²Π΅ΡΠ΅Π½Π° Π΄Π° Π±Π΅ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ°, Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ
ΠΌΠ΅ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½Π°ΡΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ° Π·Π°ΡΠ²ΠΊΠ° Ρ URL Π°Π΄ΡΠ΅Ρ, ΠΈΠ΄Π²Π°Ρ ΠΏΡΠ΅Π· HTTPS, ΠΈ IdentityServer Π²ΡΡΡΠ°ΡΠ΅ ΡΡΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, Π½ΠΎ Ρ HTTP. ΠΡΡ
ΠΌΠ΅ ΡΠΎΠΊΠΈΡΠ°Π½ΠΈ! Π ΠΏΡΠ΅Ρ
Π²ΡΡΠ»ΠΈΡ
ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΠΏΡΠ΅Π· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° ΡΠ°ΠΌΠΎΠ»ΠΈΡΠ½ΠΎΡΡΡΠ° ΠΊΡΠΌ HAProxy ΠΈ Π² Π·Π°Π³Π»Π°Π²ΠΊΠΈΡΠ΅ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠΌ HTTP ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Π½Π° HTTPS.
ΠΠ°ΠΊΠ²ΠΎ Π΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈ ΠΊΡΠ΄Π΅ ΡΠΏΠ΅ΡΡΠΈΡ ΡΠ΅?
Π‘ΠΏΠ΅ΡΡΠΈΡ ΠΌΠ΅ ΠΏΠ°ΡΠΈ, ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠ΅ Π±Π΅Π·ΠΏΠ»Π°ΡΠ½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΠΎΡΠΎΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π³ΡΡΠΏΠ° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ, ΡΠ΅ΡΡΡΡΠΈ, Π·Π°ΡΠΎΡΠΎ Π½Π΅ ΠΈΠ·Π²Π°Π΄ΠΈΡ ΠΌΠ΅ IdentityServer4 ΠΊΠ°ΡΠΎ ΠΎΡΠ΄Π΅Π»Π΅Π½ Π²ΡΠ·Π΅Π» Π² ΠΎΡΠ΄Π΅Π»Π΅Π½ ΡΠ΅Π³ΠΌΠ΅Π½Ρ, Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠ΅ Π·Π°Π΅Π΄Π½ΠΎ Ρ Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° ΡΡΡΠΈΡ ΡΡΡΠ²ΡΡ, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π±Π΅ΠΊΠ΅Π½Π΄ΡΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ .
ΠΠ°ΠΊ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ
Π ΡΠ°ΠΊΠ°, ΠΊΠ°ΠΊΡΠΎ ΠΎΠ±Π΅ΡΠ°Ρ - Magic Box. ΠΠ΅ΡΠ΅ ΡΠ°Π·Π±ΠΈΡΠ°ΠΌΠ΅, ΡΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°Π½ΠΎ ΡΠ΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΊΡΠΌ Linux. ΠΠ΅ΠΊΠ° ΡΠΎΡΠΌΡΠ»ΠΈΡΠ°ΠΌΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈΡΠ΅ Π·Π°Π΄Π°ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠ΅ΡΠ΅Π½ΠΈ.
ΠΡΠΊΠ»Π΅Π½ΠΈ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠΈ. ΠΠ° Π΄Π° Π΄ΠΎΡΡΠ°Π²ΠΈΡΠ΅ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΡΡΡΠ°Ρ
ΠΎΡΠ½ΠΈ ΡΠ΅ΡΠ΅ΠΏΡΠΈ. Π ΠΎΠ»ΠΊΠ°ΡΠ° Ρ ΠΌΠΎΠ»ΠΈΠ² ΠΊΡΠ°ΡΠ½ΠΎΡΠ΅ΡΠΈΠ²ΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΊΠΎΠ»ΠΊΠΎ Π±ΡΡΠ·ΠΎ ΠΈ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΎ.
ΠΠ΅ΡΠΎΠ΄ Π½Π° Π΄ΠΎΡΡΠ°Π²ΠΊΠ°. Π‘ΡΠ°Π½Π΄Π°ΡΡΡΡ Π΅ RPM. ΠΡΠ΅ΠΊΠΈ ΡΠ°Π·Π±ΠΈΡΠ°, ΡΠ΅ Π² Linux Π½ΡΠΌΠ° Π½Π°ΡΠΈΠ½ Π±Π΅Π· Π½Π΅Π³ΠΎ, Π½ΠΎ ΡΠ°ΠΌΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ»Π΅Π΄ ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ΡΠΎ Π±Π΅ΡΠ΅ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ DLL ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. ΠΡΡ Π° ΠΎΠΊΠΎΠ»ΠΎ 150, ΠΏΡΠΎΠ΅ΠΊΡΡΡ Π΅ Π΄ΠΎΡΡΠ° ΡΠ΅ΠΆΡΠΊ. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΎΡΠΎ Ρ Π°ΡΠΌΠΎΠ½ΠΈΡΠ½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΅ Π΄Π° ΠΎΠΏΠ°ΠΊΠΎΠ²Π°ΡΠ΅ ΡΠΎΠ·ΠΈ Π΄Π²ΠΎΠΈΡΠ΅Π½ ΡΠ°ΠΉΠ» Π² RPM ΠΈ Π΄Π° ΡΠ°Π·Π³ΡΡΠ½Π΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΎΡ Π½Π΅Π³ΠΎ.
ΠΠ΅ΡΡΠΈΠΎΠ½ΠΈΡΠ°Π½Π΅. Π’ΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΠΏΡΡΠΊΠ°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΎ ΠΈ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΡΠ΅ΡΠΈΠΌ ΠΊΠ°ΠΊ Π΄Π° ΡΠΎΡΠΌΠΈΡΠ°ΠΌΠ΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ°. Π’ΠΎΠ²Π° Π΅ Π²ΡΠΏΡΠΎΡ Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ TFS. ΠΠΌΠ°Ρ ΠΌΠ΅ Π°Π³Π΅Π½Ρ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Linux. ΠΠΎΠ³Π°ΡΠΎ TFS ΠΈΠ·ΠΏΡΠ°ΡΠΈ Π·Π°Π΄Π°ΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊ - worker - Π½Π° Build Π°Π³Π΅Π½ΡΠ°, ΡΠΎΠΉ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΌΡ ΠΏΡΠ΅Π΄Π°Π²Π° ΠΊΡΠΏ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠΏΠ°Π΄Π°Ρ Π² ΡΡΠ΅Π΄Π°ΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠ°. ΠΠ° ΡΠ΅Π·ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π²Π°Ρ ΠΈΠΌΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ, ΠΈΠΌΠ΅ Π½Π° Π²Π΅ΡΡΠΈΡ ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ. ΠΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° ΡΠΎΠ²Π° Π² ΡΠ°Π·Π΄Π΅Π»Π° "ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° RPM ΠΏΠ°ΠΊΠ΅Ρ".
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° TFS ΡΠ΅ ΡΠ²Π΅Π΄Π΅ Π΄ΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° Pipeline. ΠΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° ΡΡΠ±ΠΈΡΠ°Ρ ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π½Π° Windows Π½Π° Windows Π°Π³Π΅Π½ΡΠΈ, Π° ΡΠ΅Π³Π° ΡΠ΅ ΠΏΠΎΡΠ²ΡΠ²Π° Linux Π°Π³Π΅Π½Ρ - Build Π°Π³Π΅Π½Ρ, ΠΊΠΎΠΉΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ Π² Π³ΡΡΠΏΠ°ΡΠ° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅, ΠΎΠ±ΠΎΠ³Π°ΡΠ΅Π½ Ρ Π½ΡΠΊΠΎΠΈ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΈ, Π·Π° Π΄Π° ΠΊΠ°ΠΆΠ΅ ΠΊΠ°ΠΊΡΠ² ΡΠΈΠΏ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈ Π½Π° ΡΠΎΠ·ΠΈ Build Π°Π³Π΅Π½Ρ, ΠΈ ΠΏΠΎ Π½ΡΠΊΠ°ΠΊΡΠ² Π½Π°ΡΠΈΠ½ Π΄Π° ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°ΡΠ΅ Pipeline.
IdentityServer. ADFS Π½Π΅ Π΅ Π½Π°ΡΠΈΡΡ Π½Π°ΡΠΈΠ½, Π½ΠΈΠ΅ ΡΠ΅ Π΄Π°Π²ΠΈΠΌ Π·Π° Open Source.
ΠΠ° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΏΡΠ΅Π· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅.
ΠΠ°Π³ΠΈΡΠ΅ΡΠΊΠ° ΠΊΡΡΠΈΡ
Π‘ΡΡΡΠΎΠΈ ΡΠ΅ ΠΎΡ ΡΠ΅ΡΠΈΡΠΈ ΡΠ°ΡΡΠΈ.
ΠΠ³Π΅Π½Ρ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Linux. Linux, Π·Π°ΡΠΎΡΠΎ Π½ΠΈΠ΅ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°ΠΌΠ΅ Π·Π° Π½Π΅Π³ΠΎ - ΡΠΎΠ²Π° Π΅ Π»ΠΎΠ³ΠΈΡΠ½ΠΎ. Π’Π°Π·ΠΈ ΡΠ°ΡΡ Π±Π΅ΡΠ΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½Π° Π² ΡΡΠΈ ΡΡΡΠΏΠΊΠΈ.
- ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΡΠ°Π±ΠΎΡΠ½ΠΈΡΠΈ Π° Π½Π΅ Π΅Π΄ΠΈΠ½, ΠΊΠ°ΠΊΡΠΎ ΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡΠ΅ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
- ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ .NET Core 1.x. ΠΠ°ΡΠΎ 1.x, ΠΊΠΎΠ³Π°ΡΠΎ 2.0 Π²Π΅ΡΠ΅ Π΅ Π½Π°Π»ΠΈΡΠ΅Π½ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅? ΠΠ°ΡΠΎΡΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ Π·Π°ΠΏΠΎΡΠ½Π°Ρ ΠΌΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ°, ΡΡΠ°Π±ΠΈΠ»Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π±Π΅ΡΠ΅ 1.09 ΠΈ Π±Π΅ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΎ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π·Π° Π½Π΅Ρ.
- Git 2.x.
RPM Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅. RPM ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π½ΡΠΊΡΠ΄Π΅. Π’ΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΡΡΡΠΎΡΠΎ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΎ RPM Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, ΠΊΠΎΠ΅ΡΠΎ Π΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π·Π° Π²ΡΠΈΡΠΊΠΈ Linux Ρ ΠΎΡΡΠΎΠ²Π΅. Π’Π°ΠΊΠ° ΠΈ Π½Π°ΠΏΡΠ°Π²ΠΈΡ Π°. Π‘ΡΡΠ²ΡΡΡΡ Π½Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ ΡΠ΅Π± ΠΊΡΠΊΠ° ΠΊΠΎΠΉΡΠΎ Π΅ ΠΈΠ·ΡΠ΅Π³Π»ΠΈΠ» Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡ RPM ΠΏΠ°ΠΊΠ΅Ρ ΠΎΡ ΠΏΠΎΡΠΎΡΠ΅Π½ΠΎΡΠΎ ΠΌΡΡΡΠΎ. ΠΠ΅ΡΡΠΈΡΡΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ° Π½Π° webhook Π±Π΅ΡΠ΅ Π΄ΠΎΠΊΠ»Π°Π΄Π²Π°Π½Π° ΠΎΡ Π°Π³Π΅Π½ΡΠ° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅.
gitlab. Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅! GitLab ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΡΠΊ Π½Π΅ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ, Π° ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΈΡ ΠΎΡΠ΄Π΅Π» Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° Π²Π΅ΡΡΠΈΠΈΡΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ°, Π²Π΅ΡΡΠΈΠΈΡΠ΅ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅, ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° Π²ΡΠΈΡΠΊΠΈ Linux ΠΌΠ°ΡΠΈΠ½ΠΈ ΠΈ ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΡΠ΅ΡΠ΅ΠΏΡΠ°ΡΠ° - Π²ΡΠΈΡΠΊΠΈ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠΈ Π½Π° Puppet.
ΠΡΠΊΠ»Π° Π½Π° ΠΊΠΎΠ½ΡΠΈ - ΡΠ΅ΡΠ°Π²Π° Π²ΡΠΈΡΠΊΠΈ ΡΠΏΠΎΡΠ½ΠΈ ΡΠΎΡΠΊΠΈ ΠΈ Π΄ΠΎΡΡΠ°Π²Ρ ΡΠΎΡΠ½ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ°, ΠΊΠΎΡΡΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ ΠΎΡ Gitlab.
ΠΠ°ΠΏΠΎΡΠ²Π°ΠΌΠ΅ Π΄Π° ΡΠ΅ Π³ΠΌΡΡΠΊΠ°ΠΌΠ΅. ΠΠ°ΠΊ DLL ΡΠ΅ Π΄ΠΎΡΡΠ°Π²Ρ Π½Π° RPM?
ΠΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° DDL ΠΊΡΠΌ RPM
ΠΠ° ΠΊΠ°ΠΆΠ΅ΠΌ, ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ ΡΠΎΠΊ Π·Π²Π΅Π·Π΄Π° Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° .NET. Π’ΠΎΠΉ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Visual Studio ΠΈ ΡΡΠ·Π΄Π°Π²Π° ΠΊΠ»ΠΎΠ½ Π·Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½Π΅. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π³ΠΎ ΠΊΠ°ΡΠ²Π° Π² Git, Π° Git ΡΡΠΊ Π΅ TFS ΠΎΠ±Π΅ΠΊΡ, ΡΠΎΠ΅ΡΡ ΡΠΎΠ²Π° Π΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, Ρ ΠΊΠΎΠ΅ΡΠΎ ΡΠ°Π±ΠΎΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ.
Π’ΠΎΠ³Π°Π²Π° TFS Π²ΠΈΠΆΠ΄Π°, ΡΠ΅ Π΅ ΠΏΡΠΈΡΡΠΈΠ³Π½Π°Π» Π½ΠΎΠ² Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ. ΠΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅? Π Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π½Π° TFS ΠΈΠΌΠ° Π΅ΡΠΈΠΊΠ΅Ρ Ρ ΡΠΎΠ²Π° ΠΊΠ°ΠΊΠ²ΠΈ ΡΠ΅ΡΡΡΡΠΈ ΠΈΠΌΠ° ΡΠΎΠ·ΠΈ ΠΈΠ»ΠΈ ΠΎΠ½Π·ΠΈ Build Π°Π³Π΅Π½Ρ. Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΡΠΎΠΉ Π²ΠΈΠΆΠ΄Π°, ΡΠ΅ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°ΠΌΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ .NET Core ΠΈ ΠΈΠ·Π±ΠΈΡΠ° Π°Π³Π΅Π½Ρ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Linux ΠΎΡ ΠΏΡΠ»Π°.
Build-agent ΠΏΠΎΠ»ΡΡΠ°Π²Π° ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈΡΠ΅, ΠΈΠ·ΡΠ΅Π³Π»Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° .NET, npm ΠΈ Ρ.Π½. ΠΈ ΡΠ»Π΅Π΄ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠ°ΠΌΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π²Π°ΡΠΎ ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅, ΠΏΡΠ΅Π΄Π°Π²Π° RPM ΠΏΠ°ΠΊΠ΅ΡΠ° Π² RPM Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ.
ΠΡ Π΄ΡΡΠ³Π° ΡΡΡΠ°Π½Π° ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π²Π° ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ. ΠΠ½ΠΆΠ΅Π½Π΅ΡΡΡ ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΈΡ ΠΎΡΠ΄Π΅Π» ΡΡΠ°ΡΡΠ²Π° ΠΏΡΡΠΊΠΎ Π² ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°: ΡΠΎΠΉ ΠΏΡΠΎΠΌΠ΅Π½Ρ Π²Π΅ΡΡΠΈΠΈΡΠ΅ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ Π² Π₯ΠΈΠ΅ΡΠ° Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΡΠ΅ΡΠ΅ΠΏΡΠ°ΡΠ° Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²Π° Puppet Yum, ΠΈΠ·ΡΠ΅Π³Π»Ρ Π½ΠΎΠ² ΠΏΠ°ΠΊΠ΅Ρ ΠΎΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ ΠΈ Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π΅ Π³ΠΎΡΠΎΠ²Π° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅.
ΠΠ° Π΄ΡΠΌΠΈ Π²ΡΠΈΡΠΊΠΎ Π΅ ΠΏΡΠΎΡΡΠΎ, Π½ΠΎ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π° Π²ΡΡΡΠ΅ Π² ΡΠ°ΠΌΠΈΡ Build Π°Π³Π΅Π½Ρ?
ΠΠ°ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° DLL RPM
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈ ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡ ΠΈ Π·Π°Π΄Π°ΡΠ° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ ΠΎΡ TFS. ΠΠ³Π΅Π½Ρ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π·Π°ΠΏΠΎΡΠ²Π° Π΄Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π° ΡΠ°ΠΌΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΎΡ ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈ. Π‘Π³Π»ΠΎΠ±Π΅Π½ΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ dll ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½ΠΈ Π² zip Π°ΡΡ ΠΈΠ², Π·Π° Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ°Π»ΠΈ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°.
ZIP Π°ΡΡ ΠΈΠ²ΡΡ Π΅ ΠΈΠ·Ρ Π²ΡΡΠ»Π΅Π½ ΠΊΡΠΌ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ Π½Π° RPM ΠΏΠ°ΠΊΠ΅ΡΠ°. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠΊΡΠΈΠΏΡΡΡ Bash ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°, Π½Π°ΠΌΠΈΡΠ° Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΡΠ°, Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΏΡΡΡ Π΄ΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° RPM-build. ΠΠΎΠ³Π°ΡΠΎ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ ΠΏΡΠΈΠΊΠ»ΡΡΠΈ, ΠΏΠ°ΠΊΠ΅ΡΡΡ ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π° Π² Π»ΠΎΠΊΠ°Π»Π½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° Π½Π° Build agent.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΠΎΡ Build Π°Π³Π΅Π½ΡΠ° ΠΊΡΠΌ ΡΡΡΠ²ΡΡΠ° Π² RPM Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ JSON Π·Π°ΡΠ²ΠΊΠ°ΡΠ° Π΅ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½Π° Ρ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π²Π΅ΡΡΠΈΡΡΠ° ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΡΠ°. Webhook, ΠΊΠΎΠΉΡΠΎ ΡΠΏΠΎΠΌΠ΅Π½Π°Ρ ΠΏΠΎ-ΡΠ°Π½ΠΎ, ΠΈΠ·ΡΠ΅Π³Π»Ρ ΡΡΡΠΈΡ ΡΠΎΠ·ΠΈ ΠΏΠ°ΠΊΠ΅Ρ ΠΎΡ Π»ΠΎΠΊΠ°Π»Π½ΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π° Build Π°Π³Π΅Π½ΡΠ° ΠΈ ΠΏΡΠ°Π²ΠΈ Π½ΠΎΠ²Π°ΡΠ° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½Π° Π·Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅.
ΠΠ°ΡΠΎ ΡΠ°ΠΊΠ°Π²Π° ΡΡ
Π΅ΠΌΠ° Π·Π° Π΄ΠΎΡΡΠ°Π²ΠΊΠ° Π½Π° ΠΏΠ°ΠΊΠ΅Ρ Π΄ΠΎ RPM Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ? ΠΠ°ΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠΈΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅Ρ Π² Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ? Π€Π°ΠΊΡ Π΅, ΡΠ΅ ΡΠΎΠ²Π° Π΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π·Π° Π³Π°ΡΠ°Π½ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ°. Π’ΠΎΠ·ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π½Π΅ΡΠΏΡΠ»Π½ΠΎΠΌΠΎΡΠ΅Π½ΠΈ Ρ
ΠΎΡΠ° Π΄Π° ΠΊΠ°ΡΠ²Π°Ρ RPM ΠΏΠ°ΠΊΠ΅ΡΠΈ Π½Π° ΡΡΡΠ²ΡΡ, ΠΊΠΎΠΉΡΠΎ Π΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π·Π° Π²ΡΠΈΡΠΊΠΈ Linux ΠΌΠ°ΡΠΈΠ½ΠΈ.
ΠΠ΅ΡΡΠΈΠΎΠ½ΠΈΡΠ°Π½Π΅ Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ
ΠΠ° ΠΊΠΎΠ½ΡΡΠ»ΡΠ°ΡΠΈΡΡΠ° Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΅ ΠΎΠΊΠ°Π·Π°, ΡΠ΅ ΠΌΠΎΠΌΡΠ΅ΡΠ°ΡΠ° ΡΠ° ΠΏΠΎ-Π±Π»ΠΈΠ·ΠΎ Π΄ΠΎ MS SQL, Π½ΠΎ Π² ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ° Windows, Π½ΠΈΠ΅ Π²Π΅ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠ΅ PostgreSQL Ρ ΠΏΡΠ»Π½Π° ΡΠΈΠ»Π°. Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π²Π΅ΡΠ΅ ΡΠ΅ΡΠΈΡ ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΎΡΡΠ°Π²ΠΈΠΌ Π²ΡΠΈΡΠΊΠΎ ΠΏΠ»Π°ΡΠ΅Π½ΠΎ, Π·Π°ΠΏΠΎΡΠ½Π°Ρ ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ PostgreSQL ΠΈ ΡΡΠΊ.
Π ΡΠ°Π·ΠΈ ΡΠ°ΡΡ ΠΈΡΠΊΠ°ΠΌ Π΄Π° Π²ΠΈ ΡΠ°Π·ΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ Π½Π°ΠΏΡΠ°Π²ΠΈΡ
ΠΌΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΠΈ ΠΊΠ°ΠΊ ΠΈΠ·Π±ΡΠ°Ρ
ΠΌΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Flyway ΠΈ Entity Framework Core. ΠΠΎΠΌΠΈΡΠ»Π΅ΡΠ΅ Π·Π° ΡΠ΅Ρ
Π½ΠΈΡΠ΅ ΠΏΠ»ΡΡΠΎΠ²Π΅ ΠΈ ΠΌΠΈΠ½ΡΡΠΈ.
ΠΡΠΎΡΠΈΠ²
Flyway Π²ΡΡΠ²ΠΈ ΡΠ°ΠΌΠΎ Π² Π΅Π΄Π½Π° ΠΏΠΎΡΠΎΠΊΠ°, Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ΅ Π²ΡΡΠ½Π΅ΠΌ Π½Π°Π·Π°Π΄ Π΅ ΡΡΡΠ΅ΡΡΠ²Π΅Π½ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΊ. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ°Π²Π½ΠΈΡΠ΅ Ρ Entity Framework Core ΠΏΠΎ Π΄ΡΡΠ³ΠΈ Π½Π°ΡΠΈΠ½ΠΈ - ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎΡΠΎ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ. Π‘ΠΏΠΎΠΌΠ½ΡΡΠ΅ ΡΠΈ, ΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΈΡ ΠΌΠ΅ ΡΠΎΠ²Π° Π½Π° ΠΏΡΠ΅Π΄Π΅Π½ ΠΏΠ»Π°Π½ ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΡ ΠΊΡΠΈΡΠ΅ΡΠΈΠΉ Π±Π΅ΡΠ΅ Π΄Π° Π½Π΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΠΌΠ΅ Π½ΠΈΡΠΎ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Windows.
ΠΠ° Π½Π°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π΅ Π½ΡΠΊΠ°ΠΊΠ²Π° ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°ΡΠ°ΠΊΠ° ΡΠ΅ ΠΌΠΎΠΌΡΠ΅ΡΠ°ΡΠ° Π΄Π° Π½Π΅ ΠΏΠΈΡΠ°Ρ SQL Π·Π°ΡΠ²ΠΊΠΈ. Π’Π΅ ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π±Π»ΠΈΠ·ΠΊΠΈ Π΄ΠΎ ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° OOP. ΠΠ°ΠΏΠΈΡΠ°Ρ ΠΌΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΎΠ±Π΅ΠΊΡΠΈ Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, ΡΠΎΡΠΌΠΈΡΠ°Ρ ΠΌΠ΅ SQL Π·Π°ΡΠ²ΠΊΠ° ΠΈ Ρ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡ ΠΌΠ΅. ΠΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ Π΅ Π³ΠΎΡΠΎΠ²Π°, Π½Π°Π²ΠΈΡΠ° - Π²ΡΠΈΡΠΊΠΎ Π΅ Π½Π°ΡΠ΅Π΄, Π²ΡΠΈΡΠΊΠΎ ΡΠ°Π±ΠΎΡΠΈ.
Entity Framework Core ΠΈΠΌΠ° ΠΌΠΈΠ½ΡΡ - ΠΏΡΠΈ Π³ΠΎΠ»Π΅ΠΌΠΈ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½ΠΈΡ, ΡΠΎ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π° Π½Π΅ΠΎΠΏΡΠΈΠΌΠ°Π»Π½ΠΈ SQL Π·Π°ΡΠ²ΠΊΠΈΠΈ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ. ΠΠΎ ΡΡΠΉ ΠΊΠ°ΡΠΎ Π½ΡΠΌΠ°ΠΌΠ΅ Π²ΠΈΡΠΎΠΊΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ΅Π½Π° ΡΡΠ»ΡΠ³Π°, Π½Π΅ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°ΠΌΠ΅ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π² ΡΡΠΎΡΠΈΡΠΈ RPS, Π½ΠΈΠ΅ ΠΏΡΠΈΠ΅Ρ ΠΌΠ΅ ΡΠ΅Π·ΠΈ ΡΠΈΡΠΊΠΎΠ²Π΅ ΠΈ Π΄Π΅Π»Π΅Π³ΠΈΡΠ°Ρ ΠΌΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π° Π±ΡΠ΄Π΅ΡΠ΅ΡΠΎ.
ΠΡΠΎΡΠ΅ΡΠΈΠΎΠ½Π°Π»ΠΈΡΡΠΈ
Π―Π΄ΡΠΎ Π½Π° Entity Framework ΡΠ°Π±ΠΎΡΠΈ ΠΈΠ·Π²ΡΠ½ ΠΊΡΡΠΈΡΡΠ° ΠΈ Π΅ Π»Π΅ΡΠ΅Π½ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ΠΈ Flyway Π»Π΅ΡΠ½ΠΎ ΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ° Π² ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ CI. ΠΠΎ Π½ΠΈΠ΅ Π³ΠΎ ΠΏΡΠ°Π²ΠΈΠΌ ΡΠ΄ΠΎΠ±Π½ΠΎ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ :)
Π ΠΎΠ»-ΠΎΠ½ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°
Puppet Π²ΠΈΠΆΠ΄Π°, ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠΎΠΈ ΠΏΡΠΎΠΌΡΠ½Π° Π²ΡΠ² Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅, ΡΡΠ΅Π΄ ΠΊΠΎΠΈΡΠΎ ΡΠΎΠ·ΠΈ, ΠΊΠΎΠΉΡΠΎ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π·Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΡΡΠ°. ΠΡΡΠ²ΠΎ, ΡΠΎΠΉ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ° ΠΏΠ°ΠΊΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ ΡΡΠ΄ΡΡΠΆΠ° ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ, ΡΠ²ΡΡΠ·Π°Π½Π° Ρ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Ρ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ, ΡΠ΅ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°. Π‘Π»Π΅Π΄Π²Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΎΡΡΠ°Π½Π°Π»ΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ. Π Π΅Π΄ΡΡ, Π² ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Ρ ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π΅ ΠΎΠΏΠΈΡΠ°Π½ Π² ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ° Π½Π° Puppet.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΊΠ°ΡΠΎ ΡΠΎΠΊΠ΅Π½ΠΈ, ΠΏΠ°ΡΠΎΠ»ΠΈ Π·Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΡΠ΅ ΠΈΠ·ΡΠ΅Π³Π»Ρ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° ΠΎΡ Puppet master, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π² ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π° ΡΠΎΡΠΌΠ°.
ΠΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ TFS
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΡΠ΅ΡΠΈΡ ΠΌΠ΅ ΠΈ ΡΠ°Π·Π±ΡΠ°Ρ ΠΌΠ΅, ΡΠ΅ Π²ΡΠΈΡΠΊΠΎ Π½Π°ΠΈΡΡΠΈΠ½Π° ΡΠ°Π±ΠΎΡΠΈ Π·Π° Π½Π°Ρ, ΡΠ΅ΡΠΈΡ Π΄Π° Π²ΠΈΠ΄Ρ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π° ΡΡΡ ΡΠ³Π»ΠΎΠ±ΠΊΠΈΡΠ΅ Π² TFS ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ Π·Π° ΠΎΡΠ΄Π΅Π»Π° Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Win ΠΏΠΎ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ - Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π΄Π°Π»ΠΈ ΡΠ΅ / ΠΏΡΡΠΊΠ°ΠΌΠ΅ Π±ΡΡΠ·ΠΎ ΠΈΠ»ΠΈ Π½Π΅, ΠΈ ΠΎΡΠΊΡΠΈΡ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ ΡΠΊΠΎΡΠΎΡΡ .
ΠΠ΄ΠΈΠ½ ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π²ΡΡΠ²ΠΈ ΠΊΡΠΌ 12-15 ΠΌΠΈΠ½ΡΡΠΈ - ΡΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅, Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΆΠΈΠ²Π΅Π΅ ΡΠ°ΠΊΠ°. ΠΡΡΠ· Π°Π½Π°Π»ΠΈΠ· ΠΏΠΎΠΊΠ°Π·Π° ΡΠΆΠ°ΡΠ½ΠΎ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° I / O ΠΈ ΡΠΎΠ²Π° Π΅ Π½Π° ΠΌΠ°ΡΠΈΠ²ΠΈ.
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Ρ ΡΡΠΈ ΠΎΠ³Π½ΠΈΡΠ°. ΠΏΡΡΠ²ΠΎ - Π°Π½ΡΠΈΠ²ΠΈΡΡΡ Π½Π° ΠΊΠ°ΡΠΏΠ΅ΡΡΠΊΠΈ, ΠΊΠΎΠΉΡΠΎ ΡΠΊΠ°Π½ΠΈΡΠ° ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈΡΠ΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ Π°Π³Π΅Π½ΡΠΈ Π½Π° Windows Build. Π²ΡΠΎΡΠΎ - Windows ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΎΡ. ΠΠ΅ Π±Π΅ΡΠ΅ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ ΠΈ Π²ΡΠΈΡΠΊΠΎ Π±Π΅ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½ΠΎ Π² Π°Π³Π΅Π½ΡΠΈΡΠ΅ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅.
ΡΡΠ΅ΡΠΎ - npm ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅. ΠΠΊΠ°Π·Π° ΡΠ΅, ΡΠ΅ Π² ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ Pipeline ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΡΠΎΠ·ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΉ. ΠΠ°ΡΠΎ Π΅ Π»ΠΎΡ? ΠΡΠΎΡΠ΅Π΄ΡΡΠ°ΡΠ° Π·Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° Npm ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΏΡΠΈ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄ΡΡΠ²ΠΎΡΠΎ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ package-lock.json, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ° ΡΠΈΠΊΡΠΈΡΠ°Π½ΠΈ Π²Π΅ΡΡΠΈΠΈΡΠ΅ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ΅Π΄ΠΎΡΡΠ°ΡΡΠΊΡΡ Π΅, ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡΡΠ° Π½Π° Npm ΠΈΠ·ΡΠ΅Π³Π»Ρ Π½Π°ΠΉ-Π½ΠΎΠ²ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΎΡ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ, Π° ΡΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π² ΡΠ»ΡΡΠ°ΠΉ Π½Π° Π³ΠΎΠ»ΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡ.
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠ°Ρ Π½Π° Π»ΠΎΠΊΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π°, Π·Π° Π΄Π° ΡΠ΅ΡΡΠ²Π°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΠ°ΡΡ ΠΈΠ»ΠΈ ΡΡΠ» ΠΏΡΠΎΠ΅ΠΊΡ. ΠΠΎΠ½ΡΠΊΠΎΠ³Π° ΡΠ΅ ΠΎΠΊΠ°Π·Π°, ΡΠ΅ Π²ΡΠΈΡΠΊΠΎ Π΅ Π³ΠΎΡΠΈΠ½ΠΎ Π½Π° ΠΌΠ΅ΡΡΠ½ΠΎ Π½ΠΈΠ²ΠΎ, Π½ΠΎ ΡΠ΅ Π³ΠΎ ΡΡΠ±ΡΠ°Ρ Π°, ΠΏΡΡΠ½Π°Ρ Π° Π³ΠΎ - Π½ΠΈΡΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ. ΠΠ°ΠΏΠΎΡΠ²Π°ΠΌΠ΅ Π΄Π° ΡΠ°Π·Π±ΠΈΡΠ°ΠΌΠ΅ ΠΊΠ°ΠΊΡΠ² Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ - Π΄Π°, ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ ΡΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅
- ΠΠ·ΡΠΎΡΠ½ΠΈΡΠΈ Π² AV ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
- ΠΠ΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½Π΅ΡΠΎ.
- ΠΡΠΈΠ΄Π΅ΡΠ΅ Π½Π° npm ci.
ΠΡΠ΅Π΄ΠΈΠΌΡΡΠ²ΠΎΡΠΎ Π½Π° npm ci Π΅, ΡΠ΅ Π½ΠΈΠ΅ ΡΡΠ±Π΅ΡΠ΅ΡΠ΅ Π΄ΡΡΠ²ΠΎΡΠΎ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ Π²Π΅Π΄Π½ΡΠΆ, ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π°ΠΊΡΡΠ°Π»Π΅Π½ ΡΠΏΠΈΡΡΠΊ Ρ ΠΏΠ°ΠΊΠ΅ΡΠΈ, Ρ ΠΊΠΎΠΈΡΠΎ ΡΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠ° Π½Π° ΠΌΠ΅ΡΡΠ½ΠΎ Π½ΠΈΠ²ΠΎ, ΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΡΠΈ ΠΈΡΠΊΠ°. Π’ΠΎΠ²Π° ΡΠΏΠ΅ΡΡΡΠ²Π° Π²ΡΠ΅ΠΌΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΈΡΠ°Ρ ΠΊΠΎΠ΄Π°.
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ
Π‘Π΅Π³Π° ΠΌΠ°Π»ΠΊΠΎ Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ. ΠΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΌΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π»ΠΈ SSI Nexus Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΡΡΡΠ΅ΡΠ½ΠΎ Π ΠΠΠ. Π’ΠΎΠ²Π° Π²ΡΡΡΠ΅ΡΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΈΠ΄Π²Π° Ρ Π²ΡΠΈΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π·Π° Π²ΡΡΡΠ΅ΡΠ½ΠΈ ΡΠ΅Π»ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΌΠΎΠ½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅.
ΠΠΈΠ΅ ΡΡΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ NuGet, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΊΠ΅ΡΠΈΡΠ° ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ ΠΎΡ Π΄ΡΡΠ³ΠΈΡΠ΅ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΠΈ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ.
Π Π΅Π·ΡΠ»ΡΠ°Ρ
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Ρ ΠΌΠ΅ Π°Π³Π΅Π½ΡΠΈΡΠ΅ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅, ΡΡΠ΅Π΄Π½ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π±Π΅ΡΠ΅ Π½Π°ΠΌΠ°Π»Π΅Π½ΠΎ ΠΎΡ 12 ΠΌΠΈΠ½ΡΡΠΈ Π½Π° 7.
ΠΠΊΠΎ ΠΏΡΠ΅Π±ΡΠΎΠΈΠΌ Π²ΡΠΈΡΠΊΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π·Π° Windows, Π½ΠΎ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Ρ ΠΌΠ΅ ΠΊΡΠΌ Linux Π² ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ, ΡΠΏΠ΅ΡΡΠΈΡ ΠΌΠ΅ ΠΎΠΊΠΎΠ»ΠΎ $ 10 000. Π ΡΠΎΠ²Π° Π΅ ΡΠ°ΠΌΠΎ ΠΎΡ Π»ΠΈΡΠ΅Π½Π·ΠΈ, Π° Π°ΠΊΠΎ Π²ΠΊΠ»ΡΡΠΈΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅, ΠΏΠΎΠ²Π΅ΡΠ΅.
ΠΠ»Π°Π½ΠΎΠ²Π΅
ΠΠ° ΡΠ»Π΅Π΄Π²Π°ΡΠΎΡΠΎ ΡΡΠΈΠΌΠ΅ΡΠ΅ΡΠΈΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠ°Ρ ΠΌΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈΠΌ Π²ΡΡΡ Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π΄ΠΎΡΡΠ°Π²ΠΊΠ°ΡΠ° Π½Π° ΠΊΠΎΠ΄.
ΠΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ ΠΊΡΠΌ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Docker. TFS Π΅ ΡΡΡΠ°Ρ ΠΎΡΠ½ΠΎ Π½Π΅ΡΠΎ Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ»ΡΠ³ΠΈΠ½ΠΈ, ΠΊΠΎΠΈΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°ΡΠ΅ Π² Pipeline, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΡΠΈΠ³Π΅Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Docker. ΠΡΠΊΠ°ΠΌΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΡΠΎΠ·ΠΈ ΡΡΠΈΠ³Π΅Ρ Π½Π° ΡΡΡΠΎΡΠΎ package-lock.json. ΠΠΊΠΎ ΡΡΡΡΠ°Π²ΡΡ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΏΠΎ Π½ΡΠΊΠ°ΠΊΡΠ² Π½Π°ΡΠΈΠ½, Π½ΠΈΠ΅ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°ΠΌΠ΅ Π½ΠΎΠ²ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Docker. ΠΠΎ-ΠΊΡΡΠ½ΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Ρ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘Π΅Π³Π° ΡΠΎΠ²Π° Π½Π΅ Π΅ ΡΠ°ΠΊΠ°, Π½ΠΎ ΠΏΠ»Π°Π½ΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΊΡΠΌ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π² Kubernetes, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° Π°ΠΊΡΠΈΠ²Π½ΠΎ Π² Π½Π°ΡΠ°ΡΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ ΠΈ ΠΎΠ±ΡΠ»ΡΠΆΠ²Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΡ Π΄ΡΠ»Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅.
ΠΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
ΠΡΠΈΠ·ΠΎΠ²Π°Π²Π°ΠΌ Π²ΡΠΈΡΠΊΠΈ Π΄Π° ΠΈΠ·Ρ Π²ΡΡΠ»ΡΡ Windows, Π½ΠΎ Π½Π΅ Π΅ Π·Π°ΡΠΎΡΠΎ Π½Π΅ ΠΌΠΎΠ³Π° Π΄Π° Π³ΠΎ Π³ΠΎΡΠ²Ρ. ΠΡΠΈΡΠΈΠ½Π°ΡΠ° Π΅, ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ ΡΠ° ΡΠ°ΠΊΠΈΠ²Π° Linux ΡΡΠ΅ΠΊ. ΠΠΎΠ±ΡΡ Π»ΠΈ ΡΠΈ ΡΠΏΠ΅ΡΡΠ΅ΡΠ΅ ΡΠ΅ΡΡΡΡΠΈ. Π‘ΠΏΠΎΡΠ΅Π΄ ΠΌΠ΅Π½ Π±ΡΠ΄Π΅ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈ Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ° Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ Π·Π° Linux Ρ ΠΌΠΎΡΠ½Π° ΠΎΠ±ΡΠ½ΠΎΡΡ.
ΠΡΠΎΡΠΈΠ» Π½Π° Π»Π΅ΠΊΡΠΎΡΠ° ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΡ Π‘ΠΈΠ½ΡΠΈΠ½ΠΎΠ²
DevOps Conf Π΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, ΡΠ΅ΡΡΠ²Π°Π½Π΅ ΠΈ ΡΠ°Π±ΠΎΡΠ° Π·Π° ΠΏΡΠΎΡΠ΅ΡΠΈΠΎΠ½Π°Π»ΠΈΡΡΠΈ ΠΎΡ ΠΏΡΠΎΡΠ΅ΡΠΈΠΎΠ½Π°Π»ΠΈΡΡΠΈ. ΠΡΠΎ Π·Π°ΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡΡΡ, Π·Π° ΠΊΠΎΠΉΡΠΎ Π³ΠΎΠ²ΠΎΡΠΈ ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΡ? Π²Π½Π΅Π΄ΡΠ΅Π½Π° ΠΈ ΡΠ°Π±ΠΎΡΠ΅ΡΠ°, Π° Π² Π΄Π΅Π½Ρ Π½Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ΡΠΎ Π±ΡΡ Π° Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΈ Π΄Π²Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΈ Π²Π΅ΡΡΠΈΠΈ. ΠΠ°DevOps Conf Π² RIT++ ΠΠ° 27 ΠΈ 28 ΠΌΠ°ΠΉ ΡΠ΅ ΠΈΠΌΠ° ΠΎΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠ°ΠΊΠΈΠ²Π° ΡΠ»ΡΡΠ°ΠΈ ΠΎΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΡΠ²Π°ΡΠΈ Π»Π΅ΠΊΠ°ΡΠΈ. ΠΡΠ΅ ΠΎΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠΊΠΎΡΠΈΡΠ΅ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π²Π°Π³ΠΎΠ½ ΠΈΠΏΠΎΠ΄Π°Π΄Π΅ΡΠ΅ Π΄ΠΎΠΊΠ»Π°Π΄ ΠΈΠ»ΠΈ Π½Π΅ Π±ΡΡΠ·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠ°ΠΌ Π±ΠΈΠ»Π΅Ρ. Π©Π΅ ΡΠ΅ Π²ΠΈΠ΄ΠΈΠΌ Π² Π‘ΠΊΠΎΠ»ΠΊΠΎΠ²ΠΎ!
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com