แƒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒ˜แƒก แƒฆแƒแƒ›แƒ˜แƒก แƒกแƒ™แƒแƒšแƒ

Slurm-แƒ›แƒ แƒ’แƒแƒฎแƒกแƒœแƒ แƒกแƒแƒฆแƒแƒ›แƒแƒก แƒกแƒ™แƒแƒšแƒ Kubernetes-แƒ–แƒ”: แƒฃแƒคแƒแƒกแƒ แƒšแƒ”แƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒกแƒ”แƒ แƒ˜แƒ แƒ“แƒ แƒคแƒแƒกแƒ˜แƒแƒœแƒ˜ แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒฃแƒšแƒ˜ แƒกแƒ”แƒกแƒ˜แƒ”แƒ‘แƒ˜ แƒ›แƒแƒ—แƒ—แƒ•แƒ˜แƒก, แƒ•แƒ˜แƒœแƒช แƒกแƒฌแƒแƒ•แƒšแƒแƒ‘แƒก k8-แƒก แƒœแƒฃแƒšแƒ˜แƒ“แƒแƒœ.

แƒ™แƒšแƒแƒกแƒ”แƒ‘แƒก แƒแƒกแƒฌแƒแƒ•แƒšแƒ˜แƒก แƒ›แƒแƒ แƒกแƒ”แƒš แƒ˜แƒ‘แƒ แƒแƒ”แƒ•แƒ˜, แƒ˜แƒœแƒŸแƒ˜แƒœแƒ”แƒ แƒ˜ Southbridge-แƒจแƒ˜, CKA, แƒ“แƒ แƒกแƒ”แƒ แƒ’แƒ”แƒ˜ แƒ‘แƒแƒœแƒ“แƒแƒ แƒ”แƒ•แƒ˜, แƒ˜แƒœแƒŸแƒ˜แƒœแƒ”แƒ แƒ˜ Southbridge-แƒจแƒ˜, SKA, kubespray-แƒ˜แƒก แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒจแƒ”แƒ›แƒฅแƒ›แƒœแƒ”แƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒแƒฅแƒ•แƒก แƒฃแƒคแƒšแƒ”แƒ‘แƒ แƒ›แƒ˜แƒ˜แƒฆแƒแƒก pull-แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜.

แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ™แƒ•แƒ˜แƒ แƒ˜แƒก แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ”แƒ‘แƒก แƒ•แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜ แƒ›แƒแƒ—แƒ—แƒ•แƒ˜แƒก, แƒ•แƒ˜แƒกแƒแƒช แƒกแƒฃแƒ แƒก แƒ’แƒแƒ˜แƒ’แƒแƒก, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒแƒชแƒ˜แƒแƒ›แƒ“แƒ”.

แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ™แƒ•แƒ˜แƒ แƒแƒจแƒ˜ แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒจแƒแƒšแƒ”แƒ— Docker. แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒฅแƒแƒœแƒ“แƒ แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒ˜ แƒแƒ›แƒแƒชแƒแƒœแƒ: แƒ›แƒแƒ’แƒ•แƒ”แƒฌแƒแƒ“แƒ”แƒ‘แƒ˜แƒœแƒ Docker-แƒ˜แƒก แƒกแƒแƒคแƒฃแƒซแƒ•แƒšแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜แƒ k8-แƒ”แƒ‘แƒ—แƒแƒœ แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ›แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒแƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ”แƒ แƒ—แƒ˜ แƒ™แƒ•แƒ˜แƒ แƒ แƒ“แƒแƒ”แƒ—แƒ›แƒ แƒ“แƒ แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ“แƒแƒ แƒฉแƒ แƒ™แƒฃแƒšแƒ˜แƒกแƒ”แƒ‘แƒจแƒ˜.

แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ“แƒฆแƒ˜แƒก แƒจแƒ”แƒกแƒ•แƒšแƒ:


แƒ›แƒ”แƒแƒ แƒ” แƒ“แƒฆแƒ˜แƒก แƒจแƒ”แƒกแƒ•แƒšแƒ:


แƒงแƒแƒ•แƒ”แƒšแƒ˜ แƒ’แƒแƒ™แƒ•แƒ”แƒ—แƒ˜แƒšแƒ˜แƒก แƒ‘แƒแƒšแƒแƒก แƒ›แƒแƒ›แƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ˜แƒซแƒšแƒ”แƒ•แƒ แƒกแƒแƒจแƒ˜แƒœแƒแƒ แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒแƒก.

แƒฉแƒ•แƒ”แƒœ แƒแƒ› แƒแƒ›แƒแƒชแƒแƒœแƒแƒก แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒแƒ“ แƒ•แƒแƒแƒœแƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒ— แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒแƒจแƒ˜:


แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒซแƒšแƒ”แƒ•แƒ— แƒกแƒขแƒฃแƒ“แƒ”แƒœแƒขแƒ”แƒ‘แƒก แƒกแƒขแƒ”แƒœแƒ“แƒ”แƒ‘แƒก แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒ˜แƒก แƒจแƒ”แƒกแƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒšแƒแƒ“. แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒฃแƒš แƒฉแƒแƒขแƒจแƒ˜ แƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒฎแƒ›แƒแƒ แƒ” แƒฏแƒ’แƒฃแƒคแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒแƒ•แƒก แƒ แƒแƒ˜แƒ›แƒ” แƒ’แƒแƒฃแƒ แƒ™แƒ•แƒ”แƒ•แƒ”แƒšแƒก แƒ“แƒ แƒ”แƒซแƒ”แƒ‘แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒก, แƒ—แƒฃ แƒ แƒแƒ›แƒ” แƒแƒ  แƒ’แƒแƒ›แƒแƒ“แƒ’แƒ”แƒ‘แƒ แƒกแƒขแƒฃแƒ“แƒ”แƒœแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ•แƒแƒ แƒฏแƒ˜แƒจแƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒแƒก แƒฆแƒ˜แƒšแƒแƒ™แƒ–แƒ” แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒ— แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— แƒกแƒขแƒ”แƒœแƒ“แƒ˜ แƒ“แƒ แƒ—แƒแƒ•แƒแƒ“ แƒ’แƒแƒ˜แƒ›แƒ”แƒแƒ แƒแƒ— แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜.

แƒ—แƒฃ แƒ›แƒแƒ’แƒฌแƒแƒœแƒ— แƒขแƒ แƒ”แƒœแƒ˜แƒœแƒ’แƒ˜แƒก แƒ”แƒก แƒคแƒแƒ แƒ›แƒแƒขแƒ˜, แƒจแƒ”แƒ›แƒแƒ’แƒ•แƒ˜แƒ”แƒ แƒ—แƒ“แƒ˜แƒ—. แƒแƒ แƒจแƒแƒ‘แƒแƒ—แƒ˜แƒ“แƒแƒœ แƒ•แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ— Kubernetes-แƒ˜แƒก แƒ“แƒแƒจแƒšแƒแƒก. แƒคแƒแƒกแƒ˜แƒแƒœแƒ˜ แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒแƒ แƒฉแƒ”แƒœแƒ˜แƒšแƒ˜แƒ 40 แƒแƒ“แƒ’แƒ˜แƒšแƒ˜.

