이뮤터블 인프라스트럭처

인프라 환경을 코드로 생성하고 유지보수도 코드로 수정해서 인프라를 새로 만들어내도 인프라는 변경되지 않음. 쉽게 말해서 기존의 인프라 환경을 변경하는 것이 아닌 파괴하고 새로운 인프라 환경으로 구축하는 방식.

특히 세션 정보를 공유하지 않는 shared nothing 상태가 되어야 이뮤터블 인프라 스트럭처가 가능. (특히 프론트, API 서버 같이 프레젠테이션 계층과 어플리케이션 계층이 가능. 데이터 계층은 shared everything이라 불가능)

블루 그린 배포

블루 그린은 DNS, CDN, 로드밸랜서로 그룹을 교체할 수 있다.

이뮤터블 인프라스트럭처와 미이크로 서비스

어플리케이션의 모듈을 업그레이드하거나 할 때 새로운 환경에서 모든 기능이 잘 작동하는지 확인해야 한다. 이때 일부를 바꿔도 애플리케이션의 기능이 많으면 이를 테스트하는 시간이 오래걸림.

마이크로 서비스는 독립해서 디플로이 할 수 있는 서비스 단위로 설계뙨 애플리케이션.

비즈니스 수행력을 고려한 개발 조직, 시스템 구성과 디플로이의 자동화, 간결한 엔드포인트 정의, 분산된 데이터가 특징.

컨테이너 가상화 기술

하이퍼 바이저 형 가상화 기술

하이퍼바이저(호스트 OS) 위에 가상의 서버를 만들고 그안에 게스트 OS가 탑재되는 가상화 환경

컨테이너형 가상화 기술

하나의 호스트 OS 위에 독립된 가상 서버에 해당하는 컨테이너를 여러개 만드는 방식

컨테이너에 애플리케이션 실행 환경을 페키징해서 넣을 수 있음. 이를 통해 OS 영역과 애플리케이션 실행 환경의 경계를 명확히 하여 책임 역할 분리

각각의 컨테이너는 호스트 OS의 프로세스로 동작. 이 프로세스 자체를 다른 하드웨어에서 그대로 실행 가능. 인프라 환경에서 하드웨어 계층을 밑바닥 부터 완젆히 격리.