🀷🏼‍♀️ Etc.../- linux, aws, docker, k8s

[Docker] 배포의 κ΄€μ μ—μ„œ 도컀가 ν•„μš”ν•œ 이유

Wonit 2020. 11. 24. 15:48

도컀가 처음 λ“±μž₯ν–ˆμ„ λ‹Ήμ‹œμ—λŠ” 마치 GIT이 처음 λ“±μž₯ν–ˆμ„ λ•Œμ™€ 같은 λΆ„μœ„κΈ°λΌκ³  ν•˜μ˜€λ‹€.


subicuraλ‹˜μ˜ λΈ”λ‘œκ·Έμ—μ„œ λ°œμ·Œν•œ 도컀 섀문쑰사에 μ˜ν•˜λ©΄ 90%κ°€ κ°œλ°œμ— μ‚¬μš©μ€‘μ΄κ³  80%κ°€ DevOps에 μ‚¬μš©ν•  μ˜ˆμ •μ΄λ©° 58%κ°€ 운영 ν™˜κ²½μ—μ„œ μ‚¬μš©μ€‘μ΄λΌκ³  닡변이 λ‚˜μ™”λ‹€.

 

μ΄λŸ¬ν•œ 도컀가 인기가 λ„λŠ” 이유둜 μžμ—°μŠ€λŸ½κ²Œ μš°λ¦¬λŠ” 도컀λ₯Ό λ°°μ›Œμ•Όν•  첫 번째 μ΄μœ κ°€ 된 것이닀.

 

사싀 λ§‰μ—°ν•˜κ²Œ 남듀이 ν•˜λ‹ˆκΉŒ 무언가λ₯Ό λ°°μš΄λ‹€λŠ” 것은 κ·Έλ‹₯ 쒋은 μ ‘κ·Ό 방법은 μ•„λ‹ˆλΌκ³  μƒκ°ν•˜μ§€λ§Œ, 이 λΆ„μ•Όμ—μ„œλŠ” 남듀이 ν•˜λ‹ˆκΉŒ 무언가λ₯Ό λ°°μš΄λ‹€λŠ” 것이 ν•˜λ‚˜μ˜ μ΄μœ κ°€ 될 수 μžˆλ‹€κ³  μƒκ°ν•œλ‹€.


기본적으둜 ν˜‘μ—…μ΄λΌλŠ” μƒνƒœκ³„κ°€ 베이슀된 곳이라 λ‚΄κ°€ λͺ¨λ₯΄κ³  남듀이 μ•„λŠ” 기술이면 ν˜‘μ—…μ΄λΌλŠ” 것이 진행될 수 μ—†κΈ° λ•Œλ¬Έμ— μš°λ¦¬λŠ” 흐름에 λ―Όκ°ν•΄μ•Όν•˜κ³  흐름을 λ°›μ•„λ“€μ—¬μ•Ό ν•œλ‹€.


κ·Έλž˜μ„œ μš°λ¦¬λŠ” 도컀λ₯Ό λ°°μ›Œμ•Ό ν•œλ‹€.


μ§€κΈˆμ€ λ§‰μ—°ν•˜μ§€λ§Œ 이 이후에 μžˆμ„ μ‹œλ¦¬μ¦ˆ μ—μ„œλŠ” μ§„μ§œ 도컀가 ν•„μš”ν•œ μ΄μœ μ— λŒ€ν•΄μ„œ 이야기 해보렀 ν•œλ‹€.

 

도컀가 ν•„μš”ν•œ μ΄μœ μ— λŒ€ν•΄μ„œ μž μ‹œλ‚˜λ§ˆ 이야기 ν•΄λ³΄μžλ©΄

λ§Œμ•½ μš°λ¦¬κ°€ κΉƒλž©μ„ λ‹€μš΄λ‘œλ“œλ°›μœΌλ €κ³  ν•œλ‹€.


ν•˜μ§€λ§Œ μš°λ¦¬κ°€ κ°œλ°œν•˜λŠ” μ»΄ν“¨ν„°λŠ” 2λŒ€μ΄κ³  각각 OSκ°€ λ‹€λ₯΄λ‹€.

 

그리고 곡식 λ¬Έμ„œμ—λŠ” 각각 λ‹€λ₯Έ μ„€μΉ˜ 방법을 μ œκ³΅ν•œλ‹€.

