goblin
리니팅
goblin

공지사항

전체 방문자
오늘
어제
  • 분류 전체보기 (75)
    • 개발 (31)
      • Spring (12)
      • JPA (4)
      • JAVA (4)
      • Python (6)
      • Docker (1)
      • Error (3)
      • Spring Cloud로 개발하는 MSA (1)
    • 알고리즘 (32)
    • 자료구조 (3)
    • 컴퓨터 개론 (3)
    • 개인 프로젝트 (4)
      • 쇼핑몰 만들기 (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

태그

  • 스프링
  • 다이나믹프로그래밍
  • 파워자바
  • 알고리즘
  • 문자열
  • 조합
  • Intellij
  • 구현
  • 백준
  • springboot
  • inflearn
  • 클래스
  • sorting
  • tdd
  • 정렬
  • 코딩테스트
  • 프로그래머스
  • 파이썬
  • 동적계획법
  • dp
  • 객체
  • Spring
  • python
  • 스프링부트
  • 코딩테스트연습
  • 다이나믹 프로그래밍
  • JPA
  • gradle
  • BOJ
  • 자료구조

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
goblin

리니팅

개발/Spring Cloud로 개발하는 MSA

Microservice와 Spring Cloud의 소개 (1)

2022. 10. 14. 19:50
728x90

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4/

 

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) - 인프런 | 강의

Spring framework의 Spring Cloud 제품군을 이용하여 마이크로서비스 애플리케이션을 개발해 보는 과정입니다. Cloud Native Application으로써의 Spring Cloud를 어떻게 사용하는지, 구성을 어떻게 하는지에 대해

www.inflearn.com

이 글은 위 강의를 수강하고 작성합니다.

 

[Software의 발전 과정]

  • 1960s~1980s : main frame의 시대. 하드웨어의 성격이나 사양에 맞춰 시스템 구축.
  • 1990s~2000s : 분산 시스템의 발전(시스템 안정화). 
  • 2010s~ : Fragile과 반대되는 Anti-fragile의 시대. Cloud Native를 활용한 시스템이 활발하게 구축.

 

[Antifragile]

  • Auto Scaling : 자동 확장성, 사용량에 따라 자동으로 인스턴스 증가. (ex. 쇼핑몰 - 5월, 12월 등에 서버의 운영 개수를 늘린다.)
  • Micro Service : 기존의 서비스들이 하나의 거대한 형태로 이루어진 것과는 달리 전체 서비스를 구축하고 있는 개별 모듈 및 기능을 독립적으로 개발, 배포, 운영할 수 있는 서비스
  • Chaos Engineering : 시스템이 예측할 수 없는 상황에서도 견딜 수 있어야 한다.
  • Continuous deployments : CI/CD

CI/CD

자동화 된 시스템을 구축하고 하나의 작업에서 다른 작업으로 연계되는 과정을 파이프라인으로 연결 시켜 놓은 것

    -> 전체적인 시스템 업그레이드를 빠르게 적용 가능

 

[Cloud Native Architecture]

  • 확장 가능한 Architecture
    • 시스템의 수평적 확장에 유리
    • 확장된 서버로 시스템의 부하를 분산하며 동시에 가용성을 보장할 수 있다.
    • 모니터링
  • 탄력적 아키텍처
    • 서비스 생성 - 통합 - 배포, 비즈니스 환경 변화에 대응 시간 단축
    • 분할된 서비스 구조
    • 무상태 통신 프로토콜
    • 변경된 서비스 요청에 따라 사용자 요청 처리(동적 처리)
  • 장애 격리(Fault isolation)
    • 특정 서비스에 오류가 발생해도 다른 서비스에 영향을 주지 않는다.

[Cloud Native Application]

  • CI/CD를 통해 빌드 - 테스트 - 배포를 자동적으로 해야한다.
  • DevOps : 개발 조직과 운영 조직의 통합
    • 기존은 도메인 분석, 시스템 설계, 구현, 테스트, 배포 등 과정을 거쳐 시스템 개발. (과정이 오래 걸림) -> 기간이 길어지는 만큼 변화에 유연한 대처 어려움
    • DevOps환경은 지속적으로 기획, 빌드, 테스트, 배포를 시스템이 종료될 때까지 무한히 실시하여 즉각적인 수정 가능 -> 서비스의 구조를 작은 단위로 분할할 수 있어 더 자주 통합, 테스트, 배포 가능
  • MicroServices
  • 컨테이너 가상화 : 하나의 Application을 구성하는 Micro Service들을 Cloud 환경에 배포하고 사용하기 위함.
    • 적은 비용으로 탄력성 있는 시스템 구축 가능.
    • Cloud Native Architecture의 핵심
728x90
반응형
    goblin
    goblin

    티스토리툴바