Overview

  • 인터넷은 가능하나 Inbound가 제한된 환경에 놓인 다수의 임베디드 또는 서버 형태의 Linux 머신들을 관리하기 위한 위한 OpenSSH server container 와 Node.js CLI
  • 회사 특성 상 일부분만 자동화가 가능할 것이므로, 일반적인 SSH 접속과 자동화 모두 고려해 클라우드를 통한 SSH 연결을 기반으로 한 자동화를 기획했습니다.
  • 다양한 컴퓨터 비전 솔루션 의 배포에 사용되었습니다.

enter image description here

Technology

  • 접속 대상 머신에 autossh container 를 docker와 podman으로 이중화된 형태로 설치해 가용성을 높일 수 있음
  • 명령을 수행할 장치와 수행할 명령은 json 파일로 정의되고, Node.js CLI는 이 파일들의 경로를 지정해서 실행
  • Redis에 stdout, stderr를 임시로 저장하고 SQLite에 영구 저장해 운영 상황을 기록

enter image description here

Lessons

  • 저와 팀원들 모두 해당 tool을 사용하지 않더라도 SSH 터널링을 자유자재로 사용할 수 있게 되어 인프라 관리를 수월하게 할 수 있게 되었습니다.
  • 팀에 이 tool을 제안하고 개발을 주도하면서 많은 시간과 노력을 아낄 수 있게 되어 뿌듯했습니다.
  • CLI 형태를 넘어서 배포된 서비스들에 대한 주기적인 Health check 기능을 가진 웹 애플리케이션으로 확장을 고려했으나, 기회가 주어지지 않아서 아쉬움이 남습니다.