퍼블릭, 프라이빗, 하이브리드 클라우드 환경에서 확장성 있는 애플리케이션을 만들고 운영할 수 있다.
컨테이너, 서비스 메시, 마이크로 서비스, 불변의 인프라스트럭처, 그리고 선언적 API가 전형적인 접근 방식에 해당된다.
회복성이 있고, 관리 편의성을 제공하며, 가시성을 갖는 느슨하게 결합된 시스템을 사용할 수 있다.
견고한 자동화와 함께 사용하면, 엔지니어는 최소한의 수고로 영항력이 크고 예측 가능한 변경을 할 수 있다.
클라우드 컴퓨팅 : IT 리소스를 인터넷을 통해 on-demand로 제공하고 사용한 만큼만 비용을 지불하는 것.
컨테이너 기반 인프라스트럭처 : 컨테이너 인프라는 가상화 기술 중 하나로 시스템을 가상화하는 것이 아니라 애플리케이션 운영작업을 가상화한 것으로 기존의 하이퍼바이저 기반의 가상화 기술보다 오버헤드가 적고 인프라의 일관성을 유지할 수 있으며, 블루/그린 배포와 같은 소프트웨어의 안전한 배포 및 운영을 가능하게 해주는 기술이다.
MicroService : 애플리케이션을 구성하는 서비스들을 독립적인 작은 단위로 분해하여 구축하고, 각 구성 요소들을 네트워크로 통신하는 아키텍처로 서비스 안정성과 확장성을 지원한다.
CICD 지원 DevOps 프로세스 : CI/CD는 애플리케이션 개발 단계를 자동화하여 애플리케이션을 보다 짧은 주기로 고객에게 제공하는 방법이다. CI/CD의 기본 개념이 지속적인 통합, 지속적인 제공, 지속적인 배포이다. DevOps는 애플리케이션 개발에서 운영까지 협업 프로세스를 자동화하는 것을 말하며 결과적으로 애플리케이션의 개발과 개선 속도를 빠르게 한다.
디플로이 요구가 빈번하고 지속적인 개발
e-비즈니스 웹사이트 프로젝트
클라우드 플랫폼
치명적으로 중요성이 높은 응용프로그램(금융, 전력시스템)
높은 완결성을 필요로 하는 서비스(패키지, 제조, 건설)
Native APP | Web APP | Cloud Native App | |
---|---|---|---|
애플리케이션 개발방법론 | Waterfall | Agile | DevOps |
애플리케이션 운영구조 | 모놀리식 | 멀티티어 | 마이크로서비스 |
애플리케이션 운영 인프라 | 물리서버 | 가상서버 | 컨테이너 |
===============생산성과 민첩성===============>
waterfall : 요구분석, 설계, 디자인, 코딩, 개발의 과정으로 순차적으로 한 단계씩 진행하는 개발 방법론
애자일 : 긴민한, 좋은 것을 빠르게 낭비없이 만든다.
DevOps : 개발과 운영을 같이 한다.
모놀리식 : 애플리케이션의 모든 기능을 다 묶어서 운영하는 구조. 고객의 요구가 다양하고, 라이프 사이클이 짧은 지금의 애플리케이션 서비스의 경우, 각 기능 기능들을 빠르게 개선 해야하고 이들을 연결해서 배포해야 하는데 모놀리식은 이러한 민첩성이 떨어지는 단점이 있다.
멀티티어 : 애플리케이션을 여러 계층으로 나눠서 개발을 하고 이들을 연결해서 하나의 통합된 서비스를 만드는 아키텍쳐
마이크로 서비스 : 애플리케이션 구축을 위한 아키텍쳐 기반의 접근 방식. 전통적인 모놀리식과는 다르게 애플리케이션을 핵심 기능으로 세분화하여 각각을 독립적으로 구축하고 배포할 수 있다. 이는 개별 서비스가 다른 서비스에 영향을 주지 않으며, 독립적 개선이 가능하다는 의미를 가진다.
물리서버
가상서버
컨테이너 : 호스트 OS상에 논리적인 구획을 만들고, 애플리케이션을 작동시키기 위해 필요한 라이브러리나 애플리케이션 등을 하나로 모아 마치 별도의 서버인 것처럼 사용할 수 있게 만든 기술. 컨테이너 엔진을 이용하면 호스트 OS의 리소스를 논리적으로 분리시키고, 여러 개의 컨테이너가 공유하여 사용할 수 있다.