logo
logo
데이터
Zipkin
분산 환경에서 로그 트레이싱하는 오픈소스 프레임워크이며, 복잡한 시스템에서 마이크로 서비스의 상호 작용에 대한 개요를 파악하는데 도움을 준다.
StackOverflow 질문 수: 456
Github Stars : ★ 17160
사용 기업
푸드테크
소셜/컨텐츠
기타
종합
techstack-logo
마켓컬리
techstack-logo
라인
techstack-logo
워시스왓
techstack-logo
네이버
techstack-logo
SK플래닛
techstack-logo
씨제이이엔엠
기술 블로그 글
라인
실전! Spring Boot 3 마이그레이션
안녕하세요. LINE Plus에서 태국 LINE BK 채널 서버 개발 및 운영 업무를 맡고 있는 이석재입니다. LINE BK에서는 지난 9월에 LINE BK 보험 중개 서비스를 출시했습니다. 이 서비스는 Spring Boot 2를 기반으로 개발하기 시작해서 올해 초에 Spring Boot 3로 마이그레이션했는데요. 서비스를 정식 오픈한 후에는 현실적으로 대규모 변경 작업이 어렵다는 점과, Spring Boot 2의 OSS 지원이 올해 11월부로 EOL(end of life)을 맞이한다는 점(참고)을 고려해 마이그레이션을 결정하고 진행했습니다. 현재 안정적으로 운영되고 있으며, 이 프로젝트에서 쌓은 경험을 바탕으로 최근에는 여신(lending) 서비스를 위한 API 서버를 Spring Boot 3 환경으로 이관하는 작업을 진행하고 있습니다.본 글에서는 저희가 Spring Boot 2 환경에서 Spring Boot 3 환경으로 이관하는 과정에서 경험한 내용을 공유하려고 합니다. 작년 11월에 출시된 Spring Boot 3는 내부적으로 상당한 변화가 있었습니다(참고). 이에 따라 Spring Boot와 함께 사용하는 다른 Spring 프로젝트들도 버전 업그레이드를 진행하면서 다양한 신규 기능이 추가되는 등의 크고 작은 변화가 있었는데요. 모든 변경 사항을 다루는 것은 어렵겠지만, 팀에서 운영하는 7개의 모듈을 업그레이드하는 과정에서 중요하다고 판단한 내용을 중점으로 다뤄보려고 합니다. 이 글이 마이그레이션을 계획하고 있는 분들에게 참고할 만한 가이드가 되길 바라며 시작하겠습니다.Spring Boot는 다음과 같은 순서로 마이그레이션을 진행했습니다.• Java 버전을 최소 17 이상으로 업데이트• Spring Boot 버전을 3으로 업데이트마이그레이션을 준비할 때 관련 공식 문서는 꼭 읽어보는 게 좋습니다. Spring Boot 3가 릴리스된 지 1년이 되어가는 시점에서 가장 신뢰할 수 있는 참고 자료인데요. 프로젝트에서 사용하고 있는 Spring과 Spring Boot의 버전을 확인하고 Spring Boot 3.0 문서부터 릴리스 노트와 마이그레이션 가이드를 최소 한 번 이상 꼼꼼히 읽어보시기를 권장합니다. 읽으면서 담당하는 프로젝트에 해당하는 내용을 Spring 프로젝트별로 정리해 놓는 것도 좋은 방법입니다.만약 Spring Boot 버전이 최신 버전과 비교해 많이 낮은 상태라면, 업데이트할 때 바로 3 버전으로 업데이트하기보다는 마이너 버전부터 한 단계씩 순차적으로 진행하는 것을 것을 추천합니다. 또는 공식 문서인 Spring Boot Config Data Migration Guide를 참고해서 Spring Boot 2.4 버전으로 먼저 업데이트한 후 Spring Boot Config Data(application.yml, application.properties) 관련 변경 사항을 확인한 뒤 2.7 버전을 거쳐 3 버전으로 업데이트하는 것도 좋을 것 같습니다.Spring 프로젝트는 시맨틱 버저닝(semantic versioning) 방
github
hibernate
java
mysql
prometheus
spring
zipkin
라인
LINE 광고 플랫폼의 MSA 환경에서 Zipkin을 활용해 로그 트레이싱하기
안녕하세요. LINE Ads에서 DSP Manager를 담당하고 있는 김용훈입니다. LINE Ads는 일본과 태국, 대만 등 전 세계 LINE 사용자를 대상으로 하는 글로벌 광고 플랫폼을 개발하고 있습니다. LINE의 광고 플랫폼은 대량으로 생성되는 데이터를 실시간으로 처리하며 사용자들이 관심을 가질 광고를 예측해서 제공합니다. DSP(Demand Side Platform) Manager는 간단히 이야기하면 광고주가 사용하는 광고 관리 도구라고 할 수 있습니다. 광고 등록과 등록한 광고에 대한 심사, 심사 완료 후 집행된 광고의 효과와 비용에 대한 청구 정보 확인 등 여러 가지 기능을 제공하는 시스템입니다. LINE Ads에서는 이런 요구 사항을 효율적으로 적용해 나가기 위해서 많은 인원이 효율적으로 협업할 수 있는 환경이 필요하다고 판단, MSA를 기반으로 각 서비스를 게이트웨이와 애드서비스, 리포트, 빌링, 리뷰 등의 여러 개로 구성했습니다. 이런 선택은 서비스가 성장하면서 인원이 늘어났을 때 효율적으로 협업할 수 있도록 좋은 영향을 주었지만 서비스가 안정화되기까지는 발생한 문제들을 확인하는 데 어려움이 있었습니다. 이런 경험을 바탕으로 MSA 환경에서 효율적으로 문제를 확인하기 위해 LINE Ads에서 진행하고 있는 것들을 공유하려고 합니다. MSA 환경과 OpenTracing이란 모놀리식(monolithic)과 MSA(Micro Service Architecture)에 대해서 간단하게 설명하겠습니다. 모놀리식의 경우 하나의 서버가 서비스의 전반적인 기능을 모두 제공합니다. 그로 인해 복잡도가 증가하고 역할을 나누기 어려운 등 많은 문제가 발생하지만, 클라이언트의 요청을 받으면 하나의 스레드에서 모든 요청을 실행하므로 로그를 확인하기 쉽다는 장점이 있습니다. 그에 반해 MSA의 경우에는 각 서비스의 복잡도가 낮아지고 역할 분담이 용이하지만 클라이언트의 요청을 받았을 때 여러 개의 마이크로 서비스 간에 통신이 발생해 로그를 확인하기 어려운 문제가 있습니다. 이런 문제를 해결하기 위한 방법으로 OpenTracing이 알려져 있습니다. OpenTracing은 간단히 말해 애플리케이션 간 분산 추적을 위한 표준이라고 할 수 있습니다. 이 표준의 대표적인 구현체로 Jaeger와 Zipkin이 있는데요. LINE Ads에서는 Java와 Spring 프레임워크 환경에서 손쉽게 연동할 수 있는 Zipkin을 선택했습니다. OpenTracing 환경 구성하기 Zipkin 설정하기 먼저 Zipkin에 대해 알아보겠습니다. Zipkin의 아키텍처는 아래와 같습니다. Zipkin의 아키텍처는 간략하게 아래와 같이 설명할 수 있습니다. Reporter가 Transport를 통해서 Collector에 트레이스 정보를 전달합니다.전달된 트레이스 정보는 Database에 저장됩니다.Zipkin UI에서 API를 통해 해당 정보를 시각화해서 제공합니다. 각 컴포넌트를 조금 더 자세히 살펴보겠습니다.  Reporter각 서버는 계측(instrumented) 라이
java
spring
zipkin
네이버
NAVER 오픈소스 세미나 - Performance does matter
다양한 컴포넌트의 조합으로 구성된 서비스를 운영하다보면 장애나 성능 문제가 발생했을 때 정확한 원인을 파악하는데 시간이 오래 걸린다는 또다른 난제에 부딪히곤 합니다. NAVER에서도 시스템 복잡도가 높아지며 발생하는 이러한 문제들을 해결하기 위해 여러가지 고민을 했고, 그 결과 Pinpoint라는 새로운 플랫폼을 만들어서 오픈소스로 공개한 바 있습니다. (참고: 대규모 분산 시스템 추적 플랫폼, Pinpoint) 공개 이후 Pinpoint는 NAVER 서비스 전반에서 대규모 분산 시스템의 성능을 분석하고 문제를 진단, 처리하는데 사용되고 있습니다. 비슷한 고민으로부터 탄생한 오픈소스 APM (Application Performance Monitoring)과 distributed tracing 기술들을 공유하는 네이버 오픈소스 세미나가 7월 11일 (목) 오후 1시부터 6시까지 강남역 D2SF에서 진행됩니다. Pinpoint, Zipkin, Apache Skywalking 개발자들을 직접 만나고 함께 토론할 수 있는 자리에 여러분을 초대합니다! -------------------------------------------------------------------------------- * 일정: 7월 11일 (목) 오후 1시 30분 ~ 6시 * 입장은 오후 1시부터 가능합니다. * 장소: 강남역 D2SF 16층 * 참가신청: https://www.onoffmix.com/event/185090 * 프로그램 * Key Note - Overall Pinpoint - 강운덕 (NAVER) * 연사 소개: Founder of Naver Pinpoint project, interested in performance and automation. * 발표자료 * Apache SkyWalking - APM supports traditional distributed system and Cloud Native stack - Wu Sheng (Leader of Project Skywalking, Tetrate) * 세션 요약 * The introduction about the Apache Top Level Project, SkyWalking. Share with attendees what are the core concepts SkyWalking is built from, how we build a modelization, light and powerful OSS APM system. Also, include a short video show about how SkyWalking UI looks like today. * 연사 소개: Apache SkyWalking APM project Founder & VP. Apache ShardingSphere co-founder. Microsoft MVP. * 발표자료 * Whats new in Zipkin - Adrian Cole (Leader of Project Zipkin, Pivotal) * 세션 요약 * Zip
zipkin
연관 기술 스택
techstack-logo
Kibana
techstack-logo
Prometheus
Copyright © 2025. Codenary All Rights Reserved.