monolithic app 모든 기능이 단일프로그램 안에 구현됨 비현실적, 비효율, 매우낮은생산성 비대한 app, 일부가 update되어도 전체 app이 re-deploy되어야함, bug가 전체 app에 영향 미침, 새로운 기술을 채택하기에 장벽이있음 microservices 거의 모든 응용, 특히 Web 기반App (front end + backend services including DB, login, search service, mail, etc.) 각 단일 서비스가 서로 loosely coupled microservices들 사이에서의 Communication은? 프로그램 속에서 arg 전달하는 대신에 HTTP 통신프로토콜 등을 통해 데이터를 교환=>REST(ful)API(JSON) 각 servi..
DevOps/Docker
기본적으로 컨테이너는 메모리 위에 올라와 있는 데이터(인메모리 데이터) 만 사용, 하드 디스크에 쓰지 않는다. ⇒ light 하고 빠르게 서버 시스템에 접근하기 위함이다. volume 옵션을 주면 컨테이너가 디스크 파일에 직접 접근할 수 있다. ⇒ 하지만 컨테이너가 디스크 파일에 직접 접근하는 것은 좋지 못한 방식이다. volume 사용은 지양하되, DB에만 접근하는 마이크로서비스를 만들어야 한다. ⇒ 기존의 RDB로 표현 안되는 데이터 (ex 빅데이터)들이 있다. 이는 no SQL DB를 사용하면 된다. 마이크로서비스란? Monolithic App vs Microservices monolithic app 모든 기능이 단일프로그램 안에 구현됨 비현실적, 비효율, 매우낮은생산성 비대한 app, 일부가 up..
컨테이너와 호스트 OS가 다른 계열의 OS를 사용할 경우 하이퍼 바이저 ( ⇒ OS 스위처)가 필요. 컨테이너 프로세스 (linux 프로그램) 하이퍼바이저 호스트 OS (windows) 일반 프로세스와 컨테이너 차이 일반 프로세스 하이퍼 바이저 위에 vm을 설치 컨테이너 하이퍼바이저를 이용하여 컨테이너를 실행 ⇒ 메모리 점유율 적어서 효율적