ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Ρ 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ ΠΈ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΡΠ΅ΡΡ Ρ ΡΡΡΠΈΠ½Π½ΡΠΌΠΈ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ β ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ΠΌ Π±Π°Π·, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ, ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΎΡΠΊΠ°ΡΠΊΠ°ΠΌΠΈ ΠΏΠΎΡΠ»Π΅ Π½Π΅ΡΠ΄Π°ΡΠ½ΡΡ ΡΠ΅Π»ΠΈΠ·ΠΎΠ² β Π·Π½Π°ΡΠΈΡ, Π²Π°ΠΌ ΠΏΠΎΡΠ° ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ 1C DevOps. ΠΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ, Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ (CI) ΠΈ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ (CD), Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ΄ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ 1Π‘.
Π ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ DevOps β ΡΡΠΎ ΠΊΡΠ»ΡΡΡΡΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² (Dev) ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ
Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠ² (Ops), Π½Π°ΡΠ΅Π»Π΅Π½Π½Π°Ρ Π½Π° ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ Π²ΡΠΏΡΡΠΊΠ° ΠΠ Π±Π΅Π· ΠΏΠΎΡΠ΅ΡΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²Π°. ΠΠΎ Π² ΠΌΠΈΡΠ΅ 1Π‘ Π²ΡΠ΅ ΠΈΠ½Π°ΡΠ΅: Π·Π΄Π΅ΡΡ Π½Π΅Ρ ΠΏΡΠΈΠ²ΡΡΠ½ΡΡ
Docker-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΈΠ»ΠΈ Kubernetes, Π·Π°ΡΠΎ Π΅ΡΡΡ ΡΠ²ΠΎΠΈ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ β ΠΎΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΠΌΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ Π΄ΠΎ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ
ΠΌΠ΅ΠΆΠ΄Ρ Π±Π°Π·Π°ΠΌΠΈ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ DevOps-ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² 1Π‘, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΈ Ρ ΡΠ΅Π³ΠΎ Π½Π°ΡΠ°ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ.
Π‘ΠΏΠΎΠΉΠ»Π΅Ρ: Π΅ΡΠ»ΠΈ Π²Ρ Π΄ΡΠΌΠ°Π΅ΡΠ΅, ΡΡΠΎ DevOps Π² 1Π‘ β ΡΡΠΎ ΠΏΡΠΎ ΡΠΊΡΠΈΠΏΡΡ Π½Π° PowerShell ΠΈ ΡΡΡΠ½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ², Π²Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ΄ΠΈΠ²ΠΈΡΠ΅ΡΡ. Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΡΡΠΎΠΈΡΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠ΅ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Ρ Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, Π΄Π΅ΠΏΠ»ΠΎΠ΅ΠΌ ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ΠΎΠΌ, ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΡΡΡ Π΄Π°ΠΆΠ΅ Ρ Git ΠΈ Jenkins. ΠΠΎ ΠΎΠ±ΠΎ Π²ΡΠ΅ΠΌ ΠΏΠΎ ΠΏΠΎΡΡΠ΄ΠΊΡ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ DevOps Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ 1Π‘: ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΎΡΠ»ΠΈΡΠΈΡ ΠΎΡ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°
Π’ΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΉ DevOps ΠΎΠΏΠ΅ΡΠΈΡΡΠ΅Ρ ΠΏΠΎΠ½ΡΡΠΈΡΠΌΠΈ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄Π° (IaC), ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΈ ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ². Π 1Π‘ Π²ΡΠ΅ ΡΡΡΡΠΎΠ΅Π½ΠΎ ΠΈΠ½Π°ΡΠ΅:
- πΉ ΠΠΎΠ½ΠΎΠ»ΠΈΡΠ½Π°Ρ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ°: ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ 1Π‘ β ΡΡΠΎ Π΅Π΄ΠΈΠ½ΡΠΉ ΡΠ°ΠΉΠ» (
.cfΠΈΠ»ΠΈ.cfu), Π° Π½Π΅ Π½Π°Π±ΠΎΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ². ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°ΡΡ Π²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ. - πΉ Π‘ΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΎΡΠΌΠ°ΡΡ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ: Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠΈΠ²ΡΡΠ½ΡΡ
.sqlΠΈΠ»ΠΈ.jsonΡΠ°Π±ΠΎΡΠ° Π²Π΅Π΄Π΅ΡΡΡ Ρ Π±ΠΈΠ½Π°ΡΠ½ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ ΠΈ Π²ΡΠ³ΡΡΠ·ΠΊΠ°ΠΌΠΈ Π±Π°Π· (.dt). - πΉ ΠΠ°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ: Π²Π΅ΡΡΠΈΠΎΠ½Π½ΠΎΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, Π½ΠΎ ΠΈ ΡΠ°ΠΌΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ 1Π‘ (8.3.20 vs 8.3.22) Π΄ΠΈΠΊΡΡΠ΅Ρ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ.
- πΉ Π ΡΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ: ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π·
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΎΡ) ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π²ΡΡΡΠ½ΡΡ, ΡΡΠΎ ΡΠΎΡΠΌΠΎΠ·ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ.
ΠΠ·-Π·Π° ΡΡΠΈΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ DevOps-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ (Ansible, Terraform) Π·Π΄Π΅ΡΡ ΠΌΠ°Π»ΠΎΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Ρ. ΠΠΌΠ΅ΡΡΠΎ Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ:
| ΠΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ DevOps | 1C DevOps |
|---|---|
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠΎΠΉ ΡΠ΅ΡΠ΅Π· Terraform/CloudFormation |
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ Π±Π°Π· ΡΠ΅ΡΠ΅Π· 1C:EDT ΠΈΠ»ΠΈ Vanessa-ADD |
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΡ Ρ Docker |
ΠΠ·ΠΎΠ»ΡΡΠΈΡ ΡΡΠ΅Π΄ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½ ΠΈΠ»ΠΈ 1C:Fresh |
| CI/CD ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Ρ Π² GitHub Actions ΠΈΠ»ΠΈ GitLab CI | Π‘ΠΊΡΠΈΠΏΡΡ Π½Π° PowerShell/Bash + ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Jenkins ΠΈΠ»ΠΈ TeamCity |
| ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΡΠ΅ΡΠ΅Π· Prometheus + Grafana | ΠΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ Π² ΠΡΡΠ½Π°Π»Π΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ 1Π‘ + Π²Π½Π΅ΡΠ½ΠΈΠ΅ Π΄Π°ΡΠ±ΠΎΡΠ΄Ρ |
ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅: Π² 1Π‘ DevOps Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ, Π° Π½Π΅ Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ. ΠΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΡΡΡ β ΡΡΠΎ Π²ΡΠ³ΡΡΠ·ΠΊΠ°/Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΉ ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄ Π΄Π΅ΠΏΠ»ΠΎΠ΅ΠΌ.
ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ΅Π½ DevOps Π² 1Π‘: 5 ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ ΡΠ΅ΡΠ°Π΅Ρ
ΠΡΠ»ΠΈ Π²Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ Π±Π°Π·Ρ Π²ΡΡΡΠ½ΡΡ ΠΈΠ»ΠΈ ΡΠ΅ΡΡΠΈΡΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ "Π½Π° ΠΊΠΎΠ»Π΅Π½ΠΊΠ΅", Π²Ρ ΡΠ΅ΡΡΠ΅ΡΠ΅ Π²ΡΠ΅ΠΌΡ ΠΈ ΡΠΈΡΠΊΡΠ΅ΡΠ΅ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠΎΡ ΡΠΈΠΏΠΈΡΠ½ΡΠ΅ Π±ΠΎΠ»ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ±ΠΈΡΠ°Π΅Ρ 1C DevOps:
- "ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠ»ΠΎΠΌΠ°Π»Π°ΡΡ ΠΏΠΎΡΠ»Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ" β ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΎΡΠΊΠ°Ρ ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ. DevOps ΡΠ΅ΡΠ°Π΅Ρ ΡΡΠΎ ΡΠ΅ΡΠ΅Π· version control ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π±ΡΠΊΠ°ΠΏΡ ΠΏΠ΅ΡΠ΅Π΄ Π΄Π΅ΠΏΠ»ΠΎΠ΅ΠΌ.
- "Π’Π΅ΡΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ Π½Π΅ ΡΡΠΏΠ΅Π²Π°ΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ" β ΡΡΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π΄Π½ΠΈ. ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΡΡ (Vanessa-Automation) ΡΠΎΠΊΡΠ°ΡΠ°ΡΡ Π²ΡΠ΅ΠΌΡ Π΄ΠΎ ΡΠ°ΡΠΎΠ².
- "Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°" β Π½Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ. ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Git ΠΈΠ»ΠΈ 1C:EDT ΡΠΈΠΊΡΠΈΡΡΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ.
- "ΠΠ΅ΠΏΠ»ΠΎΠΉ Π½Π° Π±ΠΎΠ΅Π²ΡΡ Π±Π°Π·Ρ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π²ΡΡ Π½ΠΎΡΡ" β ΡΡΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΎΡΠΌΠΎΠ·ΡΡ ΡΠ΅Π»ΠΈΠ·Ρ. Π‘ΠΊΡΠΈΠΏΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠΊΡΠ°ΡΠ°ΡΡ Π²ΡΠ΅ΠΌΡ Π΄ΠΎ ΠΌΠΈΠ½ΡΡ.
- "ΠΠ΅ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΠΊΡΠΎ ΠΈ ΠΊΠΎΠ³Π΄Π° Π²Π½ΠΎΡΠΈΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ" β Π½Π΅Ρ Π°ΡΠ΄ΠΈΡΠ°. ΠΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² CI/CD-ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠΈΠΊΡΠΈΡΡΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΠΈΠ½ΠΎΠ²Π½ΠΈΠΊΠ°.
ΠΡΠΈΠΌΠ΅Ρ ΠΈΠ· ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ: ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Ρ 20 Π±Π°Π·Π°ΠΌΠΈ 1Π‘ ΡΡΠ°ΡΠΈΠ»Π° 12 ΡΠ°ΡΠΎΠ² Π² Π½Π΅Π΄Π΅Π»Ρ Π½Π° ΡΡΡΠ½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ. ΠΠΎΡΠ»Π΅ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ Jenkins + Vanessa-ADD ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΎΠΊΡΠ°ΡΠΈΠ»ΠΎΡΡ Π΄ΠΎ 1 ΡΠ°ΡΠ° β ΠΈ Π±Π΅Π· ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈΠ·-Π·Π° "ΡΠ΅Π»ΠΎΠ²Π΅ΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ°ΠΊΡΠΎΡΠ°".
ΠΠ°ΡΠ½ΠΈΡΠ΅ Ρ ΠΌΠ°Π»ΠΎΠ³ΠΎ: Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΡΠΉΡΠ΅ Ρ ΠΎΡΡ Π±Ρ Π²ΡΠ³ΡΡΠ·ΠΊΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π² Git ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ. ΠΡΠΎ Π·Π°ΠΉΠΌΠ΅Ρ 1 Π΄Π΅Π½Ρ, Π½ΠΎ ΡΠΏΠ°ΡΠ΅Ρ Π²Π°Ρ ΠΎΡ ΠΏΠΎΡΠ΅ΡΠΈ ΠΊΠΎΠ΄Π° ΠΏΡΠΈ ΡΠ±ΠΎΠ΅.
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π΅ΡΠ»ΠΈ Π² Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π±Π°Π·Ρ 1Π‘ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΡΠ΅ΡΠ΅Π· Π ΠΠ), Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Π΄Π΅ΠΏΠ»ΠΎΡ ΡΡΠ΅Π±ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΡΠ°Π±ΠΎΡΠΊΠΈ. Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ ΠΌΠΎΠ³ΡΡ Π½Π΅ ΡΡΠ΅ΡΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ .
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ 1C DevOps: ΠΎΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π΄ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ 1Π‘ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π½Π° 3 ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ:
- π Π‘ΠΊΡΠΈΠΏΡΡ ΠΈ ΡΡΠΈΠ»ΠΈΡΡ:
PowerShell,Bash, 1C:Enterprise Development Tools (EDT). - π€ Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ: Vanessa-ADD, 1C:Fresh, Gilex.
- π CI/CD ΡΠΈΡΡΠ΅ΠΌΡ: Jenkins, TeamCity, GitLab CI (Ρ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ Π΄Π»Ρ 1Π‘).
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅.
1. Π‘ΠΊΡΠΈΠΏΡΡ Π½Π° PowerShell/Bash
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ β ΠΏΠΈΡΠ°ΡΡ ΡΠΊΡΠΈΠΏΡΡ Π΄Π»Ρ ΡΡΡΠΈΠ½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ. ΠΡΠΈΠΌΠ΅ΡΡ Π·Π°Π΄Π°Ρ:
- π ΠΡΠ³ΡΡΠ·ΠΊΠ°/Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ΅ΡΠ΅Π·
Designer.exe:
Start-Process -FilePath "C:\Program Files\1cv8\8.3.20.1500\bin\Designer.exe" -ArgumentList "/IBName `"`"Srvr=localhost;Ref=test`" `/DumpIB `"`"C:\backup\test.dt`"`" /N `"`"ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ`"`" /P `"`"password`"`"" -Wait
Start-Process -FilePath "C:\Program Files\1cv8\8.3.20.1500\bin\1cv8.exe" -ArgumentList "ENTERPRISE /S `"`"Srvr=localhost;Ref=test`"`" /N `"`"ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ`"`" /P `"`"password`"`" /C `"`"ΠΠ±Π½ΠΎΠ²ΠΈΡΡΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΠ·Π€Π°ΠΉΠ»Π°; C:\updates\config.cfu`"`"" -Wait
ΠΠ»ΡΡΡ: Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ, Π³ΠΈΠ±ΠΊΠΎ, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Π»ΡΠ±ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅. ΠΠΈΠ½ΡΡΡ: ΡΡΠ΅Π±ΡΠ΅Ρ Π·Π½Π°Π½ΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ².
2. Vanessa-ADD
Vanessa-ADD (Automated Deployment Driver) β ΡΡΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ Π΄Π΅ΠΏΠ»ΠΎΡ 1Π‘, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Vanessa. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ:
- π¦ Π£ΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π² Π°ΡΡΠ΅ΡΠ°ΠΊΡΡ Π΄Π»Ρ Π΄Π΅ΠΏΠ»ΠΎΡ.
- π ΠΠ±Π½ΠΎΠ²Π»ΡΡΡ Π±Π°Π·Ρ Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ.
- π Π‘ΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ Π²Π΅ΡΡΠΈΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ.
- π‘ Π‘ΠΎΠ·Π΄Π°Π²Π°ΡΡ Π±ΡΠΊΠ°ΠΏΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡΠΌΠΈ.
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π±Π°Π·Ρ ΡΠ΅ΡΠ΅Π· Vanessa-ADD:
vanessa-add deploy --source="C:\configs\project.cfu" --target="Srvr=server;Ref=base" --user="ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ" --password="pass"
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: Vanessa-ADD ΠΏΠ»Π°ΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ (Π»ΠΈΡΠ΅Π½Π·ΠΈΡ ΠΎΡ 50 000 β½/Π³ΠΎΠ΄), Π½ΠΎ Π΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΠΎΠΊΡΠΏΠ°Π΅ΡΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ 5+ Π±Π°Π·Π°ΠΌΠΈ. ΠΠ»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Ρ Π²Π°ΡΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ².
3. 1C:EDT (Enterprise Development Tools)
1C:EDT β ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½Π°Ρ ΡΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡ 1Π‘, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ:
- π ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Git (Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅).
- π Π Π΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·.
- π¦ Π‘Π±ΠΎΡΠΊΡ ΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ.
ΠΠ»Π°Π²Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ β ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. ΠΠΈΠ½ΡΡ β Π²ΡΡΠΎΠΊΠ°Ρ ΡΠ΅Π½Π° (ΠΎΡ 30 000 β½ Π·Π° Π»ΠΈΡΠ΅Π½Π·ΠΈΡ).
4. CI/CD ΡΠΈΡΡΠ΅ΠΌΡ (Jenkins, TeamCity)
ΠΠ»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΡ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ:
- π Jenkins Ρ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ
1C (EDT) PluginΠΈΠ»ΠΈVanessa-ADD Plugin. - π TeamCity Ρ ΠΊΠ°ΡΡΠΎΠΌΠ½ΡΠΌΠΈ Π±ΠΈΠ»Π΄-ΡΡΠ΅ΠΏΠ°ΠΌΠΈ Π΄Π»Ρ 1Π‘.
- π GitLab CI (ΡΠ΅ΠΆΠ΅ ΠΈΠ·-Π·Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄Π»Ρ 1Π‘).
ΠΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π° Π² Jenkins:
- ΠΡΠ³ΡΡΠ·ΠΊΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈΠ· Git.
- Π‘Π±ΠΎΡΠΊΠ° Π°ΡΡΠ΅ΡΠ°ΠΊΡΠ° (
.cfu). - ΠΠ°ΠΏΡΡΠΊ Π°Π²ΡΠΎΡΠ΅ΡΡΠΎΠ² (Vanessa-Automation).
- ΠΠ΅ΠΏΠ»ΠΎΠΉ Π½Π° ΡΠ΅ΡΡΠΎΠ²ΡΡ Π±Π°Π·Ρ.
- Π ΡΡΠ½ΠΎΠ΅ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄ Π΄Π΅ΠΏΠ»ΠΎΠ΅ΠΌ Π½Π° ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½.
ΠΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΉΠ»Π° Jenkinsfile Π΄Π»Ρ 1Π‘
pipeline {
agent any
stages {
stage('ΠΡΠ³ΡΡΠ·ΠΊΠ° ΠΈΠ· Git') {
steps {
git 'https://gitlab.com/your-repo/1c-config.git'
}
}
stage('Π‘Π±ΠΎΡΠΊΠ° CFU') {
steps {
bat '1C-EDT.exe --build --output=config.cfu'
}
}
stage('Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅') {
steps {
bat 'vanessa-automation run --tests="C:\tests\smoke.vst"'
}
}
}
}
ΠΠ»ΡΡΠ΅Π²ΠΎΠΉ Π²ΡΠ²ΠΎΠ΄: Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ
ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Ρ
Π²Π°ΡΠΈΡ PowerShell + Git, Π΄Π»Ρ ΡΡΠ΅Π΄Π½ΠΈΡ
β Vanessa-ADD, Π΄Π»Ρ ΠΊΡΡΠΏΠ½ΡΡ
β 1C:EDT + Jenkins.
ΠΠΎΡΠ°Π³ΠΎΠ²Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ: ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ Π΄Π»Ρ 1Π‘
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Git + PowerShell + Jenkins. ΠΡΠΎΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ· 3β5 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
Π¨Π°Π³ 1: ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π΄Π»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ
1. Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Git Π½Π° ΡΠ΅ΡΠ²Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
2. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° GitLab ΠΈΠ»ΠΈ Bitbucket).
3. ΠΡΠ³ΡΡΠ·ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠΎΡΠΌΠ°Ρ ΡΠ΅ΡΠ΅Π· 1C:EDT ΠΈΠ»ΠΈ configdump:
configdump.exe --source="Srvr=server;Ref=base" --output="C:\repo\config" --user="ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ" --password="pass"
4. ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² Git:
cd C:\repo\config
git init
git add .
git commit -m "Initial commit"
git remote add origin https://gitlab.com/your-repo/1c-config.git
git push -u origin main
Π¨Π°Π³ 2: Π‘ΠΊΡΠΈΠΏΡΡ Π΄Π»Ρ Π²ΡΠ³ΡΡΠ·ΠΊΠΈ/Π·Π°Π³ΡΡΠ·ΠΊΠΈ
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π΄Π²Π° ΡΠΊΡΠΈΠΏΡΠ°:
export.ps1β Π²ΡΠ³ΡΡΠΆΠ°Π΅Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΈΠ· Π±Π°Π·Ρ Π² Git:
# ΠΡΡΠΈ ΠΊ ΡΡΠΈΠ»ΠΈΡΠ°ΠΌ
$ConfigDump = "C:\tools\configdump.exe"
$RepoPath = "C:\repo\config"
ΠΡΠ³ΡΡΠ·ΠΊΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ
& $ConfigDump --source="Srvr=server;Ref=dev_base" --output=$RepoPath --user="ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ" --password="pass"
ΠΠΎΠΌΠΌΠΈΡ Π² Git
cd $RepoPath
git add .
git commit -m "ΠΠ²ΡΠΎΡΠΊΡΠΏΠΎΡΡ $(Get-Date -Format 'yyyy-MM-dd HH:mm')"
git push
deploy.ps1 β Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΈΠ· Git Π² Π±Π°Π·Ρ:# ΠΡΡΠΈ ΠΊ ΡΡΠΈΠ»ΠΈΡΠ°ΠΌ
$ConfigLoad = "C:\tools\configload.exe"
$RepoPath = "C:\repo\config"
$BackupPath = "C:\backup\$(Get-Date -Format 'yyyy-MM-dd_HH-mm').dt"
ΠΡΠΊΠ°ΠΏ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π±Π°Π·Ρ
& "C:\Program Files\1cv8\8.3.20.1500\bin\1cv8.exe" DESIGNER /IBName "Srvr=server;Ref=test_base" /DumpIB $BackupPath /N "ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ" /P "pass"
ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ
& $ConfigLoad --source=$RepoPath --target="Srvr=server;Ref=test_base" --user="ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ" --password="pass"
Π¨Π°Π³ 3: ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Jenkins
1. Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Jenkins ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ PowerShell Plugin.
2. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½:
- Π¨Π°Π³ 1: ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ
export.ps1(ΠΏΠΎ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ΅ Π² Git). - Π¨Π°Π³ 2: ΠΠ°ΠΏΡΡΡΠΈΡΡ Π°Π²ΡΠΎΡΠ΅ΡΡΡ (Π΅ΡΠ»ΠΈ Π΅ΡΡΡ).
- Π¨Π°Π³ 3: ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ
deploy.ps1Π½Π° ΡΠ΅ΡΡΠΎΠ²ΡΡ Π±Π°Π·Ρ. - Π¨Π°Π³ 4: ΠΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Π² Slack/Telegram.
Π£ΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Git Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
Π‘ΠΎΠ·Π΄Π°Π½ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π΄Π»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ
ΠΡΠ³ΡΡΠΆΠ΅Π½Π° ΡΠ΅ΠΊΡΡΠ°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠΎΡΠΌΠ°Ρ
ΠΠ°ΠΏΠΈΡΠ°Π½Ρ ΡΠΊΡΠΈΠΏΡΡ export.ps1 ΠΈ deploy.ps1
Π£ΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Jenkins Ρ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ PowerShell
-->
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ Π±Π°Π·Ρ 1Π‘ (Π° Π½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠ΅), ΡΠΊΡΠΈΠΏΡΡ Π΄Π΅ΠΏΠ»ΠΎΡ Π½ΡΠΆΠ½ΠΎ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ Π΄ΡΡΠ³ΠΎΠΉ:Start-Process -FilePath "C:\Program Files\1cv8\8.3.20.1500\bin\1cv8.exe" -ArgumentList "CONFIG /F `"`"C:\bases\test.1CD`"`" /N `"`"ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ`"`" /P `"`"pass`"`" /UpdateCf `"`"C:\updates\config.cfu`"`"" -WaitΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² 1Π‘: Vanessa-Automation ΠΈ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ
ΠΠ΅Π· ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Π΄Π΅ΠΏΠ»ΠΎΡ ΠΎΠΏΠ°ΡΠ½Π°. Π ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ΅ 1Π‘ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ Π°Π²ΡΠΎΡΠ΅ΡΡΠΎΠ²:
ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π’ΠΈΠΏ ΡΠ΅ΡΡΠΎΠ² ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Vanessa-Automation Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅, ΡΠ΅Π³ΡΠ΅ΡΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Jenkins, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° BSLΠΈJavaScript1C:TestDriver ΠΠΎΠ΄ΡΠ»ΡΠ½ΡΠ΅, ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ 1Π‘, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π²Π½ΡΡΡΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ xUnitFor1C ΠΠΎΠ΄ΡΠ»ΡΠ½ΡΠ΅ Open-source, ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΡΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π‘ΠΊΡΠΈΠΏΡΡ Π½Π° BSLΠΡΠΎΡΡΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΠΎ, Π½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Vanessa-Automation ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅. ΠΡΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ:
- π ΠΠΈΡΠ°ΡΡ ΡΠ΅ΡΡΡ Π½Π°
BSL(Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΡΠ·ΡΠΊ 1Π‘) ΠΈΠ»ΠΈJavaScript.- π ΠΠ°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ΅ΡΡΡ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅.
- π ΠΠ΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΡΠ΅ΡΡ Π² JUnit-ΡΠΎΡΠΌΠ°ΡΠ΅ Π΄Π»Ρ Jenkins.
- π₯ Π’Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠ΅, ΡΠ°ΠΊ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ.
ΠΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΡΠ° Π½Π°
BSLΠ΄Π»Ρ Vanessa-Automation:// Π’Π΅ΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΎΡΠΊΡΡΡΠΈΠ΅ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ° "ΠΠΎΠΌΠ΅Π½ΠΊΠ»Π°ΡΡΡΠ°"ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΡΠΎΠ²Π΅ΡΠΈΡΡΠΡΠΊΡΡΡΠΈΠ΅Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ°ΠΠΎΠΌΠ΅Π½ΠΊΠ»Π°ΡΡΡΠ°() ΠΠΊΡΠΏΠΎΡΡ
// 1. ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ
ΠΠΎΠΌΠ°Π½Π΄Π° = ΠΠΎΠ²ΡΠΉ ΠΠΎΠΌΠ°Π½Π΄Π°ΠΡΠΊΡΡΡΡΠ€ΠΎΡΠΌΡ("Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ.ΠΠΎΠΌΠ΅Π½ΠΊΠ»Π°ΡΡΡΠ°");
ΠAttempt(ΠΡΡΠΈΠ½Π°, "ΠΠ΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΎΡΠΊΡΡΡΡ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ ΠΠΎΠΌΠ΅Π½ΠΊΠ»Π°ΡΡΡΠ°");
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ = Vanessa.ΠΡΠΏΠΎΠ»Π½ΠΈΡΡΠΠΎΠΌΠ°Π½Π΄Ρ(ΠΠΎΠΌΠ°Π½Π΄Π°);
ΠAttempt(Π Π΅Π·ΡΠ»ΡΡΠ°Ρ.Π£ΡΠΏΠ΅Ρ , "ΠΡΠΈΠ±ΠΊΠ° ΠΏΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ°: " + Π Π΅Π·ΡΠ»ΡΡΠ°Ρ.ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΡΠΈΠ±ΠΊΠΈ);
// 2. ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΡΡΠΎ ΡΠΎΡΠΌΠ° ΠΎΡΠΊΡΡΠ»Π°ΡΡ
Π€ΠΎΡΠΌΠ° = Vanessa.ΠΠΎΠ»ΡΡΠΈΡΡΠΠΊΡΠΈΠ²Π½ΡΡΠ€ΠΎΡΠΌΡ();
ΠAttempt(Π€ΠΎΡΠΌΠ°.ΠΠΌΡΠ€ΠΎΡΠΌΡ = "Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ.ΠΠΎΠΌΠ΅Π½ΠΊΠ»Π°ΡΡΡΠ°", "ΠΡΠΊΡΡΡΠ° Π½Π΅Π²Π΅ΡΠ½Π°Ρ ΡΠΎΡΠΌΠ°: " + Π€ΠΎΡΠΌΠ°.ΠΠΌΡΠ€ΠΎΡΠΌΡ);
ΠΠΎΠ½Π΅ΡΠΡΠΎΡΠ΅Π΄ΡΡΡ
Π§ΡΠΎΠ±Ρ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΡΡ Π² ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½:
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Vanessa-Automation Π½Π° ΡΠ΅ΡΠ²Π΅Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
- ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΡΠ΅ΡΡΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΏΠ°ΠΏΠΊΡ
tests).- ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ°Π³ Π² Jenkins Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅ΡΡΠΎΠ²:
vanessa-automation run --tests="C:\repo\tests\*.vst" --report="C:\reports\test-results.xml"- ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΏΡΠΈ ΠΏΠ°Π΄Π΅Π½ΠΈΠΈ ΡΠ΅ΡΡΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΠ΅Π· Telegram Bot).
ΠΠ²ΡΠΎΡΠ΅ΡΡΡ Π² 1Π‘ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, Π½ΠΎ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΡ Π½Π° Π²ΡΠ΅ΠΌΡ ΠΎΡΠΊΡΡΡΠΈΡ ΡΠΎΡΠΌΡ ΠΈΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΡΡΠ΅ΡΠ° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²ΡΡΠ²ΠΈΡΡ ΡΠ΅Π³ΡΠ΅ΡΡΠΈΠΈ.
Π Π°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΠΊΠ°ΠΊ ΠΈΡ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Π² 1Π‘ ΡΠ°ΡΡΠΎ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΡΠΌΠΈ ΠΊΠ°ΠΌΠ½ΡΠΌΠΈ. ΠΠΎΡ TOP-5 ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΈΡ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ:
- ΠΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΡΠΊΠ°ΠΏΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄ Π΄Π΅ΠΏΠ»ΠΎΠ΅ΠΌ
Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ: ΠΏΡΠΈ Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π±Π°Π·Π° "ΡΠ»ΠΎΠΌΠ°Π΅ΡΡΡ", Π° ΠΎΡΠΊΠ°ΡΠΈΡΡΡΡ Π±ΡΠ΄Π΅Ρ Π½Π΅ΠΊΡΠ΄Π°.
Π Π΅ΡΠ΅Π½ΠΈΠ΅: Π²ΡΠ΅Π³Π΄Π° Π΄Π΅Π»Π°ΠΉΡΠ΅ Π±ΡΠΊΠ°ΠΏ ΠΏΠ΅ΡΠ΅Π΄ Π΄Π΅ΠΏΠ»ΠΎΠ΅ΠΌ. ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
1cv8.exe DESIGNER /IBName "Srvr=server;Ref=base" /DumpIB "C:\backup\base_$(Get-Date -Format 'yyyy-MM-dd_HH-mm').dt" /N "ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ" /P "pass"- ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠ΅ΡΡΠΎΠ²ΠΎΠΉ ΡΡΠ΅Π΄Ρ
Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ: ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π΅ΠΏΠ»ΠΎΡΡΡΡ ΡΡΠ°Π·Ρ Π½Π° ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½, Π³Π΄Π΅ ΠΈΡ Π²ΠΈΠ΄ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅: ΡΠ°Π·Π²Π΅ΡΠ½ΠΈΡΠ΅ ΡΠ΅ΡΡΠΎΠ²ΡΡ Π±Π°Π·Ρ (ΠΌΠΎΠΆΠ½ΠΎ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅) ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΉΡΠ΅ ΡΡΠ΄Π° ΡΠ½Π°ΡΠ°Π»Π°.
- ΠΠΎΠ½ΡΠ»ΠΈΠΊΡΡ Π²Π΅ΡΡΠΈΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ
Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ: Π΄Π²Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π·Π°ΡΠΈΡΠ°ΡΡΡΡ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅: ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Git ΠΈ Π½Π°ΡΡΡΠΎΠΉΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΠ»ΠΈΡΠ½ΠΈΡ (merge) ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ.
- ΠΠ΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Π²Π΅ΡΡΠΈΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ
Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ: ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½Π°Ρ Π½Π° 8.3.22, Π½Π΅ Π·Π°Π³ΡΡΠ·ΠΈΡΡΡ Π² Π±Π°Π·Ρ Π½Π° 8.3.20.
Π Π΅ΡΠ΅Π½ΠΈΠ΅: ΡΠΈΠΊΡΠΈΡΡΠΉΡΠ΅ Π²Π΅ΡΡΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° Π²ΡΠ΅Ρ ΡΡΠ΅Π΄Π°Ρ .
- ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΠΏΠΎΡΠ»Π΅ Π΄Π΅ΠΏΠ»ΠΎΡ
Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ: ΠΎΡΠΈΠ±ΠΊΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ°ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π½Π°ΡΠ½ΡΡ ΠΆΠ°Π»ΠΎΠ²Π°ΡΡΡΡ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅: Π½Π°ΡΡΡΠΎΠΉΡΠ΅ ΡΠ±ΠΎΡ Π»ΠΎΠ³ΠΎΠ² ΠΈΠ·
ΠΡΡΠ½Π°Π»Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ 1Π‘ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π»ΠΈΠ·ΠΎΠ².β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π±Π°Π·Ρ 1Π‘ (Π ΠΠ), Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Π΄Π΅ΠΏΠ»ΠΎΡ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°. Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ Π½Π΅ ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ·Π»Π°ΠΌΠΈ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅:
- Π‘Π½Π°ΡΠ°Π»Π° ΠΎΠ±Π½ΠΎΠ²Π»ΡΠΉΡΠ΅ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΡ Π±Π°Π·Ρ.
- ΠΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΠΌΠΈ Π±Π°Π·Π°ΠΌΠΈ.
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ Π²ΡΠΎΠ΄Π΅ RIBTool Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ.
DevOps Π΄Π»Ρ 1Π‘ Π² ΠΎΠ±Π»Π°ΠΊΠ΅: 1C:Fresh ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ
ΠΡΠ»ΠΈ Π²Π°ΡΠ° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π° Π² ΠΎΠ±Π»Π°ΠΊΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 1C:Fresh, Yandex Cloud ΠΈΠ»ΠΈ AWS), ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ.
1. 1C:Fresh
1C:Fresh β ΡΡΠΎ SaaS-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΎΡ 1Π‘, Π³Π΄Π΅ Π±Π°Π·Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΠΎΠ±Π»Π°ΠΊΠ΅ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ°. ΠΠ΄Π΅ΡΡ DevOps ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ:
- β ΠΠ»ΡΡΡ:
- π ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π±ΡΠΊΠ°ΠΏΡ ΠΈ ΠΎΡΠΊΠ°ΡΡ.
- π ΠΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡ (ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΡΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΌΠΎΡΠ½ΠΎΡΡΠΈ).
- π‘ ΠΡΡΡΠΎΠ΅Π½Π½Π°Ρ Π·Π°ΡΠΈΡΠ° ΠΎΡ DDoS ΠΈ Π²ΠΈΡΡΡΠΎΠ².
- β ΠΠΈΠ½ΡΡΡ:
- π ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ (Π½Π΅Π»ΡΠ·Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ²ΠΎΠΈ ΡΠΊΡΠΈΠΏΡΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ 1Π‘).
- π¦ ΠΠ΅Ρ ΠΏΡΡΠΌΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ Π±Π°Π·Ρ (ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ΅Π· API).
- π° ΠΠ»Π°ΡΠ½Π°Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠ° (ΠΎΡ 1 500 β½/ΠΌΠ΅ΡΡΡ Π·Π° Π±Π°Π·Ρ).
ΠΠ°ΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ 1C:Fresh:
- π ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ API 1C:Fresh Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π°Π·Π°ΠΌΠΈ (Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ:
https://api.freshplatform.ru).- π¦ ΠΠ»Ρ Π΄Π΅ΠΏΠ»ΠΎΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Π½ΡΠΉΡΠ΅ Vanessa-ADD Ρ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°ΠΌΠΈ Π΄Π»Ρ ΠΎΠ±Π»Π°ΠΊΠ°.
- π€ ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ Π²Π΅Π±Ρ ΡΠΊΠΈ Π΄Π»Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ GitLab ΠΈΠ»ΠΈ Jenkins.
2. ΠΠ±Π»Π°ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ (Yandex Cloud, AWS, Azure)
ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π·Π²Π΅ΡΠ½ΡΠ»ΠΈ 1Π‘ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Π°Ρ Π² ΠΎΠ±Π»Π°ΠΊΠ΅, Ρ Π²Π°Ρ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ²ΠΎΠ±ΠΎΠ΄Ρ:
- π¦ ΠΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Vanessa-ADD, 1C:EDT ΠΈ Jenkins Π±Π΅Π· ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ.
- π ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² 1Π‘ ΠΏΡΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΠ΅Π· Yandex Compute Cloud).
- π‘ ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· ΠΎΠ±Π»Π°ΡΠ½ΡΠ΅ ΡΠ½ΠΈΠΌΠΊΠΈ (snapshots).
ΠΡΠΈΠΌΠ΅Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π² Yandex Cloud:
- ΠΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° Ρ 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ ΠΈ PostgreSQL.
- ΠΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΠΠ Π΄Π»Ρ Jenkins ΠΈ Vanessa-Automation.
- Object Storage Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π±ΡΠΊΠ°ΠΏΠΎΠ² ΠΈ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΎΠ².
- Monitoring (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Yandex Monitoring) Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π² ΠΎΠ±Π»Π°ΠΊΠ΅ ΡΡΠΈΡΡΠ²Π°ΠΉΡΠ΅ ΡΡΠΎΠΈΠΌΠΎΡΡΡ ΡΡΠ°ΡΠΈΠΊΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Π°ΡΠΈ Π±Π°Π·Ρ ΠΈ ΡΠ΅ΡΠ²Π΅Ρ CI/CD Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΡΠ°Π·Π½ΡΡ Π·ΠΎΠ½Π°Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ, ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΎΠΈΡΡ Π΄ΠΎΡΠΎΠ³ΠΎ (ΠΎΡ 1 β½/ΠΠ Π² Yandex Cloud). Π Π°Π·ΠΌΠ΅ΡΠ°ΠΉΡΠ΅ Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ Π·ΠΎΠ½Π΅.FAQ: Π§Π°ΡΡΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΏΠΎ 1C DevOps
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Git Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ 1Π‘?
ΠΠ°, Π½ΠΎ Π½Π΅ Π½Π°ΠΏΡΡΠΌΡΡ. ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ³ΡΡΠ·ΠΈΡΡ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠΎΡΠΌΠ°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ:
- 1C:EDT (ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅),
configdump(ΡΡΠΈΠ»ΠΈΡΠ° ΠΎΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°),- Vanessa-ADD (ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Git).
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ Π²ΡΠ³ΡΡΠ·ΠΊΠΈ:
configdump.exe --source="Srvr=server;Ref=base" --output="C:\repo\config" --format=txtΠΠ°ΠΆΠ½ΠΎ: Π½Π΅ Ρ ΡΠ°Π½ΠΈΡΠ΅ Π±ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ (
.cf,.cfu) Π² Git β ΠΎΠ½ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π΄Π°ΡΡΡΡ ΡΠ»ΠΈΡΠ½ΠΈΡ (merge).ΠΠ°ΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π±Π°Π· 1Π‘?
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ²: