ืื ืืืช ืฉืจืฉืจืช DevOps ืืจืืฉืื ื ืฉืื ืืืืืฉื ืฉืืืื ืืืชืืืืื.
DevOps ืืคื ืืชืจืืคืช ืคืื ืืชืืืืื ืคืืชืื ืืืืืื ืืื, ืื ืืชืงืื ืืืขืืืชืืื ืืืจืช. ืืื ืืชื ืฆืจืื ืืืข ืืื ืืืื ื-DevOps. ืื ืืืกื ืืืฉืืื ืืื ืฉืจืฉืจืช DevOps ืืืืฆื ืืืฆืืจ ืืื ืืืืืฉื ืฉืืืื. ืื ืื ืืืจืื ืฉืื, ืืื ืจืง "ืื" ืฉื ืืชื ืืืจืืื. ื ืชืืื ืืืืกืืืจืื.
ืืืืืจืืช ืฉืื ืขื DevOps
ืืขืืจ ืขืืืชื ืขื ืขื ื ืื ื-Citi Group ืืคืืชืืชื ืืคืืืงืฆืืืช ืืื ืืจื ื IaaS ืื ืืืื ืชืฉืชืืช ืืขื ื ืฉื Citi, ืืื ืชืืื ืืชืขื ืืื ืชื ืืืฆื ืืืืขื ืืช ืฉืจืฉืจืช ืืคืืชืื ืืืฉืคืจ ืืช ืืชืจืืืช ืืงืจื ืืืคืชืืื. ืืจื ืืื ืืจ, ื-CTO ืฉืื ื ืืืจืืืืงืืืจืช ืขื ื ืืชืฉืชืืืช, ืืืืืฅ โโืื ืขื ืืกืคืจ ืืื.
ืืืืื ืืืืืจ ืืจืื ืืืืื ืชืืืจืืช ืืืจืืช ืืืฆืืืืช ืืจืกืืืช ืืืฉืืช:
ืืื ืืืืื, ืืืื ืื ืืคืืืงืก ืืฆืืืืืช ืืืคืืฅ ืื ืื ืืจืื? ืืื ืคืฉืื: ืื ืืืื ื ืืื ืืืฆืืจ ืฉืจืฉืจืช DevOps ืืืขื ืืืฉืืืช.
ืืืืจืื ืืื ืืืื ืฉืื ืื ืขืืืจื ื ื-Citi ืขื ืฉืขืืจื ื ื-DevOps. ืื ืืฆืืืช ืฉืื ืืื ืกืืืืืช ืฉืื ืืช, ืืื ืขืฉืื ื ืืช ืืืกืืจื ืืฉืจืช ืืคืืชืื ืืืืคื ืืื ื. ืืื ืืืคืชืืื ืืืืชื ืืืฉื ืืฉืจืช ืคืืชืื ืืื ืืืื ืืืืืกืก ืขื IBM WebSphere Application Server Community Edition. ืขื ื ืืกืืื ืื ืืื ืืช ืืกืคืง, ืืฉืจืช "ื ืคื", ืืืื ืคืขื ื ืืืฆื ื ืื ืื ืืฉื ืืืชื ืืื ืื ื "ืืืื". ืื ืื ืืื ืื ื ืืืกืื ืงืื ืืกืคืืง ืขื ืืืืงืืช, ืชืืืื ืืกืืจื ืืื ื ืฉืืืงื ืืื ืจื, ืืืื ืืจื ืืขืงืื ืืืจ ืืกืืจืช ืืงืื ืืขืืจืช ืืฉืืื ืืืฉืื ืื ืืจืืฉืช ืืงืื.
ืืื ืืจืืจ ืฉืฆืจืื ืืขืฉืืช ืืฉืื ืืืืฃ, ืืืฆืืชื ืขืืืช ืืขื ืืขื ืืืื. ืืืืื ื ืืืฆืืจ ืืืื ืืช ืฉืจืฉืจืช ื-DevOps ืืจืืฉืื ื - ืืื ืืงืื ืืืื ื ืืืจืืืืืืช ืืฉืจืช ืืืฉืืืื ืฉื Tomcat, ืืื ื ืืืคืืชื ืื'ื ืงืื ืก, ืืื ืืืจืฆืื ืขื Atlassian Jira ื-BitBucket, ืืื ืื ืืืกืื ืงืื ืขื ืืืืงืืช. ืืคืจืืืงื ืืฆืืื: ืืืฆืขื ื ืืืืืืฆืื ืืืื ืฉื ืฉืจืฉืจืช ืืคืืชืื, ืืฉืื ื ืืืขื 100% ืืื ืคืขืืื ืืฉืจืช ืืคืืชืื, ืืฆืืื ื ืื ืืจ ืืืฉืคืจ ืืช ืืืกืื ืืงืื ืืืืฆืขืืช ืืืืงืืช, ืื ืืชื ืืื ืืงืฉืืจ ืกื ืืฃ ืฉื Git ืืืฉืืื ืืื ืคืงื ืฉื Jira. ืืืืขื ืื ืืืืื ืฉืืื ืืฉืชืืฉื ื ืืื ืืืช ืฉืจืฉืจืช DevOps ืืื ืงืื ืคืชืื.
ืืืขืฉื, ืืฉืจืฉืจืช ืืืืชื ืคืฉืืื, ืืืืืื ืฉืืคืืื ืื ืืืฉืื ื ืชืฆืืจืืช ืืชืงืืืืช ืืืืฆืขืืช Jenkins ืื Ansible. ืืื ืืฆืืื ื. ืืืื ืื ืชืืฆืื ืฉื ืืขืืงืจืื
ืชืืืืจ ืงืฆืจ ืฉื ืฉืจืฉืจืช DevOps ื-CI/CD
ื-DevOps ืืฉ ืืืืจืืช ืฉืื ืืช. DevOps, ืืื Agile, ืืืื ืืืกืฆืืคืืื ืืช ืฉืื ืืช. ืืื ืจืืื ืืกืืืื ืขื ืืืืืจื ืืืื: DevOps ืืื ืฉืืื, ืื ืืืืืจ ืืืื, ืฉื ืคืืชืื ืชืืื ื, ืฉืืขืืงืจืื ืืขืืงืจื ืฉืื ืืื ืืฆืืจืช ืชืจืืืช ืฉืื ืืคืชืืื ืืขืืืืื ืืืจืื ื ืืฆืืื "ืขื ืืืชื ืืืจื ืื", ืืขืืืื ืืืื ืืช ืืื ืืืืืืืืช, ืื ืืื ืขืืฉื ืืช ืื ืฉืืื ืืื ืืื ืื, ืชืืืจืืช ืืืฉืืืืื ืขืืื, ืืคืจืืืืงืืืืืืช ืฉื ืืขืืืื ืขืืื, ืืืืืฉืืช ืขืืื.
ืืื ื ืืืื ืืืื ืืื ื ืืกืคืืงืื ืืืฆืืจืช ืกืืืืช DevOps, ืื ืื ืืืจืืืื. ืืืฉืื ืฉืืื ืืื ืืื ืืืจืฆืื ืืชืืฉืืช ืืืกืคืงื โโืืชืืฉืืช (CI/CD). ืืฉื ื ืฉืืืื ืฉืื ืื ืืฉืจืฉืจืช ืขืืืจ ืื ืกืืืื (ืืืฉื DEV (ืคืืชืื), INT (ืืื ืืืจืฆืื), TST (ืืืืงื), QA (ืืืืืช ืืืืืช), UAT (ืืืืงืช ืงืืืช ืืฉืชืืฉืื), STG (ืืื ื), PROD (ืฉืืืืฉ)) , ืืฉืืืืช ืืื ืืืช ืื ืืืืืืืืืช, ืืคืชืืื ืืืืืื ืืืืฆืจ ืงืื ืืืืืชื, ืืกืคืง ืืืชื ืืืืืืื ืืื ืืช ืืืืฉ ืืงืืืช.
ืืขืจื ืื ืืชืืจืช โโืืืฆื ืืืฆืืจ ืฉืจืฉืจืช DevOps ืืืืืฉื ืฉืืืื, ืืคื ืฉืืืฆื ืืชืืื ื ืืืื, ืืืืฆืขืืช ืืื ืงืื ืคืชืื.
ืืื ื ืืืฉ ืืขื ืืื.
ืฉืื 1: ืคืืืคืืจืืช CI/CD
ืงืืื ืื, ืืชื ืฆืจืื ืืื CI/CD. Jenkins ืืื ืืื CI/CD ืืขื ืจืืฉืืื MIT, ืฉื ืืชื ื-Java, ืฉืืคื ืืช ืชื ืืขืช DevOps ืืคืืคืืืจืืืช ืืืคื ืืชืงื ืื ืคืงืื ืขืืืจ CICD.
ืื ืื ื'ื ืงืื ืก? ืชืืจื ืืขืฆืืื ืฉืืฉ ืืื ืืื ืืงืจื ืงืกืื ืืืืืื ืฉืืจืืชืื ืืืืื. ืืคื ื ืขืฆืื, ืืื CI/CD ืืื ื'ื ืงืื ืก ืืื ืืกืจ ืชืืขืืช, ืืื ืขื ืืืื ืืฉืืจืืชืื ืฉืื ืื, ืืื ืืืคื ืืืืืช ืื ืืืื.
ืื ืืกืฃ ืื'ื ืงืื ืก, ืืฉื ื ืืืื ืจืืื ืืืจืื ืืงืื ืคืชืื, ืืืจ ืื ืืื.
ืื ื ืจืื ืชืืืื DevOps ืขื ืืื CI/CD
ืืฉ ืื ืืื CI/CD ื-localhost, ืืื ืขืืืื ืืื ืืจืื ืื ืืขืฉืืช. ืืืื ื ืขืืืจ ืืฉืื ืืื.
ืฉืื 2: ืืงืจืช ืืจืกื
ืืืจื ืืืืื ืืืืชืจ (ืืืื ืื ืจืื ืืงืื ืืืืชืจ) ืืืืืง ืืช ืืงืกื ืฉื ืืื CI/CD ืืื ืืฉืื ืืืชื ืขื ืืื ื ืืืื ืืงืจืช ืืงืืจ (SCM). ืืื ืืชื ืฆืจืื ืืงืจืช ืืจืกืืืช? ื ื ืื ืฉืืชื ืืืืฉ ืืงืฉื. ืืชื ืืืชื ืืช ืื ื-Java, Python, C++, Go, Ruby, JavaScript, ืื ืื ืฉืคื ืืืจืช ืฉืืื ืขืืื ืืขืืื ืงืื ื. ืื ืฉืืชื ืืืชื ื ืงืจื ืงืื ืืงืืจ. ืืืชืืื, ืืืืืื ืื ืืชื ืขืืื ืืื, ืืชื ืืืื ืืฉืืืจ ืืื ืืกืคืจืืื ืืงืืืืช. ืืื ืืื ืฉืืคืจืืืงื ืืื ืืืืชืจ ืื ืฉืื ืืฆืืจืคืื, ืืชื ืฆืจืื ืืจื ืืฉืชืฃ ืฉืื ืืื ืงืื ืื ืืื ืืข ืืชื ืืฉืืืืช ืืขืช ืืืืื ืฉืื ืืืื. ืืืชื ืื ืฆืจืื ืืืืฉืื ืืฉืืืจ ืืจืกืืืช ืงืืืืืช ืืืื ืืืฉืชืืฉ ืืืืืืืื ืืฉืืืืฉ ืืฉืืืช ืืขืชืง-ืืืืง ืขืืืจ ืงืืืฆื ืงืื.
ืืืื ืืื SCM ืืฉืื ืืงืื. ื-SCM ืืืืกื ืงืื ืืืืืจืื, ืื ืื ืืจืกืืืช ืฉืื ืืืชืื ืืืชื ืืื ืืืคืชืืื.
ืืฉื ื ืืืื ืจืืื ืฉื SCM, ืืื Git ืืคื ืืฆืืง ืืกืื ืืจื ืื ืคืงืื. ืื ื ืืืืืฅ ืื ืืืฉืชืืฉ ืื, ืืื ืืฉ ืืคืฉืจืืืืช ืืืจืืช.
ืื ื ืจืื ืฆืื ืืจ DevOps ืืืืจ ืืืกืคืช ื-SCM.
ืืื ื-CI/CD ืืืื ืืืคืื ืืช ืืืขืืื ืืืืืจืื ืฉื ืงืื ืืงืืจ ืืืืืืืืช ืืฉืืชืืฃ ืคืขืืื ืืฆืืืช. ืื ืจืข? ืืื ืขืืฉืื ืืื ืืขืฉืืช ืืื ืืืฉืื ืขืืื, ืืืื ืขื ืืืืืืจืื ืืฉืชืืฉืื?
ืฉืื 3: ืื ืืืช ืืื ืืืืืืฆืื
ืืื ืืืื ืืื ืฉืฆืจืื. ืืชื ืืืื ืืืขืืืช ืงืื ืืืืฆืข ืฉืื ืืืื ืืืงืจืช ืืืงืืจ, ืืืืืืื ืืืจืื ืืขืืื ืืืชื. ืืื ืขืืืื ืืื ืื ืืคืืืงืฆืื. ืืื ืฉืื ืืืื ืืืฉืื ืืื ืืจื ื, ืขืืื ืืืืืช ืงืืืคืืื ืืืจืื ืืืคืฆื ืื ืืืคืขืื ืืืชื ืืงืืืฅ ืืคืขืื. (ืืื ืฆืืจื ืืืจืืื ืฉืคืช ืชืื ืืช ืืคืืจืฉืช ืืื JavaScript ืื PHP.)
ืืฉืชืืฉ ืืืื ืืืืืืฆืื ืืื ืืช. ืื ืืฉื ื ืืืืื ืืื ืชืืืจ, ืืื ืืจืืื ืืช ืืงืื ืืคืืจืื ืื ืืื ืืืืคืื ืืช ืื ืืงืื, ืืืืืืจ, ืืืืืงื ืืืืฉืืื ืืืืืืืื. ืืื ืื ืืื ืืฉืชื ืื ืืคื ืฉืคื, ืืื ืืคืฉืจืืืืช ืืงืื ืืคืชืื ืืืืืช ืืฉืืฉืืช ืืืจื ืืื.
ืืืฉืื! ืืขืช ืืื ื ืื ืืก ืืช ืงืืฆื ืืชืฆืืจื ืฉื ืืื ืืืืืืืฆืื ืืื ืืช ืืชืื ืืงืจืช ืืืงืืจ ืื ืฉืืื ื-CI/CD ืืื ื ืืืชื.
ืื ืืจืืืฉ ืืื. ืืื ืืืคื ืื ืื ืฆืจืื ืืืชืืืื ืขืืฉืื?
ืฉืื 4: ืฉืจืช ืืืฉืืื ืืื ืืจื ื
ืื, ืืฉ ืื ืงืืืฅ ืืจืื ืฉื ืืชื ืืืคืขืื ืื ืืืชืืืื. ืืื ืฉืืคืืืงืฆืื ืชืืื ืฉืืืืฉืืช ืืืืช, ืืื ืืืืืช ืืืืืช ืืขืืช ืฉืืจืืช ืื ืืืฉืง ืืืฉืื, โโืืื ืืชื ืฆืจืื ืืฉืื ืืช ืื ืื ืืืคืฉืื.
ื ืืชื ืืืจื ืืืฉืื ืืื ืืจื ื ืืฉืจืช ืืคืืืงืฆืืืช ืืื ืืจื ื. ืฉืจืช ืืืืฉืืืื ืืกืคืง ืกืืืื ืฉืื ืืชื ืืืื ืืืคืขืื ืืืืืงื ืืจืืื, ืืขืื ืืืฉืงืื ืืืืฉืืฃ ืฉืืจืืชื ืืื ืืจื ื ืืจื ืฉืงืข. ืืชื ืฆืจืื ืฉืจืช HTTP ืืขืื ืืื ืกืืืืืช (ืืืื ื ืืืจืืืืืืช, ืืืฉื) ืืื ืืืชืงืื ืืช ืฉืจืช ืืืืฉืืืื. ืืขืช ืขืชื, ืืื ื ืขืืื ืคื ืื ืฉืืชื ืืชืืืื ืขื ืื ืื ืชืื ืืื (ืืืจืืช ืฉืืืืจ ืขื ืืืืืืช ืืืืฉื).
ืืฉื ื ืืกืคืจ ืฉืจืชื ืืืฉืืื ืืื ืืจื ื ืคืชืืืื.
ืืืจ ืืฉ ืื ื ืฉืจืฉืจืช DevOps ืืืขื ืขืืืืช. ืขืืืื ืืืื!
ืืืืคื ืขืงืจืื ื, ืืชื ืืืื ืืขืฆืืจ ืืื, ืืื ืืชื ืืืื ืืืคื ืืื ืืขืฆืื, ืืื ืืืื ืืืืจ ืขื ืืืืืช ืืงืื.
ืฉืื 5: ืืืกืื ืืืื
ืืืืงื ืืืงืืช ืืจืื ืืื ืืืืืฅ, ืืื ืขืืืฃ ืืืฆืื ืืืืื ืืื ืืืฉืคืจ ืืช ืืงืื ืืื ืืจืฆืืช ืืช ืืฉืชืืฉื ืืงืฆื. ืืฆืืจื ืื, ืืฉื ื ืืืื ืคืชืืืื ืจืืื ืืฉืจ ืื ืจืง ืืืืงื ืืช ืืงืื, ืืื ืื ืืืขืฆื ืืืฆื ืืฉืคืจ ืืืชื. ืจืื ืืื ื-CI/CD ืืืืืื ืืืชืืืจ ืืืืื ืืื ืืืืคืื ืืช ืืชืืืื ืืืืืืืื.
ืืืืืงื ืืชืืืงืช ืืฉื ื ืืืงืื: ืืกืืจืืช ืืืืงื ืืืชืืืช ืืืืฆืืข ืืืื ืื, ืืืืื ืขื ืจืืืื ืืฉืืคืืจ ืืืืืช ืืงืื.
ืืกืืจืืช ืืืืงื
ืืืื ืขื ืืืคืื ืืืืืชืืื
ืจืื ืืืืื ืืืืกืืจืืช ืืืื ื ืืชืื ืขืืืจ Java, Python ื-JavaScript ืืืืืื ืฉ-C++ ื-C# ืื ืงื ืืื ืืื (ืื ืื GCC ืืื ืงืื ืคืชืื).
ืืืฉืื ื ืืช ืืื ืืืกืื ืืืืืงื, ืืขืืฉืื ืฆืื ืืจ DevOps ืืืืจ ืืืืจืืืช ืืื ืืชืืื ื ืืชืืืืช ืืืืจืื.
ืฉืืืื ื ืืกืคืื
ืืืืืื
ืืคื ืฉืืืจืชื ืงืืื, ืฉืจืช ืืืฉืืืื ืืืื ืืืชืืจื ืืืืื ื ืืืจืืืืืืช ืื ืืฉืจืช, ืืื ืงืื ืืืื ืจืื ืคืืคืืืจืืื ืืืชืจ.
ืขืืืจ ืืืืืืช, ืืืจื ืืื ื ืืงืืื Docker ื- Kubernetes, ืื ืื ืืฉ ืืคืฉืจืืืืช ืืืจืืช.
ืงืจื ืืืืจืื ืขื Docker ื-Kubernetes ืืืชืืืช
ืืื ืืืืืืฆืื ืฉื ืชืืื ืช ืืืฆืขืืช
ืฉืจืฉืจืช ื-DevOps ืฉืื ื ืืชืืงืืช ืืื ืืื ืืฉืืชืคืช ืืืกืคืงื โโืฉื ืืคืืืงืฆืื, ืืื ืืฉ ืืืจืื ืืขื ืืื ืื ื ืืกืคืื ืฉืชืืืื ืืขืฉืืช ืขื ืืื DevOps. ืืืืืื, ืืฉืชืืฉื ืืืื Infrastructure as Code (IaC), ืืืืืขืื ืื ืืชืืจ ืืื ืืืืืืฆืื ืฉื ืชืืื ืืช ืืื ืืื. ืืืื ืืื ืขืืืจืื ืืืคืื ืืชืงื ื, ื ืืืื ืืืฉืืืืช ืืืจืืช ืืืืืืืืืืช ืขืืืจ ืชืืื ืช ืืื ืืื. ืืืืืื, ืืื ืืืืืืฆืื ืืืื ืืงืืช ืืืฉืืืื (ืฉืจืช ืืืฉืืื ืืื ืืจื ื, ืืกื ื ืชืื ืื, ืืื ื ืืืืจ) ืขื ืืชืฆืืจืืช ืื ืืื ืืช ืืืืืืฃ ืืืชื ืืฉืจืช ืืืืฉืืืื.
ืืืื ืืื ืืคืฉืจืืืืช ืขืืืจ ืืื ืืืืืืฆืื ืคืชืืืื ืฉื ืชืืื ืช ืืื ืืื:
ืคืจืืื ืืืชืืืช
ืืืจืื ืชืืืืช ืืขืืืื ืฉื Ansible ืืกืืจืืืืืช ืืืืืืฆืื ืฉื ืคืจืืกื ืขื Ansible 5 ืืื ื ืืืื ืืชืฆืืจื ืืืืืืืื
ืืขืืฉืื ืื?
ืื ืจืง ืงืฆื ืืงืจืืื. ืจืฉืช DevOps ืืืืื ืืขืฉืืช ืืจืื ืืืชืจ. ืืชืื ืขื ืืื CI/CD ืืจืื ืื ืขืื ืืชื ืืืื ืืืคืื ืืืืืืืื ืืื ืืืงื ืขื ืืขืืืื ืฉืื. ืื ืชืฉืื
ืื ื ืขืื ืืื ืืืืจื DevOps ืืืืื ืืืชืืืืื:
ืื ืื DevOps 5 ืืืืื ืืืืช ืฉื ืืคืชื DevOps DevOps ืืืืื ืืืื ืื ืืชืื ืืืื ื-DevOps
ืืชื ืืืื ืื ืืฉืื DevOps ืขื ืืืื ืืจืืืื ืคืชืืืื:
ืืงืืจ: www.habr.com