ααΎααα True Engineering ααΆααααααΎαααααΎαααΆααα½ααααααΆααααΆαα ααα αΆαααααααΆαααααΈαααΆαααααααααΆαααα ααΆαααααΆαααΈαααααααα’αα·αα·αα α αΎαα ααα ααααααααααα·ααααααααα
ααΎααααΈα αΆααααααΎα ααΎαααΆααααααΎαααααααααα’αα‘αΆααα½ααααααΆααα’αα·αα·αα α αΎαααΆαααααΎααααΆααααΆαα αααα»αα ααααα Kubernetes ααααΆαααααα½αααααααΎαα α₯α‘αΌαααααααααααααΆααααααΆαααααα»ααααααααααααΎαααΆαααααΆααααααΌααα ααΆαααααα·ααΆααααα’αα·αα·αα ααααα½αααΎαααΆααααα αααααΎαααΆαααΆααα±ααααααΎααααΆααααΆαααααααααΆαααααααααααααααααα·αααΆαααααααα ααΌαα’ααα»αα ααααααΆαααα ααΎαααΆααααααΏααααααααΆαα ααΈααααΆα - ααΆααααααααΆαααααΆααααααΌαα ααααααα·ααααΆαααα·αααα
αα αααα»αα’αααααααα ααΎαααΉααα·ααΆαα’αααΈααααΆααααΆαααΆααα’ααααααααΎαααΆαααΆαααααααΆααααα (αααΈααΈ) α¬ααΆαα ααα αΆααα αα α»ααααααααΆααα ααΆαααααα·ααΆααααα’αα·αα·ααα
- ααΎααααΎαααΆααααα αΆααααααΎααααααααααΆ?
- ααΆαααααΎααααΆαααααααΆαα½αααααΆαα Git ααααα’αα·αα·αα,
- ααΆααα½αααααα»αααααΆαααααααααΆαααααααα·ααααααααΆααα»α,
- ααΆαααΆαααααααΆααααααα·ααΈαααααααααααααααα·αα αααα»αααα·ααΆααΆαααΆααααα,
- ααΆαααΆαααααααΆααααααααααααααααα·αα Prod α
ααΎαααΉαα αααααααααααααΆααααα’α·αα’αααΈααΆαααα‘αΎααα ααΆαααααΌαα
1. α αΆααααααΎααααΈααΈ
ααΆαααΆααα±ααααααΎααααΆααααΆαααααααααΆααα αΆααααααΎααααα’αααα’αα·αααααααααα»αααΆαααααΆααααααΌααα ααΆααααΆααΆα ααααααΆαααααααΆαα Git ααααααΎαα
αααααα·ααΈααααααΎαααααΎαααΆαααΎααααΆαααααααα microservice α αΎααααΆαααΆαα»ααΆααα’ααααααααΆααααΌαααΆααααααΆαα»ααααα»αααααΆαααααα½αα ααΌαα’ααα»ααααααΆαααα ααααΆααΈααααΌααΆααα’ααααααΌαααΆααααααΌα αα·αααα‘αΎα αααααΈααΆαα½ααααα»αα αααααα½αααααΆαααααΆααααααΌααααααα
ααΎααααα αααΆαααΆαααΆααααααααΆαααα½ααααααΆααα ααα»ααααΆα αααΎαα
- ααΆαααΆααααα½αααααΆαα’αα·αααααα - αααααα·ααΈαααα»αα’αα·αααααααΆαααααα ααΌα ααααα’αααα’αΆα ααααΎααΆαααΆαα½αααΌαααΆααα’αααααα»αααααααα½αα
- ααααα CI/CD αααα½ααααααΆααΆααΆαααααα·ααΈααΆαααααααααααα½αααααααΆααααΆαααΆαααααααΆααα’αα α αΎαααααΌαααΆααααααΌααα ααα·ααΆααΆαααα·αααααααααα’αα·αα·ααα
- ααΎααα»αααααΆααααΆαα ααααΌαα ααααααα αααα»αααααααΆααΆ - ααΎααα·αα αΆαααΆα ααααααΆαα»ααααααααααΈααααααΆααααααΈααααΌ αα·ααααααΆα’αααΈααΆααααααααααααΆαααααΆααααααΆααΈααααΌααΈαα½αααα αααα»αααααααΈα Helm αααααα
2. ααΆαααααΎααααΆαααααααΆαα½αααααΆαα Git ααααΌααααααααααα’αα·αα·αα
ααΆαααααΆααααααΌααααααΆαααααΎα‘αΎαααααΌαααΆαααααΎααααΆααααααααααααααααααααα·ααΆαα½αααΉαααααΆαα Git ααααα’αα·αα·ααα αα ααΈααα ααΆααα½αααααα»αααααΆαααααααα·ααΈααααΌαααΆαααααααα ααΆαααααααα αααααααΌαααΆαααΆααα±ααααααΎαααΆααααααΆααααΈααΆαααααΎαα αα α»ααααααααΆαααΆααΆ αα·αααΆαααΆααα±ααααααΎαααΆαααααα ααααΎαααΆαααΆααααΈαααΆαααααααα αααα»αααα·ααααΆααααααα½αααααΈααααΆαα Git α
ααΎααα·αα’αΆα ααααΎααΆαααΆαα½αααααΆααααααα’αα·αα·αααααααααΆααααΆααα αααααΆαααΎαααααΌαααΆαααα·ααΆααΆαααααΆαααααα½αααααααΎααααααΆααααΆαα’αα·αααααα αα·αααΆαααααΎαααααα ααΎαααααΎααααΆαα Git ααααααΎααααααΆαααααααααααΆααααα - ααΆααααΌαααΆαααααΎααααΆαααααααΆαα½αααααΆαα Git αααααα½αααα αααΆαααΆα’αααα’αα·αααααααααααΆαααΆαααααΆααααααΌααα ααΆααΆααααααααααααΆααααααααΎα GitLab αααα»αααΆαααααΆααααααΌαααΆααααααα α’αα·αα·ααααααΆααα
αααααΆααααΈαααα’αααααααΌαααααΎααααα·ααΆαα ααΆααΆαααααΆααααΆαααΆα
αααΎαα ααΆααααα»ααααααααΆαααααα αα·ααααααααΆααα»α ααΆαααααΎααααα αα·αααΆαααΉααααααΌααα
ααα·αααααα
3. ααΆααααααΌααααα»ααααααααΆαααααα αα·ααααααααΆααα»α
ααΆααααΆα backend αα·α frontend ααΊααΆαα·α αα ααΆαααααααααΆααΈααααααααΌαααΆαα’αα»αααααα αααα»ααααααααα GitLab Runner α ααΆαααααααα ααΆααααααααααΎαααααααΆααΆαααΈααΆαααα αααα»αααααΆαααααα½αα
GitLab Runner ααααΌαααΈααααΆαααααααααΌαααΆα αααααΌααααα»αααΆααΆαα½αααΆααααααααΆαααααΎααααααα·ααΈ Java α αΎαααααΎααΆαα
Docker registry α αα
ααΈαααααΎααααααΌααααα»ααααααααΆαααααα αα·ααααααααΆααα»α ααα½αααΆαααΌαααΆα Docker αααααΎαααΆαααααα»αααααΆαααα
ααΆαα’αα·αα·ααα ααΎααααΈαααααααααααΌαααΆα Docker ααΎαααααΎ
ααΎαααααΎααααΆαααααααααααααΌαααΆαααααααΎαααΆαα½αααΉαααααα ααααααΆααααααΉαααααΌαααΆαααααα»ααααα αααα»α Docker α ααΎααααΈααααΎαααΆααααΌα ααΎαααΆαααααΎααΆαααααααα½αααΆα αααΎαα
1. αα»αααΊααααα·αααααΌαααΆαααΆααααα‘αΎααα·ααααΆαααα·ααΆααΆαααΆααααααα·αααα·ααΆααΆαααα·αααααααα ααΎαααΆαααααΎααΆαααααααααΆαααΆααααααααΎααααΈα±αααα»αααΌα ααααΆα’αΆα ααααΎαααΆαααΆαα½αααΆααααααααΆααα’αα α’αααααα·ααααΆα αα·αααααΆααααααΆαααα αααα»αααα·ααΆααΆαααΆααααα αα·ααααα»αααα·αααααααααα·αα αΆαααΆα αααΆααααα‘αΎααα·αα
2. ααΎααααΈααααΎαα αα α»ααααααααΆααααααα·ααΈααΆαααα Helm α’αααααααΌααααααααΆααααααααααααΆα ααΎααααααΎααααααααΆαααααα αααααααΆααα»α αα·αααααΎαα αα α»ααααααααΆααααααα·ααΈ - ααΆαααααααΊααΆαα·α αα ααΆαααΈαααααααααΆ ααΌα ααααααΆααΆααΆαααααΆααααΆαααααα»αααΆαααααΎααααααΌα ααααΆαααααααα·ααΈαα αααααααΈααααααα αααααΆαααα·α αα ααΆαααα ααΎαααααΎααααΆαααα·ααααααααΈαααααααα· Git αααα ααα»ααΆααΆαααααααα ααΆαααααααα αα·ααααααα·ααΈα ααααα K8S ααααααΎααααα·ααα αααα»αααααΆαα Git αααα½αα
ααΎαααα½αααΆααααααααααα·ααΈααΈααααααααααα·ααααα·ααΆααααααααΆ
git describe --tags --abbrev=7
.
4. ααΆαααΆαααααααΆααααααααααααααααα·ααΌαααΆαααααΆααααααΌαααΆααα’ααα ααααααα·ααΆααΆαααΆααααα (UAT)
ααα αΆααααααΆαααα αααα»αααααααΈαααΆαααααααααΊααΎααααΈααααΎαα αα α»ααααααααΆααααααααααααααααα·ααΌαα ααααα K8S α ααΆααΎαα‘αΎααααααΆαααααα·ααΈααΆααααΌαααααΌαααΆααααααΎαα‘αΎα α αΎαααααα»αα»ααΆαααΆααα’ααααααΌαααΆαααααα»αααααααΆααα ααΆαα Docker Registry α αααααΆααααΈααα ααΆαα’αΆαααααααα·ααΆααΆαααΆαααααα αΆααααααΎαα
ααΆαα’αΆαααααα
αααααααααΌαααΆαα
αΆααααααΎαααααΎααααΆαα
ααΎαααααααααααααΆαααααααα ααΆααααααααα ααααα K8S αα½αααΆαα½αααΉαααΆααα½αααααα»αααααΆα ααΌα αααα ααα αΆααααααΆααααΊααααΎαα αα α»ααααααααΆαααΆα configMaps ααΆαααΆαααααααΆα ααααΆαααα α’αΆααααααΆαα αα·αααΆαααααααα ααΆαααααααα K8S αααααααααααααΎαααΆαααααΆααααααΌαα
αααααΆαααα Helm ααααΎαααΆαααΆαα’αΆααααα RollOut αααααααα·ααΈαααα½αααΆαα αααα»αααα·ααΆααΆαααΆαααααα αα»αααααααααα·ααΈααααΌαααΆαααΆαααααααΆααα ααα·αααααα αααααααΌαααΆαααααΎααΌα αααα α’αααααααΎααααΆααα’αΆα ααΆαααααααααααα½αα―αααΌαααααααα’αΆααΈααααααααααΎαααΆααα αΌααα αααα»αααα·ααΆααΆαααΆαααααα
5. ααΆαααΆαααααααΆααααααααααααααααα·ααααΆαααααΆααααααΌαααΆααα’αααα Prod
ααΎααααΈααΆαααααααΆαααΆαα’αΆααααααα ααΆααααα·ααΆααΆαααα·ααααα α’αααααααΆααααα α»α αααΌαα»ααα½ααα αααα»α GitLab α αΎααα»αααααΌαααΆααααααΌααα ααα·ααΆααΆαααα·αααααααααΆααα
αααααα·ααΈααΌα ααααΆα’αΆα ααααΎαααΆααααα»αααα·ααΆααΆαααααααααααΆ - ααΆαααααΎααααα αα·αααΆαααα·α - ααααα·αα αΆαααΆα αααΆααααα‘αΎααα·αα ααΎαααααΎααααα»αα»ααΆαααΌα ααααΆααααα·αααααΆααααααΌαα’αααΈααΆααα’αααα αααα»ααααααα·ααΈ α αΎαααΎαααααααααΆαααΆααααααααΆααααα α
ααΆαααααααααΆαααΆαααααααααα’αΆα ααααααααΆαααααΆαααααααααααα·ααΈα’αΆαααααααΎααα·ααΆααΆαααααααααα·ααΈααΉαααααΌαααΆαααααα·ααααα·α ααΎαααΆαααααΆααααααΌαααΆααααααααα·ααααΆαααΆααα’αααα ααΆααααα α α’αααΈααααααααΆαααααΌαααΆααααααααΆαααΆαααααααα ααΆαααααααα K8S αα·ααααΆαααΆαααααα Helm α αα αααααα Helm ααΆαααααααΆαααΆααα½αααααα»αααααΆαα ααΆααααα·ααΆααΆαααΆααααα ααΆααααααααΆαααααΎαααααααααΌαααΆαα’αα»ααααα ααααααΆ α αΎαααΆααααααααα·αααααααΌαααΆαα’αα»ααααα ααααααα·ααΆααΆαααα·αααααα
α’αααΈααααα·ααΆααααα»αααΊααααααααΆαααΆααααααααααΆαααα αα·αα’αααααΆααα’αααααααααΎαα½α αααα’αΆαααααααΎααα·ααααΆα α αΎαααααααααΆαα ααΆα’αααααα·ααααΆα αα·αααΆαααααααα ααΆααααααααααΆααα·αααααΆαααααΆαααΆααααααααα·ααααΆααααααΆαα Helm α
ααΆαααααααααααα·ααΈααααΎα’αααααα·ααααΆαα αααααβααααβααΆβααααΌαβααΆαβαααααβαααα»αβαα»αααΊαααβαααβααααΎ K8S configmap αααβααααΌαβααΆαβαααααΎαβαααβααααΎβααααΌ Go α ααΆα§ααΆα ααα ααΆααααααα’αααααα·ααααΆααα ααΉαααααααααα’αΆα ααααΌαααΆαααααΎααΌα αααα
APP_EXTERNAL_DOMAIN: {{ (pluck .Values.global.env .Values.app.properties.app_external_domain | first) }}
.Values.global.env - α’αααααααααααΆαα»ααααααααα·ααααΆα (ααα·ααα, ααααΆααααΆα, UAT) α
.Values.app.properties.app_external_domain β αα
αααα»αα’αααααα ααΎααααααααααααα
ααααΆααα
αααα»αα―αααΆα .Values.yaml
αα αααα’αΆααααααααααα·ααΈ Helm αααααΎαα―αααΆα configmap.yaml ααΈααααΌ α αΎααααααααααα APP_EXTERNAL_DOMAIN ααΆαα½αααΉαααααααααα ααααΆα α’αΆαααααααΎααα·ααΆααΆαααααααααα·ααΈα αΆααααααΎαα’αΆαααααα α’ααααααααααΌαααΆαααααααα½α α αΎααα αααα»ααα»αααΊαααα ααΆα’αΆα ααααΌαααΆαα αΌαααααΎααΈαααααα·ααΈ ααΌα ααααααα·ααααΆααααααα·ααΈααΈαα½ααααΉαααΆαααααααα»αααααΆαααααΆααα’ααααααα
ααααΈαααα ααΆαααΆαααα K8S ααΆααααα αΆααααα½ααα
αααα»α Spring Cloud αα½αααΆααααααΎααΆαααΆαα½α configMapsα
ααα»α
ααΌα αααα ααΆαααΆαααααααΆαααααααααΌαααΆαααααααα ααΆαααααααα αα·αααααΎαααΆαα ααΆαα’αΆαααααααΆααα’ααααΎαα‘αΎααααααΆαα α»α ααααΆααα α»α αα½αα ααΆαααΉααααααΌαααΆαααααΆααααααΌααα ααα·ααΆααΆαααα·αααααΊαααααααααααααααα·α α αΎαααααΆαα ααΆαααααΎαα αα α»ααααααααΆααα·αααααααααααααααααα
αααααΆαα’ααΆααα ααΆαααααααα·αααααααααααααααααααααα·
ααΎαβααΆαβαα·αβα’αααΈβααΆαβααααΎβα±ααβαααααΎαβα‘αΎαβααΌαβααΌαααααΆαβαα·ααααααβαα·αβααααααΆαβααβααΆαβαααα‘ααβααΆαβααααΆααβααααΌβαβααΆααβαααβαααα‘ααβααβαα·αβα αααΆαααΆαα·α ααααααΈααααααααααΆαααααααα·ααΈαααα»αααααΎαααΆααα ααααααα½αα ααααα αΆαααααα»αααααΎαααΆα α αΎαααααααααΈααΆαααααΎαααΆαα α αΎαβααΎαβααΉαβαα·αβααααβα αΆααβααβαα βαααβαααβααΎαβααααΆααβααΆβααααβααααΈβααααΎαααΆαα ααΆαααααΆααααααΌαααΌαααααΆααα·αααααααα½αααα’αα»ααααΆαα±ααα’αααααααΎααΆαααΆαα½αααααααΆααααΈααααααααα·ααΈα
ααΌα αααα ααΎααα·αα’αΆα ααααΌαααααααα½ααα α¬αα·ααααααααααααααααΆαααα ααα»ααααααΎαα’αΆα αααααΎααα½αααααααΈ α αααααα·ααααααααΈαα½αααα αΆααα αΌααα αααα»αααΆ α αΎαααααααααααΉαααααα αααααααΎαα αα α»ααααααααΆααα·αααααα αααα»ααααααααΆαααααΆααΉαα αααα αα·αααααΎαα αα α»ααααααααΆαααΆαα αααα»ααα½αααααααααααα α αΎααααααΆααααΈααΆαααΆααα±ααααααΎααααΆααααααααααΈαααααααα·ααΈααααααααα αααααΆααααΈααααααααΆααααααΆααααα αα ααΎαααΉαα’αΆα αα»ααα½αααα αΆαα αα·ααααααΉαααααα·αα αΆαααΆα αα
ααααα·αααΎααααααααΈαααααααα·ααΈαα·αααααΎαααΆαααααΉαααααΌααα ααΎαα’αΆα αα·ααααααααα αααααα»α αα½αααΆαααααααα»αααααΌαααααΆααα·αααααααααααα ααα»ααα ααΆαααααΆααααααΌαααααααΎαααΉαα’αα»ααααΆαα±ααα’αααααααΎααΆααααα»ααααααααΆαααααΆααΆαα½αααΉαααααααΆα αααΎααααααααα·ααΈα
ααΎαααΆαααααααααααΎααΆαααααΆααααααΌαααΌαααααΆααα·αααααααααααααααααααααα·ααΆααααααΆαααΆα K8S ααααααα
αΌαααΆαα
αααα»αααααΎαααΆααααΈααΈα α αΎαααΎααα·αααΆααΉαα
ααααααααααα·αααααααααα
ααΎ Habre α
ααααα: www.habr.com