แƒ“แƒแƒ™แƒ”แƒ แƒ˜ แƒกแƒแƒ—แƒแƒ›แƒแƒจแƒแƒ แƒ—แƒฃ แƒแƒ แƒ? แƒแƒœ แƒ™แƒ˜แƒ“แƒ”แƒ• แƒแƒ แƒ˜แƒก?

แƒ’แƒแƒฃแƒ›แƒแƒ แƒฏแƒแƒก แƒงแƒ•แƒ”แƒšแƒแƒก!

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

Entry

แƒ›แƒ” แƒ•แƒแƒ  แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒกแƒขแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒแƒฅแƒ•แƒก แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ แƒฌแƒ˜แƒœแƒ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก, scala/java แƒ“แƒ nodejs แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ” แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒแƒจแƒ˜.

แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ“แƒ˜แƒ“แƒ˜ แƒฎแƒœแƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜ (แƒแƒฃแƒชแƒ˜แƒšแƒ”แƒ‘แƒšแƒแƒ“ แƒแƒ แƒ˜-แƒกแƒแƒ›แƒ˜ แƒฌแƒ”แƒšแƒ˜) แƒ•แƒคแƒ˜แƒฅแƒ แƒแƒ‘แƒ“แƒ˜, แƒ แƒแƒ› Docker แƒแƒ แƒ˜แƒก แƒ›แƒแƒœแƒแƒœแƒ แƒ–แƒ”แƒชแƒ˜แƒ“แƒแƒœ แƒ“แƒ แƒ–แƒแƒ’แƒแƒ“แƒแƒ“ แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒ’แƒแƒ แƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ แƒ“แƒ แƒแƒ‘แƒกแƒแƒšแƒฃแƒขแƒฃแƒ แƒแƒ“ แƒงแƒ•แƒ”แƒšแƒ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒก แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒ”แƒซแƒšแƒแƒก แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ. แƒ“แƒ แƒแƒฅแƒ”แƒ“แƒแƒœ แƒ’แƒแƒ›แƒแƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ”แƒแƒ‘แƒก, แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒก แƒฃแƒœแƒ“แƒ แƒฐแƒฅแƒแƒœแƒ“แƒ”แƒก Docker แƒ“แƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ• แƒแƒžแƒแƒ แƒแƒขแƒ–แƒ”. แƒ แƒแƒช แƒจแƒ”แƒ”แƒฎแƒ”แƒ‘แƒ แƒฉแƒ”แƒ›แƒก แƒแƒ–แƒ แƒก, แƒ’แƒแƒ“แƒแƒฎแƒ”แƒ“แƒ” แƒ•แƒแƒ™แƒแƒœแƒกแƒ˜แƒ”แƒ‘แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ’แƒแƒœแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ˜แƒ›แƒแƒ•แƒ” hh. แƒงแƒแƒ•แƒ”แƒšแƒ˜ แƒ›แƒ”แƒแƒ แƒ” แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒก แƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒแƒก แƒ“แƒ แƒ—แƒฃ แƒ›แƒแƒก แƒคแƒšแƒแƒ‘แƒ—, แƒ”แƒก แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ™แƒแƒœแƒ™แƒฃแƒ แƒ”แƒœแƒขแƒฃแƒšแƒ˜ แƒฃแƒžแƒ˜แƒ แƒแƒขแƒ”แƒกแƒแƒ‘แƒ ๐Ÿ˜‰

แƒ’แƒ–แƒแƒ“ แƒจแƒ”แƒ•แƒฎแƒ•แƒ“แƒ˜ แƒ‘แƒ”แƒ•แƒ  แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒก, แƒ›แƒแƒ—แƒ˜ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒกแƒ แƒ“แƒ แƒ›แƒ˜แƒกแƒ˜ แƒ”แƒ™แƒแƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒ›แƒ˜แƒ›แƒแƒ แƒ—. แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ›แƒ แƒ—แƒฅแƒ•แƒ, แƒ แƒแƒ› แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ แƒแƒ›, แƒ แƒแƒช แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก แƒ™แƒ แƒแƒก-แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒแƒก. แƒ›แƒ”แƒแƒ แƒ”แƒ”แƒ‘แƒก แƒแƒ  แƒ”แƒกแƒ›แƒแƒ“แƒแƒ—, แƒ แƒแƒขแƒแƒ› แƒฃแƒœแƒ“แƒ แƒ˜แƒ›แƒแƒซแƒ แƒแƒแƒœ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒจแƒ˜ แƒ“แƒ แƒ แƒ แƒ›แƒแƒ’แƒ”แƒ‘แƒ แƒ›แƒแƒฐแƒฅแƒแƒœแƒ“แƒ, แƒ›แƒ”แƒกแƒแƒ›แƒ”แƒก แƒกแƒแƒ”แƒ แƒ—แƒแƒ“ แƒแƒ  แƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ”แƒ‘แƒ“แƒ แƒ“แƒ แƒแƒ  แƒ˜แƒœแƒ”แƒ แƒ•แƒ˜แƒฃแƒšแƒ (แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ™แƒแƒ“แƒ˜ แƒ“แƒแƒฌแƒ”แƒ แƒ”แƒก แƒ“แƒ แƒกแƒแƒฎแƒšแƒจแƒ˜ แƒฌแƒแƒ•แƒ˜แƒ“แƒœแƒ”แƒœ - แƒ›แƒจแƒฃแƒ แƒก แƒ›แƒแƒ—แƒ˜ แƒ’แƒ–แƒ :)

แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ”แƒ‘แƒ˜

แƒ แƒแƒขแƒแƒ› แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ” แƒ“แƒแƒ™แƒ”แƒ แƒ˜? แƒแƒšแƒ‘แƒแƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒ:

  • แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ, แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก 99% แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒ›แƒแƒ—
  • nginx-แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒคแƒ แƒแƒœแƒขแƒ”แƒœแƒ“แƒ˜แƒก แƒ“แƒ˜แƒกแƒขแƒ แƒ˜แƒ‘แƒฃแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒžแƒ แƒแƒฅแƒกแƒ˜แƒ แƒ”แƒ‘แƒ backend-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก
  • แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒจแƒ”แƒคแƒฃแƒ—แƒแƒ— แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒก แƒกแƒฃแƒ แƒแƒ—แƒจแƒ˜, แƒแƒ› แƒ’แƒ–แƒ˜แƒ— แƒฉแƒ”แƒ›แƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก แƒกแƒแƒ“แƒแƒช แƒ™แƒ˜ แƒ“แƒแƒ™แƒ”แƒ แƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก, แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒ“แƒแƒฃแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒšแƒ˜แƒ• แƒ›แƒแƒ’แƒ•แƒแƒ แƒ“แƒ”แƒ‘แƒ
  • แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒแƒฆแƒ›แƒแƒฉแƒ”แƒœแƒ แƒงแƒฃแƒ—แƒ˜แƒ“แƒแƒœ, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— แƒ›แƒ˜แƒ™แƒ แƒแƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ˜, แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜ (แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒแƒ”แƒ แƒ—แƒ แƒฅแƒกแƒ”แƒšแƒ—แƒแƒœ) แƒแƒ“แƒ•แƒ˜แƒšแƒแƒ“ แƒ›แƒ˜แƒแƒฆแƒฌแƒ”แƒ•แƒก แƒ›แƒ”แƒแƒ แƒ”แƒก แƒ›แƒ”แƒขแƒกแƒแƒฎแƒ”แƒšแƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—, แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ
  • แƒกแƒแƒฎแƒแƒšแƒ˜แƒกแƒแƒ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ แƒ“แƒ แƒ›แƒแƒกแƒจแƒ˜ "แƒ—แƒแƒ›แƒแƒจแƒ˜".

