Anrifragile 특징
1. auto scaling : 자동확장성을 갖는다.
시스템을 구성하고 있는 인스턴스를 하나의 오토스케일링 그룹으로 묶은 다음 그룸에서 유지되어야하는 인스턴스를 지정할 수 있다.
사용량에 따라 자동으로 인스턴스를 증가할 수 있는 환경을 말한다.
에를들면 특수한 이벤트가 있는 달에 서버의 운영개수를 늘린다. 비수기에는 다시 줄일 수 있다.
게임출시, 온라인쇼핑몰이벤트 등일 수 있다. 이러한 작업을 관리자,. 운영자 의해 수작업 처리가 아니라 cpu, 메모리, 네티워크 , 데이터베이스 사용량에 따라 자동으로 처리할 수 있는 개념이다.
2. Microservices
클라우드 네이티브 아키텍처, 클라우드 네이티브 어플리케이션의 핵심이다.
기존 시스템들이 하나의 거대한 형태로 구축되어서 서비스되었다고 하면 마이크로 서비스라는 것은 전체 서비스를 구착하고 있는 개별적인 모듈이나 기능을 독립적으로 개발하고 배포하고 운영할 수 있도록 세분화된 서비스이다.
3. Chaos engineering
카오스 엔지니어링이란 시스템이 급격하고 예측하지 못한 상황이라도 견딜 수 있고 신뢰성을 쌓기 위해 운영중인 소프트웨어 시스템의 실행방법 및 규칙이다.
4. CI/CD
배포 파이프라인이다 . 클라우드 네이티브 어플리케이션은 수십개, 수백개 이상의 마으크로 서비스로 도메인 분리되어 개발된다.
빌드 , 배포를 일일히 수작업으로 하지 않고 자동화된 시스템을 구축하고 하나의 작업에서 다른 작업으로 연계되는 과정을 파이프라인으로 연결시켜놓으면 작은 변화 뿐만 아니라 전체적인 시스템의 업그레이드 작업에서도 빠르게 적용할 수 있게 된다.
클라우드 네이티브 아키텍처란
2010년대 이후부터 IT 시스템은 Enterprise 또는 클라우드 네이티브 아키텍처 형태로 발전해왔다.
특징
1. 확장 가능한 아키텍처
시스템은 필요에 따라서 확장 가능한 형태의 아키텍처로 발전되었다.
수평적 확장으로 인해 많은 사용자 요청을 처리하였고 확장된 시스템으로 인해 시스템의 부하를 분산시킴과 동시에 가용성을 보장할 수 있게 되었다.
시스템 확장은 scale-up, scale-out 으로 나눌 수 있다.
scale-up : 하드웨어의 사양을 높이는 작업이다. 시스템의 CPU나 메모리의 스펙을 높이는 작업등을 말한다.
scale-out: 같은 사양의 서버 즉 인스턴스를 여러개에 배치함으로써 동시에 더 많은 사용자의 요청을 처리할 수 있도록 하는 것이다. ( docker swarm , kubernetes )
시스템의 상황 및 리소스의 사용량 , 로그등을 확인할 수 있다.
2. 탄력적 아키텍처
CI/CD 로 서비스생성-통합- 배포- 비즈니스환경 변화에 대응 시간단축할 수 있게 되었다.
Enterprise Application으로 갈수록 개발인력증가, 수많은 개발환경, 테스트환경, 운영환경, 개발환경, 예비서버등의
많은 환경이 자동화되어 있지 않다면 비즈니스 로직을 개발하는 시간보다 빌드하고 배포하는데 시간을 많이 소유할 수 있다.
3. 장애격리
장애복구에 뛰어나다. 여러개로 분리되어 개발되고 있는 마이크로 서비스들은 하나의 독립적인 작은단위의 어플리케이션과 같다.
다른 서비스와 영향을 최소화 할 수 있다. 특정서비스만 배포할 수 있기 때문이다.
'Springboot' 카테고리의 다른 글
DTO 사용 방법 (0) | 2022.05.03 |
---|---|
[SpringBoot & JPA ] 판매자 POST와 GET 방식 (0) | 2022.02.14 |
[Charter6] Controller 파라미터 (0) | 2021.11.21 |
MVC, 템플릿 엔진 (0) | 2021.09.24 |
JPA 란? (0) | 2021.07.27 |