6. 원격제어와 비교해보자!
● telnet, ssh, teamviewer 등 모든 원격제어는 서버, 클라이언트의 구조를 요구함!
● 즉, CI/CD 툴이 "알아서" 소프트웨어를 업데이트 하기 위해서는
최소한 배포 타겟에도 CI/CD 툴이 설치되어 있어야 하는 것
○ 매니저, 워커와 같은 구조
7. 원격제어와 비교해보자!
● telnet, ssh, teamviewer 등 모든 원격제어는 서버, 클라이언트의 구조를 요구함!
● 즉, CI/CD 툴이 "알아서" 소프트웨어를 업데이트 하기 위해서는
최소한 배포 타겟에도 CI/CD 툴이 설치되어 있어야 하는 것
○ 매니저, 워커와 같은 구조
● 그런데 CI/CD 툴들이 이러한 구조를 가지고 있지 않음!
8. "알아서" 업데이트는 어떻게?
● ssh 통신을 프로그래밍 언어로 build, test, run 을 구현
○ python의 paramiko, fabric 등 이미 구현된 라이브러리가 있음
● 직접 구현하는 대신 또다른 툴을 이용
○ ansible, saltstack 등의 툴들이 있음
9. 어떤 방법이 더 좋을까?
프로그래밍
● 비교적 낮은 러닝 커브
○ 그냥 system 함수 사용하면 되니깐...
● 유지 보수 어려움
○ 모든 것을 구현해야 하기 때문에
○ 결국 "코드"를 작성하는 것이기 때문에 일
관성 있게 구현하기 어려울 수 있음
툴 사용
● 러닝 커브 있음
○ 어느 정도인지는 아직 모름
● 유지 보수가 비교적 간단해보임