ααΎαααΉαα
αΆααααααΎααααα»αααααααΎαααΆαα½αααΉαααΆαααααα»αααααααΆααααααα’ααααΎαα»αααααααΆα
α»αααααααααα»αααααααΆαααα
αα
αααααααααααΎαα
ααααααΈ 31 ααα§αααΆαα
αααα»αααααα·ααΈα
ααααα·αααΎα’αααααΆαα±ααΆαα
αααΆαααααα½ααααα
ααΆαααΉααααααΌαααΆαααααααααΆααααΆαα½α Docker
αααααα ααΆαααΉααααααΌααααα ααΎααααααΈαααααααααΆααααααααΉαααα·ααΆααααααααΆααααααααααΌααααααα·ααΈααΈααααΆαα Git ααααΌααααααααΆαααα·α α αΎααααααΆαααααααα αααα αααα»ααααααααΆαα ααΆαααΎααα ααΌα αααα Git β Build β Test β Release β Operate.
αααΆαααΆαααααΆαα
αααΎαααααΌαααΆαα§αααα·ααααααααΆααααΆαααΆαααα (ααΆααα½αααααα»αααααΆαααααααα·ααΈ) α αΎααααααΆααααααααΆαα
ααααααΆα αα·αααααΎαααΆαααααΌαααΆαααααααααααααα ααΎαααΉααα·ααΆαα’αααΈαααα αΆ αα·αααααΆααααα’αα»ααααΆαα±ααα’ααααααααααΆααα½αααΆ α αΎαααΆαα’αα»ααααααΆααααΆααααααααΌααΆαααααα’αΆα
αα»αααααΆα
α ααα»α’αααΈααΆαααΆ Docker ααααΌαααΆααα ααΈααα? ααΆαα·αααααααααΆααααααΆαα’αααΈαααααΎααααααα α α·ααααα·ααΆαα’αααΈααΆαα’αα»ααααααΆαα ααα αΆααααααα αααα»αααα·ααααα§ααααααααααααΎαα αα αααα αααααΈααΆαααΆαααΆαααααΆααααΌαααααΌαααΆαα§αααα·ααααααΆαααααΎααααΆααααααααΆααααα α ααα»ααααΆα αααΎαααααΌαααΆααααα αΆααα ααααα·α αΆαααΆααΎααααΌα ααααααααΆαα ααααααΆαααΌααααααα·ααΈα
ααααΆαβααΆαβα ααβααααΆαβα ααααβ
ααΌα αααα αα ααααααααΎαααΆααα ααααΌαααααααααΈαααααααα·ααΈ ααΎαααααΆααααΆααααααα»αααΆαα½α αααα αΆαααααααααααααΎαααα‘α»ααααααααΌααααΆαααΈαααααα·αααααα α ααΆα αααααΈααααα αΆαααααααααα·ααΈαα αααααα·ααΈααααΈαα·αα’αΆα ααααΌαααααΆααααΆαααα ααΆααααΌαααΎαααααΌαααααΆααααΆααααααααΈαα·αααααΉαααααααΌαααΆαααΆααααααααααααααα»ααααααα ααα»αααααααααΆαα "α‘αΎααααα " ααααα (α§. αα½α ααΆααααΎααααΈαααααΎααααΎ)α
ααΌα
αααααααααΆαααααααααααααααΆααααΈααααααααα·ααΈ (α
αΆαα αα·αααααΈ) ααΉαααααΎαααΆααααα»ααααααααΆαααααΆα αααααΆαα±αααααααααααααααααα· ααααααααααΆααα½αα αααααΆα ααααααααα―αααΆα IPC ααα ααΆαα½αααΉα Docker αααα αΆαααααααΌαααΆααααααααΆααααΆαααΆααααα½ααααααΆαααααΎαααΆααααααααααααααΆαααααααα·ααΈαα
αααα»ααα»αααΆα
ααααα‘αα αααααΆααααααααΆαααααΌαααΆαααΆααΆαα
αααα»ααααΆαααΈαααΌα
ααααΆ (αααΆαααΈααα/αααΆαααΈααα·αααα·α)α ααΆααΆααα·αααΆααα’αααα’αΆα
ααα½αααΆαααααααα·α
αα½αα
ααα½ααααααααΆαα’ααΈααΌα‘ααααΆαααααααααα»ααααααααα·αααΎααΆαα§ααααααααααααααα½α
ααΆααααα
αα·αααΆααααα½ααααααΆαα ααα»αααααα»α - αα·αααααΌαααααααααα ααα
ααΆαβααΆααβαα»αααΊαααβαααααβα’αααααααααααβααΆβα αααΎαβαααβαα βαααβααΆααβαααααΆαα αααααα·ααΈααΆαα½αα’αΆαααααααΎ ααααααΆααααΆαα (α¬αα½ααααα) α’αααααααααααΆαα’αΆα ααααΆααααααΌαα»α/αααααααααααααα ααααΌα ααΆααααααααααΆα α αΎααααα’αα»αααααα·αααααΉαααα ααααααα·ααααΆααααα’αΆα ααααα·ααααα·ααΆαααααΆααααα»ααααααα ααα»αααααααααΆααα ααααααα·ααααΆαααΆααααΌα αα½αααΆαααααααα αααααα·ααΈαααααααα αα·αααααααααααΆ (αα αΌααααααΆαα ααα αΆαααΈαα»α αααααΆαααααΎ)α αααααΆαααααΆααα·ααααααΆαα»αααΊααααα·αααααΉαααααΆααααααΌααααααα·ααΈααα»αααααααααα»αααααααααΆαααααααααααα·ααααααα·ααΈαααααΆαααα‘αΎαααΆαα»ααααααααααααααΌαααΆαα’αααα’αΆα ααααα α’αααΈαααα αΆααΆαα½αααΆαα’αΆαααααα
α αΌαααΎααααααα ααααΆαβααΆαβα ααβααααΆαβα ααααβ ααααααααΈααααα·αααΌαααΈαααααΆααΆααααααα
- ααααΌα ααααα αΆαααααααααααα·ααΈααααΎαααΆααααα»ααα»αααΊαααααααΌαα
- αααααΆααααααααααααΈααααΌαααΆαααΆααα ααα αΎα "αααα α‘αΎα" αα αααα»ααα»αααΈααΈαα αα½αααααααααΆααααΆααααααααΈαααα’αΆα α’αα»αααααα·αααααΉαααααΌααααααα·ααΈαααααΆαα’αΆαααααααα»ααααααα αααααΆααααΆαα’αΆαααααααΆαα½αααααααΆ ααααΌα ααΆαααΆαααΆαα»αααααααααα (α§ααΆα ααα ααααααααΈαα OpenSSL α¬ααΆαα ααα αΆαααΆααααΌα)α
- αα ααααααααααααααΈαα½α ααΆααααααααααΎααααΈαααααΎααααΎ α ααΆα αααααααΌαααΈαα»αααΊαααααΈαα½ααα αα»αααΈααΈαα
- ααααα αΆααα₯α‘αΌααααα’αΆα ααααΌαααΆαααααααα
αα·ααΈααΆαααααααααΆαααΆαααααααΆααααααααααααααΆαααααααα·ααΈαα αααα»ααα»αααΆα ααααα‘αααααααααΌαααΆαααΆααααα½ααα½ααααααααα - ααΆααα·ααααα‘αααααα·ααα αα αα ααααα αΆαα (αααααΆααααΈααΆααα’αα ααΆαααααααααΆααααΎααααΈααααΌαα ααΆα ααα ααΆαααα»αααΊααααααα ααααΆα)α
α’αα»ααΆαααααααΌαα
α»ααααααααααΆαααα
ααΌα
ααΆα’αααΈαα½ααααααΌααααΈαααααααΆααααα»ααα·αα’αΆα
ααααΎαααα α»αααΆαα½αα "[ααααααα
αααΆαα
ααα
αΆαααααααΆαα½α Docker] ααααΎ Docker [αα·ααααααΈα’αααΈαααααΆαααααα±αα]" ααΌαα
αΆαααΆααααα·ααααααΆααααΆααααΆαααααΎαααααΆαααααααΉααααααααΆααααα αΆααΆααα’ααααααα ααα»ααααααΆα§αααααααααααααααΌαααΌαααααΆαααααΉαααα’ααα
αΆαααα
ααΆαααααααΌα
ααΆαααα "ααΆαα’αΆα ααα·αα‘αΎααα·αααΆα" ααΎαααΆααααααΆααΆαααα»αααΌαα αααααα αΆαααααΆααα½αααααααα αααααααΎαααΆααααααα·ααΈα ααΎααααα»ααα·ααΆαα’αααΈααααΈααααααα
- ααααααΈααααααααΌαααΆααααα½ααα·αα·ααααααααΆααααααΆααα»αααΆααααααΆααααααΆααααΆαααααΌαααααααΌαααΆαααα·αα‘αΎααα·ααααΆαααααΉαααααΌααα αααα»αααα·αααααα
- αααααα·ααΈααααΌαααΆαααααα»ααααα ααΎαααΆαααΈααα αααα’αΆα ααα½ααααα ααααΈαααα ααααααΆααααααααααααΆ (ααΌαααα αα½αααααααΌαααΆαα’αΆααααα αα·αααΆαα½ααα½αααααΌααααααααααα·ααΈαααααΆαααα‘αΎα)α
- βα’αααΈαααααΎαααΆααααααΆαααααα»ααααα»ααααα»α!β (... αα·αα’αααα’αα·αααααααα·αααααΌαααΆαα’αα»ααααΆαα·α±ααααα·αα )
- α’αααααααΌααα·αα·αααααΎαα’αααΈαα½ααα αααα»αααααα αΆαα (αα»ααααα»ααααααααΆα)α
- ...
ααααΉαααΆαααΌαα αααααα½αααααΆααα»ααααααααααα ααΉαααΆααα·ααααααΆααΆαα’αα»αααααΆαα αααΆααααααααααααα·ααααΆααααααΆαααααΎ (ααααΌα ααΆα’ααααααΆααααααααΆααα»ααα) ααΊα αΆαααΆα αα ααΎααΎαα’αΆα ααΆααΆααΆαααααααΌααααααααααΆ? αααααΎαααΌαααΆα Docker ααα’ααααΎααΌαααΈ Git α αΎααααααΆααααααααΎαα½αααΆαααααΆαααα·α αα ααΆαααΆαα½αα αα ααΎααα αααααααΆααααα ααΆαααα·α ααΎαααΆαααΈααααα»ααααα»αααααα’αααααααααααααα·ααΈ... αααα»ααααααΆαα½αααααΆααα ααΆααΆααΆαααααΆαααααα»αααΆαααΆααααααααααααααΆααααααααΌαααΆαα’αα»ααααα ΠΏΠΎΡΠ»Π΅ ααΆααααα»αααΌαααΆαα ααΆααααααΆαααα ααΆααααααΆααΆαααα α»ααα·α α
α αααααΆαα ααΆααααααααααΊααΆααΌα
ααααα·αααΎαααααΌαααΆαα αααααΆαα ααΆαααααααα (ααΆαα’αΆα ααααΆααααααααα·ααΈαααΆαααΈααα ααααααααααΆ α α§ααΆα ααα αα αααα»αααααΆααααΆα α’αααααΆαααααΌααα PHP 7.0 α αΎααααααααΌαα‘αΎααα·αααΆαααα - αααααΆααααααΌαααΆαααααααΆαα αααα»αααΆαααα·αααΆαα½αααΉα PHP α αΆαααα½αα ααα½α (5.5) αα·αααΆααΉαααααΎα±ααααααΆααααΆααααααΆααααα’αΎαα α’ααααααα ααααΆαα·αααααα α’αααΈααΆαααααΆααααααΌαααααααΆαααα αααα»αααααα’αααααααααααααα ααα»αααα "α’αΆααααααΊαα αααα»αααααααΆααααα’α·α"α ααΆαααααΆααααα’αΎαα’αΆα αααα·ααα αααα»αααΆαα’αΆααααααα·α αα½α ααααΆαα’αΆαααααααΆαα½αα
αα·ααΈααΆααααααααα»αααΆααααααααΆααααα αΆαααααααΌαααΆαααααααΆααααΆααΆ IaC (Infrastructure as Code, βinfrastructure as codeβ) αα·αααΆαααααααααΉαααΆααααααΆαα»ααααααΌαααΆαα αααααΆαα ααΆαααααααα αα½αααΆαα½αααΉαααΌααααααα·ααΈα αααααααΎααΆ α’αααα’αα·αααααα αα·αα’αααα―αααα DevOps α’αΆα ααααΎααΆαααΆαα½αααααΆαααααααα·ααΈ Git ααΌα ααααΆ ααα»αααααα ααΎαααααααααααααααααΆα ααΈααΌαααα ααΌαααΆα Docker ααααΌαααΆααααααΎααα αααα»α Git ααααααααα·ααΈααααΌαααΆαααΆαααααααΆαααααα·αααΌαααΈααΆαααΆααααΆααααΆααα’ααααα αααααΆαα ααΆααααααααα αα·ααΆαα±ααααΆαααα ααααααΈα (α αααΆαα) αααααΆααααΆααααα»αααΌαααΆααα½ααααααα·ααα αααα»αααααΆαααααα½αααΆαα½αααΌαααααα α αΎααααα αΌαααααΆααΆαα½αααααΆα
αααα»αααααΈααααΆαααααααααααααα·ααΈαα α»αααααΆαα - α§ααΆα αααααΆα nginx ααααααα
ααΈαα»ααααααα·ααΈααααααα»αααααΎαααΆααα½α
α αΎααα
αααα»ααα»α Docker - ααΌαααΆα Docker ααααΌααααααααΎαα
ααααΈααΌααα
αααα»α Git αααααΆαααααααΆααααΈαα½ααα αααααΆααααααΌαααΆαααΈαα½αααΉαααΆααααααα·ααΈαααααΆαα’ααααααααα αα·αααΆαα’αΆααααα "αα·α" αααααααα α αΎαααΌαααΆαααΈααΈαααΉαααΆα nginx ααΆαααΎα
ααΌαααΆα Docker ααΆαααααΆααααααααΆαα½α Git
ααΎααααα ααααΌαααΆα Docker ααΆααα’ααααααααααΌαααΆαααΈ Git ααΆααΈαααααααα ααααααα’αΆαααα αα·αα ααααααΆαα ααΌαααΆαααααααα’αΆαααα ααΆααααααΆαααααααααααΆααΆαα αααα»α Git α’αΆα ααααΌαααΆααααααααΆααααΎαααααΆαααααααααΆα α·ααααααααΆαα α αΎαααααΌαααΆαα ααααααΆααααααΆααααααΆαααΎαααΆαα»αααα»ααααα (αα·αααααααααΆααααα·ααα)α αααααΊααΆααΆααα»αααααΆααααααΆαααααααα½αααααΈααΆαα ααααααΆαα α’ααααα·αααΉαααΆααΆαααααααααΆα α·αααααΆααααΆααααΆαα½ααα αααα»ααα½αααα
ααΆααα ααα»αααααα»αααΆααααααΌαααΆααΌαααΆαααααααα’αΆααααα ααΆααΆαα (α’αααα’αΆα ααααααΆαααααααααααααααα·αα ααα αααααααΆα ααααα‘ααααΎααααΈααΎααααααα αα α»αααααααααααα) ααΆααΆααΆαα½αααΉαααΆαα ααααααΆα ααΆααΆααααΆαα αααααααα·αααΆααααΆααα
αααααΆααααΈααΆαααΎαααΆαα»αααααΌαααΆαααααααα’αΆααααααααααααααΌαααΆααααααΆααααΆααααααααα
ααΆααα·ααααα α’αααα’αα·ααααααααΆαααΆααααααΆαααΆααααΆαααα½αα αααααΌααααααααααααααααα·αααααααΆα ααΌαααΆαα
ααααααΆα (ααααΆαααααααΆααααΌαααααΆααΉαααααΆαααΈ Git) α αΎαααααΌαααΆαααΆααα±ααααααΎαααΆαα ααααα·αααΎααΆααααΌαααΆααααααααααΆααααααααααααααααΆααααααΆααα»αααΆαααΆαα
ααα·αααααα
ααΆα
α’αααΈααααααααΆααααααΆααα·αααααΆ (ααΆαα ααααααΆα ααΆααααα»αααΌαααΆα ααΆαααααΆαααΆαααααααααΆαα) α’αΆα ααααΌαααΆαα’αα»αααααααα―αααΆααααααααααΎααααααΈα Bash αα·αα§ααααα "improvised" ααααααααα ααα»ααααααααα·αααΎα’αααααααΎαααααα ααααα αααααΆαα½α ααΆαα’αα»ααααααΉαααΆαα±ααααΆαααΆααααα»αααααΆαααααΆαα αα·αααΆαααααααααααα·αααα’α ααααααα’αααΈαααα αΆααα ααΎαααΆααααααααΎαα§αααααααααΎααααΆααααα αΌαααΆαααΆααα·αααααααΆαααααα½αααααααΎααααααΆαααααααΎα CI/CD - ααΆα.
ααΌααααααααααααΆααααΌαααΆααααααααΆ Ruby αααααΆαααααααΎαα
αα αα·αααααα»ααααα
ααΎ
ααΆαααααΎαα
αα
α»ααααααααΆαααααααΈ 13 ααααΈα αΆ ααααΆα 2019α αα
αα
α»ααααααααΆαααααα ααΆα ααΆαααααΌαααααααα
ααΆ
Kubernetes
α§ααααααααααααΎαα αα αααααααααα½α ααΆααααα αα½ααααααααααααααΆαααα½αααΆαααα½αααααΆαααααΆαααααΆαααα½α α αΎααα αααα»αααα·ααΆααΆααα·ααααΆααΈααααΊ Kubernetesα αααααααααααααα Docker α αααααΆαααααααΆαααααΎααααΆααααααααΆαα αααα»αααααα·ααααα·ααΆααααααααααααααΆααααααΎαα‘αΎααα ααΎ Docker ααΊα α½αααΈαα·ααΆαααΆααααααΆαααΆααα ααΌα ααααααΆααααα αΆαααααΌαααΆααααααα αααααα·αααααΆαααΌαα αααααααααα·ααααα½αα±ααα αΆααα’αΆαααααααα½αα ααα½αα
αααααΆααααΆαααΆααα±ααααααΎαααΆα Kubernetes αααααααΌαα
- ααΆααααΎαα’αααααααΆαααααααααα½α - αα·αα·αααααΎαααΆαααααααααα½αααααααααααΈαααααααα·ααΈ (ααΎααααΈααααΌαα ααΆα ααααα ααΆ);
- ααΆαααααΎαα αα α»ααααααααΆααααα·α - ααΆαααααΎαα αα α»ααααααααΆαααΌαααΆαααΆαααααααααΆαααα αααα»αα ααααααααα»α (ααΆααα·α, ααααΎα±ααααΆαααααα, ααΆααααα ααααααΆααααΆαα αΆααααααΎα, ααΆαααααΌαα ααΆα ααα);
- ααΆαααααΎαα αα α»ααααααααΆαααααΆααααα - ααΆαααααΎαα αα α»ααααααααΆαααΌαααΆααα αααα»αα αααααααΆαα½αααΉααα·ααΈααΆααααααααααααααΆ: ααααΌααα ααΎααΆαααααααΆααααα»ααααααΆαααααα ααΎαα ααα;
- ααΆαα ααααααΆα Canary - α αΆααααααΎαααΌαααΆαααααΈαα ααΎαα»ααααααΆαααααα (ααΌα ) ααΎααααΈααΆαααΆαααΆααα·αααααααααΈα
αααααΆαααΆαα ααα αΆαααααααΊαα·αααααΉαααααΆαα ααααααΆαααααααααΈααα»ααααααα Kubernetes ααΆααααααααΆαααΆα αααΎααααααΆααααΆαααααΆαα αααααΆαα ααΆααααααααααΆαααααααααΆααα ααΆααααα½ααα·αα·ααααααααΆαααααΆααααααΆαα½α αα·αααΆααααααααΆαααααΆαααα»αααΊαααααΆααα’αα ααΆαααααΎααΆαααααααΆααααααααααααααααα·ααΆααΎαα ααΆαα’αα»αααααα αααα»αααααΎαααΆαααααα’αααα
α’αα»ααΆαααα α»αααααα
- ααααΎ Docker α
- αααααΎαααΌαααΆα Docker αααααααα·ααΈαααααΆααααααααααααΌαααΆαααααα’αααα
- α’αα»ααααααΆααααααΆααα "α αααααΆαα ααΆααααααααααΊααΆααΌα" α
- ααααΆαα Git αα Docker α
- αααααααααααααΆααααααΆαα ααααααΆαα
- ααααΎαααα·ααΆαααααααααα½α ααΆααααα (Kubernetes α¬αα½ααααααααα)α
ααΈααα’αΌ αα·αααααΆα
ααΈααα’αΌααΈααΆααααααα (αααα αααα½ααααα)
αααααα αΆααααααΆαααΆαααα
PS
αααΆαααΆαααααααααααααΎαααααΆααααα ααΎαααααααααααΎαα
- Β«
werf - α§αααααααααααΎααααααΆαα CI / CD αα αααα»α Kubernetes (αα·αααααΆαααΌαα αα·ααααΆαααΆαααααΈααα’αΌ) Β» (Dmitry Stolyarov; ααααααΈ 27 ααα§αααΆ ααααΆα 2019 αα DevOpsConf); - Β«
ααΌαααααΆααα·αααααα αα·α Kubernetes Β» (Dmitry Stolyarov; ααααααΈ 8 αααα·α ααα·ααΆααααΆα 2018 αα ααΎ HighLoad ++); - Β«
CI/CD ααΆαα’αα»ααααααα’αααα»αααΆαα½α Kubernetes αα·α GitLab Β» (Dmitry Stolyarov; ααααααΈ 7 αααα·α ααα·ααΆααααΆα 2017 αα ααΎ HighLoad ++); - Β«
αααα·αααααααααααΎαααΆαα½α Kubernetes αααα»αααααααααΌα α Β» (Dmitry Stolyarov; ααααααΈ 6 αααα·αα»ααΆ ααααΆα 2017 αα RootConf).
ααααα: www.habr.com