ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Spring Cloud 페이지 한글 정리
    개발 일지/Cloud 2022. 5. 19. 14:25
    반응형

    안녕하세요.

     

    이전 글에 이어서 spring.io에 있는 Spring Cloud 페이지를 읽어보겠습니다.

     


    Cloud

    분산 시스템을 개발하는 것은 어려울 수 있습니다.

    복잡도는 애플리케이션 계층에서 네트워크 계층으로 이동하고 서비스 사이에 더 큰 상호작용을 요구합니다.

     

    우리의 코드를 'cloud-native'로 만든다는 것은 외부 구성(configuration), 격리성(statelessness), 로깅 및 지원 서비스 연결과 같은 12가지 문제를 처리하는 것을 의미합니다.

    Spring Cloud 프로젝트에는 클라우드에서 애플리케이션을 실행하는 데 필요한 많은 서비스가 포함되어 있습니다.


    Spring Cloud 아키텍처

    출처: https://spring.io/cloud


    서비스 탐색

    클라우드에서 애플리케이션은 항상 다른 서비스의 정확한 위치를 알 수 없습니다.

    Netflix Eureka와 같은 서비스 레지스트리나 HashiCorp Consul과 같은 사이드카 솔루션을 활용할 수 있습니다.

     

    Spring Cloud는 Eureka, Consul, Zookeeper, 그리고 Kubernetes의 빌트-인 시스템과 같은 인기 있는 레지스트리에 대한 DiscoveryClient 구현을 제공합니다.

     

    또한 서비스 인스턴스 사이에 부하 분산을 위한 Spring Cloud Load Balancer도 있습니다.

     

    > 튜토리얼


    API 게이트웨이

    사용 중인 클라이언트와 서버가 너무 많기 때문에 클라우드 아키텍처에 API 게이트웨이를 포함하는 것이 좋습니다.

    게이트웨이는 메시지 보안 및 라우팅, 서비스 감추기, 로드 제한하기 및 여러 유용한 작업을 처리할 수 있습니다.

     

    Spring Cloud Gateway는 API계층을 정밀하게 제어하고 Spring Cloud 서비스 탐색(Discovery)과 클라이언트측 로드 밸런싱 솔루션을 통합합니다.

     

    장점:

    • Low latency
    • good throughput
    • a very small percentage of timeout

     

    > 튜토리얼

     


    Cloud configuration

    클라우드에서 구성(configuration)은 단순히 애플리케이션 내부에 포함될 수 없습니다.

    구성은 여러 애플리케이션, 환경 및 서비스 인스턴스에 대처할 수 있을 만큼 유연해야 되고 가동 중지 시간 없이 동적 변경을 처리해야 합니다.

     

    Spring Cloud Config는 이러한 부담을 완화할 수 있게 설계되었고 Git과 같은 버전 관리 시스템과 연동할 수 있는 기능을 제공합니다.

     

    > 튜토리얼


    Circuit Breakers

    분산 시스템은 신뢰성을 보장하지 않습니다.

    개별 요청(request)에 대해 응답이 시간 초과가 발생하거나 완전히 실패할 수 있습니다.

     

    Spring Cloud Circuit Breaker는 Resillience4J, Sentinel 또는 Hystrix의 3가지 옵션이 있습니다.

     

    > 튜토리얼


    Tracing

    분산 애플리케이션의 디버깅은 복잡하고 시간이 오래 걸릴 수 있습니다.

    장애가 발생하면 독립적인 여러 서비스의 추적 정보를 통합해야 할 수 있습니다.

     

    Spring Cloud Sleuth는 예측 가능하고 반복 가능한 방식으로 애플리케이션을 계측할 수 있습니다.

    그리고 Zipkin과 함께 사용하면 발생할 수 있는 모든 대기 시간 문제를 해결할 수 있습니다.


    Testing

    클라우드에서는 안정적이고 신뢰할 수 있는 안정적인 API를 사용하면 좋지만 이를 달성하는 데는 약간의 구성이 필요합니다.

    Contract-based 테스트는 성과가 좋은 팀이 일정을 유지하기 위해 자주 사용하는 기술 중 하나입니다.

    API의 콘텐츠를 공식화하고 코드가 계속 점검되도록 테스트를 구축함으로써 도움이 됩니다.

     

    Spring Cloud Contract는 Groovy, Java 또는 Kotlin으로 작성된 계약을 통해 REST 및 메시징 기반 API에 대한 계약 기반 테스트 지원을 제공합니다.

     

    > 튜토리얼


    음...!

     

    spring.io의 클라우드 페이지에 있는 내용들은 각 영역들에 대한 요약이었습니다.

    그런데도 카테고리가 상당히 많군요.

     

    토픽만 해도 총 6개 였습니다.

     

    하나 하나 좀더 자세히 들여다보고 튜토리얼은 좀 해보면 지금보다 이해도가 더 높아지겠죠!

    이제 행동에 옮겨야 할 시간이군요.

     

    반응형
Designed by Tistory.