teamdable / vv-deploy-actions

1 stars 0 forks source link

self-hosted runner 리서치 #20

Closed hyeseung-of-dable closed 2 years ago

hyeseung-of-dable commented 2 years ago

AS-IS)

github에서 제공하는 cloud runner 사용 (-) private pip 라이브러리 설치하기 위해, parameter로 extra-index-url , trusted-host를 제공해야함 ( 보안 이슈 ? ) 팀에서 사용하는 private pip 라이브러리

(-) CI를 할 때도, GPU가 없어서 제한적임

TO-BE)

hyeseung-of-dable commented 2 years ago

⭐⭐⭐ Self-hosted runners

장점

단점

untrusted workflows가 실행된다면 -> 서버와 네트워크 환경에 심각한 보안 위험 ( private 레포에서만 실행하면 문제 없어 보임. 참고 )


Level

-> 현재는 repository-level로 테스트중 organization 관리자 권한이 없어서, 레포에서 각각 runner 설정해주어야함


항상 application 켜두기

i. nohup

nohup bash run.sh &

-> 주말에 켜두었는데, 꺼졌음!

ii. service
https://docs.github.com/en/actions/hosting-your-own-runners/configuring-the-self-hosted-runner-application-as-a-service docs대로 실행하면, /etc/systemd/system에 service가 생성된다. ( 장비가 리부트되어도 자동으로 켜짐 👍 ) sudo service actions{tab} status로 확인가능



github hosted runner 사용 with docker

필요한 script들을 도커이미지에 미리 생성 -> github hosted runner에서 docker 실행해서 사용 가능

(-) vv script들이 업데이트될때마다 도커이미지 업데이트해야함

jingu-lee commented 2 years ago

@hyeseung-of-dable self-hosted runner를 github actions로 연결할 때 장점 갑자기 생각이 났는데, CI와 branch protect 등에 활용될 것 같아서 좋아보입니다.

hyeseung-of-dable commented 2 years ago

actions runner

self-hosted 장비(온프레미스 or 클라우드)를 러너머신으로 사용 -> actions 탭에서 workflows를 트리거하면 어디서 작업이 실행?

i. runner machine에서 직접 실행

ii. Docker contatiner에서 실행

https://docs.github.com/en/actions/using-containerized-services/about-service-containers

hyeseung-of-dable commented 2 years ago

어떤 장비를 actions runner로 사용하면 좋을까?

AS-IS 2022-03-15) 오피스 2번 장비로 하는 중.

TO-BE)

  1. CI gpu가 있어야, ml 프로세서의 unittest가 가능해짐 -> 필요한 때에 g4dn.xlarge aws 인스턴스 생성 or 오피스 장비 이용

  2. CD cpu만 있어도 가능함. 비교적 단순한 작업을 실행 -> aws의 저렴한 인스턴스 사용하는 것이 어떤지? ( 1번장비는 테스트 장비로 환경이 일정하지않고, 재부팅이 잦음 2번장비는 장애 발생시, 대체할 수 있는 장비임. )

온디맨드 인스턴스 요금

t2.micro $ 0.0144

t2.medium $ 0.0576 ( 약 5만원 / 1month ) ⭐

t2.large $ 0.1152 ( 약 10만원 / 1month )

비교하기) 기존의 github-hosted runner

private repo -> 제한이 있음 ( 참고 )

Screen Shot 2022-03-15 at 4 12 03 PM 한 달에 3000분은 무료 -> 거의 무료라고 생각해도 될듯

도커 컨테이너의 필요성

갑작스럽게 self hosted server가 바뀌게 되더라도 신속하게 대응 가능 ( 필요한 스크립트들이 전부 해당 도커 컨테이너에 있어야 함 ) -> (-) vv-edge-setup 업데이트되면 도커이미지도 업데이트해야함 -> (-) aws를 상시 띄워두면, 갑자기 server를 변경해야하는 일이 없지않을까?

결론)