ν•˜μ§€λ§Œ μš°λ¦¬κ°€ 도컀λ₯Ό μ‚¬μš©ν•œλ‹€λ©΄, ν•œ 번의 λͺ…λ Ήμ–΄λ‘œ μ € 3개의 운영 ν™˜κ²½μ—μ„œ κΉƒλž©μ„ μ„±κ³΅μ μœΌλ‘œ λ‹€μš΄λ°›μ„ 수 있게 λ˜λŠ” 것이닀.

 

그럼 λ„μ»€λŠ” μœ„μ™€ 같은 κΈ°λŠ₯을 μ–΄λ–»κ²Œ κ°€λŠ₯ν•˜κ²Œ ν•˜λŠ”μ§€ μ•Œμ•„λ³΄λ©° 전톡적인 λ°°ν¬μ—μ„œ κ°€μƒν™”λœ 배포λ₯Ό λ„˜μ–΄ μ»¨ν…Œμ΄λ„ˆ 배포의 과정을 μ•Œμ•„λ³΄μž.

 

  1. 전톡적 배포 μ‹œλŒ€
  2. κ°€μƒν™”λœ 배포 μ‹œλŒ€
  3. 도컀가 λ“±μž₯ν•œ μ»¨ν…Œμ΄λ„ˆ 배포 μ‹œλŒ€

 

전톡적인 배포의 μ‹œλŒ€

μ΄ˆκΈ°μ— μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ ν•˜λ‚˜μ˜ 물리 μ„œλ²„μ—μ„œ μ‹€ν–‰ν•˜μ˜€λ‹€.

 

문제

ν•˜λ‚˜μ˜ 물리 μ„œλ²„μ—μ„œ μ—¬λŸ¬ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ‹€ν–‰ν•œλ‹€λ©΄ 각각의 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μž‘λŠ” λ¦¬μ†ŒμŠ€λ“€μ˜ 크기λ₯Ό μ‘°μœ¨ν•˜κΈ°κ°€ μ–΄λ €μ› λ‹€.


μ–΄λ–€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ ν•œ μ„œλ²„μ˜ λ¦¬μ†ŒμŠ€λ₯Ό λͺ¨λ‘ μ‚¬μš©ν•˜λŠ” 것이 μžˆμ„ μˆ˜λ„ 있고, 그런 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ—¬λŸ¬ κ°œκ°€ μžˆμ„ 수 μžˆλ‹€.

ν•΄κ²°

κ·Έλž˜μ„œ 이λ₯Ό ν•΄κ²°ν•˜λŠ” 방법은 μƒˆλ‘œμš΄ 물리 μ„œλ²„ μ¦μ„€μ΄μ—ˆλ‹€.


ν•˜μ§€λ§Œ 물리 μ„œλ²„λ₯Ό 많이 μœ μ§€ν•˜κ³  κ΄€λ¦¬ν•˜λŠ” 것은 μ‘°μ§μ—κ²Œ λΉ„μš©μ  μΈ‘λ©΄μ—μ„œμ˜ 큰 타격을 주게 λ˜μ—ˆλ‹€.

 

κ·Έλž˜μ„œ 이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄μ„œ κ°€μƒν™”λΌλŠ” κ°œλ…μ΄ λ„μž… λ˜μ—ˆλ‹€.

 

κ°€μƒν™”λœ 배포 μ‹œλŒ€

단일 물리 μ„œλ²„μ˜ CPUμ—μ„œ μ—¬λŸ¬ VM을 μ‹€ν–‰μ‹œν‚¬ 수 μžˆλŠ” 가상화가 νƒ„μƒν•œ 것이닀.

 

μš°λ¦¬κ°€ μœˆλ„μš°μ—μ„œ λ¦¬λˆ…μŠ€λ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” Virtual Machine μ΄λΌλŠ” 가상화 κΈ°μˆ μ„ μ‚¬μš©ν•œλ‹€.

 

κ°μ’…μ˜ OS ν™ˆνŽ˜μ΄μ§€μ— κ°€λ©΄ ISO 이미지 νŒŒμΌμ„ μ œκ³΅ν•˜λŠ”λ°, μš°λ¦¬λŠ” ν•΄λ‹Ή 이미지 νŒŒμΌμ„ μ΄μ˜Ήν•΄μ„œ λ‚˜μ˜ OS 내뢀에 μƒˆλ‘œμš΄ Guest OSλ₯Ό μ„€μΉ˜ν•΄μ„œ 컴퓨터가 마치 μ—¬λŸ¬ λŒ€κ°€ μžˆλŠ” 것 처럼 μ΄μš©ν•œλ‹€.

 

