서버 관리시 발생하는 문제들

  1. 어느 서버가 문제가 있는지
  2. 어떤 서비스가 문제가 있는지
  3. 이런 문제들을 얼마나 빨리 파악하고, 해결할수 있는지
  4. 새로 들어온 주니어를 잘 교육시키려면?
  5. 문제는 밤낮, 연휴에도 발생

해결방안 1 :문서화

  • 위 문제들을 빠르고 정확하게 해결하기 위해 문서화.
  • 점점 관리 서버가 많아지고, 문서를 업데이트 하는것이 시간이 갈수록 불가능에 가까워짐

 

해결방안 2 : 코드로 관리(DevOps 가 하는일)

  • 설치과정 등을 코드로 작성(chef,puppet,ansible,terraform 등등 툴들)
  • 자동화된 스크립트 작성
  • 다수의 서버들이 명령을 대신 실행해줌
  • 단점 : 많은 툴들을 배워야 해서 진입장벽높음, 소프트웨어간 라이브러리간 충돌 문제에는 크게 도움이 안됨

해결방안3 : virtual Machine 도입

  • 가상 하드웨어를 사용. os 필요
  • os 필요해서 사용료 증가
  • 하드웨어를 VM에 일부 할당해야해서 리소스 소비가 크고 느림
  • VM 서비스에 종속됨

해결방안4: 끝판왕 docker 의 도입

  • docker image를 만들면 어디서든 동작(개발 테스트 운영이 일관화됨)
  • vm에 비해 리소스 낭비가 적고 실행도 빠름
  • 오픈소스라 특정업체에 종속 되지 않음
  • 단점 : 컨테이너 수가 늘어나면 관리가 힘듦
  • 현상황 : 현재 docker는 서비스 배포의 기본

 

docker를 사용하며 새롭게 발생한 문제들

+ Recent posts