แƒ—แƒ”แƒแƒ แƒ˜แƒฃแƒšแƒ˜ แƒšแƒ”แƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒ แƒ˜แƒ’แƒ˜:20 แƒแƒžแƒ แƒ˜แƒšแƒ˜: แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜ Kubernetes-แƒจแƒ˜, แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒแƒ‘แƒกแƒขแƒ แƒแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜. แƒแƒฆแƒฌแƒ”แƒ แƒ, แƒ’แƒแƒœแƒแƒชแƒฎแƒแƒ“แƒ˜, แƒชแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜. Pod, ReplicaSet, Deployment
21 แƒแƒžแƒ แƒ˜แƒšแƒ˜: แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ, แƒ–แƒแƒœแƒ“แƒ”แƒ‘แƒ˜, แƒšแƒ˜แƒ›แƒ˜แƒขแƒ”แƒ‘แƒ˜/แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜, แƒ›แƒแƒซแƒ แƒแƒ•แƒ˜ แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ
28 แƒแƒžแƒ แƒ˜แƒšแƒ˜: Kubernetes: Service, Ingress, PV, PVC, ConfigMap, Secret
11 แƒ›แƒแƒ˜แƒกแƒ˜: แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒฃแƒšแƒ˜ แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ, แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒ™แƒแƒ›แƒžแƒแƒœแƒ”แƒœแƒขแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ›แƒแƒ—แƒ˜ แƒฃแƒ แƒ—แƒ˜แƒ”แƒ แƒ—แƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ
12 แƒ›แƒแƒ˜แƒกแƒ˜: แƒ แƒแƒ’แƒแƒ  แƒ›แƒแƒ•แƒแƒฎแƒ“แƒ˜แƒœแƒแƒ— k8s แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒก แƒฃแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒแƒ‘แƒ. แƒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒฅแƒกแƒ”แƒšแƒ˜ k8s-แƒจแƒ˜
19 แƒ›แƒแƒ˜แƒกแƒ˜: Kubespray, แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒ˜แƒก แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒก แƒ“แƒแƒ แƒ”แƒ’แƒฃแƒšแƒ˜แƒ แƒ”แƒ‘แƒ แƒ“แƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ
25 แƒ›แƒแƒ˜แƒกแƒ˜: แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒ˜แƒก แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒ‘แƒกแƒขแƒ แƒแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜. Daemonset, Statefulset, Podโ€“ แƒ˜แƒก แƒ“แƒแƒ’แƒ”แƒ’แƒ›แƒ•แƒ, แƒ˜แƒœแƒ˜แƒชแƒ˜แƒแƒขแƒ˜แƒ•แƒ
26 แƒ›แƒแƒ˜แƒกแƒ˜: Kubernetes: Job, CronJob, RBAC
2 แƒ˜แƒ•แƒœแƒ˜แƒกแƒ˜: แƒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก DNS Kubernetes แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒจแƒ˜. แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒ›แƒแƒ•แƒแƒฅแƒ•แƒ”แƒงแƒœแƒแƒ— แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ k8s-แƒจแƒ˜, แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒ›แƒแƒ•แƒแƒฅแƒ•แƒ”แƒงแƒœแƒแƒ— แƒ“แƒ แƒ›แƒแƒ แƒ—แƒแƒ— แƒขแƒ แƒแƒคแƒ˜แƒ™แƒ˜
9 แƒ˜แƒ•แƒœแƒ˜แƒกแƒ˜: แƒ แƒ แƒแƒ แƒ˜แƒก Helm แƒ“แƒ แƒ แƒแƒขแƒแƒ› แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ? Helms-แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ. แƒกแƒฅแƒ”แƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒšแƒแƒ‘แƒ. แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒกแƒฅแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ
16 แƒ˜แƒ•แƒœแƒ˜แƒกแƒ˜: Ceph: แƒ’แƒแƒแƒ™แƒ”แƒ—แƒ”แƒ— แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒฎแƒ”แƒšแƒ˜แƒ— แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ. Ceph, แƒ™แƒแƒกแƒ”แƒขแƒฃแƒ แƒ˜ แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ. แƒขแƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ sc, pvc, pv pods-แƒ—แƒแƒœ
23 แƒ˜แƒ•แƒœแƒ˜แƒกแƒ˜: แƒกแƒ”แƒ แƒขแƒ˜แƒคแƒ˜แƒชแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒ”แƒœแƒ”แƒฏแƒ”แƒ แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ. ะกert-แƒ›แƒ”แƒœแƒ”แƒฏแƒ”แƒ แƒ˜: แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ— SSL/TLS แƒกแƒ”แƒ แƒ—แƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒ”แƒ‘แƒ˜ - 1 แƒช.
29 แƒ˜แƒ•แƒœแƒ˜แƒกแƒ˜: แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒ˜แƒก แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒก แƒจแƒ”แƒœแƒแƒ แƒฉแƒฃแƒœแƒ”แƒ‘แƒ, แƒ แƒฃแƒขแƒ˜แƒœแƒฃแƒšแƒ˜ แƒ›แƒแƒ•แƒšแƒ. แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒก แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ
30 แƒ˜แƒ•แƒœแƒ˜แƒกแƒ˜: แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ’แƒ•แƒแƒ แƒ”แƒ‘แƒ
7 แƒ˜แƒ•แƒšแƒ˜แƒกแƒ˜: Kubernetes แƒ›แƒแƒœแƒ˜แƒขแƒแƒ แƒ˜แƒœแƒ’แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ. แฒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒžแƒ แƒ˜แƒœแƒชแƒ˜แƒžแƒ”แƒ‘แƒ˜. แƒžแƒ แƒแƒ›แƒ”แƒ—แƒ”, แƒ’แƒ แƒแƒคแƒแƒœแƒ
14 แƒ˜แƒ•แƒšแƒ˜แƒกแƒ˜: แƒจแƒ”แƒกแƒ•แƒšแƒ Kubernetes-แƒจแƒ˜. แƒ›แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒ แƒ“แƒ แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜
21 แƒ˜แƒ•แƒšแƒ˜แƒกแƒ˜: แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜ Kubernetes-แƒจแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก
28 แƒ˜แƒ•แƒšแƒ˜แƒกแƒ˜: แƒ’แƒแƒœแƒแƒชแƒฎแƒแƒ“แƒ˜แƒก แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒ“แƒ CI/CD แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒจแƒ˜
4 แƒแƒ’แƒ•แƒ˜แƒกแƒขแƒ: แƒ“แƒแƒ™แƒ•แƒ˜แƒ แƒ•แƒ”แƒ‘แƒแƒ“แƒแƒ‘แƒ - แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒ›แƒแƒœแƒ˜แƒขแƒแƒ แƒ˜แƒœแƒ’แƒ˜แƒก แƒžแƒ แƒ˜แƒœแƒชแƒ˜แƒžแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒขแƒ”แƒฅแƒœแƒ˜แƒ™แƒ

แƒ“แƒแƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒ˜แƒ แƒ“แƒ˜แƒ— Slurm's Kubernetes-แƒ˜แƒก แƒกแƒแƒฆแƒแƒ›แƒแƒก แƒกแƒ™แƒแƒšแƒแƒจแƒ˜

แƒกแƒขแƒแƒŸแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ™แƒ•แƒ”แƒ—แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ— แƒงแƒฃแƒ—แƒ˜ แƒคแƒแƒ แƒ›แƒแƒจแƒ˜.
แƒ—แƒฃ แƒฃแƒ™แƒ•แƒ” แƒกแƒแƒฆแƒแƒ›แƒแƒก แƒกแƒ™แƒแƒšแƒแƒจแƒ˜ แƒกแƒฌแƒแƒ•แƒšแƒแƒ‘แƒ—, แƒฃแƒคแƒ แƒ แƒแƒ“แƒ•แƒ˜แƒšแƒ˜แƒ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒ˜แƒก แƒจแƒ”แƒ™แƒ•แƒ”แƒ—แƒ แƒแƒฅ.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