ืืฉืื ืืจืืฉืื ืฉื ืืคืจืืกื ื-Kubernetes ืืื ืืฆืืช ืืืคืืืงืฆืื ืฉืื ืืงืื ืืืื ืจ. ืืกืืจื ืื, ื ืืื ืืืฆื ืชืืื ืืืฆืืจ ืชืืื ืช ืืืื ืงืื ื ืืืืืืืืช.
ืืืืืช ื-Docker, ืืฆืืจืช ืชืืื ืืช ืืืื ืืขืืื ืื ืืืืชื ืงืื ืืืชืจ. ืฆืืื ืชืืื ืช ืืกืืก, ืืืกืฃ ืืช ืืฉืื ืืืื ืฉืื ืืฆืืจ ืืืื.
ืืื ื ืืื ืืงื ืื ืืฆืืื ืช ืืชืืืืช ืืขืืืื, ืื ืฉืืืืฉ ืืชืืื ืืช ืืกืืก ืืจืืจืช ืืืื ืขืืื ืืืืืื ืืขืืืื ืื ืืืืื ืขื ืชืืื ืืช ืืืืืืช ืืืืืช ื ืงืืืืช ืชืืจืคื.
ืื ืืกืฃ, ืจืื ืืชืืื ืืช ื-Docker ืืฉืชืืฉืืช ืืืืืื ืื ืืืืืื ืื ืขืืืจ ืชืืื ืช ืืืกืืก, ืืืืจืืช ืฉืื ืืกืคืง ืชืืืืืช ืืฆืืื ืช ืืืชืืื ืืืฉืืช ืงืื (ืงืืืฅ Docker ืืืงื ืจืง ืฉืชื ืฉืืจืืช ืงืื), ืชืืื ืืช ืืกืืก ืืืืืืช ืืืืกืืฃ ืืืืช ืืื-ืืืื ืฉื ืขืืืก ื ืืกืฃ ืืืืืื ืฉืื. ืืืืืื, ืงืืืฅ node.js ืคืฉืื ืขืืืจ ืืืฉืื Go "hello-world" ืืื ืืขืจื 700 ืืื-ืืืื, ืืขืื ืฉืืืคืืืงืฆืื ืฉืื ืืคืืขื ืืื ืืืืื ืฉื ืืื ืืื-ืืืื ืืืื.
ืื ืื ืขืืืก ืืขืืืื ืื ืืกืฃ ืืื ืืื ืืืืื ืฉื ืฉืื ืืืืืืื ืืืงืื ืืกืชืืจ ื ืืืจ ืขืืืจ ืคืจืฆืืช ืืืืื ืืืืืื. ืื ืืืื ื ืกืชืื ืขื ืฉืชื ืืจืืื ืืืงืื ืช ืืืืื ืฉื ืชืืื ืช ืืืื.
ืืจืืฉืื ืืื ืืฉืืืืฉ ืืชืืื ืืช ืืกืืก ืงืื ืืช, ืืฉื ื ืืื ืืฉืืืืฉ ื-Builder Pattern. ืฉืืืืฉ ืืชืืื ืืช ืืกืืก ืงืื ืืช ืืืชืจ ืืื ืื ืจืื ืืืจื ืืงืื ืืืืชืจ ืืืงืืื ืืช ืืืื ืืืืื ืฉืื. ืกืืืจ ืืื ืื ืฉืืฉืคื ืื ืืขืจืืื ืฉืื ืืชื ืืฉืชืืฉ ืืกืคืงืช ืชืืื ืช ืืคืืืงืฆืื ืืงืืจืืช ืฉืืื ืงืื ื ืืืจืื ืืชืืื ืช ืืจืืจืช ืืืืื. ืืืื ื ืกืชืื ืขื ืืืื node.js ืฉืื ื.
ืืืจืืจืช ืืืื ื-Docker, ืืืื ืืชืืื ื ืืืกืืกื ืฉื node:8 ืืื 670 ืืื-ืืืื, ืืืฆืืืช: ืืืื ืชืืื ื 8-ืืืคืื ื ืืื ืจืง 65 ืืื-ืืืื, ืืืืืจ ืงืื ืคื 10. ืขื ืืื ืฉืืืืฉ ืืชืืื ืช ืืืกืืก ืืืืคืื ื ืืงืื ื ืืืชืจ, ืชืงืืื ืืฉืืขืืชืืช ืืช ืืืื ืืืืื ืฉืื. Alpine ืืื ืืคืฆืช ืืื ืืงืก ืงืื ื ืืงืืช ืืฉืงื ืฉืคืืคืืืจืืช ืืืื ืืงืจื ืืฉืชืืฉื Docker ืืืืืื ืฉืืื ืชืืืืช ืืืืฉืืืื ืจืืื ืชืื ืฉืืืจื ืขื ืืืืืื ืงืื ืื. ืื ืืืื ืืชืืื ืช ื"ืฆืืืช" ืืจืืืื ืฉื Docker, "node:alpine" ืืกืืจ ืืจืื ืงืืฆื ืฉืืจืืช ืืชืืื ืืืช, ืืืฉืืืจ ืจืง ืืช ืืื ืฉืืกืคืืงืื ืืืคืขืืช ืืืคืืืงืฆืื ืฉืื.
ืืื ืืขืืืจ ืืชืืื ืช ืืกืืก ืงืื ื ืืืชืจ, ืคืฉืื ืขืืื ืืช ื- Dockerfile ืืื ืืืชืืื ืืขืืื ืขื ืชืืื ืช ืืืกืืก ืืืืฉื:
ืืขืช, ืื ืืืื ืืชืืื ืช ื-onbuild ืืืฉื ื, โโืขืืื ืืืขืชืืง ืืช ืืงืื ืฉืื ืืงืื ืืืื ืจ ืืืืชืงืื ืืช ืื ืืชืืืช. ื-Dockerfile ืืืฉ, ืืงืื ืืืื ืจ ืืชืืื ืืชืืื ืช node:alpine, ืืื ืืืฆืจ ืกืคืจืืื ืขืืืจ ืืงืื, ืืชืงืื ืชืืืช ืืืืฆืขืืช ืื ืื ืืืืืืืช ืฉื NPM, ืืืืกืืฃ ืืจืืฅ ืืช server.js.
ืืฉืืจืื ืืื ืืืื ืืืืืื ืฉืืืืื ืงืื ืคื 10. ืื ืืฉืคืช ืืชืื ืืช ืื ืืืืกื ืืช ืืื ืคืื ืงืฆืืื ืืืืช ืืกืืกืืช ืฉื ืืคืืชืช ืชืืื ืืช, ืืฉืชืืฉ ื-Alpine Linux. ืื ืื ืืกืคืง ืืช ืืืืืืช ืื ืื ืืืืคื ืืื ืืช ืชืืืืช ืืืืื. ืฉืืืืฉ ืืชืืื ืืช ืืกืืก ืงืื ืืช ืืื ืืจื ืืฆืืื ืช ืืืฆืืจ ืืืืืจืืช ืืืืืื ืงืื ืื. ืืื ื ืืชื ืืืฉืื ืืคืืชื ืืืืื ืขืื ืืืชืจ ืืืืฆืขืืช ืืคืืก ื-Builder.
ืืฉืคืืช ืืชืคืจืฉืืช, ืงืื ืืืงืืจ ืืืขืืจ ืชืืืื ืืืชืืจืืื ืืืืืจ ืืื ืืืืฆืข ืืฉืืจืืช. ืืฉืคืืช ืืืืืจ, ืงืื ืืืงืืจ ืืืืจ ืชืืืื ืืงืื ืืืืืจ. ืขื ืืืช, ืงืืืคืืืฆืื ืืฉืชืืฉืช ืืขืชืื ืงืจืืืืช ืืืืื ืฉืืื ื ื ืืืฆืื ืืคืืขื ืืืคืขืืช ืืงืื. ืื ืืืืจ ืฉืืชื ืืืื ืืืกืืจ ืืืืืืื ืืช ืืืืื ืืืื ืืืืืื ืืกืืคื. ืืชื ืืืื ืืืฉืชืืฉ ื-Builder Pattern ืืฉืืื ืื.
ืืงืื ื ืืฆืจ ืืงืื ืืืื ืจ ืืจืืฉืื ืืงืืืคืืื. ืืืืจ ืืื, ืืงืื ืืืืืืจ ื ืืจื ืืชืื ืืืื ืกืืคื ืืื ืืืืืจืื ืืืืืื ืืืจืืฉืื ืืืืืืจ ืืงืื ืืื. ืืื ื ืจืืฅ ืืืฉืื Go ืืชืืืื ืื. ืจืืฉืืช, ื ืขืืืจ ืืชืืื ืช ื-onbuild ื-Alpine Linux.
ื-Dockerfile ืืืืฉ, ืืงืื ืืืื ืจ ืืชืืื ืืชืืื ืช golang:alpine. ืืืืจ ืืื ืืื ืืืฆืจ ืกืคืจืืื ืขืืืจ ืืงืื, ืืขืชืืง ืืืชื ืืงืื ืืืงืืจ, ืืื ื ืืช ืงืื ืืืงืืจ ืืื ืืืคืขืื ืืช ืืืืฉืื. ืงืื ืืืื ืจ ืื ืงืื ืืืจืื ืืืืื ื-onbuild, ืืื ืืื ืขืืืื ืืืื ืืช ืืืืืจ ืืืื Go ืืืจืื ืฉืื ืื ื ืื ืืืืช ืฆืจืืืื. ืื ืืืื ืคืฉืื ื ืืืฅ ืืช ืืชืืื ืืช ืืงืืืคืืืืช ืื ืื ืืก ืืืชื ืืืืื ืืฉืื.
ืืืชืื ืฉืชืืืื ืืืฉืื ืืืืจ ืืงืืืฅ ื-Docker ืืื: ืืื ืืืื ืฉืชื ืฉืืจืืช FROM. ืืืืง ืืจืืฉืื ืฉื 4 ืืฉืืจืืช ื ืจืื ืืืืืง ืืืชื ืืืืจ ืืื ื-Dockerfile ืืงืืื ืืื ืฉืืื ืืฉืชืืฉ ืืืืืช ืืืคืชื AS ืืื ืืชืช ืฉื ืืฉืื ืืื. ืืืืง ืืื ืืฉ ืฉืืจืช FROM ืืืฉื ืืื ืืืชืืื ืชืืื ื ืืืฉื, ืฉืื ืืืงืื ืชืืื ืช golang:alpine ื ืฉืชืืฉ ื- Raw alpine ืืชืืื ืช ืืืกืืก.
ื-Raw Alpine Linux ืื ืืืชืงื ืืช ืชืขืืืืช SSL, ืื ืฉืืืจืื ืืจืื ืงืจืืืืช ื-API ืืจื HTTPS ืืืืืฉื, ืื ืืืื ื ืชืงืื ืืื ืืืฉืืจื CA ืฉืืจืฉ.
ืขืืฉืื ืืืืข ืืืืง ืืืื ื: ืืื ืืืขืชืืง ืืช ืืงืื ืืงืืืคืืืฆืื ืืืืืื ืืจืืฉืื ืืฉื ื, ืืชื ืืืื ืคืฉืื ืืืฉืชืืฉ ืืคืงืืื COPY ืืืืืงืืช ืืฉืืจื 5 ืฉื ืืืืง ืืฉื ื. ืื ืืขืชืืง ืจืง ืงืืืฅ ืืืฉืื ืืื ืืื ืืฉืคืืข ืขื ืืื ืืฉืืจืืช Go. ืืงืืืฅ ืืจื-ืฉืืื ืืืืฉ ืฉื Docker ืืืื ืชืืื ืช ืงืื ืืืื ืจ ืืืืื ืฉื 12 ืืื-ืืืื ืืืื, ืืขืืืช ืชืืื ืช ืืงืื ืืืื ืจ ืืืงืืจืืช ืฉืืืืชื 700 ืืื-ืืืื, ืืื ืืืื ืืืื!
ืื ืฉืืืืฉ ืืชืืื ืืช ืืกืืก ืงืื ืืช ืืืชืื ืืช Builder ืื ืืจืืื ื ืืืจืืช ืืืฆืืจ ืงืื ืืืื ืจืื ืงืื ืื ืืืจืื ืืื ืืจืื ืขืืืื.
ืืชืื ืฉืืืชืื ืืขืจืืืช ืืืคืืืงืฆืื, ืืฉื ื ืืจืืื ื ืืกืคืืช ืืืงืืื ืืช ืืืื ืืชืืื ื ืืืืืื, ืื ืืื ืืืืืืืช ืงืื ืืช ืืืืช ืืฉ ืืชืจืื ืืืื? ืืืื ื ืกืชืื ืขื ืฉื ื ืชืืืืื ืฉืืื ืืืืืื ืงืื ืื ืื ืืขืืืื ืืืืชืจ โ ืืืฆืืขืื ืืืืืื.
ืืื ืืืขืจืื ืืช ืขืืืืช ืืืืฆืืขืื, ืฉืงืื ืืช ืืฉื ืืชืืืื ืฉื ืืฆืืจืช ืงืื ืืืื ืจ, ืืื ืกืชื ืืจืืฉืื (push), ืืื ืืืืืจื ืืฉื (pull). ื ืืชื ืืจืืืช ืฉืืืื ืงืื ืืืชืจ ืืฉ ืืชืจืื ืืืืืง ืขื ืคื ื ืืืืื ืืืืื ืืืชืจ.
Docker ืืฉืืืจ ืืช ืืฉืืืืช ืืืืืื ืื ืฉืืื ืืื ืืืื ืชืืื ืืืืจื ืืืื. ืขื ืืืช, ืืขืจืืืช CI ืจืืืช ืืืฉืืฉืืช ืืื ืืื ืืืืืืงืช ืงืื ืืืื ืจืื ืืื ื ืืืืกื ืืช ืฉืืืืช ืืืืืื, ืื ืฉืืฉ ืืืกืืื ืืฉืืขืืชื ืืืื. ืืคื ืฉืืชื ืืืื ืืจืืืช, ืืืื ืืื ืืืช ืืืื ืืืื, ืืืชืื ืืขืืฆืืช ืืืืื ื ืฉืื, ืืื ืืื 34 ื-54 ืฉื ืืืช, ืืืฉืืืืฉ ืืืืื ืืืคืืช ืืืืฆืขืืช ืชืื ืืช ื-Builder - ื-23 ื-28 ืฉื ืืืช. ืืคืขืืืืช ืืกืื ืื ืืขืืืื ืืคืจืืื ืชืืื 40-50%. ืื ืจืง ืชืืฉืื ืืื ืคืขืืื ืืชื ืืื ื ืืืืืง ืืช ืืงืื ืฉืื.
ืืืืจ ืื ืืืช ืืงืื ืืืื ืจ, ืขืืื ืืืืืฃ ืืช ืืชืืื ื ืฉืื (ืชืืื ืช ืืืื) ืืชืื ืจืืฉืื ืืืืืื ืืื ืฉืชืืื ืืืฉืชืืฉ ืื ืืืฉืืื Kubernetes ืฉืื. ืื ื ืืืืืฅ ืืืฉืชืืฉ ื-Google Container Registry.
ืขื Google Container Registry (GCR), ืืชื ืืฉืื ืจืง ืขืืืจ ืืืกืื ืืืืื ืืจืฉืช, ืืืื ืขืืืืช ื ืืกืคืืช ืื ืืืื ืงืื ืืืื ืจ. ืื ืคืจืื, ืืืืืื ืืืืืจ ืืืื. GCR ืืฉืชืืฉ ืืืจืืงืื ืจืืื ืืื ืืืืืฅ ืืช ืคืขืืืช ืืืฉืืื. ืืคื ืฉื ืืชื ืืจืืืช, ืืื ืกืช ืืืื Docker Container Image ืืืืฆืขืืช go:onbuild ืชืืงื ืืื 15 ื-48 ืฉื ืืืช, ืชืืื ืืืืฆืืขื ืืืืฉื, ืืืืชื ืคืขืืื ืขื ืืืื ืงืื ืืืชืจ ืชืืงื ืืื 14 ื-16 ืฉื ืืืช, ืืืืืื ืืช ืคืืืช ืคืจืืืืงืืืืืืช ืืืชืจืื ืืืืืจืืช ืืคืขืืื ืืื ืคื 3. ืขืืืจ ืืืื ืืช ืืืืืืช ืืืชืจ, ืืืื ืืขืจื ืืื, ืืืืืื ืฉ-GCR ืืฉืชืืฉ ืืืืืื ืืืืืื ืขืืืจ ืืกื ื ืชืื ืื ืืฉืืชืฃ ืฉื ืชืืื ืืช, ืืืืืจ ืืื ื ืฆืจืื ืืืขืื ืืืชื ืืื. ืืืืฉื ืืขื ืืกืคืง ื ืืื, ื-CPU ืืื ืฆืืืืจ ืืืงืืืง, ืื ืฉืืืชืจืื ืืฉืืืืฉ ืืืืืืื ืงืื ืื ืืื ืืจืื ืืืชืจ ืืืื ืืื.
ืื ืืชื ืืฉืชืืฉ ื-GCR, ืื ื ืืืืืฅ ืืืื ืืืฉืชืืฉ ื-Google Container Builder (GCB) ืืืืง ืืืขืจืืช ืืื ืืื ืฉืื.
ืืคื ืฉืืชื ืืืื ืืจืืืช, ืืฉืืืืฉ ืื ืืืคืฉืจ ืื ืืืฉืื ืชืืฆืืืช ืืืืืช ืืืจืื ืืืคืืชืช ืืฉื ืคืขืืืช ื-Build+Push ืืืฉืจ ืืคืืื ืืืื ื ืคืจืืืืงืืืืืช - ืืืงืจื ืื, ืชืืืื ืืื ืืื ืืฉืืืืช ืืืืืืืช ืืืืจื ืืืืฅ ืืืขื ืคื 2 . ืื ืืกืฃ, ืืชื ืืงืื 120 ืืงืืช ืื ืืื ืืืื ื ืืื ืืื, ืื ืฉืืืกื ืืช ืฆืจืื ืื ืืืช ืืืืืืืช ืฉืื ืืจืื ืืืงืจืื.
ืืืืจ ืืื ืืืืข ืืื ืืืืฆืืขืื ืืืฉืื ืืืืชืจ - ืืืืจืืช ืืืืืืจ, ืื ืืืืจืื, ืฉื ืืืืื ืืฉืืื. ืืื ืื ืืืคืช ืื ืืจืื ืืืืื ืืืืฉืงืข ืืคืขืืืช ืืืืคื, ืืื ืืืืจื ืชืืืื ืืืฉืืื ืืฉ ืืฉืคืขื ืจืฆืื ืืช ืขื ืืืฆืืขื ืืืขืจืืช ืืืืืืื. ื ื ืื ืฉืืฉ ืื ืืฉืืื ืฉื ืฉืืืฉื ืฆืืชืื ืืืื ืืื ื ืืฉื. ืื ืืชื ืืฉืชืืฉ ืืืขืจืืช ื ืืืื ืืืื Google Kubernetes Engine, ืืื ืชืืืืฃ ืืืืืืืืช ืืช ืืฆืืืช ืืืช ืืืืฉ. ืขื ืืืช, ืืฆืืืช ืืืืฉ ืืื ืืืื ืจืืง ืืืืืืื ืืชืฆืืจื ืืืจืืจ ืืช ืื ืืืืืืืช ืฉืื ืืชืืื ืืื ืฉืืื ืืชืืื ืืขืืื. ืื ืคืขืืืช ืืืฉืืื ืืืจืืช ืืกืคืืง ืืื, ืืืฉืืื ืฉืื ืืคืขื ืืืืฆืืขืื ื ืืืืื ืืืชืจ ืื ืืืื.
ืืฉื ื ืืงืจืื ืจืืื ืฉืืื ืื ืืืื ืืงืจืืช: ืืืกืคืช ืฆืืืช ืืืฉ ืืืฉืืื, ืฉืืจืื ืฆืืชืื, ืื ืืคืืื ืืขืืจ ืืืืื ืืืฉ ืืฆืืจื ืคืจืืกื. ืืคืืื, ืืืขืืจ ืืื ืืืืืฅ ืืืฉืืื ืืืคื ืืืืจื ืืคืชื. ืืื ืืืืืืฉ ืฉืืืื ืงืื ืืืจืื ืืจืื ืืืชืจ ืืืจ ืืืฉืจ ืืืื. ืื ืืชื ืืคืขืื ืืกืคืจ ืงืื ืืืื ืจืื ืืืฉืืื Kubernetes, ืืืืกืืื ืืืื ืืืื ืืืืืช ืืฉืืขืืชื.
ืชืกืชืื ืขื ืืืฉืืืื ืืื: ืคืขืืืช ืืฉืืื ืืืืืืื ืงืื ืื ืืืงืืช ืคื 4-9 ืคืืืช ืืื, ืชืืื ืืขืืฆืืช ืืืืื ื, ืืืฉืจ ืืืชื ืคืขืืื ืืืืฆืขืืช go:onbuild. ืฉืืืืฉ ืืชืืื ืืช ืืกืืก ืงืื ืืืื ืจ ืืฉืืชืคืืช ืืงืื ืืช ืืืืฅ ืืืืคื ืืฉืืขืืชื ืืช ืืืื ืืืืืืจืืช ืฉืื ื ืืชื ืืคืจืืก ืฆืืชืื ืืืฉืื ืฉื Kubernetes ืืืืืืข ืืืื ืืจื ื.
ืืืื ื ืกืชืื ืขื ื ืืฉื ืืืืืื. ืืืืืื ืงืื ืื ืืืชืจ ื ืืฉืืื ืืืืืืื ืืจืื ืืืชืจ ืืืืืืื ืืืชืจ ืืืืืื ืฉืืฉ ืืื ืืฉืื ืืชืงืคื ืงืื ืืืชืจ. ืืืืช? ืืืช ืืชืืื ืืช ืืฉืืืืฉืืืช ืืืืชืจ ืฉื Google Container Registry ืืื ืืืืืืช ืืกืจืืง ืืืืืืืืช ืืช ืืงืื ืืืื ืจืื ืฉืื ืืืืชืืจ ื ืงืืืืช ืชืืจืคื. ืืคื ื ืืื ืืืืฉืื ืืฆืจืชื ืงืื ืืืื ืจืื ืืื ืืื ืืจื ืฉืืืื, ืื ืืื ื ืจืื ืื โโืืฉ ืฉื ื ืงืืืืช ืชืืจืคื.
ืืชืืฆืื ืืืืืื: ืจืง 3 ื ืงืืืืช ืชืืจืคื ืืื ืื ืืืช ืืืื ืืืืื ืงืื, ืืืืืืื ืืืืื ื ืืฆืื 16 ื ืงืืืืช ืชืืจืคื ืงืจืืืืืช ืืขืื 376 ื ืงืืืืช ืชืืจืคื. ืื ื ืกืชืื ืขื ืืชืืื ืฉื ืงืื ืืืื ืจ ืืืื, ื ืืื ืืจืืืช ืฉืืจืื ืืขืืืช ืืืืืื ืืื ืฉืื ืงืฉืจ ืืืคืืืงืฆืื ืฉืื ื, ืืื ืงืฉืืจืืช ืืชืืื ืืช ืฉืื ืื ื ืืคืืื ืื ืืฉืชืืฉืื ืืื. ืื ืืฉืื ืฉืื ืืืืจืื ืขื ืืฉืื ืืชืงืคื ืืืื, ืืื ืื ืืชืืืื ืื.
ืืืืื ืืจืืจื: ืื ื ืงืื ืืืื ืจืื ืงืื ืื ืืืืืื ืฉืื ืืกืคืงืื ืืชืจืื ืืช ืืืืชืืื ืฉื ืืืฆืืขืื ืืืืืื ืืืขืจืืช ืฉืื.
ืืื ืืืืขืืช ๐
ืชืืื ืฉื ืฉืืจืช ืืืชื ื. ืืื ืืชื ืืืื ืืช ืืืืืจืื ืฉืื ื? ืจืืฆืื ืืจืืืช ืขืื ืชืืื ืืขื ืืื? ืชืืื ืื ื ืขื ืืื ืืืฆืืข ืืืื ื ืื ืืืืฆื ืืืืจืื,
Dell R730xd ืืื ืคื 2 ืืืจืื ืื ืชืื ืื Equinix Tier IV ืืืืกืืจืื? ืจืง ืืื
ืืงืืจ: www.habr.com