แƒ แƒแƒช แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒแƒ  แƒ›แƒแƒ›แƒฌแƒแƒœแƒก แƒ“แƒแƒ™แƒ”แƒ แƒจแƒ˜:

  • แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒฉแƒ”แƒ›แƒ›แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒ› แƒ˜แƒ›แƒฃแƒจแƒแƒแƒก, แƒ›แƒ” แƒ›แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ—แƒแƒ•แƒแƒ“ Docker แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ”. แƒ แƒแƒขแƒแƒ› แƒ›แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ”แƒก, แƒ—แƒฃ แƒฉแƒ”แƒ›แƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก jre แƒแƒœ nodejs-แƒ–แƒ” แƒ“แƒ แƒ›แƒแƒ—แƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒ›แƒ แƒฃแƒ™แƒ•แƒ” แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ”แƒ?
  • แƒ—แƒฃ แƒ›แƒกแƒฃแƒ แƒก แƒฉแƒ”แƒ›แƒ˜ (แƒžแƒ˜แƒ แƒแƒ“แƒ˜) แƒšแƒแƒ™แƒแƒšแƒฃแƒ แƒแƒ“ แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒฃแƒ แƒแƒ—แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ  แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ”, แƒ›แƒแƒจแƒ˜แƒœ แƒ›แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒฉแƒ”แƒ›แƒ˜ แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒก แƒกแƒแƒชแƒแƒ•แƒ˜, แƒ›แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ แƒ”แƒ”แƒกแƒขแƒ แƒ˜, แƒ แƒแƒ› แƒกแƒแƒ“แƒ›แƒ” แƒ˜แƒ›แƒฃแƒจแƒแƒแƒก แƒ“แƒ แƒแƒกแƒ”แƒ•แƒ” แƒ›แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ https-แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ docker cli แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ https-แƒ–แƒ”. แƒแƒฐ แƒฏแƒแƒœแƒ“แƒแƒ‘แƒ... แƒแƒ แƒ˜แƒก แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ”แƒ‘แƒ˜, แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒ’แƒแƒ›แƒแƒกแƒแƒฎแƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒšแƒแƒ™แƒแƒšแƒฃแƒ แƒแƒ“ แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ docker save แƒ“แƒ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ”แƒ— แƒกแƒฃแƒ แƒแƒ—แƒ˜ scp-แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—... แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒแƒ แƒ˜แƒก แƒกแƒฎแƒ”แƒฃแƒšแƒ˜แƒก แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ›แƒแƒซแƒ แƒแƒแƒ‘แƒ. แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ แƒ แƒแƒ’แƒแƒ แƒช "แƒงแƒแƒ•แƒแƒ แƒฏแƒ”แƒœแƒ˜" แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜, แƒกแƒแƒœแƒแƒ› แƒแƒ  แƒ’แƒแƒ›แƒแƒฉแƒœแƒ“แƒ”แƒ‘แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒกแƒแƒชแƒแƒ•แƒ˜
  • docker-compose. แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒกแƒแƒจแƒ•แƒ”แƒ‘แƒแƒ“. แฒกแƒฃแƒš แƒ”แƒก แƒแƒ แƒ˜แƒก. แƒกแƒฎแƒ•แƒ แƒ•แƒ”แƒ แƒแƒคแƒ”แƒ แƒก แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒก. Docker-compose แƒแƒฅแƒ•แƒก แƒ—แƒแƒ•แƒ˜แƒกแƒ˜ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ, แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒ˜. แƒ แƒแƒช แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ“แƒ”แƒ™แƒšแƒแƒ แƒแƒชแƒ˜แƒฃแƒšแƒ˜ แƒ˜แƒงแƒแƒก, แƒแƒ  แƒ›แƒ˜แƒœแƒ“แƒ แƒ›แƒแƒ—แƒ˜ แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ˜แƒก แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ. แƒกแƒฎแƒ•แƒแƒ’แƒแƒœ แƒแƒ  แƒ“แƒแƒ›แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ.
  • แƒ’แƒฃแƒœแƒ“แƒจแƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒแƒก, แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒฃแƒ›แƒ”แƒขแƒ”แƒกแƒแƒ‘แƒ แƒฌแƒ”แƒ แƒก Dockerfile-แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒฃแƒฎแƒ”แƒ แƒฎแƒฃแƒšแƒแƒ“, แƒแƒ  แƒ”แƒกแƒ›แƒ˜แƒก, แƒ แƒแƒ’แƒแƒ  แƒแƒ แƒ˜แƒก แƒฅแƒ”แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜, แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ”แƒœ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒก, แƒ แƒแƒช แƒ›แƒแƒ— แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒ“แƒ แƒแƒ  แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒกแƒฃแƒ แƒแƒ—แƒก, แƒ˜แƒฆแƒ”แƒ‘แƒ”แƒœ แƒ›แƒ”แƒ›แƒ™แƒ•แƒ˜แƒ“แƒ แƒ”แƒแƒ‘แƒแƒก แƒ˜แƒ› แƒกแƒฃแƒ แƒแƒ—แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒ  แƒแƒ แƒ˜แƒก Dockerhub-แƒจแƒ˜ แƒแƒœ แƒ™แƒ”แƒ แƒซแƒ แƒกแƒแƒชแƒแƒ•แƒจแƒ˜, แƒฅแƒ›แƒœแƒ˜แƒแƒœ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” docker-compose แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ แƒแƒ แƒแƒคแƒ”แƒ แƒ˜ แƒ’แƒ แƒซแƒ”แƒšแƒ“แƒ”แƒ‘แƒ. แƒแƒ›แƒแƒ•แƒ“แƒ แƒแƒฃแƒšแƒแƒ“, แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ˜ แƒแƒ›แƒแƒงแƒแƒ“ แƒแƒชแƒฎแƒแƒ“แƒ”แƒ‘แƒ”แƒœ, แƒ แƒแƒ› Docker แƒ›แƒแƒ’แƒแƒ แƒ˜แƒ, แƒ›แƒแƒ—แƒ—แƒ•แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒšแƒแƒ™แƒแƒšแƒฃแƒ แƒแƒ“ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ“แƒ HR แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜แƒ แƒ•แƒแƒ™แƒแƒœแƒกแƒ˜แƒแƒ–แƒ” แƒฌแƒ”แƒ แƒก: โ€žแƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— Docker-แƒก แƒ“แƒ แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ™แƒแƒœแƒ“แƒ˜แƒ“แƒแƒขแƒ˜ แƒแƒกแƒ”แƒ—แƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒ—โ€œ.
  • แƒ’แƒแƒ›แƒฃแƒ“แƒ›แƒ”แƒ‘แƒ˜แƒ— แƒ›แƒแƒฌแƒฃแƒฎแƒ”แƒ‘แƒก แƒคแƒ˜แƒฅแƒ แƒ”แƒ‘แƒ˜ Docker-แƒจแƒ˜ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ แƒ˜แƒก แƒแƒ›แƒแƒฆแƒšแƒ”แƒ‘แƒแƒ–แƒ”: postgresql, kafka, redis. แƒกแƒแƒ›แƒฌแƒฃแƒฎแƒแƒ แƒแƒ, แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒจแƒ˜ แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก, แƒงแƒ•แƒ”แƒšแƒแƒคแƒ แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ แƒ“แƒ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒแƒ“แƒ•แƒ˜แƒšแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก. แƒแƒ›แƒแƒก แƒ›แƒฎแƒแƒ แƒก แƒฃแƒญแƒ”แƒ แƒ”แƒœ แƒ›แƒ”แƒกแƒแƒ›แƒ” แƒ›แƒฎแƒแƒ แƒ˜แƒก แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒแƒ แƒ แƒ—แƒแƒ•แƒแƒ“ แƒ›แƒแƒ›แƒฌแƒแƒ“แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜. แƒกแƒฎแƒ•แƒแƒ—แƒ แƒจแƒแƒ แƒ˜แƒก, แƒ›แƒแƒจแƒ˜แƒœแƒ•แƒ” แƒฉแƒœแƒ“แƒ”แƒ‘แƒ แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ: แƒ’แƒแƒ›แƒงแƒ˜แƒ“แƒ•แƒ”แƒšแƒ”แƒ‘แƒ˜ แƒแƒ  แƒ–แƒ แƒฃแƒœแƒแƒ•แƒ”แƒœ Docker-แƒจแƒ˜ แƒžแƒ แƒแƒ“แƒฃแƒฅแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒœแƒแƒ แƒฉแƒฃแƒœแƒ”แƒ‘แƒแƒ–แƒ”, แƒ แƒแƒขแƒแƒ› แƒแƒ แƒ˜แƒก แƒ”แƒก, แƒ˜แƒฅแƒœแƒ”แƒ‘ แƒ›แƒแƒ— แƒ˜แƒชแƒ˜แƒแƒœ แƒ แƒแƒ›แƒ”?
  • แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒฉแƒœแƒ“แƒ”แƒ‘แƒ แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ“แƒ’แƒ แƒแƒ“แƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘. แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ—แƒฅแƒ•แƒ”แƒœ แƒคแƒ˜แƒฅแƒ แƒแƒ‘แƒ—, แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ•แƒแƒ›แƒแƒœแƒขแƒแƒŸแƒ แƒฐแƒแƒกแƒขแƒ˜แƒก แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ, แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒ แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒก แƒขแƒแƒ›แƒ˜ แƒแƒœ แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒฎแƒšแƒ แƒแƒ แƒ˜แƒก deprecated? แƒ—แƒฃ แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒก แƒ•แƒแƒ›แƒแƒœแƒขแƒแƒŸแƒ”แƒ‘, แƒ›แƒแƒจแƒ˜แƒœ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ•แƒ แƒฌแƒ›แƒฃแƒœแƒ“แƒ”, แƒ แƒแƒ› แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒจแƒ˜ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก uid แƒ“แƒ gid แƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ แƒ˜แƒ› แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก id-แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ›แƒแƒช แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜ แƒ’แƒแƒฃแƒจแƒ•แƒ, แƒฌแƒ˜แƒœแƒแƒแƒฆแƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒ˜ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ root แƒฃแƒคแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ—. แƒ—แƒฃ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘ volume แƒ›แƒแƒจแƒ˜แƒœ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒจแƒ”แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒจแƒ˜ /usr/* แƒ“แƒ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒแƒ›แƒ‘แƒแƒ•แƒ˜ แƒฃแƒ˜แƒ“แƒ—แƒแƒœ แƒ“แƒ แƒ’แƒ˜แƒ“แƒ—แƒแƒœ, แƒ แƒแƒ’แƒแƒ แƒช แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜. แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ— แƒ›แƒ”แƒกแƒแƒ›แƒ” แƒ›แƒฎแƒแƒ แƒ˜แƒก แƒ™แƒแƒ›แƒžแƒแƒœแƒ”แƒœแƒขแƒก, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ— แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ แƒ“แƒ แƒ›แƒแƒซแƒ”แƒ‘แƒœแƒแƒ— แƒžแƒแƒกแƒฃแƒฎแƒ˜ แƒ™แƒ˜แƒ—แƒฎแƒ•แƒแƒ–แƒ”: "แƒ แƒแƒ›แƒ”แƒš แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜ แƒฌแƒ”แƒ แƒก แƒ™แƒแƒ›แƒžแƒแƒœแƒ”แƒœแƒขแƒ˜ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒก?"

แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒแƒ  แƒ›แƒแƒ›แƒฌแƒแƒœแƒ“แƒ แƒ˜แƒก แƒคแƒแƒฅแƒขแƒ˜, แƒ แƒแƒ› แƒซแƒแƒšแƒ˜แƒแƒœ แƒ“แƒ˜แƒ“แƒฎแƒแƒœแƒก แƒ›แƒแƒ›แƒ˜แƒฌแƒ˜แƒ แƒ“แƒแƒ™แƒ”แƒ แƒ—แƒแƒœ แƒฃแƒ แƒ—แƒ˜แƒ”แƒ แƒ—แƒแƒ‘แƒ แƒกแƒแƒฌแƒงแƒ˜แƒก แƒ”แƒขแƒแƒžแƒ–แƒ”: แƒ›แƒ” แƒ’แƒแƒ•แƒแƒ แƒ™แƒ•แƒ˜แƒ”, แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒ•แƒฃแƒจแƒ•แƒ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒ˜, แƒ แƒ แƒกแƒฃแƒ แƒแƒ—แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒ’แƒแƒ•แƒฃแƒจแƒ•แƒ, แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒ” แƒ›แƒแƒ™แƒ”แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒ“แƒ Docker-แƒ˜แƒก แƒ’แƒ แƒซแƒ”แƒš แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒก. แƒ›แƒ” แƒ›แƒซแƒฃแƒšแƒ“แƒ docker-compose, แƒ แƒแƒ“แƒ’แƒแƒœ แƒแƒ  แƒ›แƒ˜แƒœแƒ“แƒแƒ“แƒ แƒกแƒฎแƒ•แƒ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜แƒก แƒกแƒฌแƒแƒ•แƒšแƒ แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒก แƒ”แƒ™แƒแƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒจแƒ˜. แƒ“แƒ docker-compose up แƒ›แƒแƒฌแƒฃแƒฎแƒ”แƒ‘แƒ“แƒ, แƒ›แƒ˜แƒ— แƒฃแƒ›แƒ”แƒขแƒ”แƒก, แƒ—แƒฃ แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ›แƒแƒ˜แƒœแƒช แƒ˜แƒฅ แƒฎแƒ•แƒ“แƒ”แƒ‘แƒแƒ“แƒœแƒ”แƒœ build แƒ™แƒแƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜, แƒ•แƒ˜แƒ“แƒ แƒ” แƒฃแƒ™แƒ•แƒ” แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒ˜ แƒกแƒฃแƒ แƒแƒ—แƒ”แƒ‘แƒ˜. แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ แƒแƒช แƒ›แƒ” แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒแƒ“ แƒ›แƒ˜แƒœแƒ“แƒแƒ“แƒ แƒ˜แƒงแƒ แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒ”แƒคแƒ”แƒฅแƒขแƒฃแƒ แƒแƒ“ แƒ“แƒ แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ“แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒ” แƒ•แƒ”แƒ  แƒ›แƒ˜แƒ•แƒฎแƒ•แƒ“แƒ˜ แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ แƒ“แƒแƒ™แƒ”แƒ แƒ˜.

แƒฌแƒแƒ แƒ›แƒแƒ’แƒ˜แƒ“แƒ’แƒ”แƒœแƒ— Ansible

แƒชแƒแƒขแƒ แƒฎแƒœแƒ˜แƒก แƒฌแƒ˜แƒœ (แƒกแƒแƒ›แƒ˜ แƒ—แƒ•แƒ˜แƒก แƒฌแƒ˜แƒœ) แƒ•แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ” DevOps แƒ’แƒฃแƒœแƒ“แƒ—แƒแƒœ, แƒ แƒแƒ›แƒšแƒ˜แƒก แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒฌแƒ”แƒ•แƒ แƒก แƒœแƒ”แƒ’แƒแƒขแƒ˜แƒฃแƒ แƒ˜ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ แƒฐแƒฅแƒแƒœแƒ“แƒ Docker-แƒ˜แƒก แƒ›แƒ˜แƒ›แƒแƒ แƒ—. แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒ:

  • docker แƒแƒ แƒ”แƒ’แƒฃแƒšแƒ˜แƒ แƒ”แƒ‘แƒก iptables-แƒก (แƒ—แƒฃแƒ›แƒชแƒ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ แƒ—แƒแƒ— แƒ˜แƒก daemon.json-แƒจแƒ˜)
  • แƒ“แƒแƒ™แƒ”แƒ แƒ˜ แƒแƒ แƒ˜แƒก แƒ‘แƒแƒ’แƒ˜ แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒ’แƒแƒ›แƒแƒ•แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ— แƒ›แƒแƒก แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒแƒจแƒ˜
  • แƒ—แƒฃ แƒ“แƒแƒ™แƒ”แƒ  แƒ“แƒ”แƒ›แƒแƒœแƒ˜ แƒ“แƒแƒ”แƒฏแƒแƒฎแƒ, แƒ›แƒแƒจแƒ˜แƒœ แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒก แƒ›แƒฅแƒแƒœแƒ” แƒงแƒ•แƒ”แƒšแƒ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜ แƒแƒ•แƒแƒ แƒ˜แƒฃแƒšแƒแƒ“ แƒ˜แƒจแƒšแƒ”แƒ‘แƒ
  • แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒ“แƒแƒ™แƒ”แƒ แƒ˜
  • แƒ แƒแƒขแƒแƒ› แƒ“แƒแƒ™แƒ”แƒ แƒ˜ แƒ—แƒฃ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก Ansible แƒ“แƒ แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒฅแƒแƒœแƒ”แƒ‘แƒ˜

แƒแƒ›แƒแƒ•แƒ” แƒกแƒแƒ›แƒกแƒแƒฎแƒฃแƒ แƒจแƒ˜ แƒ’แƒแƒ•แƒ˜แƒชแƒแƒœแƒ˜ แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ - Ansible. แƒ”แƒ แƒ—แƒฎแƒ”แƒš แƒ’แƒแƒ•แƒ˜แƒ’แƒ” แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ  แƒ›แƒ˜แƒชแƒ“แƒ˜แƒ แƒฉแƒ”แƒ›แƒ˜ แƒกแƒแƒ—แƒแƒ›แƒแƒจแƒ แƒฌแƒ˜แƒ’แƒœแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ. แƒแƒฎแƒšแƒ แƒ™แƒ˜ แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒ” แƒฉแƒ”แƒ›แƒ˜ แƒแƒ›แƒแƒชแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒฌแƒ”แƒ แƒ แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฉแƒ”แƒ›แƒ˜ แƒฎแƒ”แƒ“แƒ•แƒ แƒ›แƒ—แƒšแƒ˜แƒแƒœแƒแƒ“ แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒ! แƒ˜แƒ›แƒ˜แƒขแƒแƒ›, แƒ แƒแƒ› แƒ›แƒ˜แƒ•แƒฎแƒ•แƒ“แƒ˜: Ansible-แƒก แƒแƒฅแƒ•แƒก แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒ˜ แƒ”แƒ แƒ—แƒ˜ แƒ“แƒ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒก แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก, แƒกแƒฃแƒ แƒแƒ—แƒ”แƒ‘แƒ˜แƒก แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒก, แƒฅแƒกแƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒ.แƒจ. แƒ’แƒแƒกแƒแƒจแƒ•แƒ”แƒ‘แƒแƒ“ แƒ“แƒ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒแƒ แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒšแƒแƒ™แƒแƒšแƒฃแƒ แƒแƒ“, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ  แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ”แƒ‘แƒ–แƒ”แƒช! แƒฉแƒ”แƒ›แƒก แƒกแƒ˜แƒแƒ›แƒแƒ•แƒœแƒ”แƒ‘แƒแƒก แƒกแƒแƒ–แƒฆแƒ•แƒแƒ แƒ˜ แƒแƒ  แƒฐแƒฅแƒแƒœแƒ“แƒ - แƒ•แƒ˜แƒžแƒแƒ•แƒ” แƒœแƒแƒ แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ แƒ“แƒ แƒ’แƒแƒ“แƒแƒ•แƒงแƒแƒ แƒ” แƒฉแƒ”แƒ›แƒ˜ Makefile แƒ“แƒ docker-compose แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜, แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒ yaml แƒแƒ›แƒแƒชแƒแƒœแƒ”แƒ‘แƒ˜แƒ—. แƒ™แƒแƒ“แƒ˜ แƒจแƒ”แƒ›แƒชแƒ˜แƒ แƒ“แƒ แƒ˜แƒกแƒ”แƒ—แƒ˜ แƒ™แƒแƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ loop, whenแƒ“แƒ แƒ.แƒจ.

แƒ“แƒแƒ™แƒ”แƒ แƒ˜ แƒ›แƒ”แƒกแƒแƒ›แƒ” แƒ›แƒฎแƒแƒ แƒ˜แƒก แƒ™แƒแƒ›แƒžแƒแƒœแƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒกแƒแƒจแƒ•แƒ”แƒ‘แƒแƒ“, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ”แƒ‘แƒ˜

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

แƒ”แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒ’แƒแƒ“แƒแƒกแƒชแƒ”แƒ›แƒก แƒฉแƒ”แƒ›แƒก แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ• แƒžแƒแƒ แƒขแƒก แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ  แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ”, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก postgresql:

ssh -L 9000:localhost:5432 [แƒ”แƒš.แƒคแƒแƒกแƒขแƒ˜แƒ— แƒ“แƒแƒชแƒฃแƒšแƒ˜แƒ]

แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ แƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒฌแƒงแƒ•แƒ”แƒขแƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒแƒก แƒ’แƒฃแƒœแƒ“แƒ˜แƒก แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒแƒกแƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ—. แƒแƒกแƒ”แƒ—แƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒก แƒ”แƒ แƒ—แƒ“แƒ แƒแƒฃแƒšแƒแƒ“; แƒ›แƒแƒ— แƒแƒ  แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— postgresql-แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ, Docker-แƒ˜แƒก แƒ“แƒ แƒกแƒฎแƒ•แƒ แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ”แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ’แƒ”แƒ‘แƒ. แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ  แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ” แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒแƒ— แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ แƒ—แƒแƒ•แƒแƒ“ Docker-แƒจแƒ˜, แƒ—แƒฃ แƒ แƒ—แƒฃแƒšแƒ˜แƒ แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ. แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ แƒแƒช แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒก แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒแƒ แƒ˜แƒก ssh แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒก แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒ!

แƒแƒฎแƒšแƒแƒฎแƒแƒœ แƒฌแƒแƒ•แƒ˜แƒ™แƒ˜แƒ—แƒฎแƒ”, แƒ แƒแƒ› SSH แƒ’แƒ•แƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒ˜ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜ VPN-แƒ˜แƒก แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒฃแƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒแƒ! แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ“แƒแƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒแƒ— OpenVPN แƒแƒœ แƒกแƒฎแƒ•แƒ VPN แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜, แƒ“แƒแƒแƒงแƒ”แƒœแƒแƒ— แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ แƒ“แƒ แƒ›แƒ˜แƒกแƒชแƒ”แƒ— แƒ˜แƒ’แƒ˜ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒก แƒ’แƒแƒ›แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“. แฒ”แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒ’แƒแƒ แƒ˜แƒ!

แƒกแƒแƒ‘แƒ”แƒ“แƒœแƒ˜แƒ”แƒ แƒแƒ“, AWS, GoogleCloud แƒ“แƒ แƒกแƒฎแƒ•แƒ”แƒ‘แƒ˜ แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ”แƒ แƒ—แƒ˜ แƒฌแƒšแƒ˜แƒก แƒฃแƒคแƒแƒกแƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒก, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜! แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ˜แƒแƒคแƒ˜แƒ, แƒ—แƒฃ แƒ’แƒแƒ›แƒแƒ แƒ—แƒแƒ•แƒ— แƒ›แƒแƒ—, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒแƒ  แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ—. แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒ›แƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ”แƒ‘แƒ“แƒ, แƒ แƒแƒขแƒแƒ› แƒ›แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ“แƒ แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ แƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ gcloud, แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒแƒœแƒก, แƒ•แƒ˜แƒžแƒแƒ•แƒ” แƒ˜แƒกแƒ˜แƒœแƒ˜.

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

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

แƒชแƒแƒขแƒ แƒ แƒแƒ› แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒก แƒกแƒฃแƒ แƒแƒ—แƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘

แƒ›แƒ” แƒฃแƒ™แƒ•แƒ” แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒ” แƒ›แƒฃแƒฎแƒšแƒ˜ แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒ›แƒ˜แƒœแƒ“แƒแƒ“แƒ แƒ›แƒ”แƒ—แƒฅแƒ•แƒ, แƒ แƒแƒ› แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒก แƒกแƒฃแƒ แƒแƒ—แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒแƒ แƒแƒœแƒแƒ˜แƒ  แƒ’แƒแƒ แƒแƒœแƒขแƒ˜แƒแƒก แƒแƒ  แƒ˜แƒซแƒšแƒ”แƒ•แƒ. แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒก แƒกแƒฃแƒ แƒแƒ—แƒ”แƒ‘แƒ˜ แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒก แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“. แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒแƒœแƒแƒแƒฎแƒšแƒ”แƒ‘แƒ— แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒก แƒกแƒฃแƒ แƒแƒ—แƒก, แƒ›แƒแƒจแƒ˜แƒœ แƒ’แƒแƒœแƒแƒแƒฎแƒšแƒ”แƒ‘แƒ— แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒก แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒก แƒ“แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ›แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ—.

แƒ’แƒ˜แƒœแƒแƒฎแƒแƒ•แƒ— แƒกแƒแƒ“แƒ›แƒ”, แƒกแƒแƒ“แƒแƒช แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒฃแƒšแƒ˜ แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒ˜แƒก แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ˜ แƒžแƒแƒ แƒขแƒ˜แƒ แƒ”แƒ‘แƒ”แƒœ แƒ—แƒแƒ•แƒ˜แƒแƒœแƒ— แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ”แƒ‘แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒก แƒกแƒฃแƒ แƒแƒ—แƒจแƒ˜?
แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒฃแƒ›แƒ”แƒขแƒ”แƒกแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ แƒแƒ แƒ˜แƒก แƒแƒ แƒแƒ‘แƒ˜แƒ—แƒ˜ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒ˜ แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก; แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ”แƒ›แƒแƒขแƒ”แƒ‘แƒ แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒก แƒกแƒฃแƒ แƒแƒ—แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒ”แƒ›แƒ™แƒ•แƒ˜แƒ“แƒ แƒ”แƒแƒ‘แƒ˜แƒ— แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒ แƒกแƒแƒกแƒฃแƒ แƒ•แƒ”แƒšแƒ˜ แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ˜แƒ“แƒแƒœ. แƒแƒ“แƒ”แƒกแƒ›แƒ” แƒ“แƒแƒคแƒ˜แƒฅแƒ แƒ”แƒ‘แƒฃแƒšแƒฎแƒแƒ แƒ—, แƒ แƒแƒขแƒแƒ› แƒแƒ แƒ˜แƒก แƒแƒ›แƒ“แƒ”แƒœแƒ˜ แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒกแƒฃแƒ แƒแƒ—แƒ˜ dockerhub-แƒ–แƒ”? แƒจแƒ”แƒ“แƒ˜แƒ— แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“ nginx, แƒœแƒแƒฎแƒแƒ•แƒ— 100500 แƒกแƒฃแƒ แƒแƒ—แƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒ˜แƒกแƒ’แƒแƒœ. แƒแƒ› แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒ”แƒ‘แƒ›แƒ แƒแƒ  แƒจแƒ”แƒฅแƒ›แƒœแƒ”แƒก แƒ—แƒแƒ•แƒแƒ“ nginx, แƒ›แƒแƒ— แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ“แƒแƒแƒ›แƒแƒขแƒ”แƒก แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ nginx แƒ—แƒแƒ•แƒ˜แƒแƒœแƒ— แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒก แƒกแƒฃแƒ แƒแƒ—แƒก แƒ“แƒ แƒ“แƒแƒแƒ’แƒ”แƒ›แƒแƒ•แƒœแƒ”แƒก แƒ˜แƒก แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒ—, แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒฃแƒšแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

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

แƒ“แƒ”แƒ“แƒแƒแƒ–แƒ แƒ˜: แƒ›แƒ” แƒแƒ  แƒ›แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒก แƒ แƒ”แƒ”แƒกแƒขแƒ แƒ˜, แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘ แƒ แƒแƒ˜แƒ›แƒ” แƒกแƒแƒฎแƒ˜แƒก S3 แƒแƒœ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒœแƒแƒฎแƒ•แƒแƒก, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ google drive/dropbox

แƒ“แƒแƒ™แƒ”แƒ แƒ˜ CI-แƒจแƒ˜

แƒงแƒ•แƒ”แƒšแƒ แƒ™แƒแƒ›แƒžแƒแƒœแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒ•แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ“แƒ˜, แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜แƒ. แƒ˜แƒกแƒ˜แƒœแƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒ”แƒกแƒ˜, แƒกแƒแƒกแƒฃแƒ แƒกแƒแƒ—แƒ. แƒแƒœแƒฃ, แƒ›แƒแƒ— แƒแƒฅแƒ•แƒ— แƒ”แƒ แƒ—แƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ, แƒ”แƒ แƒ—แƒ˜ แƒขแƒ”แƒฅแƒœแƒแƒšแƒแƒ’แƒ˜แƒฃแƒ แƒ˜ แƒ“แƒแƒกแƒขแƒ (แƒ™แƒแƒ แƒ’แƒแƒ“, แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒแƒœ แƒกแƒแƒ›แƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ”แƒœแƒ).

แƒ”แƒก แƒ™แƒแƒ›แƒžแƒแƒœแƒ˜แƒ”แƒ‘แƒ˜ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒœ แƒ“แƒแƒ™แƒ”แƒ แƒก แƒ—แƒแƒ•แƒ˜แƒแƒœแƒ— แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ”แƒ‘แƒ–แƒ”, แƒกแƒแƒ“แƒแƒช แƒ’แƒแƒ“แƒ˜แƒก CI แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜. แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ: แƒ แƒแƒขแƒแƒ› แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒžแƒ แƒแƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ แƒ“แƒแƒ™แƒ”แƒ  แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒจแƒ˜ แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ”แƒ‘แƒ–แƒ”? แƒ แƒแƒขแƒแƒ› แƒแƒ  แƒ›แƒแƒแƒ›แƒ–แƒแƒ“แƒแƒ— แƒ’แƒแƒ แƒ”แƒ›แƒ build-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ“แƒแƒฌแƒ”แƒ แƒแƒ— Ansible playbook, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒแƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒก nodejs, php, jdk, ssh แƒ™แƒšแƒแƒ•แƒ˜แƒจแƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒžแƒ˜แƒ แƒ”แƒ‘แƒแƒก แƒ“แƒ แƒ.แƒจ. แƒกแƒแƒญแƒ˜แƒ แƒ แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ”, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒฉแƒแƒขแƒแƒ แƒ“แƒ”แƒ‘แƒ แƒ›แƒจแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ‘แƒ?

แƒแƒฎแƒšแƒ แƒ›แƒ”แƒกแƒ›แƒ˜แƒก, แƒ แƒแƒ› แƒ”แƒก แƒแƒ แƒ˜แƒก แƒคแƒ”แƒฎแƒจแƒ˜ แƒกแƒ แƒแƒšแƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ“แƒแƒ™แƒ”แƒ แƒ˜ แƒ—แƒแƒ•แƒ˜แƒกแƒ˜ แƒ˜แƒ–แƒแƒšแƒแƒชแƒ˜แƒ˜แƒ— แƒแƒ แƒแƒœแƒแƒ˜แƒ  แƒ›แƒแƒ’แƒ”แƒ‘แƒแƒก แƒแƒ  แƒ›แƒแƒแƒฅแƒ•แƒก. แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ“แƒแƒ›แƒฎแƒ•แƒ“แƒ CI-แƒกแƒ—แƒแƒœ แƒ“แƒแƒ™แƒ”แƒ แƒจแƒ˜:

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

แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ˜ แƒแƒ  แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ”แƒœ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ”แƒ‘แƒก แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒก แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒจแƒ˜ (แƒ›แƒ” แƒ•แƒ˜แƒงแƒแƒ•แƒ˜ แƒแƒ“แƒ”แƒกแƒฆแƒแƒช แƒแƒกแƒ”แƒ—แƒ˜ แƒ’แƒฃแƒšแƒจแƒ”แƒ›แƒแƒขแƒ™แƒ˜แƒ•แƒแƒ แƒ˜, แƒ›แƒแƒ แƒ—แƒšแƒแƒช, แƒ•แƒฌแƒฃแƒฎแƒ•แƒแƒ  แƒฉแƒ”แƒ›แƒก แƒ—แƒแƒ•แƒก แƒฌแƒแƒ แƒกแƒฃแƒšแƒจแƒ˜ xD). แƒฏแƒแƒ•แƒแƒจแƒ˜ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ’แƒฅแƒแƒœแƒ“แƒ”แƒ— แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ•แƒ”แƒ แƒกแƒ˜แƒ แƒ“แƒ แƒ”แƒ แƒ—แƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒ— แƒจแƒ”แƒชแƒ•แƒแƒšแƒแƒ— แƒ˜แƒก, แƒ แƒแƒช แƒแƒฎแƒšแƒ แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ—. แƒ˜แƒ’แƒ˜แƒ•แƒ”แƒ nodejs-แƒจแƒ˜, แƒแƒ แƒ˜แƒก nvm.

แƒ’แƒแƒ›แƒแƒงแƒ•แƒแƒœแƒ˜แƒก

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

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

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

แƒ—แƒฃ แƒ›แƒแƒ˜แƒœแƒช แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ— แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒก, แƒ›แƒแƒจแƒ˜แƒœ:

  • แƒ˜แƒงแƒแƒ•แƒ˜แƒ— แƒฃแƒ™แƒ˜แƒ“แƒฃแƒ แƒ”แƒกแƒแƒ“ แƒคแƒ แƒ—แƒฎแƒ˜แƒšแƒแƒ“
  • แƒœแƒฃ แƒแƒ˜แƒซแƒฃแƒšแƒ”แƒ‘แƒ— แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒก แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒœ แƒ“แƒแƒ™แƒ”แƒ แƒ˜
  • แƒ›แƒแƒแƒฎแƒ“แƒ˜แƒœแƒ”แƒ— แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒšแƒแƒ™แƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒ แƒ”แƒ แƒ— แƒแƒ“แƒ’แƒ˜แƒšแƒแƒก, แƒแƒ  แƒ’แƒแƒแƒ•แƒ แƒชแƒ”แƒšแƒแƒ— แƒ˜แƒ’แƒ˜ แƒงแƒ•แƒ”แƒšแƒ Dockfile แƒ“แƒ docker-compose แƒกแƒแƒชแƒแƒ•แƒจแƒ˜

PS:

แƒ’แƒ›แƒแƒ“แƒšแƒแƒ‘แƒ— แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ’แƒ˜แƒกแƒฃแƒ แƒ•แƒ”แƒ‘แƒ— แƒ’แƒแƒ›แƒญแƒ•แƒ˜แƒ แƒ•แƒแƒšแƒ” แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒกแƒแƒฅแƒ›แƒ”แƒ”แƒ‘แƒจแƒ˜ แƒ“แƒ แƒœแƒแƒงแƒแƒคแƒ˜แƒ”แƒ  แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒ“แƒฆแƒ”แƒ”แƒ‘แƒก!

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

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