도서

스프링 마이크로 코딩 공작소(1)

뇌장하드 2022. 11. 6. 16:35
  • 모놀리식 아키텍처 vs 마이크로 서비스 아키텍처

모놀리식 아키텍처

모놀리식 아키텍처

애플리케이션이 배포 가능한 하나의 산출물로 생성이 된다.

모놀리식 아키텍처의 장점은 구축 및 배포가 쉽다. 

하지만 애플리케이션의 크기와 복잡성이 증가하면 모놀리식으로 관리를 하는것은 어렵다.

하나의 변경으로 다른 부분까지 영향을 준다면 사용자가 서비스를 다시 접하는 시간이 길어질것이다. 

단점으로 몇가지가 더있다. 

  1. 느린 개발 속도 – 대규모 모놀리식 애플리케이션에서는 개발이 더욱 복잡해지고 속도가 느려집니다.
  2. 확장성 – 개별 컴포넌트를 확장할 수 없습니다.
  3. 안정성 – 모듈에 오류가 있으면 애플리케이션 전체의 가용성에 영향을 줄 수 있습니다.
  4. 기술 채택의 장벽 – 프레임워크 또는 언어를 변경하면 애플리케이션 전체에 영향을 미치므로 변경 시 비용과 시간이 많이 소요되는 경우가 많습니다.
  5. 유연성 부족 – 모놀리스의 경우 모놀리스에서 이미 사용한 기술로 제한됩니다.
  6. 배포 – 모놀리식 애플리케이션을 약간만 변경하는 경우에도 전체 모놀리스를 다시 배포해야 합니다.

마이크로 서비스 아키텍처

마이크로 서비스는 작고 느슨하게 결합된 분산 서비스 이다.

잘 정의 된 작은 조각으로 분해해서 대규모 코드베이스에서 발생하는 복잡한 문제를 해결할수 있다.

 

왜 애플리케이션 구축 방법을 바꾸어야 할까??

1. 복잡성이 증가했다.

2. 고객은 더 빠른 전달을 원한다.

3. 고객 또한 안정적이니 성능과 확장석을 요구한다.

4. 고객은 애플리케이션을 언제든 사용할 수 있길 기대한다.

"소프트웨어 개발의 목적은 긍정적인 비즈니스 영향력을 사용자에게 최대한 빠르게 전달하는 것"

이책에서는 마이크로 서비스 여정을 시작할때에는 다음 사항을 기억하라고 한다.

작고, 단순하고, 분리된 서비스 = 확장가능하고, 회복적이며, 유연한 애플리케이션

 

 

책을 읽다보면 클라우드 컴퓨팅 모델의 종류를 알려준다.

 

IasS : 공급업체는서버, 스토리지, 네트워크 같은 컴퓨팅 자원에 접근 할수 있는 인프라스트럭처를 제공한다. AWS(EC2), Azure(VM) 등이 있다.

CaaS : IaaS와 PaaS 중간 모델로 컨테이너 기반 가상화 형태를 제공한다. CaaS플랫폼에는 AWS(ECS) GCP(GKE) 이 있다. 

PaaS :  이 모델은 사용자가 애플리케이션의 개발, 실행, 유지관리에 집중할수 있는 플랫폼을 제공해준다. 헤로쿠, AWS Elastic Beanstalk가 있다. 

FaaS : 요즘 많이 들리는 서버리스 아키텍처라고 불리는 모델이다. 이 아키텍처는 서버 없이 특정 코드를 실행하는 것을 의미하지 않는다. 이 모델을 사용하면 사용자는 단순히 서비스 개발에만 집중을 할수 있다.

SaaS : 이건 주로 채용공고에서 많이 봤다. SaaS개발해본 경험

SaaS를 이용할 경우 사용자는 인프라 구축, 개발 환경 세팅 및 소프트웨어 개발에 소요되는 비용을 절약할 수 있기 때문에 자체적으로 소프트웨어를 개발하는 것 대비 초기 비용을 대폭 줄일 수 있습니다. 협업툴이라고 이해를 했다. 슬랙, 드롭박스, 마이크로서비스 365 이건 자유도가 낮은게 특징이다.