포스트

2022-01-26-TIL

Today I Learned

VDI

VDI(Virtual Desktop Infrastructure)는 데스크톱 환경을 각자의 PC가 아니라 중앙 서버의 가상 머신에서 돌리고, 사용자는 거의 모든 기기에서 그 가상 데스크톱에 접속해 쓰는 구조다. Microsoft Azure의 설명도 VDI를 중앙 서버에 호스팅된 가상 데스크톱에 접근하게 해 주는 IT 인프라로 정의한다.

데스크톱 환경이 서버에 모여 있으니 업데이트, 보안, 설정을 한곳에서 관리할 수 있다는 점을 장점으로 든다. 반대로 보면 사용자는 화면을 네트워크로 받아 쓰는 셈이라, 접속 환경이 사용 경험에 그대로 영향을 준다.

  • https://brunch.co.kr/@clay1987/89

docker-compose dev and prod separation

개발 환경과 운영 환경은 같은 서비스 구성을 쓰더라도 세부 설정이 다르다. Docker 공식 문서 Use Compose in production은 운영용으로 바꿀 만한 항목으로 다음을 든다.

  • 애플리케이션 코드를 호스트에서 마운트하던 볼륨 바인딩을 제거해 코드가 컨테이너 안에만 있게 하기
  • 호스트에 바인딩하는 포트 바꾸기
  • 로그 수준이나 외부 서비스 주소 같은 환경 변수 다르게 주기
  • restart: always 같은 재시작 정책 지정하기
  • 로그 수집기 같은 서비스 추가하기

그래서 공통 설정은 compose.yaml에 두고, 운영에서 달라지는 부분만 compose.production.yaml 같은 별도 파일에 적는 방식을 권한다. 실행할 때 -f 옵션을 여러 번 주면 앞의 파일 위에 뒤의 파일이 덮어써진다(Merge Compose files).

1
docker compose -f compose.yaml -f compose.production.yaml up -d

아무 옵션 없이 실행하면 Compose는 compose.yaml과 선택적인 compose.override.yaml을 함께 읽는다. 그래서 개발용 설정을 override 파일에 두면 개발자는 평소처럼 docker compose up만 하면 되고, 운영 배포에서만 파일을 명시하는 구성이 자연스럽다.

  • https://www.reddit.com/r/docker/comments/8c1o0l/noob_managing_multiple_dockercompose_files_devprod/
  • https://docs.docker.com/compose/production/
  • https://docs.docker.com/compose/extends/#different-environments
  • https://thestartupfactory.tech/how-to-fully-utilise-docker-compose-during-development/
  • https://meetup.toast.com/posts/277
  • https://www.loginradius.com/blog/async/production-grade-development-using-docker-compose/

ELK monitoring

ELK는 Elasticsearch, Logstash, Kibana의 앞 글자다. 로그를 모으고(Logstash, Beats), 저장하고 검색하며(Elasticsearch), 시각화하는(Kibana) 조합이다. ELK 자체도 운영하는 시스템이므로 상태를 지켜봐야 한다.

Elastic의 Stack monitoring 문서에 따르면 Elasticsearch 노드, Logstash, Kibana, Beats의 로그와 지표를 수집해 Elasticsearch에 저장하고 Kibana에서 볼 수 있다. 운영 구성에서는 지표를 운영 클러스터가 아니라 별도의 모니터링 클러스터로 보내는 구조를 예시로 든다. 배포 상태 모니터링 문서는 그 이유로, 별도 모니터링 배포에 보내 두면 운영 배포에 장애가 나도 로그와 지표를 볼 수 있다는 점을 든다.

  • https://cmelcmel.tistory.com/112
참고한 자료외부 출처 5

외부 출처

이 글은 저작권자의 CC BY 4.0 라이선스를 따릅니다.

댓글

아직 댓글이 없습니다