ื ืชืืื ืขื ืชืืืืจืื ืงืื ื. ืื ืงืจื ืืคืืืงืฆืืืช XNUMX ืืคืงืืืจืื ?
ืืืืืื ืคืฉืืืืช, ืืกืื ืื ื ืืขื ืืคืฉื ืืช ืืคืืชืื ืฉื ืืืฉืืื SaaS, ืขืืืจ ืขื ืืื ืืคืืืช ืืคืชืืื ืืืื ืืกื DevOps ืืืืืขืืช ืืืขืืืช ืืืคืจืงืืืงืืช ืืื ื ืชืงืืื ืืจืื ืืคืืชืื ืืืฉืืืื ืืืืจื ืืื.
ืืืกืื ื ืืฆืจ ืขื ืืื ืืคืชืื ืคืืืคืืจืืช Heroku.
ื ืืชื ืืืืฉื ืืช ืืชืืืืืืืืืช ื-XNUMX-Factor App ืขื ืืืฉืืืื ืืืชืืืื ืืื ืฉืคืช ืชืื ืืช ืืฉืืืืฉ ืืื ืฉืืืื ืฉื ืฉืืจืืชื ืืืืื ืฉื ืฆื ืฉืืืฉื (ืืกืื ื ืชืื ืื, ืชืืจื ืืืืขืืช, ืืืืื ืื ืืื').
ืืงืฆืจื ืขื ืืืืจืืื ืขืฆืื ืขืืืื ืืชืืกืกืช ืืชืืืืืืืื ืื:
- ืืกืืก ืงืื โ ืืกืืก ืงืื ืืื ืืืขืงื ืืงืืจ โ ืคืจืืกืืช ืืจืืืืช
- ืชืืืช - ืืืจืื ืืคืืจืฉืช ืืืืืื ืชืืืช
- ืชึฐืฆืึผืจึธื - ืฉืืืจ ืชืฆืืจื ืืืื ืจืืฆื
- ืฉืืจืืชื ืฆื ืฉืืืฉื (ืฉืืจืืชื ืืืืื) - ืืชืืืืก ืืฉืืจืืชื ืืืืื ืืื ืืฉืืืื ืื ืืชื ืื ืืืืืืจ
- ืืื ืืช, ืืฉืืจืจ, ืืจืืฅ - ืืคืจืื ืืืืืืช ืฉื ืฉืืื ืื ืืื ืืืคืขืื
- ะัะพัะตััั - ืืคืขื ืืช ืืืคืืืงืฆืื ืืชืืืื ืืกืจ ืืฆื ืืื ืื ืืืชืจ
- ืืจืืืช ื ืื โ ืฉืืจืืชื ืืืฆืื ืืืืฆืขืืช ืืจืืืช ื ืื
- ืืืงืืื - ืืืื ืืช ืืืคืืืงืฆืื ืฉืื ืขื ืชืืืืืื
- ืื ืคืขืืืืช - ืืืื ืืช ืืืืื ืืช ืขื ืืคืขืื ืืืืจื ืืืืืื ืืื ื ื
- ืืชืืื ืืคืืชืื ืืคืืืงืฆืืืช/ืชืคืขืื - ืฉืืืจ ืขื ืกืืืืืช ืคืืชืื, ืืืื ืืืคืงื ืืืืืช ืืื ืืืคืฉืจ
- ืจืืฉืื - ืืชืืืืก ืืืืื ืืื ืืจื ืฉื ืืืจืืขืื
- ืืฉืืืืช ื ืืืื โ ืืืฆืืข ืืฉืืืืช ื ืืืื/ื ืืืื ืืชืืืืืื ืื-ืคืขืืืื
ืืืืืข ื ืืกืฃ ืขื 12 ืืืืจืืื, ืขืืื ืืืฉืืืื ืืืืื:
-
ืืงืืจ ืจืฉืื - ืืืื ืืงืจืื -
ืืืืจ ืขื ืืืืจ. ืืคืืืงืฆืืืช Twelve Factor - ืืคืืืงืฆืืืช Twelve Factor - ืชืจืืื ืจืฉืื -
ืืืืจ ืขื ืืืืจ. 7 ืืืจืืื ืืกืจืื ืืืคืืืงืฆืืืช 12 ืืืืจืืื - ืืื ืืืืืฉ ืขื 12 ืืืืจืืื ืขื ืื ืช ืืฉืคืจ ืืืชื.
ืืื ืคืจืืกื ืืืื-ืืจืืง?
ืคืจืืกื ืืืื-ืืจืืง ืืื ืืจื ืืกืคืง ืืคืืืงืฆืื ืืคืงื ืืืืคื ืฉืืงืื ืืงืฆื ืื ืืจืื ืฉืื ืืืื ืืฆืืื. ืืืืืื ืืืจืืช, ืคืจืืกืช ืืคืืืงืฆืื ืขื ืืคืก ืืื ืืฉืืชื.
ืขืจืืช BG Deploy ืืงืืืกืืช ื ืจืืืช ืืื ืืชืืื ื ืืืื.
- ืืืชืืื ืืฉ 2 ืฉืจืชืื ืคืืืืื ืขื ืืืชื ืงืื, ืืคืืืงืฆืื, ืคืจืืืงื, ืืืฉ ื ืชื (ืืืืื).
- ืื ืชื ืืคื ื ืืชืืืื ืืช ืื ืืืงืฉืืช ืืืื ืืฉืจืชืื (ะทะตะปะตะฝัะน).
- ืืจืืข ืฉืืชื ืฆืจืื ืืขืฉืืช ืฉืืจืืจ ืฉืื, ืื ืืคืจืืืงื ืืชืขืืื ืืฉืจืช ืืืจ (ะกะธะฝะธะน), ืฉืืื ื ืืืคื ืืขืช ืืืงืฉืืช.
- ืืืจื ืืงืื ืขืืืจ ืึผึธืืึนื ืืฉืจืช ืืขืืืื ืืืืืืื, ืื ืชื ืืงืื ืคืงืืื ืืขืืืจ ืืื ื ืืจืืง ืขื ะกะธะฝะธะน ืฉืจืช
- ืืขืช ืื ืืืงืืืืช ืจืืืื ืืช ืืชืืฆืื ืฉื ืืงืื ืขื ืืืื ืฉืจืช.
- ืืืื ืืื, ะทะตะปะตะฝัะน ืืฉืจืช ืืฉืืฉ ืืืืืื ืืืงืจื ืฉื ืคืจืืกื ืื ืืืฆืืืช ื ะกะธะฝะธะน ืฉืจืช ืืืืงืจื ืฉื ืืฉื ืืืืืื, ืื ืชื ืืขืืืจ ืืช ืืจืืืช ืืืฉืชืืฉ ืืืจื ืืืื ะทะตะปะตะฝัะน ืฉืจืช ืขื ืืืจืกื ืืืฆืืื ืืืฉื ื, โโืืืงืื ืืืืฉ ื ืฉืื ืืขืืืื ืืืืืงื.
- ืืืกืืฃ ืืชืืืื ืืื ืืชืขืืื ืืืืชื ืืืคื ะทะตะปะตะฝัะน ืฉืจืช. ืืืืืจ ืขืืืื ืื, ืื ืชื ืืขืืืจ ืืช ืืจืืืช ืืืงืฉืืช ืืืจื ื ะทะตะปะตะฝัะน ืฉืจืช
ืืื ื ืจืื ืืื ืืืื ืืืืื ืจืืฉืื ืื ืืืืจืืช ืืืืืช ืืขืืืช ืขื ืื.
ืืื ืืืืืื ืฉืื ื ืืืื ืืขืืื ืืืืืจื ื, ืืืคืฉืจืืช ืขื ืืืชืื ืคืืื, ืืคื ืฉืืฆืืื ืืชืื ืืช ืืงืืืกืืช, ืื ืืชืืืื ืื ื. ืจืฉืื ืืช ืืืืืข ืืขืช ืขืชื, ื ืืืืจ ืืืื ืืืืฉื.
ืขืฆื ืจืขื ืืืืื
ืืชื ืืืชืืจ: ืืืืืืืืช ืฉืืืื ืืฆืืืืช ืืช ืืื ืืฉืืจืืช / ืืืชืืืืืืืืืช ืืื ืื ื ืืฉืชืืฉ, ืืชื ืืืื ืืืฉืชืืฉ ืืื ืืืืคืืช ืขื ืคืื ืงืฆืืืช ืืืืืช.
ืจืื ืืืืืืืืช ืืฆืืืื ืืืืฉืื ืขื ืคืืชืื ืืชืจืื (ืืืื ืืคืชืขื), ืขื PHP ื-Docker.
ืืคืกืงืืืช ืืืื ืืฉ ืชืืืืจ ืืขืฉื ืคืฉืื ืฉื ืืฉืืืืฉ ืืืืจืืื ืืืืืืืืช ืืกืืืืืช, ืื ืืจืฆืื ื ืืงืื ืชืืืืจืื ื ืืกืคืช ืื ืืฉื ืื, ืขืืื ืืงืืฉืืจืื ืืืขืื ืืืงืืจ ืืืงืืจื.
1. ืืกืืก ืงืื
ืืฉืชืืฉ ื-FTP ืื-FileZilla ืืื ืืืขืืืช ืงืืฆืื ืืฉืจืชืื ืืื ืืื ืคืขื, ืื ืชืืืกื ืงืื ืืฉืื ืืงืื ืืืื ืืฉืจืช ืืืฆืืจ.
ืืคืจืืืงื ืชืืื ืฆืจืื ืืืืืช ืืกืืก ืงืื ืืืื, ืืืืืจ ืื ืืงืื ืืืืข ืืืื Git ืืืืจ. ืฉืจืชืื (ืืืฆืืจ, ืืืืื, test1, test2...) ืืฉืชืืฉืื ืืงืื ืืืขื ืคืื ืฉื ืืืืจ ืืื ืืฉืืชืฃ. ืืคืืื, ืื ื ืืฉืืืื ืขืงืืืืช ืงืื.
2. ืชืืืช
ืืืจื ืืช ืื ืืกืคืจืืืช ืืชืืงืืืช ืืฉืืจืืช ืืฉืืจืฉ ืืคืจืืืงื. ืืฆืข ืขืืืื ืื ืคืฉืื ืขื ืืื ืืขืืจืช ืืงืื ืืืืฉ ืืชืืงืื ืขื ืืืจืกื ืื ืืืืืช ืฉื ืืกืคืจืืื. ืฉืื ืืช ืื ืืื ืืฉืืจืืช ืืืจืืฉืื ืืฉืืจืืช ืืฉืจืช ืืืืจื ืฉืื ืคืืขืืื ืขืื 20 ืฉืืจืืชืื.
ืืคืจืืืงื ืชืืื ืฆืจืืื ืืืืืช ืจืฉืืื ืืืื ืช ืืืืจืืจ ืฉื ืชืืืช (ืืืชืืืช, ืื ื ืืชืืืื ืื ืืกืืืื). ืื ืืชืืืช ืืืืืืช ืืืืืช ืืืืืจืืช ืืืืืืืืช ืืืคืืจืฉ.
ืืืืืื, ืืืื ื ืืงื ืืืืื ะธ ืกึทืึธืจ.
ืืืืื - ืื ืื ืืืืืืช ืืืืคืฉืจ ืืืชืงืื ืกืคืจืืืช ื-PHP. Composer ื ืืชื ืื ืืช ืืืืืืช ืืฆืืื ืืจืกืืืช ืืงืคืื ืืช ืื ืื, ืืืืืืืจ ืืืชื ืืืคืืจืฉ. ืืืืืื ืืืืืช 20 ืคืจืืืงืืื ืฉืื ืื ืืฉืจืช, ืืืื ืืื ืชืืื ืจืฉืืื ืคืจืืืช ืฉื ืืืืืืช ืืกืคืจืืืช ืืื ืชืืืช ืืืืจ.
ืกึทืึธืจ - ืืื ืขืืจ ืืืืคืฉืจ ืืืืืืจ ืืืืืื ืืช ืืกืืืื ืื ืืืคืืืงืฆืื ืชืขืืื. ืืืชืื ืืื, ืืืืืง ืืื ืขื ืืืืื, ืืื ืืืืคื ืืกืืื ืืืชืจ, ืื ืื ื ืืืืืื ืืงืืืข ืขื ืื ืืืคืืืงืฆืื ืขืืืืช. ืืืจ ืืจืกื ืกืคืฆืืคืืช ืฉื PHP, ืืชืงื ืจืง ืืช ืืืืืืืช ืืืจืืฉืืช ืืื ืฉืืคืจืืืงื ืืขืืื, ืืืื ืืืืกืืฃ ืฉืื ืืืจ ื ืืกืฃ. ืืืื ืืฉืื, ืืื ืืืคืจืืข ืืืืืืืช ืืืกืืืื ืฉื ืืืืื ื ืืืืจื ืืคืจืืืงืืื ืืืจืื. ืืืืืจ, ืื ืืคืจืืืงืืื ืืฉืจืช ืืคืืขืืื ืืจื Docker ืืืืืื ืืืฉืชืืฉ ืืืืืืื ืืื ืกื ืฉื ืืืืืืช ืืกืืืืืช ืฉืื ืืช ืืืืืืื.
3. ืชืฆืืจื
ืืืกื ืืืืจืืช ืืงืืืขืื ืืฉืืจืืช ืืงืื. ืงืืืขืื ื ืคืจืืื ืืฉืจืช ืืืืืงื, ื ืคืจืืื ืืืืฆืืจ. ืงืฉืจ ืืช ืขืืืืช ืืืคืืืงืฆืื ืืืชืื ืืกืืืื ืืฉืืจืืช ืืืืืืงื ืืขืกืงืืช ืฉื ืืคืจืืืงื ืืืืฆืขืืช ืืื ืื ืฉื if else.
ืชืฆืืจืืช - ืื ืืืืจ ืืืืื ืฉืฆืจืื ืืืืืช ืฉืื ื ืืคืจืืกืช ืืคืจืืืงื (ืคืจืืกื). ืืืืคื ืืืืืืื, ืชืฆืืจืืช ืฆืจืืืืช ืืขืืืจ ืืจื ืืฉืชื ื ืกืืืื (env vars).
ืืืืืจ, ืื ืื ืชืืืกื ืืกืคืจ ืงืืฆื ืชืฆืืจื .config.prod .config.local ืืชืฉื ื ืืช ืฉืื ืืืื ืืคืจืืกื ื-.config (ืืชืฆืืจื ืืจืืฉืืช ืฉืืื ื ืืืคืืืงืฆืื ืงืืจืืช ื ืชืื ืื) - ืื ืื ืชืืื ืืืืฉื ืื ืืื ื, ืฉืื ืืืงืจื ืื ืืืืืข ืืืงืื ืคืืืืจืฆืืืช ืืืื ืืืื ืืฆืืืืจ ืืื ืืคืชืื ืืืคืืืงืฆืืืช ืืื ืชืื ืื ืืฉืจืช ืืืืฆืืจ ืืืคืืขื. ืืฉ ืืืืกื ืืช ืื ืืชืฆืืจืืช ืืฉืืจืืช ืืืขืจืืช ืืคืจืืกื (CI / CD) ืืืืคืืง ืขืืืจ ืกืืืืืช ืฉืื ืืช ืขื ืขืจืืื ืฉืื ืื ืืืจืืฉืื ืืกืืืื ืืกืืืืช ืืืื ืืคืจืืกื.
4. ืฉืืจืืชื ืฆื ืฉืืืฉื (ืฉืืจืืชื ืืืืื)
ืงืฉืจ ืืืง ืขื ืืกืืืื, ืืฉืชืืฉ ืืืืืืจืื ืฉืื ืื ืขืืืจ ืืืชื ืฉืืจืืชืื ืืกืืืืืช ืืกืืืืืช.
ืืืขืฉื, ืคืจืื ืื ืืฆืืื ืืืื ืขื ืืคืจืื ืขื ืชืฆืืจืืช, ืฉืื ืืื ื ืืืืืช ืฉื ืคืจืื ืื, ืื ื ืืชื ืืืฆืืจ ื ืชืื ื ืชืฆืืจื ืจืืืืื, ืืืืืคื ืืืื, ืืืคืฉืจืืช ืืืืืจื ืชืืขืื.
ืื ืืืืืืจืื ืืฉืืจืืชืื ืืืฆืื ืืื ืืืื ืฉืจืชื ืชืืจืื, ืืกืื ื ืชืื ืื, ืฉืืจืืชื ืืืืื ืืืืืื ืืืืืช ืืืื ืื ืขืืืจ ืืกืืืื ืืืงืืืืช ืืื ืขืืืจ ืกืืืืช ืฆื ืฉืืืฉื/ืืืฆืืจ. ืืืืืื ืืืจืืช, ืืื ืขืช ืื ื ืืืื ืืฉื ืืช ืืช ืืืจืืืช ืืืืืืจ ืืื ืืืืืืฃ ืงืจืืืืช ืืืกืืก ืืก' 1 ืืืกืืก ืืก' 2 ืืืื ืืฉื ืืช ืืช ืงืื ืืืคืืืงืฆืื. ืื, ืืืื ืงืืืื, ืืืืืื, ืืขืืืื ืฉืืืฉืจ ืืืจืืื ืืช ืืฉืืจืืช, ืืื ื ืฆืจืื ืืฆืืื ืืช ืืืืืืจ ืืฆืืจื ืืืืืืช ืขืืืจ ืฉืจืช ืืืืื ื ืืกืฃ.
5. ืืื ืืช, ืืฉืืจืจ, ืืจืืฅ
ืฉืืืจ ืจืง ืืช ืืืจืกื ืืกืืคืืช ืฉื ืืงืื ืืฉืจืช, ืืื ืกืืืื ืืืืืืจ ืืช ืืืืืืจื ืืืืืจ. ืืื ืฆืืจื ืืืื ืฉืื ืืืกืง. ืื ืฉืืืฉื ืฉืืื ืืืื ืืืื ืืก ืืช ืืงืื ืืืืฆืืจ ืขื ืฉืืืื ืืื ืืชืื ืช ืืจืืข!
ืืฉ ืืืคืจืื ืืช ืื ืฉืืื ืืคืจืืกื ืื ืืื.
ืืฉ ืืืืื ืืช ืืืืืจ ืืืืจื. ืืฆืข ืืืืืจืืช ืขื ืืืฉื ืืืืจื ืืขืืชืงืื ืืฉื ืื ืฉื ืืืคืืืงืฆืื (ืืืจ ืืืจืืืช ืืืืื ื ืืงืจื), ืขื ืื ืช ืืฉืืืจ ืืช ืืืจืกื ืืืฉื ื ืืืงืจื ืฉื ืฉืืืืืช. ืืืืืจ, ืืชื ืื ืฉืืฉ ืชืืงืื ืืฉืืจืจ ืืชืืงืื ื ืึนืึฐืึดื, ืืืืืจ ืคืจืืกื ืืืจืืื ืืืฆืืืื, ืืชืืงืื ื ืึนืึฐืึดื ืงืฉืืจื ืืงืืฉืืจ ืกืืื ืืืืืืจื ืืืืฉื ืฉื ืืฆืืช ืืคื ืื ืืฉืืจืจ ืขื ืืฉื ืืืืชื ื ืฉื ืืกืคืจ ืืฉืืจืืจ.
ืื ืืืงืื ืฉืื ืื ื ืืืืจืื ืืช ืืคืจืืกื ืฉื Blue-Green, ืืืืคืฉืจืช ืื ืื ืจืง ืืขืืืจ ืืื ืงืื, ืืื ืื ืืขืืืจ ืืื ืื ืืืฉืืืื ืืืคืืื ืกืืืืืช ืขื ืืืืืืช ืืืืืืจ ืืื ืืืืืจ.
6. ืชืืืืืื
ืืืกื ืืช ื ืชืื ื ืืฆื ืืืคืืืงืฆืื ืืฉืืจืืช ืืืคืืืงืฆืื ืขืฆืื. ืืฉืชืืฉ ืืืคืขืืืช ื-RAM ืฉื ืืืคืืืงืฆืื ืขืฆืื. ืืฉืชืืฉ ืืื ืืืคืฉืจ ืืฉืืชืืฃ ืืื ืฉืืจืืชื ืฆื ืฉืืืฉื. ืงืฉืจ ืืขืืืื ืฉืืืคืืืงืฆืื ืืืืื ืืืืืช ืจืง ืชืืืื ืืื ืืืื ื ืืืคืฉืจืช ืงื ื ืืืื.
ืืืื ืืคืขืืืช, ืืืกื ื ื ืชืื ืื ืจืง ืืืืืื ืื ืฉืื ืขื ืืื ืฉืืจืืชื ืฆื ืฉืืืฉื (memcached, redis), ืื ืฉืื ืื ืคืืขืืื ืืื 20 ืชืืืืื ืืืฉืืืื, ืื ืืื ืืื ืฉื ืืืฉ ืืืืืื ืืืื ืืืืฉืื ืืขืืื ืขื ืืืงืื ืืืืชื ืืฆื ืฉืื ืืืฉืชืืฉ ืขืื ืขื ืืืคืืืงืฆืื ืืชืืืื ืืืจ. ืืืืฉื ืื ืืกืชืืจ ืฉืื ืืฉื ื ืืืื ืขืืชืงืื ืฉื ืฉืืจืืชื ืฆื ืฉืืืฉื ืชืฉืชืืฉื, ืืื ืืขืืื ืืื ืฉืฆืจืื ืืืื ืืขืืืช ืืืืฉื ืื ืชืื ืื.
7. ืืจืืืช ื ืื
ืจืง ืฉืจืช ืืืื ืืจื ื ืฆืจืื ืืืขืช ืืื ืืขืืื ืขื ืฉืืจืืชื ืฆื ืฉืืืฉื. ืืขืืืฃ ืืืจื ืืื ืืืขืืืช ืฉืืจืืชื ืฆื ืฉืืืฉื ืืฉืืจืืช ืืชืื ืฉืจืช ืืืื ืืจื ื. ืืืืืื, ืืืืืื PHP ื- Apache.
ืื ืืฉืืจืืชืื ืฉืืื ืืืืืื ืืืืืช ื ืืืฉืื ืื ืืื ืืืืฆืขืืช ืงืจืืื ืืืชืืืช ืืืฉืื ืืืฆืืื (localgost:5432, localhost:3000, nginx:80, php-fpm:9000), ืืืืืจ ื-nginx ืื ื ืืืื ืืืฉืช ืื ื-php-fpm ืืื postgres, ืื-php-fpm ื-postgres ื-nginx, ืืืื ืฉืืจืืช ืขืฆืื, ืื ื ืืืื ืืืฉืช ืืฉืืจืืช ืืืจ. ืืคืืื, ืืจืืืืชื ืฉื ืฉืืจืืช ืืื ื ืงืฉืืจื ืืืจืืืืชื ืฉื ืฉืืจืืช ืืืจ.
8. ืืงืืืืืืช
ืขืืืืื ืขื ืชืืืื ืืื, ืืื ืคืชืืื ืืื ืชืืืืืื ืื ืืฆืืืื ืืืกืชืืจ ืืื ืขื ืืฉื ื!
ืืฉืืจ ืืช ืืืคืฉืจืืช ืืฉื ืืช ืงื ื ืืืื. ื ืืื ืืืงืจ ืืื ื ืืืจ ืืฉืืื ืื.
Docker Swarm ืืื ืืื ืืืฆืืจื ืื ืืืื ืฉื ืืฉืืืืืช ืืืืืืช ืื ืืื ืืืื ืืช ืฉืื ืืช ืืื ืืื ืืืืจื ืฉื ืืืืืืช ืืืืชื ืืืื ื.
ืืืืฆืขืืช swarm, ืื ื ืืืื ืืงืืืข ืืื ืืฉืืืื ืืงืฆื ืืื ืชืืืื ืืืื ืชืืืืืื ืฉื ืืืชื ืฉืืจืืช ืื ื ืืจืืฅ, ืืืืืืื ืืคื ืืื, ืฉืืงืื ื ืชืื ืื ืขื ืคืืจื ื ืชืื, ืืืฆืข ืคืจืืงืกื ืืืืืืืืช ืฉืื ืืชืืืืืื. ืืคืืื, ืืฉืื ื ืจืืื ืฉืืขืืืก ืขื ืืฉืจืช ืืื, ืื ื ืืืื ืืืืกืืฃ ืขืื ืชืืืืืื, ืืืื ืืืคืืืช ืืช ืืขืืืก ืขื ืชืืืืืื ืืกืืืืื.
9. ืื ืคืขืืืืช
ืื ืชืฉืชืืฉ ืืชืืจืื ืืขืืืื ืขื ืชืืืืืื ืื ืชืื ืื. ืืจืืืช ืชืืืื ืืื ืืืืจื ืืืฉืคืืข ืขื ืคืขืืืช ืืืคืืืงืฆืื ืืืื. ืื ืฉืืจืืช ืืื ื ืืคื, ืืื ืืืจื.
ื ืืชื ืืืืืช ืื ืชืืืื ืืฉืืจืืช ืืื ืขืช ืืื ืื ืืืืจ ืืืฉืคืืข ืขื ืฉืืจืืชืื ืืืจืื (ืืืืื ืฉืื ืืืืืจ ืืขืืืื ืฉืืฉืืจืืช ืื ืืืื ื ืืืฉ ืืฉืืจืืช ืืืจ, ืืื ืฉืฉืืจืืช ืืืจ ืื ืืืื ืืืจื ืื) . ืืฉ ืืกืืื ืืช ืื ืืชืืืืืื ืืฆืืจื ืจืื, ืื ืฉืืืฉืจ ืื ืืกืชืืืื, ืื ืชืื ืื ืื ืืืฉืคืขื ืืืืขืจืืช ืชืคืขื ืืืืื ืืคืขื ืืืื ืฉืืื ืชืืคืขื. ืืืืืจ, ืื ืืืงืจื ืฉื ืืคืกืงื ืืื ืืืฉืคืืข ืขื ืื ืชืื ืื (ืื ืื ืื ืืขืกืงืืืช ืืชืืื ืืื, ืฉืืืืชืืช ืืืกืืก ืื ืชืื ืื ืขืืืืืช ืจืง ืืงืืืฆืืช, ืืื ืืคืืืช ืฉืืืืชื ืืืช ืืืงืืืฆื ื ืืฉืื ืื ืืืฆืขื ืขื ืฉืืืื , ืื ืืฃ ืฉืืืืชื ืืืจืช ืืืงืืืฆื ืื ืืืืฆืขืช ืืกืืคื ืฉื ืืืจ.
10. ืืืืืืช ืคืืชืื ืืคืืืงืฆืืืช/ืชืคืขืื
ืืืคืงื, ืืืื ืืืืจืกื ืืืงืืืืช ืฉื ืืืคืืืงืฆืื ืืืืืืช ืืืืืช ืฉืื ืืช. ืืืืฆืืจ, ืืฉ ืื ื ืืช ืืืกืืจืช Yii Lite, ืืืืงืื Yii, ืื ืฉืืื ืขืืืืช ืืืจ ืืืชืจ ืืืืฆืืจ!
ืืืขืฉื, ืื ืืคืจืืกื ืืืขืืืื ืขื ืืงืื ืฆืจืืืืช ืืืืืช ืืกืืืื ืืืขื ืืื (ืื ืื ื ืื ืืืืจืื ืขื ืืืืจื ืคืืืืช). ืืื ืื, ืื ืขืืื ืคืืชืื ืืืืจ ืืืืืช ืืกืืื ืืคืจืืก ืืช ืืงืื ืืืืฆืืจ ืืืืืช ืืฆืืจื, ืืื ืืืื ืืืืงืช devops ืฉืืืืฉืจื ืืืืืื, ืฉืืืืื ืืืขืืืช ืืช ืืืคืืืงืฆืื ืืืืฆืืจ ืจืง ืืืื ืืืืง ืืืืื.
Docker ืื ืขืืืจ ืื ื ืืื. ืืืคืืฃ ืืื ืื ืงืืืืช ืืงืืืืืช, ืฉืืืืฉ ื-docer ืืืื ืืช ืชืืืื ืคืจืืกืช ืืกืืืื ืื ืืืืฆืืจ ืืื ืืืืฉื ืืืงืืื ืืืื ืช ืคืงืืื ืืืช ืื ืฉืชืืื.
11. ืจืืฉืื (ืืืื ืื)
ืื ื ืืืชืืื ืืืื ืื ืืงืืฆืื ืืืืกืืก ื ืชืื ืื! ืื ืื ื ืื ืื ืงืื ืงืืฆืื ืืืกื ื ืชืื ืื ืืืืื ืื. ืืืื ืคืฉืื ื ืงื ื ืืื ื ืงืฉืื ืขืืืจ 9000 Peta ืืืืืื ืื ืืจืืืช.
ืื ืืืืื ืื ืฆืจืืืื ืืืืืฉื ืืืจื ืฉื ืืืจืืขืื. ืืืืฉืื ืขืฆืื ืื ืืืืจ ืืขืกืืง ืืขืืืื ืืืื ืื. ืืฉ ืืื ืคืืง ืืช ืืืืื ืื ื-stdout ืื ืืฉืืื ืืืืฆืขืืช ืคืจืืืืงืื ืืืื udp ืืื ืฉืืืคืืืงืฆืื ืื ืชืืฆืืจ ืืขืืืช ืขื ืืืืื ืื. Graylog ืขืืื ืืื ืืฉืืื ืื. ืงืืืช ืื ืืืืื ืื ืืืืฆืขืืช udp (ืืืืฆืขืืช ืคืจืืืืงืื ืื, ืืื ืฆืืจื ืืืืชืื ืืชืืืื ืขื ืงืืืื ืืืฆืืืช ืฉื ืืืืืื) ืืื ื ืืคืจืืขื ืืืคืืืงืฆืื ืืฉืื ืฆืืจื ืืขืืกืงืช ืจืง ืืืื ื ืืขืืืื ืืืื ืื. ืืืืืืงื ืฉื ืืืืฉืื ืื ืืฉืชื ื ืืื ืืขืืื ืขื ืืืฉืืช ืืื.
12. ืืฉืืืืช ื ืืืื
ืืื ืืขืืื ื ืชืื ืื, ืืกื ื ืชืื ืื ืืื', ืืฉืชืืฉ ืื ืงืืืช ืงืฆื ืฉื ืืฆืจื ืื ืคืจื ื-API, ืฉืืืฆืืขื 2 ืคืขืืื ืืจืฆืืคืืช ืืืืื ืืื ืฉื ืืชื ืืืื ืืฉืืคื ืืื ืขืืืจื. ืืื ืืชื ืื ืืืคืฉืื, ืื ืชืืืฆื ืคืขืืืื, ืืื ืื ื ืื ืฆืจืืืื ืืขืืจืืช.
ืื ืืฉืืืืช ืื ืืืื ืืืืืืช ืืืชืืฆืข ืืืืชื ืกืืืื ืืื ืื ืืงืื, ืืจืืช ืืฉืืจืืจ. ืืืืืจ, ืื ื ืฆืืจื ืืฉื ืืช ืืช ืืื ื ืืกื ืื ืชืื ืื, ืื ืื ื ืขืฉื ืืืช ืืืืคื ืืื ื ืขื ืืื ืฉืื ืื ืฉืืืช ืืขืืืืืช ืืืืกืคืช ืืืฉืื ืืืืฆืขืืช ืืืื ืื ืืืื ืืกื ื ืชืื ืื ืืืืืืืืื. ืืืืจืื ืืืื ืื ืื ื ืืืฆืจืื ืกืงืจืืคืืื ื ืคืจืืื - ืืขืืจืืช ืฉืืชืืฆืขืืช ืืื ืืงืื ืืืื ืืกืืืืืช ืขื ืืืชื ืชืืฆืื ืืฉืืชืคืช ืืืืื ืช. ืขืืืจ ืื ืฉืืจ ืืืฉืืืืช, ืืืื ืืืืืืก ืคืจืืืงื ืื ืชืื ืื, ืืฉ ืืืืฉื ืืชืืืืืืืืืช ืืืืืช.
ืืืืื ืืืืฉืื ื-PHP, Laravel, Laradock, Docker-Compose
ื .ื. ืื ืืืืืืืืช ื ืขืฉื ื-MacOS. ืจืืื ืืขืืื ืื ืขืืืจ ืืื ืืงืก. ืืฆืืขืจืื, ืืฉืชืืฉื Windows, ืืื ืื ืขืืืชื ืขื Windows ืืืฉื ืืื ืจื.
ืชืืจื ืืขืฆืืื ืืฆื ืฉืืื ืื ื ืฉืื ืืจืกื ืฉื PHP ืืืชืงื ืช ืืืืฉื ืืืืฉื ืฉืื ื ืืฉืื ืืืจ ืืืื.
ืืชืงื ืืช ืืืจืกืืืช ืืืืจืื ืืช ืฉื docker ื-docker-compose. (ืืคืฉืจ ืืืฆืื ืืช ืื ืืืื ืืจื ื)
docker -v &&
docker-compose -v
1. ืฉืื ื
git clone https://github.com/Laradock/laradock.git &&
ls
ืืืื ืืจืืืง, ืื ื ืืืื ืฉืื ืืืจ ืืืื ืืื ืื, ืฉืื ื ืืกืคืื ืืจืื ืืืืืืช ืืืืจื ืขืืจ. ืืื ืื ืืืืชื ืืืืืฅ ืืืฉืชืืฉ ื-Laradock ืืืื ืืื ืฉืื ืืืื ืืืืฆืืจ ืืืื ืืืชืืจืืช ืฉืื. ืขืืืฃ ืืืฆืืจ ืืช ืืงืื ืืืื ืจืื ืฉืื ืขื ืกืื ืืืืืืืช ื-Laradock, ืื ืฉืชืืื ืืจืื ืืืคืืืืืืฆืื, ืื ืืฃ ืืื ืื ืฆืจืื ืืช ืื ืื ืฉืืฉ ืื ืืื ืืช.
2. ืืืืจืช Laradock ืื ืฉืืืคืืืงืฆืื ืฉืื ื ืชืขืืื.
cd laradock &&
cp env-example .env
2.1. ืคืชื ืืช ืกืคืจืืืช ื-habr (ืชืืงืืืช ืืื ืฉืืืื ืืฉืืืืื ืืืจืืืืง) ืืื ืขืืจื. (ืืืงืจื PHPStorm ืฉืื)
ืืฉืื ืื, ืฉืื ื ืจืง ืืช ืฉื ืืคืจืืืงื.
2.2. ืื ื ืืฉืืงืื ืืช ืชืืื ืช ืกืืืืช ืืขืืืื. (ืืืงืจื ืฉืื, ืืชืืื ืืช ืืืื ื ืืืื ืื)
Workspace ืืื ืชืืื ื ืฉืืืื ื ืืืืืื ืืขืืืื ืขื ืืืกืืจืช ืืืขื ืืืคืชื.
ืืืื ืก ืืชืื ืืืืื ืขื
docker-compose up -d workspace &&
docker-compose exec workspace bash
2.3. ืืชืงื ืช Laravel
composer create-project --prefer-dist laravel/laravel application
2.4. ืืืืจ ืืืชืงื ื, ืื ื ืืืืงืื ืื ืืกืคืจืืื ืขื ืืคืจืืืืงื ื ืืฆืจื, ืืืืจืืื ืืช ืืืชืืื.
ls
exit
docker-compose down
2.5. ืื ื ืืืืจืื ื-PHPStorm ืืืืืืจืื ืืช ืื ืชืื ืื ืืื ืืืคืืืงืฆืืืช laravel ืฉืื ื ืืงืืืฅ .env.
3. ืืืกืฃ ืืช ืื ืืงืื ื-Git.
ืืฉื ืื, ื ืืฆืืจ ืืืืจ ื- Github (ืื ืืื ืืงืื ืืืจ). ืืื ื ืื ืืกืคืจืืืช habr ืืืจืืื ื ืื ืืฆืข ืืช ืืงืื ืืื.
echo "# habr-12factor" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin [email protected]:nzulfigarov/habr-12factor.git # ะทะดะตัั ะฑัะดะตั ัััะปะบะฐ ะฝะฐ ะฒะฐั ัะตะฟะพ
git push -u origin master
git status
ืื ืื ื ืืืืงืื ืื ืืื ืชืงืื.
ืืืขืื ื ืืืืช, ืื ื ืืืืืฅ ืืืฉืชืืฉ ืืืืฉืง ืืืืืืื ืืืฉืื ืขืืืจ Git, ืืืงืจื ืฉืื ืืื
4. ืืฉืงื!
ืืคื ื ืฉืชืชืืื, ืืื ืฉืืื ืื ืฉืื ืืืจ ืชืืื ืืืฆืืืืช 80 ื-443.
docker-compose up -d nginx php-fpm
ืืคืืื, ืืคืจืืืงื ืฉืื ื ืืืจืื ื-3 ืฉืืจืืชืื ื ืคืจืืื:
- nginx - ืฉืจืช ืืื ืืจื ื
- php-fpm - php ืืงืืืช ืืงืฉืืช ืืฉืจืช ืืื ืืจื ื
- ืกืืืืช ืขืืืื - php ืืืคืชืืื
ืืจืืข, ืืฉืื ื ืฉืืฆืจื ื ืืคืืืงืฆืื ืืืงืืืื ื-4 ื ืงืืืืช ืืชืื 12, ืืืืืจ:
1. ืืกืืก ืงืื - ืื ืืงืื ื ืืฆื ืืืืืจ ืืื (ืืขืจื ืงืื ื: ืืืื ื ืืื ืืืื ืืก ืืช docker ืืคืจืืืงื laravel, ืืื ืื ืื ืืฉืื).
2. ืชืืืช - ืื ืืชืืืช ืฉืื ื ืืชืืื ืืืคืืจืฉ ื-application/composer.json ืืืื Dockerfile ืฉื ืื ืืืื.
3. ืฉืืจืืชื ืฆื ืฉืืืฉื (ืฉืืจืืชื ืืืืื) - ืื ืืื ืืืฉืืจืืชืื (php-fom, nignx, workspace) ืื ืืช ืืืื ืืืืืืจ ืืืืืฅ ืืืืฉืจ ืขืืืืื ืขื ืฉืืจืืช ืืื, ืืฉื ื ืื ืืืฉืคืข.
4. ะัะพัะตััั ืื ืฉืืจืืช ืืื ืชืืืื ืืื. ืื ืฉืืจืืช ืืื ื ืืืืกื ืืฆื ืคื ืืื.
5. ืืจืืืช ื ืื
docker ps
ืืคื ืฉืื ื ืืืืืื ืืจืืืช, ืื ืฉืืจืืช ืคืืขื ืื ืื ืืฉืื ืืืืื ืืื ืืฉืืจืืชืื ืืืืจืื.
6. ืืืงืืื
Docker ืืืคืฉืจ ืื ื ืืืืืื ืืกืคืจ ืชืืืืืื ืฉื ืืืชื ืฉืืจืืชืื ืขื ืืืืื ืขืืืกืื ืืืืืืื ืืื ืืื.
ืขืฆืืจ ืืืืืืช ืืืชืื ืืืชื ืขื ืืื --ืกืึผืึธื
docker-compose down &&
docker-compose up -d --scale php-fpm=3 nginx php-fpm
ืืคื ืฉืื ื ืืืืืื ืืจืืืช, ืืืืื php-fpm ืืฉ ืขืืชืงืื. ืื ืื ื ืื ืฆืจืืืื ืืฉื ืืช ืฉืื ืืืจ ืืขืืืื ืขื ืืืื ืื. ืื ืื ื ืืืฉืืืื ืืืฉืช ืืืื ืื ืื ืื 9000, ืืืืงืจ ืืืืกืช ืขืืืจื ื ืืช ืืขืืืก ืืื ืืืืืืืช.
7. ืื ืคืขืืืืช - ื ืืชื ืืืจืื ืื ืืืื ืืืื ืืคืืืข ืืฉื ื. ืขืฆืืจื ืื ืืคืขืื ืืืืฉ ืฉื ืืืืืื ืื ืชืฉืคืืข ืขื ืคืขืืืช ืืืคืืืงืฆืื ืืืฉืงืืช ืืืืืช. ื ืืชื ืื ืืืจืื ืื ืืืื ืืื ืขืช.
8. ืืชืืื ืืคืืชืื ืืคืืืงืฆืืืช/ืชืคืขืื ืื ืืกืืืืืช ืฉืื ื ืืืืช. ืขื ืืื ืืคืขืืช ืืืขืจืืช ืขื ืืฉืจืช ืืืืฆืืจ, ืืื ื ืฆืจืื ืืฉื ืืช ืืืจ ืืคืงืืืืช ืฉืื. ืืื ืืชืืกืก ืขื Docker ืืืืชื ืืืคื.
9. ืจืืฉืื - ืื ืืืืื ืื ืืืืืืืช ืืืื ืขืืืจืื ืืืจื ืืืืืืื ืืืกืืฃ Docker. (ืืืงืจื ืื, ืืืขืฉื, ืขื ืืืืืื ืชืืฆืจืช ืืืช ืืืจืื, ืืืชืื ืฉืื ืื ืืงืจื ืื ืื ืชืืคื ืืื)
docker-compose logs -f
ืืื, ืืฉ ืืืงืื ืืื ืฉืขืจืื ืืจืืจืช ืืืืื ื-PHP ืื-Nginx ืืืชืืื ืื ืืืื ืื ืืงืืืฅ. ืืื ืืขืืื ื-12 ืืืืจืืื, ืืชื ืฆืจืื ืืืชื ืชืง ืืชืืืช ืืืื ืื ืืงืืืฅ ืืชืฆืืจืืช ืฉื ืื ืืืื ืื ืคืจื.
Docker ืืกืคืง ืื ืืช ืืืืืืช ืืฉืืื ืืืื ืื ืื ืจืง ื-stdout, ืืื ืื ืืืืจืื ืืื Graylog, ืฉืืืืจืชื ืืืขืื. ืืืชืื graylog, ืื ื ืืืืืื ืืคืขืื ืขื ืืืื ืื ืืจืฆืื ื ื ืืืืคืืืงืฆืื ืฉืื ื ืื ืชืืืื ืืื ืืฉืื ืฆืืจื.
10. ืืฉืืืืช ื ืืืื - ืื ืืฉืืืืช ืื ืืืื ื ืคืชืจืืช ืขื ืืื laravel ืืืืืช ืืืื ืืืืื ืืืืืง ืืคื ืฉืืจืฆื ืืืืฆืจืื ืฉื ืืืฉืื 12 ืืืืจืืื.
ืืืืืื, ืืจืื ืืืฆื ืืืคืขืืืช ืคืงืืืืช ืืกืืืืืช.
ืื ืื ื ื ืื ืกืื ืืืืื.
docker-compose exec workspace bash
php artisan list
ืขืืฉืื ืื ืื ื ืืืืืื ืืืฉืชืืฉ ืืื ืคืงืืื. (ืฉืืื ืื ืฉืื ืืืืจื ื ืืช ืืกื ืื ืชืื ืื ืืืืืืื, ืืืื ืืืฆืืช ืืืคืงืืืืช ืื ืืืืฆืขื ืืืืื, ืื ืื ื ืืขืื ืืขืืื ืขื ืืืืืื ืืืืืืจ).
11. ืชืฆืืจืืช ื- 12. ืืื ืืช, ืืฉืืจืจ, ืืจืืฅ
ืจืฆืืชื ืืืงืืืฉ ืืช ืืืืง ืืื ืืคืจืืกื ืืืืื-ืืจืืงื, ืืื ืืชืืจืจ ืฉืืื ืืคืืจื ืืื ืขืืืจ ืืืืจ ืื. ืืืชืื ืขื ืื ืืืืจ ื ืคืจื.
ืืงืืฆืืจ, ืืจืขืืื ืืืืกืก ืขื ืืขืจืืืช CI/CD ืืื ื'ื ืงืื ืก ะธ Gitlab CI. ืืฉื ืืื ื ืืชื ืืืืืืจ ืืฉืชื ื ืกืืืื ืืืฉืืืืื ืืกืืืื ืกืคืฆืืคืืช. ืืคืืื, ืืชืจืืืฉ ืื, ืกืขืืฃ ื ืชืฆืืจืืช.
ืืื ืงืืื ืืืื ืืื ืืช, ืืฉืืจืจ, ืืจืืฅ ื ืคืชืจื ืขื ืืื ืืคืื ืงืฆืืืช ืืืืื ืืช ืืฉื ื ืืื ืืฉืืจืืช ืื ืงืจืืื ืฆืื ืืจ.
ืฆืื ืืจ ืืืคืฉืจ ืืืืง ืืช ืชืืืื ืืคืจืืกื ืืืจืื ืฉืืืื, ืชืื ืืืืฉืช ืฉืืื ืืืจืืื, ืืฉืืจืืจ ืืืืืฆืืข. ืื ื-Pipeline ืชืืืื ืืืฆืืจ ืืืืืืื, ืืืื ืื ืืืจ. ืืืื ืื ืืฉ ืคืืื ืฆืืื ืืืชื ืืืืื.
ืงืื ืืืคืืืงืฆืื ืคืืขื
ืื ืชืฉืื ืืืชืื ืืช ืชืช-ืืืืื ืืขืช ืฉืืืื ืืืืืจ ืืื.
ื .ื: ื ืืชื ืืืฉืชืืฉ ืืื ืืืืฉืืช ืืืื ืขื ืื ืืื ืขืืจ ืืฉืคืืช ืชืื ืืช ืืืจืืช. ืืขืืงืจ ืฉืืืืืช ืื ืฉืื ื.
ืืงืืจ: www.habr.com