개요
⇒ 클라우드 네이티브 기술은 조직이 Public, Private 그리고 Hybrid Cloud와 같은 동적인 환경에서 확장 가능한 애플리케이션을 개발하고 실행할 수 있도록 해주는 기술
⇒ Container, Micro Service, Service Mesh, Immutable Infra, Declarative API가 이러한 접근 방식의 예이며 이러한 기술은 회복성, 관리 편의성, 가시성을 갖춘 느슨하게 결합된 시스템을 가능하게 해주는 견고한 자동화 기능을 함께 사용하면엔지니어는 영향이 큰 변경을 최소한의 노력으로 자주 예측 가능하게 수행할 수 있다.
⇒ Cloud Native Computing Foundation은 벤더 중립적인 오픈 소스 프로젝트 생태계를 유지함으로서 위와 같은 패러다임 채택을 촉진해서 최신 기술 수준의 패턴을 대중화해서 이런 혁신을 누구나 접근 가능하도록 한다.
IT 서비스 개발 및 구현 방식의 변화
⇒ 개발 방식
DevOps/ DevSecOps
Agile/ Scrum
Kanban
Waterfall
Waterfall/Scrum/Fall
Lean
⇒ 애플리케이션 아키텍쳐
Monolithic : 하나로 개발
N-Tier
Microservices
⇒ Packaging
Physical Server
Virtual Server
Container
⇒ Infrastructure
직접 Data Center 구축
Hosted
Cloud
Cloud Native 적용 이유
⇒ 서비스 배포 시간 단축 : Containers + Microservice를 통해 개발 팀과 운영 팀 사이의 의사 소통 향상
⇒ 애플리케이션 및 서비스 현대화
⇒ 신속한 신규 서비스 개발 사이클
⇒ 사업 성장을 위한 조직 문화 혁신 촉진
⇒ IT 목표
⇒ 사업 성과

Pillars of Cloud Native
⇒ DevOps
애자일 방법론
선형적 순서로 구성하는 워터폴 방식의 프로젝트 관리 기법의 단점을 보완하기 위해서 등장
반복적인 개발 주기와 자기 조직화 팀을 강조하는 일련의 관행
변화에 대응하는 것이 계획을 따르는 것보다 우선
DevOps 개요
IT 서비스 설계, SW 개발, 릴리즈 및 운영에 이르기까지 전체 서비스 수명 주기에 함께 참여하는 IT 서비스 운영 및 개발 엔지니어의 업무 방식
팀이 애플리케이션 개발에서 프로덕션 운영에 이르는 전체 프로세스를 소유하는 방법론
일련의 기술 구현을 넘어 문화와 프로세스의 완전한 변화를 요구
전체 기능이 아닌 작은 구성 요소에서 작업한느 엔지니어 그룹을 요구하여 일반적인 오류 소스인 핸드 오프를 줄인다.
소프트웨어 개발 조직과 운영 조직간의 상호 의존적 대응이며 조직이 소프트웨어 제품과 서비스를 빠른 시간에 개발 및 배포하는 것이 목적
Tool Chain
PLAN : 목적을 수행하기 앞서 방법이나 절차 등을 미리 생각해서 계획
CODE : 코드 개발 및 검토, 버전 관리 도구, 코드 병합
BUILD : CI 도구를 사용해서 빌드
TEST : TEST 도구를 이용해서 테스트를 자동화
PACKAGE : 애플리케이션이 DEPLOY 되기 직전
RELEASE : 변경 사항 관리, 릴리즈 승인, 릴리즈 자동화
OPERATE : 인프라 스트럭쳐 구성 및 관리 - IaC(Infrastructure as Code) 도구
MONITORING : 성능 모니터링, 사용자 경험


⇒ CI/CD
⇒ Microservices
⇒ Containers