이런 가상화λ₯Ό μ΄μš©ν•˜λ©΄ 물리 μ„œλ²„μ—μ„œ λ¦¬μ†ŒμŠ€λ₯Ό μ•žμ„  μ„ΈλŒ€μ™€ 달리 효율적으둜 μ‚¬μš©ν•  수 μžˆμœΌλ©΄μ„œ μ‰½κ²Œ μƒˆλ‘œμš΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μΆ”κ°€ν•˜κ±°λ‚˜ μ—…λ°μ΄νŠΈ ν•  수 μžˆμ—ˆλ‹€.


κ²°κ·Ή μžμ—°μŠ€λŸ½κ²Œ ν•˜λ“œμ›¨μ–΄ λΉ„μš©μ„ μ ˆκ°ν•  수 있게 λ˜μ—ˆλ‹€.

 

κ°€μƒν™”λœ 배포의 μ‹œλŒ€λŠ” 사싀상 ν˜„λŒ€ 배포의 과도기라고 μƒκ°ν•œλ‹€.


μ§€κΈˆ λ‹Ήμž₯에도 κ°€μƒν™”λœ 배포둜만 μ„œλ²„ μš΄μ˜μ„ ν•  수 μžˆλ‹€.


크게 문제점이 μžˆλŠ” 것은 μ•„λ‹ˆμ§€λ§Œ 도컀가 λ“±μž₯ν•œ μ΄ν›„λ‘œ (μ»¨ν…Œμ΄λ„ˆ 기술이 μ‚¬μš©λœ 이후) μ»¨ν…Œμ΄λ„ˆ 기반 배포가 λ‹€μ–‘ν•œ μž₯점이 있기 λ•Œλ¬Έμ— μ»¨ν…Œμ΄λ„ˆλ‘œ 많이 λ„˜μ–΄κ°€κ³  μžˆλŠ” 좔세라고 μƒκ°ν•œλ‹€.

 

도컀가 λ“±μž₯ν•œ μ»¨ν…Œμ΄λ„ˆ 배포의 μ‹œλŒ€

μ»¨ν…Œμ΄λ„ˆ 배포의 μ‹œλŒ€λŠ” VMκ³Ό μœ μ‚¬ν•œ λ°©μ‹μ΄μ§€λ§Œ 훨씬 가볍닀.

μ»¨ν…Œμ΄λ„ˆ λ°°ν¬λŠ” κ°€μƒλ¨Έμ‹ μ˜ ν•„μš”μ—†λŠ” 뢀뢄을 μ—†μ• κ³  λ‹€μŒκ³Ό 같은 좔가적인 ν˜œνƒμ„ μ œκ³΅ν•œλ‹€.

  • κ°€λ²Όμš΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 생성과 배포
  • 지속적인 개발, 톡합 및 배포
  • ν΄λΌμš°λ“œ 및 OS κ°„μ˜ 이식성
  • λ¦¬μ†ŒμŠ€ 격리

VM 이미지λ₯Ό μ‚¬μš©ν•˜λŠ”κ²ƒμ— λΉ„ν•΄μ„œ μ»¨ν…Œμ΄λ„ˆ 이미지 생성이 쉽고 효율적이라고 ν•œλ‹€.

 

λ˜ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ ν…ŒμŠ€νŠΈ 및 κΈ°λŠ₯이 μΆ”κ°€λœλ‹€λ©΄ 자체λ₯Ό λ°°ν¬ν•˜λŠ” 것이 μ•„λ‹ˆκΈ°λΌ 이미지λ₯Ό λΉŒλ“œν•΄μ„œ 배포할 수 있기 λ•Œλ¬Έμ— μ‰½κ²Œ 톡합 및 배포가 κ°€λŠ₯ν•˜κ³  μ΄λ―Έμ§€μ˜ λΆˆλ³€μ  νŠΉμ„±μœΌλ‘œ μ‰½κ²Œ 둀백이 κ°€λŠ₯ν•΄μ§„λ‹€.