ืืื ืื ืืขืฆืืข ืืึธืจืฆืขื ืืืื ื, ืืึทืืืึทืืืง ืึทืืืืึทื ืกืื ืืขื ืขื ืืขืืืื ืืื ืืขืจ ืึทื ืืืืืงืืื ื ืคืื ืงืขืกืืืืขืจืืืง ืื ืืึทืืจืืืฉืึทื (ืกื) ืืื ืงืขืกืืืืขืจืืืง ืืืคึผืืืืืึทื ื (ืกื) ืืืฉืืจืื. ืื ืึทื ืืืืืงืืื ื ืคืื ืืขืงื ืึทืืึทืืืฉืื ืคึฟืึทืจ ืื ืืึทืืจืืืืื ื ืืืืืืืืืจื ืึทื ืืืืืงืืื ื ืืื ืึธืคึผืขืจืึทืฆืืข (ืืขืืืขืืึธืคึผืืขื ื ืึธืคึผืขืจืึทืืืึธื ืก, DevOps) ืืื ืืขืคึฟืืจื ืฆื ืึท ืืื ืคืึทืจืืจืขืกืขืจื ืืื ืคืึธืืขืจืื ื ืคึฟืึทืจ ืกื / ืกื ืืืฉืืจืื. ืืืืืกืืื ื ืกืึทืืืฉืึทื ื ืืขื ืขื ืงืขืกืืืืขืจ ืืืคึผืจืืืื, ืืจืืื ื ืฆื ืืึทืืื ืืื ืืื ืื ืฆืืื, ื ืืึทืข ืืืขืจืกืืขืก ืืขื ืขื ืจืขืืขืึทืกืขื, ืืื ืคืืืข ื ืืึทืข ืคึผืจืึธืืืงืื ืืขื ืขื ืงืขืกืืืืขืจ ืื ืืคืืขืงื ืืื ืืขืจ ืืืขืื ืคืื ืืืืืืืืืจื ืงืืืึทืืืืขื ืคืืจืืืืขืจืื ื (QA). ืืื ืึทืืึท ืึท ืขืฉืืจืืช ืคืื ืืจืืจื, ืืฉืืืื ื ืื ืจืขืื ืืืฉืืจืื ืืื ื ืืฉื ืึทื ืืจืื ื ืึทืจืืขื.
ืฆืืืืฉื ืึทืืข ืื ืืืืืกืืื ื CI / CD ืืืฉืืจืื, ืขืก ืืขื ืขื ืฆืืืื ืคึผืจืึทืืืฉืขืงืก ืืืึธืก ืืขื ืขื ืืืฉืืืื ืืืขืจื ืืคืืขืจืงืืึทืืงืืื ืฆื ืื ืืืึธืก ืืืื ืขืคึผืขืก ืืื ืืขื ืืขืื ื. ืืืจ ืจืขืื ืืืขืื Jenkins ืืื ืื GitLab CI / CD ืืขืฆืืึทื, ืืืึธืก ืืื ืึท ืืืื ืคืื ืื GitLab ืคึผืืึทืืคืึธืจืืข. ืืืฉืขื ืงืื ืก ืืื ืืขืจ ืืื
ื ืขืืขื, ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืึทืื ืคืื ืื G2 ืคึผืืึทืืคืึธืจืืข, ืืืึธืก ืึทืงืืืืืึทืืืืฅ ืืืจืืืื ืคืื ืึท ืืจืืื ืคืึทืจืฉืืืื ืงืืึทื ืคืื ืคึผืจืึธืืืงืื ืืื ืื ืจืืืืื ืื ืืืึธืก ืืืืขืจื ืืขืื ืืื. ืืึธ ืืื ืื ืืืจืืฉื ืืืืขื ืจืึทื ื
ืืืื ืืืจ ืจืขืื ืืืขืื ืื ืคึผืึธืคึผืืืึทืจืืืขื ืคืื Jenkins ืืื ืคืึทืจืืืืึทื ืืื ืื ืืขืจืข ืขื ืืขื ืคึผืืึทืืคืึธืจืืก, ืืืจ ืืึธื ืึทื ื ืึธื ืืจืืืกืืขืื ืึทื ืึทืจืืืงื ืืืึธืก ืงืึทืืคึผืขืจืื ื ืื Travis CI ืืื Jenkins ืคึผืืึทืืคืึธืจืืก, ืืืจ ืึธืจืืึทื ืืืืจื ืึท ืืืขืจืืืืง. 85 ืืื ืืฆืขืจ ืืืื ืืื ืืืืืืืืื ืืขืจืื. ืจืืกืคึผืึทื ืืึทื ืฅ ืืขื ืขื ืืขืืขืื ืฆื ืงืืืึทืื ืื ืกื / ืกื ืืขืฆืืึทื ืืืึธืก ืืื ืืืืงื ืืขืกืืขืจ. 79% ืืึธืื ืืืืกืืขืจืืืืืื Jenkins, 5% ืืืืกืืขืจืืืืืื Travis CI, ืืื 16% ืืึธืื ืืขืืึธืื ืึทื ืืื ืืขืกืขืจ ืืืขืื ืื ืืขืจืข ืืืฉืืจืื.
ืึทื ืงืขืืข ืจืขืืืืืึทืื
ืฆืืืืฉื ืื ืืขืจืข CI / CD ืืืฉืืจืื, GitLab CI / CD ืืื ืืขืจืกื ืึธืคื ืืขืจืืื ื.
ืืืื ืืืจ ืืขื ื ืขืจื ืกื ืืืขืื DevOps, ืืืจ ืืึทืจืคึฟื ืฆื ืงืขืจืคืึทืื ืืืืกืงืืืึทืื ืื ืฆืื ืขืืขื ืืืฉืืจืื, ืืขื ืืืขื ืืื ืืฉืืื ืื ืคึฟืขืึดืงืืืื ืคืื ืื ืคึผืจืืืขืงื, ืืืึทื ืืืืืฉืขื ืืื ืื ืืขืจืข ืืืืขืจืคืขื ืืฉื. ืฆื ืืขืืคึฟื ืืืจ ืืึทืื ืื ืจืขืื ืืจืืจื, ืืืจ ืืืขืื ืึทื ืึทืืืื Jenkins ืืื GitLab CI / CD. ืืึธืก, ืืื ืืึธืคึฟื, ืืืขื ืืขืืคึฟื ืืืจ ืืึทืื ืื ืจืขืื ืืจืืจื.
ืื ืืจืึธืืืืกืื ื Jenkins
Jenkins ืืขืืืขืืึธืคึผืขืจืก ืืึธืื ืืืฉืืคื ืื ืื ืืขืจ ืคึผืจืืืขืงื, Jenkins X, ืืืึธืก ืืื ืืืืืื ื ืฆื ืึทืจืืขืื ืืื ืื Kubernetes ืกืืืืืืข. Jenkins X ืื ืืึทืืจืืืฅ ืืขืื, Jenkins CI / CD Server, Kubernetes, ืืื ืื ืืขืจืข ืืืฉืืจืื ืืืืืื ื ืฆื ืืืืขื ืกื / CD ืคึผืืืคึผืืืื ื ืืืึธืก ื ืึธืืคืึธืืื ืืขืืืึธืคึผืก ืืขืกืืขืจ ืคึผืจืึทืงืืืกืื. ืคึฟืึทืจ ืืืึทืฉืคึผืื, GitOps ืืื ืืขื ืืฆื ืืึธ.
ืืืื ืขืจ ืคืื ืื ืึทืืืืึทื ืืืืืฉืื ืคืื Jenkins ืงืขื ืขื ืืืื ืืืกืืฃ ืฆื ืื ืคืึทืงื ืึทื ืื ืกืงืจืืคึผืก ืืขื ืขื ืืืืขืจ ืืขืืื ื ืกืืจืึทืงืืฉืขืจื, ืคืึทืจืฉืืืืืง ืืื ืืจืื ื ืฆื ืืืืขื ืขื. ืื Jenkins ืืึทื ืฉืึทืคึฟื ืืื ืืืฉืืคื ืืืขืื 1000 ืคึผืืืืื ืก ืืืึธืก ืืขื ืขื ืึทืืืขื ืฆื ืึธืจืืึทื ืืืืจื ืื ืื ืืขืจืึทืงืฉืึทื ืคืื Jenkins ืืื ืคืึทืจืฉืืื ืืขืงื ืึทืืึทืืืฉืื. ืืื ืกืงืจืืคึผืก ืืืจ ืงืขื ืขื ื ืืฆื ืึธืืขื ืืึทืงืืืฉืึทื ืกืืกืืขืืขื, ืืืึธืก, ืืืฉื, ืึทืืึทืื ืืืจ ืฆื ืคืึทืจืืื ืื ืฆื ืคืึทืจืฉืืื ืคืืจืืืื ืกืืกืืขืืขื.
ืืขืฉืึทืก ืื ืึธืคึผืขืจืึทืฆืืข ืคืื โโืื Jenkins ืจืขืจื - ืืื ืืข, ืืืจ ืงืขื ืขื ืึธืืกืขืจืืืืจื ืืืึธืก ืืึทืคึผืึทื ื ืืื ืืขืืขืจ ืฉืจืื, ืฆื ืืืืขืจ ืกืืึทืืขืก ืคืื ืึทืจืืขื ืืขื ืขื ืืขืขื ืืืงื ืืฆืืื ืึธืืขืจ ื ืืฉื. ืืืจ ืงืขื ืขื ืึธืืกืขืจืืืืจื ืึทืืข ืืขื, ืึธืืขืจ, ื ืืฉื ื ืืฆื ืึท ืืืคึผ ืคืื ืืจืึทืคืืงืึทื ืฆืืืื ื, ืึธืืขืจ ืืื ืื ืงืืืคึผืึทืืืืึทืืื ืคืื ืื ืืืึธืงืืึทื.
ืคึฟืขืึดืงืืืื ืคืื ืืืฉืขื ืงืื ืก
ืฆืืืืฉื ืื ืืขืืื ื-ืืืงืื ื ืคึฟืขืึดืงืืืื ืคืื Jenkins ืืขื ืขื ืื ืคืื ืงืึทื ืคืืืืขืจืืืฉืึทื, ืืืื ืืืจืื ืคืื ืึธืืึทืืืืฉืึทื ืคืื ืคืึทืจืฉืืื ืึทืคึผืขืจืืืฉืึทื ื ืืื ืืืกืืขืฆืืืื ื ืืึทืงืืืืขื ืืืืฉืึทื. ืืืื ืืืจ ืจืขืื ืืืขืื ืกืึทืืืืื ื DevOps ืคึผืจืึธืืืขืืก, Jenkins ืืื ืืขืจืขืื ื ืืื ืึท ืืืืขืจ ืคืึทืจืืึธืืืขื ืืขืฆืืึทื, ืืื ืืืึธืก, ืืื ืึท ืืขืจืฉื, ืขืก ืืื ืงืืื ืคืื ื ืืื ืขื ื ืืึธื ืืืึธืจืื ื ืื ืืื ืฆืข ืคึผืจืึธืฆืขืก ืคึผืจืึทืกืขืกืื ื ืคึผืจืึธืฆืขืก. ืืึธืก ืืื ื ืืฉื ืืขืจ ืคืึทื ืืื ืื ืืขืจืข ืกื / ืกื ืืืฉืืจืื. ืืื ืก ืจืขืื ืืืขืื ืขืืืขืืข ืคืื โโืื ืืขืจืกื ืืืืืืืง ืคึฟืขืึดืงืืืื ืคืื ืืืฉืขื ืงืื ืก.
โ1. ืคืจืื, ืึธืคึฟื ืืงืืจ, ืืืืื-ืคึผืืึทืืคืึธืจืืข ืืขืฉืืืฆื
Jenkins ืงืขื ืขื ืืืืคื ืืืืฃ macOS, Windows ืืื Linux ืคึผืืึทืืคืึธืจืืก. ืขืก ืงืขื ืขื ืืืื ืืืืคื ืืื ืื ืืึธืงืงืขืจ ืกืืืืืืข, ืืืึธืก ืึทืืึทืื ืืืจ ืฆื ืึธืจืืึทื ืืืืจื ืึธืืึทืืืืืื ืืึทืกืงืก ืืืืฃ ืึท ืืื ืืืจ ืืื ืฉื ืขื ืฉืืืืืขืจ. ืื ืืขืฆืืึทื ืงืขื ืขื ืืืื ืืืืคื ืืื ืึท ืกืขืจืืืืขื ืืื ืืืฉืึทืืืึท-ืื ืืืืึทืื ืงืึทื ืืืื ืขืจื ืึทืืึท ืืื Apache Tomcat ืืื GlassFish. ืื ืกืืึทืืืจื Jenkins ืืคืืฉืึทื ืืื
โ2. ืืขืืืขืืึธืคึผืขื ืคึผืืืืื ืืงืึธืืกืืกืืึทื
ืื Jenkins ืคึผืืืืื ืืงืึธืืกืืกืืึทื ืืื ืคืื ืืขืจ ืืขืจืืืึทืงืกื ืงืึทืืคึผืขืจื ืืื ืื ืคึผืืืืื ืืงืึธืืกืืกืืึทืื ืคืื ืื ืืขืจืข ืกื / ืกื ืืืฉืืจืื. ืขืก ืืขื ืขื ืืขืจืืืืึทื ืืืืขืจ 1500 ืคึผืืืืื ืก ืคึฟืึทืจ Jenkins. ืื ืคึผืืืืื ืก ืืขื ืขื ืึทืืืขื ืฆื ืกืึทืืืืื ื ืึท ืืจืืื ืงืืื ืคืื ืคึผืจืึธืืืขืืก; ืืื ืืืืขืจ ืืืืฃ ืืืจ ืงืขื ืขื ืึธืืึทืืืื ืึท ืืจืืื ืคืึทืจืฉืืืื ืงืืึทื ืคืื ืคึผืจืึทืืืฉืขืงืก. ืื ืขืฉืืจืืช ืคืื ืคืจืื ืคึผืืืืื ืก ืฆื ืงืืืึทืื ืคืื ืืืื ืึทื ืืืขืจ ืขืก ืื ืืืึธืก ื ืืฆื Jenkins ืืื ื ืืฉื ืืึธืื ืึท ืืจืื ืืืขื ืืึทืจืคึฟื ืฆื ืงืืืคื ืืืึทืขืจ ืืึทืฆืึธืื ืคึผืืืืื ืก. ืขืก ืืื ืึท ืืขืืืขืืงืืื
โ3. ืืจืื ื ืื ืกืืึทืืืจืื ื ืืื ืกืขืืึทืคึผ
Jenkins ืืื ืืึทื ืฅ ืืจืื ื ืฆื ืื ืกืืึทืืืจื ืืื ืงืึทื ืคืืืืขืจ. ืืื ืืขืจ ืืขืืืืงืขืจ ืฆืืื, ืื ืกืืกืืขื ืืขืจืืืึทื ืืืงื ืคึผืจืึธืฆืขืก ืืื ืืืื ืืืืขืจ ืืึทืงืืืขื. ืืึธ, ืืืืืขืจ, ืขืก ืืื ืืืขืจื ืืขืจืืึธื ืขื ืื ืงืืืึทืืืืขื ืคืื ืื ืืึทืงืืืืขื ืืืืฉืึทื, ืืืืึทื ืขืก ืงืขื ืขื ืขื ืืคึฟืขืจื ืึท ืคืึทืจืฉืืืื ืงืืึทื ืคืื ืคืจืืืขืก ืฉืืึทืืืช ืฆื ืื ืกืืึธืืื ื ืืื ืงืึทื ืคืืืืขืจ Jenkins.
โ4. ืคืจืืึทื ืืืขื ืงืืืื
ืืื ืฉืืื ืืขืจืืื ื, Jenkins ืืื ืึทื ืึธืคึฟื ืืงืืจ ืคึผืจืืืขืงื ืืืขืืขื ืก ืืงืึธืืกืืกืืึทื ืืืื ืึท ืจืืืืง ื ืืืขืจ ืคืื ืคึผืืืืื ืก. ืขืก ืืื ืึท ืืจืืืก ืงืื ืคืื ืืืืขืจื ืืื ืืขืืืขืืึธืคึผืขืจืก ืึทืจืื Jenkins ืืืึธืก ืืขืืคึฟื ืึทื ืืืืืงืืขื ืื ืคึผืจืืืขืงื. ืงืึทืืืื ืืื ืืื ืืืื ืขืจ ืคืื ืื ืกืืืืช ืืืึธืก ืืจืืืืื ืืืฉืขื ืงืื ืก ืึทื ืืืืืงืืื ื.
โ5. ืึทืืืึทืืืึทืืืืืื ืคืื REST API
ืืืขื ืืืจ ืึทืจืืขื ืืื Jenkins, ืืืจ ืงืขื ืขื ื ืืฆื ืื REST API, ืืืึธืก ืืงืกืคึผืึทื ืื ืื ืงืืืคึผืึทืืืืึทืืื ืคืื ืื ืกืืกืืขื. ืื ืึทืคึผื ืคึฟืึทืจ ืืืืึทื ืึทืงืกืขืก ืฆื ืื ืกืืกืืขื ืืื ืืขืจืืื ืื ืืื ืืจืื ืืืขืจืกืืขืก: XML, JSON ืืื JSONP ืฉืืืฆื, Python.
โ6. ืคึผืึทืจืึทืืขื ืึทืจืืขื ืฉืืืฆื
Jenkins ืฉืืืฆื ืคึผืึทืจืึทืืขืืืืึทืืืึธื ืคืื DevOps ืืึทืกืงืก. ืขืก ืงืขื ืขื ืืืื ืืืืื ืื ืึทืืจืืืืื ืืื ืคึฟืึทืจืืื ืืขื ืข ืืืฉืืจืื ืืื ืืึทืงืืืขื ื ืึธืืืึทืคืึทืงืืืฉืึทื ื ืืืขืื ืึทืจืืขื ืจืขืืืืืึทืื. ืงืึธืื ืืขืกืืื ื ืงืขื ืขื ืืืื ืึทืงืกืขืืขืจืืืืื ืืืจื ืึธืจืืึทื ืืืืื ื ืคึผืึทืจืึทืืขื ืคึผืจืืืขืงื ืืืืขื ืืื ืคืึทืจืฉืืืขื ืข ืืืืจืืืึทื ืืืฉืื ืขื.
โ7. ืฉืืืฆื ืคึฟืึทืจ ืืจืืขืื ืืื ืคืื ืื ืืขืจืืขืืืืื ืื ืืืืืจืึทื ืืึทื ืฅ
Jenkins ืึทืืึทืื ืืืจ ืฆื ืึธืจืืึทื ืืืืจื ืคืื ืื ืืขืจืืขืืืืื ืืืืขื ื ืืฆื ืงืืืคื ืงืึธืืคึผืืืืขืจืก. ืืขืจ ืฉืืจืื ืืื ืึธื ืืืขื ืืืขื ืืื ืืจืืืก ืคึผืจืึทืืืฉืขืงืก ืืื ื ืืฆื ืึท ืึทืจืืขื ืกืืขืืข ืืื ืืืึธืก ืขืก ืืื ืืืื ืืืืคึผื Jenkins ืกืขืจืืืขืจ ืืื ืขืืืขืืข ืฉืงืืึทืฃ ืืืฉืื ืขื. ืฉืงืืึทืฃ ืืืฉืื ืขื ืงืขื ืขื ืืืื ืืืื ืืขืืืืื ื ืืื ืกืืืืึทืืืึธื ืก ืืื ืขืก ืืื ื ืืืืืง ืฆื ืึธืจืืึทื ืืืืจื ืืขืกืืื ื ืคืื ืึท ืคึผืจืืืขืงื ืืื ืคืึทืจืฉืืืขื ืข ืื ืืืืืจืึทื ืืึทื ืฅ. ืื ืคึฟืขืึดืงืืืื ืฉืืขืื Jenkins ืืึทืืื ืืขืจ ืคืื ืื ืืขืจืข ืขื ืืขื ืคึผืจืึทืืืฉืขืงืก.
ืื ืืจืึธืืืืกืื ื GitLab
GitLab CI / CD ืืื ืขืจืืืืฉื ืึทืื ืืืคืจืืื ืืื ืึท ืกืืึทื ืืึทืืึธื ืข ืคึผืจืืืขืงื, ืึธืืขืจ ืืื 2015 ืื ืืืฉืืจืื ืืื ืื ืึทืืจืืืืื ืืื GitLab 8.0. ื ืืืื GitLab CI / CD ืกืขืจืืืขืจ ืงืขื ืขื ืฉืืืฆื ืืขืจ ืืื 25000 ืืืืขืจื. ืืึทืืืจื ืืืืฃ ืึทืืึท ืกืขืจืืืขืจืก, ืืืจ ืงืขื ืขื ืืึทืื ืกืืกืืขืืขื ืืืึธืก ืืขื ืขื ืืขืืกื ืื ืืืฆื.
GitLab CI / CD ืืื ืื ืืืืคึผื GitLab ืคึผืจืืืขืงื ืืขื ืขื ืืขืฉืจืืื ืืื Ruby and Go. ืืื ืืขื ืขื ืืืคืจืืื ืืื ืืขืจ ืื MIT ืืขืจืืืืืขื ืืฉ. GitLab CI / CD, ืืื ืึทืืืฉืึทื ืฆื ืื ืืขืืืืื ืืืขื ืงืืืคึผืึทืืืืึทืืื ืคืื CI / CD ืืืฉืืจืื, ืืืื ืฉืืืฆื ื ืึธื ืงืืืคึผืึทืืืืึทืืื ืฉืืึทืืืช, ืืืฉื, ืฆื ืึทืจืืขื ืคึผืืึทื ืืจืื ื.
ืื ืืึทืืจืืืืื ื GitLab CI / CD ืืื ืืืื ืคึผืจืืืขืงื ืืื ืืืืขืจ ืืจืื ื. ืืืขื ื ืืฆื GitLab CI / CD, ืืขืจ ืคึผืจืึธืฆืขืก ืคืื ืคึผืจืึทืกืขืกืื ื ืคึผืจืืืขืงื ืงืึธื ืืื ืฆืขืืืืื ืืื ืกืืึทืืขืก, ืืขืืขืจ ืคืื ืืืึธืก ืงืขื ืขื ืฆืื ืืืคืฉืืขืื ืืื ืคืื ืขืืืขืืข ืืึทืกืงืก ืืขืืื ืืื ืึท ืืืืขืจ ืกืืจ. ืืึทืกืงืก ืงืขื ืขื ืืืื ืคืืื-ืืื ื.
ืืึทืกืงืก ืงืขื ืขื ืืืื ืขืงืกืึทืงืืืืึทื ืืื ืคึผืึทืจืึทืืขื. ื ืึธื ืืึทืฉืืขืืืงื ืื ืกืืงืืืึทื ืก ืคืื ืกืืึทืืขืก ืืื ืืึทืกืงืก, ืื ืกื / ืกื ืจืขืจื - ืืื ืืข ืืื ืืจืืื ืฆื ืืืื. ืืืจ ืงืขื ืขื ืืึธื ืืืึธืจ ืืืึทื ืคึผืจืึธืืจืขืก ืืืจื ืืจืึทืงืื ื ืื ืกืืึทืืืก ืคืื ืืึทืกืงืก. ืืื ืึท ืจืขืืืืืึทื, ืื ื ืืฆื ืคืื GitLab CI / CD ืืื ืืืืขืจ ืืึทืงืืืขื, ืืึธืืขืจ ืืขืจ ืืึทืงืืืขื ืืื ืื ืืขืจืข ืขื ืืขื ืืืฉืืจืื.
ืคึฟืขืึดืงืืืื ืคืื GitLab CI / CD ืืื GitLab
GitLab CI / CD ืืื ืืืื ืขืจ ืคืื ืื ืืขืจืกื ืคืึธืืงืก ืืขืืืึธืคึผืก ืืืฉืืจืื. ืื ืคึผืจืืืขืงื ืืื ืืื ืืขืจืฉืืืื ืืืจื ืืืื-ืงืืืึทืืืืขื ืืึทืงืืืืขื ืืืืฉืึทื, ืืืึทื ืงืืืคึผืึทืืืืึทืืื ืืขื ืขื ืืจืื ื ืืื ืืึทืงืืืขื ืฆื ื ืืฆื. ืืืื ืืืจ ืืขื ื ื ืืึท ืืื GitLab CI / CD, ืื ืคืืืืขื ืืข ืจืฉืืื ืคืื ืื ืคึฟืขืึดืงืืืื ืคืื ืื ืืขืฆืืึทื ืืืขื ืืขืื ืืืจ ืึท ืืขื ืขืจืึทื ืืขืืึทื ืง ืคืื ืืืึธืก ืืืจ ืงืขื ืขื ืืขืจืืืึทืจืื ืคืื ืขืก. ืขืก ืืึธื ืืืื ืื ืืขืืืืื ืึทื ืคืืืข ืคืื โโืื ืคึฟืขืึดืงืืืื ืืขื ืขื ืฉืืื ืฆื ืื GitLab ืคึผืืึทืืคืึธืจืืข ืืื, ืืื ืืืึธืก GitLab CI / CD ืืื ืื ืึทืืจืืืืื.
โ1. ืคึผืึธืคึผืืืึทืจืืืขื
GitLab CI / CD ืืื ืึท ืืขืคืืขืจืขื ื ืืึท ืืขืฆืืึทื ืืืึธืก ืืื ืืขืคึฟืื ืขื ืืืืืืกืคึผืจืขื ื ืืฆื. GitLab CI / CD ืืื ืืืกืืขืืืืืึทื ืืขืืืืจื ืึท ืืึธืจ ืคืึธืืงืก ืกื / CD ืืขืฆืืึทื ืืขื ืืฆื ืคึฟืึทืจ ืึธืืึทืืืืืื ืืืืืืืืืจื ืืขืกืืื ื ืืื ืืืคึผืืืืืึทื ื. ืขืก ืืื ืืจืื ื ืฆื ืื ืกืืึทืืืจื. ืขืก ืืื ืืืื ืึท ืคืจืื ืกื / ืงืึธืืคึผืึทืงืืืืกืง ืืขืฆืืึทื ืืขืืืื ืืื ืื GitLab ืคึผืืึทืืคืึธืจืืข.
โ2. GitLab ืืืขืืขืจ ืืื Jekyll ืฉืืืฆื
Jekyll ืืื ืึท ืกืืึทืืืง ืคึผืืึทืฅ ืืขื ืขืจืึทืืึธืจ ืืืึธืก ืงืขื ืขื ืืืื ืืขืืืืื ื ืืื ืื GitLab ืืืขืืขืจ ืกืืกืืขื ืฆื ืฉืึทืคึฟื ืืืืืืขื ืืืืืจื ืืืืฃ GitLab ืจืืคึผืึทืืึทืืึธืจืื. ืืขืจ ืกืืกืืขื ื ืขืื ืืงืืจ ืืึทืืขืจืืึทืืก ืืื ืืืฉืขื ืขืจืืืฅ ืึท ืคืึทืจืืืง ืกืืึทืืืง ืืืขืืืืืื ืืืืืจื ืืืืฃ ืืื. ืืืจ ืงืขื ืขื ืงืึธื ืืจืึธืืืจื ืื ืืืืกืืขื ืืื ืงืืืคึผืึทืืืืึทืืื ืคืื ืึทืืึท ืืืืืืขื ืืืจื ืขืืืืื ื ืื ืืขืงืข _config.yml
, ืืขืืืืื ื ืืืจื Jekyll.
โ3. ืคึผืจืึธืืขืงื ืคึผืืึทื ืืจืื ื ืงืืืคึผืึทืืืืึทืืื
ืืึทื ืง ืฆื ืื ืคืืืืงืืื ืฆื ืคึผืืึทื ืืจื ืคึผืจืืืขืงื ืกืืึทืืขืก, ืื ืงืึทื ืืืื ืืึทื ืก ืคืื ืืจืึทืงืื ื ืคึผืจืึธืืืขืืก ืืื ืืืืขืจ ืืจืืคึผืขืก ืื ืงืจืืกืื. ืืึธืก ืึทืืึทืื ืืืจ ืฆื ืคืืจื ืื ืึธืจืืึทื ืืืึทืฆืืข ืคืื โโืึทืจืืขื ืืืืฃ ืคึผืจืึทืืืฉืขืงืก ืืื ืคึผืืึทื ืืืืขืจ ืืืคึผืืึทืืขื ืืืืฉืึทื ืคึฟืึทืจ ืึท ืกืคึผืขืฆืืคืืฉ ืืึทืืข.
โ4. ืึธืืึทืืึทืืืง ืกืงืืืืื ื ืคืื ืกื ืจืึทื ืขืจื
ืืึทื ืง ืฆื ืึธืืึทืืึทืืืง ืกืงืืืืื ื ืคืื ืจืึทื ืขืจื ืคืึทืจืึทื ืืืืึธืจืืืขื ืคึฟืึทืจ ืคึผืขืจืคืึธืจืืื ื ืกืคึผืขืฆืืคืืฉ ืืึทืกืงืก, ืืืจ ืงืขื ืขื ืขืืขืก ืฉืคึผืึธืจื ืืืืฃ ืื ืคึผืจืืึทื ืคืื ืจืขื ืืื ื ืกืขืจืืืขืจ ืงืึทืคึผืึทืฆืืืขื. ืืึธืก ืืื ืืืืขืจ ืืืืืืืง, ืกืคึผืขืฆืืขื ืืืขื ืขืก ืงืืื ืฆื ืื ืืืืืจืึทื ืืึทื ืฅ ืืื ืคึผืจืึทืืืฉืขืงืก ืืขื ืขื ืืขืกืืขื ืืื ืคึผืึทืจืึทืืขื. ืืื ืืขืจืฆื, ืืึธืก ืืื ืืืืืืืง ืคึฟืึทืจ ืืจืืืก ืคึผืจืึทืืืฉืขืงืก ืงืึทื ืกืืกืืื ื ืคืื ืขืืืขืืข ืจืืคึผืึทืืึทืืึธืจืื.
โ5. ืึทืจืืืกืืขืื ืืจืึทืงืื ื ืืืฉืืจืื
GitLab ืก ืฉืืึทืจืง ืึทืจืืืกืืขืื ืืจืึทืงืื ื ืงืืืคึผืึทืืืืึทืืื ืืึธืื ืืขืคึฟืืจื ืฆื ืคืืืข ืึธืคึฟื ืืงืืจ ืคึผืจืึทืืืฉืขืงืก ื ืืฆื ืื ืคึผืืึทืืคืึธืจืืข. GitLab CI / CD ืึทืืึทืื ืืืจ ืฆื ืคึผืจืืืืจื ืคืึทืจืฉืืืขื ืข ืงืึธื ืฆืืืืืื ืืื ืคึผืึทืจืึทืืขื. ืคึผืจืืืืจื ืจืขืืืืืึทืื ืงืขื ืขื ืืืื ืงืึทื ืืืื ืืึทื ืืื ืึทื ืึทืืืืื ืืื ืื ืกืืกืืขื ืฆืืืื ื. ืืึธืก ืฉืืขืื GitLab CI / CD ืืึทืืื ืืขืจ ืคืื Jenkins.
โ6. ืจืืกืืจืืงืืื ื ืึทืงืกืขืก ืฆื ืจืืคึผืึทืืึทืืึธืจืื
ืื GitLab ืคึผืืึทืืคืึธืจืืข ืฉืืืฆื ืจืืกืืจืืงืืื ื ืึทืงืกืขืก ืฆื ืจืืคึผืึทืืึทืืึธืจืื. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืื ืืืืก ืืืืึทืจืืขืื ืืืืฃ ืึท ืคึผืจืืืขืงื ืืื ืึท ืจืืคึผืึทืืึทืืึธืจื ืงืขื ืขื ืืืื ืึทืกืืื ื ืจืขืื ืืืึธืก ืฉืืืืขื ืฆื ืืืืขืจ ืจืึธืืขืก. ืืึธืก ืืื ืกืคึผืขืฆืืขื ืืืช ืคึฟืึทืจ ืคึฟืืจืืข ืคึผืจืึทืืืฉืขืงืก.
โ7. ืึทืงืืืื ืงืื ืฉืืืฆื
ืึทื ืึทืงืืืืืข ืงืืืื ืืื ืืขืืืขืืึธืคึผืขื ืึทืจืื GitLab, ืืืึธืก ืงืึทื ืืจืืืืืฅ ืฆื ืืขืจ ืึทื ืืืืืงืืื ื ืคืื ืืขื ืคึผืืึทืืคืึธืจืืข ืืื ืืืึทื ืืืฉืืจืื, ืกืคึผืขืฆืืขื GitLab CI / CD. ืืืฃ ืื ืึทืืจืืืฉืึทื ืฆืืืืฉื GitLab CI / CD ืืื GitLab, ืฆืืืืฉื ืื ืืขืจืข, ืืืื ืขืก ืืจืื ืืขืจ ืฆื ืืขืคึฟืื ืขื ืขื ืืคึฟืขืจืก ืฆื ืคึฟืจืืื ืืืึธืก ืฉืืืืขื ืืืขื ืืืจ ืึทืจืืขื ืืื GitLab CI / CD.
โ8. ืฉืืืฆื ืคึฟืึทืจ ืืจืืขืื ืืื ืคืึทืจืฉืืื ืืืขืจืกืืข ืงืึธื ืืจืึธื ืกืืกืืขืืขื
GitLab CI / CD ืืื ืึท ืกืืกืืขื ืืืึธืก ืงืขื ืขื ืึทืจืืขืื ื ืื ืืืืื ืืื ืงืึธื ืืึธืืกืืื ืืื GitLab ืจืืคึผืึทืืึทืืึธืจืื. ืฆืื ืืืืฉืคึผืื, ืืขืจ ืงืึธื ืงืขื ืขื ืืืื ืกืืึธืจื ืืื ืึท GitHub ืจืืคึผืึทืืึทืืึธืจื, ืืื ืื CI / CD ืจืขืจื - ืืื ืืข ืงืขื ืขื ืืืื ืึธืจืืึทื ืืืืจื ืืืืืจื ืืืืฃ GitLab ื ืืฆื GitLab CI / CD.
ืคืึทืจืืืืึทื ืคืื Jenkins ืืื GitLab CI / CD
Jenkins ืืื GitLab CI / CD ืืขื ืขื ืืืืขืจ ืืื ืืืฉืืจืื, ืืขืืขืจ ืคืื ืืืึธืก ืืื ืืืืืืช ืฆื ืขื ืฉืืจ ืื ื ืึธืจืืึทื ืคืึทื ืืงืฉืึทื ืื ื ืคืื ืื CI / CD ืจืขืจื - ืืื ืืข. ืึธืืขืจ, ืืืื ืืืจ ืคืึทืจืืืืึทืื ืืื, ืขืก ืืืจื ืก ืืืืก ืึทื ืืึธืืฉ ืืื ืืขื ืขื ืขื ืืขื ืืื ืคืืืข ืืืขืื, ืืื ืึทื ืืขืจืฉ ืคืื ืืขืืขืจ ืื ืืขืจืขืจ ืืื ืขืืืขืืข ืืืขืื.
ืืืจืืงืืขืจืืกืืืง
ืืืฉืขื ืงืื ืก
GitLab CI / CD
ืขืคืขื ืขื ืึธืืขืจ ืคืืจืืืื ืืงืืจ
ืึธืคึฟื ืืงืืจ
ืึธืคึฟื ืืงืืจ
ืื ืกืืึทืืืจืื ื
ืคืืจืืื ืื.
ื ืื ืคืืจืืื ืื, ืืืืึทื ืืึธืก ืืื ืึท ืืขืืืื-ืืื ืฉืืจืื ืคืื ืื GitLab ืคึผืืึทืืคืึธืจืืข.
ืืื ืฆืืง ืคึฟืขืึดืงืืืื
ืคึผืืืืื ืฉืืืฆื.
ืืืฃ ืื ืึทืืจืืืฉืึทื ืืื ืืืขืจืกืืข ืงืึธื ืืจืึธื ืกืืกืืขื.
ะะพะดะดะตัะถะบะฐ
ืืื ืคืขืื ืืืง.
ืื ืืืฆื.
ืื ืกืืึทืืืจืื ื ืืื ืงืึทื ืคืืืืขืจืืืฉืึทื
ืืืื ื ืืฉื ืงืืื ืฉืืืขืจืืืงืืืื
ืืืื ื ืืฉื ืงืืื ืฉืืืขืจืืืงืืืื
ืืื-ืืืคึผืืืืืึทื ื ืคืื ืื ืกืืกืืขื
ืืึธืก ืืื ืืขืจ ืืืืื ืึธืคึผืฆืืข ืคึฟืึทืจ ื ืืฆื ืื ืกืืกืืขื.
ืืขืฉืืืฆื.
ืงืจืืืืืื ื ืกื / ืงืึธืืคึผืึทืงืืืืกืง ืคึผืืืคึผืืืื ื
ืืขืฉืืืฆื ืืื ืืขืืืืื ื ืืืจื Jenkins Pipeline.
ืืขืฉืืืฆื.
ืึทืคึผืคึผืืืงืึทืืืึธื ืคืึธืจืฉืืขืืื ื ืืึธื ืืืึธืจืื ื
ืืื ืคืขืื ืืืง.
ืื ืืืฆื.
Ecosystem
ืขืก ืืขื ืขื ืืืืขืจ 1000 ืคึผืืืืื ืก.
ืื ืกืืกืืขื ืืื ืืขืืืขืืึธืคึผืขื ืืื GitLab.
ืึทืคึผื
ืฉืืืฆื ืึท ืึทืืืึทื ืกืืจืืข ืึทืคึผื ืกืืกืืขื.
ืึธืคืคืขืจืก ืึทื ืึทืคึผื ืคึฟืึทืจ ืืืคึผืขืจ ืื ืึทืืจืืืฉืึทื ืืื ืคึผืจืึทืืืฉืขืงืก.
ืืืฉืึทืืืึทืกืงืจืืคึผื ืฉืืืฆื
ืื ืืืฆื.
ืื ืืืฆื.
ืื ืึทืืจืืืฉืึทื ืืื ืื ืืขืจืข ืืืฉืืจืื
ืื ืืขืืจืึทืืืึธื ืืื ืื ืืขืจืข ืืืฉืืจืื ืืื ืคึผืืึทืืคืึธืจืืก (Slack, GitHub) ืืื ืืขืฉืืืฆื.
ืคืืืข ืืืฉืืจืื ืคึฟืึทืจ ืื ืึทืืจืืืฉืึทื ืืื ืืจืื-ืคึผืึทืจืืื ืกืืกืืขืืขื, ืกืคึผืขืฆืืขื ืืื GitHub ืืื Kubernetes.
ืงืึธืื ืงืืืึทืืืืขื ืงืึธื ืืจืึธื
ืฉืืืฆื - ื ืืฆื ืื SonarQube ืคึผืืืืื ืืื ืื ืืขืจืข ืคึผืืืืื ืก.
ืืขืฉืืืฆื.
ืืืคืขืจืึทื ืกืื ืฆืืืืฉื Jenkins ืืื GitLab CI / CD
ื ืึธื ืืืกืงืจืืืื ืืื ืงืึทืืคึผืขืจื Jenkins ืืื GitLab CI / CD, ืืึธืื ืืื ืื ืคืึธืงืืก ืืืืฃ ืื ืืืคืขืจืึทื ืกืื ืฆืืืืฉื ืื DevOps ืืืฉืืจืื. ืืืืกื ืื ืืืคืขืจืึทื ืกืื ืืืขื ืฆืืฉืืขืื ืื ืกืืื ืืื ืื ืืืืก ืืขืกืขืจ ืืืื ืขืจ ืคืื ืื ืืืฉืืจืื ืืืืขืจ ืื ืื ืืขืจืข.
- GitLab CI / CD ืงืขื ืขื ืืึธืจ ืงืึธื ืืจืึธืืืจื Git ืจืืคึผืึทืืึทืืึธืจืื. ืืืจ ืืขื ืขื ืืขืจืขืื ืืืขืื ืึธื ืคืืจืื ื ืจืืคึผืึทืืึทืืึธืจื ืฆืืืืืื ืืื ืขืืืขืืข ืื ืืขืจืข ืคึฟืขืึดืงืืืื. ืึธืืขืจ Jenkins, ืืึธืืฉ ืขืก ืงืขื ืขื ืึทืจืืขืื ืืื ืจืืคึผืึทืืึทืืึธืจืื, ืืื ื ืืฉื ืฆืืฉืืขืื ืื ืืขืืืข ืืืจืื ืคืื ืงืึธื ืืจืึธื ืืืืขืจ ืืื ืืื GitLab CI / CD.
- Jenkins ืืื ืึท ืคืจืื ืึธืคึฟื ืืงืืจ ืคึผืจืืืขืงื. ืืขืจ, ืืืึธืก ืงืืฒึทืื ืขืก ืืืืก, ืึทื ืืคึผืืขืงื ืืึธืก ืึทืืืื. ืืื GitLab CI / CD ืืื ืึทืจืืึทื ืืขืจืขืื ื ืืื ืื GitLab ืคึผืืึทืืคืึธืจืืข, ืขืก ืืื ืึท ืคืึทืจืืืง ืืืืืื ื.
- GitLab CI / CD ืฉืืืฆื ืึทืืืึทื ืกืืจืืข ืึทืจืืืกืืขืื ืคืึทืจืืืึทืืืื ื ืืืฉืืจืื ืืืึธืก ืึทืจืืขื ืืืืฃ ืื ืคึผืจืืืขืงื ืืืจืื. ืื ืืืึทื ืคืื ืืืฉืขื ืงืื ืก ืืื ืืืืื ืืงืขืจ ืืขืืืขืืึธืคึผืขื.
Jenkins ืืื GitLab CI / CD: ืกืืจืขื ืืงืืก ืืื ืืืืงื ืึทืกืึทื
ืืืฆื ืืืจ ืืึธืื ืึท ืืขืืึทื ืง ืืืขืื Jenkins ืืื GitLab CI / CD. ืืืฆื, ืฆื ืืึทืื ืืืจ ืืคืืื ืืขืกืขืจ ืืึทืงืึทื ื ืืื ืื ืืืฉืืจืื, ืืึธืืืจ ืงืืงื ืืื ืืืืขืจ ืกืืจืขื ืืงืืก ืืื ืืืืงื ืึทืกืึทื. ืืืจ ืืืืืื ืึทื ืืืจ ืืึธื ืฉืืื ืืขืืืื ืึท ืืึทืฉืืืก ืืืขืื ืืืึธืก ืืขืฆืืึทื ืืืจ ืืึทืจืคึฟื. ืืื ืืึธืคึฟื ืืขื ืึธืคึผืืืืืื ื ืืืขื ืืึธืื ืืืจ ืฆื ืคึผืจืืืืจื ืืื.
โ ืืืฉืขื ืงืื ืก ืกืืจืขื ืืงืืก
- ื ืืจืืืก ื ืืืขืจ ืคืื ืคึผืืืืื ืก.
- ืืึทื ืฅ ืงืึธื ืืจืึธื ืืืืขืจ ืื ืื ืกืืึทืืืจืื ื ืคืื ืืืฉืืจืื.
- ืืจืื ื ืืืืึทืืื ื ืคืื ืจืึทื ืขืจื.
- ืืจืื ื ื ืึธืืข ืกืขืืึทืคึผ.
- ืืจืื ื ืงืึธื ืืืคึผืืืืืึทื ื.
- ืืืืขืจ ืืื ืงืจืึทืืขื ืืฉืึทื ืคืึทืจืืืึทืืืื ื ืกืืกืืขื.
- ืืืืืืงืืื ืืื ืืืขืจืกืึทืืืืึทืื.
- ืฉืืืฆื ืคึฟืึทืจ ืคืึทืจืฉืืื ืคึผืจืึธืืจืึทืืืื ื ืฉืคึผืจืึทืื.
- ืื ืกืืกืืขื ืืื ืคืึทืจืฉืืืืืง ืืืืฃ ืึท ืื ืืืึทืืืื ืืืจืื.
โ ืืืฉืขื ืงืื ืก ืืืืงื ืึทืกืึทื
- ืฉืืืขืจืืงืืืื ืงืขื ืืืืคืฉืืืื ืืืขื ื ืืฆื ืคึผืืืืื ืก.
- ืืืขื ืืืจ ื ืืฆื Jenkins ืืื ืงืืืื ืคึผืจืึทืืืฉืขืงืก, ืื ืฆืืื ืคืืจืืื ืื ืฆื ืฉืืขืื ืขืก ืืื ืืื ืงืขื ืขื ืืืื ืึทื ืจืืืึทื ืึทืืื ืืจืืืก.
- ืคืขืื ืคืื ืึทืืืขืืืื ืึทื ืึทืืืืืงืึทื ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืื ืกื / ืกื ืงืืืื.
โ ืกืืจืขื ืืืืก ืคืื GitLab CI / CD
- ืืื ืื ืึทืืจืืืฉืึทื ืืื ืืึธืงืขืจ.
- ืืจืื ื ืกืงืืืืื ื ืคืื ืจืึทื ืขืจื.
- ืคึผืึทืจืึทืืขื ืืืจืืคืืจืื ื ืคืื ืืึทืกืงืก ืึทืจืืึทื ืืขืจืขืื ื ืืื ืื ืกืืึทืืขืก ืคืื ืื ืกื / ืกื ืจืขืจื - ืืื ืืข.
- ื ืืฆื ืื ืืืจืขืงืืขื ืึทืกืืงืืืง ืืจืึทืคืืง ืืึธืืขื ืืืขื ืืืจ ืฉืืขืื ืึทืจืืขื ืืึทืฆืืื ืืขื.
- ืืืื ืืืจืื ืคืื ืกืงืึทืืึทืืืืืื ืจืขืื ืฆื ืืขืจ ืืขืืืขืืงืืื ืคืื ืคึผืึทืจืึทืืขื ืืืจืืคืืจืื ื ืคืื ืจืึทื ืขืจื.
- ืื ืคืื ืึทืืื ื ืืึทืกืงืก.
- ืคึผืฉืื ืงืึธื ืคืืืงื ืืึทืืืึธืืข.
- ืคืึทืจืืึธืืืขื ืืืืขืจืืืึทื ืกืืกืืขื.
โ ืืืืงื ืึทืกืึทื ืคืื GitLab CI / CD
- ืคึฟืึทืจ ืืขืืขืจ ืึทืจืืขื, ืืืจ ืืึทืจืคึฟื ืฆื ืืึทืฉืจืืึทืื ืืื ืืคึผืืึธืึทื / ืึทื ืืึธืื ืึทืจืืึทืคืึทืงืฅ.
- ืืืจ ืงืขื ืขื ื ืืฉื ืคึผืจืืืืจื ืื ืจืขืืืืืึทืื ืคืื ืืขืจืืืฉืื ื ืฆืืืืืื ืืืืืขืจ ืืืจ ืืึทืงืข ืืขืจืืืฉืื ื ืืื.
- ืืืขื ืืืกืงืจืืืืื ื ืื ืกืืึทืืขืก ืคืื ืึท ืกื / ืกื ืจืขืจื - ืืื ืืข, ืขืก ืืื ื ืึธื ื ืืฉื ืืขืืืขื ืฆื ืืืกืืืืื ืืืื ืกืืึทืืขืก.
ืจืขืืืืืึทืื ืคืื
ืืืืืข Jenkins ืืื GitLab CI / CD ืืึธืื ืกืืจืขื ืืงืืก ืืื ืืืืงื ืึทืกืึทื. ืืขืจ ืขื ืืคืขืจ ืฆื ืื ืงืฉืื ืคืื ืืืึธืก ืฆื ืงืืืึทืื ืืขืคึผืขื ืืก ืืืืฃ ืื ืืืืขืจืคืขื ืืฉื ืืื ืงืขืจืึทืงืืขืจืืกืืืงืก ืคืื ืึท ืืึทืืื ืืขืจ ืคึผืจืืืขืงื. ืืขืืขืจ ืคืื ืื ืกื / ืกื ืืืฉืืจืื ืืืกืงืึทืกื ืืืึทื ื ืืื ืึทื ืืขืจืฉ ืืื ืืืืขืจ ืคึฟืขืึดืงืืืื, ืืึธืืฉ ืื ืืืฉืืจืื ืืขื ืขื ืืืฉืืคื ืฆื ืกืึธืืืืข ืื ืืขืืืข ืคึผืจืึธืืืขื. ืืื ืืขืจ ืืขืืืืงืขืจ ืฆืืื, Jenkins ืืื ืึท ืกืืึทื ืืึทืืึธื ืข ืืขืฆืืึทื, ืืื GitLab CI / CD ืืื ืืืื ืคืื ืึท ืคึผืืึทืืคืึธืจืืข ืืืืืื ื ืคึฟืึทืจ ืืืืึทืจืืขื ืืืืฃ ืงืึธื.
ืืืขื ืืฉืืืื ื ืึท ืกื / ืงืึธืืคึผืึทืงืืืืกืง ืกืืกืืขื, ืืื ืึทืืืฉืึทื ืฆื ืืืึทื ืงืืืคึผืึทืืืืึทืืื, ืขืก ืืื ืืืขืจื ืฆื ื ืขืืขื ืืื ืืฉืืื ืื ืงืึธืก ืืืึธืก ืงืขื ืืืื ืคึฟืึทืจืืื ืื ืืื ืืื, ืืื ืืืึธืก ืคึผืื ืงื ืืขืืืึธืคึผืก ืขื ืืืฉืึทื ืืจื ืืืึธืก ืฉืืืฆื ืื ืคึผืจืืืขืงื ืืขื ืขื ืืขืืืืื ื ืฆื ืึทืจืืขืื ืืื.
ืืืึธืก ืกื / ืกื ืืืฉืืจืื ืืึธื ืืืจ ื ืืฆื?
ืืงืืจ: www.habr.com