Get Appointment

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ PHP-прилоТСния Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ гибкости, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΠΈ ΠΈ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΈ. Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ дСплоя, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ручная настройка сСрвСров, устарСли ΠΈ Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ трСбованиям быстрого роста бизнСса. БСгодня Π½Π° смСну ΠΈΠΌ приходят контСйнСризация, автоматизация ΠΈ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассмотрим соврСмСнныС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΊ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ дСплою PHP-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с использованиСм Docker, VPS ΠΈ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ контСйнСризация?

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΡ β€” это тСхнология изоляции ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΈΡ… зависимостСй Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ содСрТит всё Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для запуска прилоТСния: ΠΊΠΎΠ΄, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΈ систСмныС инструмСнты. Π­Ρ‚ΠΎ обСспСчиваСт ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈ Π»Ρ‘Π³ΠΊΠΎΡΡ‚ΡŒ Π² ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ инфраструктурой.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ контСйнСризация Π²Π°ΠΆΠ½Π° для PHP?

  • ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ срСды: минимизация ошибок, связанных с различиями ΠΌΠ΅ΠΆΠ΄Ρƒ локальной ΠΈ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½-срСдой.
  • Быстрая ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ: запуск Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… экзСмпляров прилоТСния Π·Π° считанныС ΠΌΠΈΠ½ΡƒΡ‚Ρ‹.
  • Лёгкая миграция ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅: Π΄Π΅ΠΏΠ»ΠΎΠΉ Π½ΠΎΠ²Ρ‹Ρ… вСрсий Π±Π΅Π· Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… простоСв.

Docker β€” основа соврСмСнной ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ

Docker стал ΠΈΠ½Π΄ΡƒΡΡ‚Ρ€ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ стандартом для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Dockerfile Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ шаги для сборки ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° с вашим PHP-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ простого Dockerfile для PHP:

FROM php:8.2-apache
WORKDIR /var/www/html
COPY . .
RUN docker-php-ext-install mysqli pdo pdo_mysql

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ локально ΠΈΠ»ΠΈ Π½Π° любом сСрвСрС с установлСнным Docker, получая ΠΏΡ€ΠΈ этом ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅.

Π”Π΅ΠΏΠ»ΠΎΠΉ Π½Π° VPS: ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ

ИспользованиС VPS (Virtual Private Server) Π΄Π°Ρ‘Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ сСрвСром ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ кастомизации настроСк. Π”Π΅ΠΏΠ»ΠΎΠΉ PHP-прилоТСния Π½Π° VPS с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Docker состоит ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… этапов:

  1. Установка Docker Π½Π° сСрвСр.
  2. ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° docker-compose.yml ΠΈ исходного ΠΊΠΎΠ΄Π°.
  3. Запуск ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· docker-compose.

ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ нСсколько ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² (PHP, MySQL, Nginx ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ сСрвисы), Π»Π΅Π³ΠΊΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π·Ρ‹ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ роста.

Π”Π΅ΠΏΠ»ΠΎΠΉ Π² ΠΎΠ±Π»Π°ΠΊΠΎ: ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΈ ΠΎΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ

ΠžΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (ЯндСкс.Облако, AWS, Google Cloud, DigitalOcean ΠΈ Π΄Ρ€.) ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ сСрвисы для автоматичСского развСртывания ΠΈ управлСния ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ. НаиболСС популярныС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ:

  • Kubernetes (k8s): ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ кластСром ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², автоматичСскоС ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ балансировка Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.
  • Docker Swarm: встроСнноС срСдство оркСстрации Π² Docker.
  • Serverless-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹: Π΄Π΅ΠΏΠ»ΠΎΠΉ PHP-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π±Π΅Π· Π·Π°Π±ΠΎΡ‚ ΠΎ сСрвСрах (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, AWS Lambda с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ custom runtime).

ΠžΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ, автоматичСскоС ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ быстроС восстановлСниС послС сбоСв. Π’Ρ‹ ΠΏΠ»Π°Ρ‚ΠΈΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ рСсурсы, Π° инфраструктура Π»Π΅Π³ΠΊΠΎ адаптируСтся ΠΏΠΎΠ΄ ваши Π½ΡƒΠΆΠ΄Ρ‹.

CI/CD β€” автоматизация дСплоя

Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΈ доставки (CI/CD) сущСствСнно ускоряСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΉ PHP-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½Ρ‹Π΅ инструмСнты: GitLab CI/CD, GitHub Actions, Jenkins. Π‘Ρ…Π΅ΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹:

  • Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ вносит измСнСния Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.
  • CI/CD-систСма автоматичСски собираСт Docker-ΠΎΠ±Ρ€Π°Π·, запускаСт тСсты.
  • УспСшно собранный ΠΎΠ±Ρ€Π°Π· дСплоится Π½Π° сСрвСр ΠΈΠ»ΠΈ Π² ΠΎΠ±Π»Π°ΠΊΠΎ.

Π­Ρ‚ΠΎ сниТаСт риск ошибок, ускоряСт Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΈ позволяСт быстро Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° измСнСния Π² ΠΊΠΎΠ΄Π΅.

Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ PHP-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

  • ΠœΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ slim- ΠΈΠ»ΠΈ alpine-ΠΎΠ±Ρ€Π°Π·Ρ‹.
  • Π˜Π·ΠΎΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ сСрвисы: для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° (PHP, Π±Π°Π·Π°, кСш) β€” ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€.
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния для ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ.
  • Π‘Π»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ: рСгулярно обновляйтС ΠΎΠ±Ρ€Π°Π·Ρ‹ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ сСкрСты для хранСния ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ способов дСплоя

Π‘ΠΏΠΎΡΠΎΠ±ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π°ΠΠ΅Π΄ΠΎΡΡ‚Π°Ρ‚ΠΊΠΈ
VPSΠ“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ Π½Π°Π²Ρ‹ΠΊΠΈ администратора
ΠžΠ±Π»Π°ΠΊΠΎΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡΠ‘Ρ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ, трСбуСтся ΠΏΠΎΠ³Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅
Docker Π½Π° локальном сСрвСрСУдобство, быстрая Π½Π°ΡΡ‚Ρ€ΠΎΠΉΠΊΠ°ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Π°Ρ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΡ ΠΈ соврСмСнныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ дСплоя PHP-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ быстро, бСзопасно ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ любого ΠΌΠ°ΡΡˆΡ‚Π°Π±Π°. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ ΠΌΠ΅ΠΆΠ΄Ρƒ VPS, ΠΎΠ±Π»Π°ΠΊΠΎΠΌ ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ зависит ΠΎΡ‚ Π·Π°Π΄Π°Ρ‡, Π±ΡŽΠ΄ΠΆΠ΅Ρ‚Π° ΠΈ ΠΊΠΎΠΌΠΏΠ΅Ρ‚Π΅Π½Ρ†ΠΈΠΉ вашСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ запуск ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ вашСго PHP-прилоТСния, наша ΠΊΠΎΠΌΠ°Π½Π΄Π° Π³ΠΎΡ‚ΠΎΠ²Π° ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π½Π° всСх этапах: ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄ΠΎ внСдрСния CI/CD ΠΈ настройки ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… сСрвисов. Π£Π·Π½Π°ΠΉΡ‚Π΅ большС ΠΎ Π½Π°ΡˆΠΈΡ… услугах ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Ρ†ΠΈΡŽ экспСрта!

Avatar
Raman Sapezhka

CEO Plantago/CTO