작성자 :
Shannon Kurtas, Pro & Institutional Trading 제품 이사
Max Kaplan, 핵심 인프라 및 데이터 엔지니어링 수석 엔지니어링 이사
Suketu Gandhi, Trading Technology 수석 엔지니어링 이사
스티브 헌트, 부사장 엔지니어링
약 220년 전, Kraken은 최초이자 가장 성공적인 디지털 자산 거래소 중 하나가 되기 위한 선구적인 사명을 시작했습니다. 우리는 67개의 암호화폐만 거래하기 시작했지만 현재 700개 블록체인과 XNUMX개 이상의 시장에서 XNUMX개 이상의 자산을 지원합니다.
우리는 빠르게 성장했습니다. 블록체인 기술, 보안, 네트워킹, 인프라 및 거래 시스템의 전문가를 포함한 제품 및 엔지니어링 팀 덕분에 엄청난 수요를 따라갈 수 있었습니다.
업계가 성숙하고 발전함에 따라 고객 기반의 규모와 성격도 변했습니다. 우리는 우리를 통해 개인 투자자와 거래자에게 계속 서비스를 제공하는 동안 크라켄 및 크라켄 프로 주문 흐름의 점점 더 많은 부분이 플랫폼을 통해 알고리즘 방식으로 도착합니다. 우리의 API 전문 및 기관 고객으로부터. 여기에는 기업, 헤지 펀드, 독점 거래 회사, 프라임 브로커, 핀테크 및 Kraken의 풍부한 유동성에 의존하는 기타 거래소가 포함됩니다.
우리의 거래 시스템은 특히 실행 비용을 개선하고 시장 위험을 관리하며 거래 기회를 활용하기 위해 속도, 안정성 및 가동 시간에 크게 의존하는 이러한 수요 증가를 충족할 수 있도록 확장해야 했습니다. 우리는 최우선 순위를 타협하지 않고 이 모든 것을 달성했습니다. 보안.
오늘 우리는 이러한 확장의 최근 노력, 성공 및 결과를 강조하게 되어 기쁩니다.
성능의 최우선
우리는 과중한 실제 조건에서 시스템 성능을 관찰하고 이해하기 위해 계측 코드에 중점을 둡니다. 우리는 또한 경쟁 벤치마킹을 사용하여 시간이 지남에 따라 쌓이는 방식을 확인합니다. 그 결과 중 일부를 살펴보겠습니다.
속도 및 지연
우리는 대기 시간의 형태로 거래 속도를 측정합니다. 대기 시간은 왕복 지연이며 클라이언트 시스템에서 전송한 거래 요청(예: 주문 추가)과 거래소에서 이를 승인하는 사이의 시간으로 정의합니다.
전통적인 거래소와 달리 암호화폐 장소는 일반적으로 지리적으로 덜 집중되어 있으며 완전한 코로케이션을 제공하지 않습니다. 대부분의 경우 완전히 클라우드 기반입니다.
대기 시간에 민감한 클라이언트는 장소에 물리적으로 가장 가까운 곳에 코드를 배포합니다. 따라서 공정한 비교에는 해당 특정 장소와 가장 관련성이 높은 지역의 대기 시간 측정이 포함됩니다.
대기 시간은 단일 클라이언트와 거래소 간의 지속적인 연결에서도 거래 요청마다 다릅니다. 이는 인터넷 기반 거래의 차이점과 변동성, 그리고 거래소가 부하를 처리하는 방식 때문입니다. 따라서 단일 수치가 아닌 백분위수 측면에서 대기 시간을 논의해야 합니다. 예를 들어 P25 대기 시간은 25번째 백분위수 대기 시간을 나타냅니다. 즉, 25ms의 P5는 주어진 샘플링 시간 프레임 내 모든 거래 요청의 25%가 5ms 이상의 대기 시간을 가졌다는 것을 의미합니다.
여기에서 지난 달 기준선 측정 동안 위치에 대해 정규화된 Kraken의 최상의 경로 P25 대기 시간과 다른 지역의 일부 상위 경쟁사를 볼 수 있습니다.
약 2.5ms의 기본 왕복 대기 시간은 97년 1분기 대비 2021% 이상 향상되었음을 나타냅니다.
안정
앞서 언급한 바와 같이 과부하 상태에서의 실제 성능은 최상의 성능 및 절대 대기 시간 수치보다 더 중요하지는 않지만 그만큼 중요합니다.
실행 비용 개선, 슬리피지 감소 및 시장 위험 관리는 다음을 최소화하는 데 달려 있습니다. 변동성 각 거래 요청 사이의 대기 시간. 우리는 이것을 변동성 지터라고 부르며 동일한 샘플링 시간 프레임에 대해 서로 다른 대기 시간 백분위수 수치 간의 차이를 측정합니다.
P25 및 P95 대기 시간으로 지터를 측정하여 상당한 범위의 성능과 시간이 지남에 따라 관찰된 동작을 캡처할 수 있습니다. 예를 들어 5년 12월 2022~XNUMX일 주 동안 FTX의 위기와 궁극적인 폐쇄로 인해 시장 변동성이 극심한 기간 동안 더 많은 상위 경쟁업체들과 함께 우리의 지터가 어떻게 쌓였는지 측정했습니다.
여기에서 변동성과 부하가 극적으로 증가했음에도 불구하고 거래 인프라가 어떻게 예외적으로 잘 작동했는지 확인할 수 있습니다. 일주일 동안 이 지터는 30ms를 초과하지 않았습니다. 한편, 다른 많은 교환의 경우 정기적으로 수백 밀리초에 도달하거나 수직 스파이크로 표시된 것처럼 요청이 완전히 시간 초과되었습니다.
처리량
처리량은 주어진 시간 동안 거래소에서 처리한 성공적인 거래 요청(주문 추가, 주문 취소, 주문 편집 등)의 수를 반영합니다.
대기 시간과 유사하게 이론적 또는 관찰된 용어로 처리량을 논의합니다.
관찰된 처리량은 속도 제한을 포함하여 상호 관련된 많은 요소를 반영하므로 더 관련이 있습니다. DDoS 공격을 방지하고 이론적 한계 내에서 트래픽을 편안하게 유지하기 위해 이러한 제한을 설정합니다. 클라이언트 기반의 크기, 일반 시장 수요, 주문 흐름(가격 변동성과 다른 곳의 거래 활동에 의해 크게 영향을 받음) 및 로드 하의 성능(특정 수준의 서비스 저하를 넘어서면 클라이언트가 자체 요청을 조절하기 시작함)이 모두 영향을 미칩니다. 이러한 한계.
여기서 우리는 4년 1분기와 2021년 1분기 사이에 관찰된 최대 처리량이 2023배 이상 향상되었음을 설명했습니다. 이 변경은 분당 250k 요청에서 분당 1mm 이상의 요청으로 이동하는 것이며, 이 수준과 우리의 극적인 변화 사이에는 상당한 헤드룸이 남아 있습니다. 이론적 최대 처리량을 개선했습니다.
가동 시간
올해 우리는 계획된 유지 관리로 인한 중단 시간을 최소화하고, 예정되지 않은 중단 시간의 빈도와 영향을 줄이고, 가동 시간에 부정적인 영향을 미치지 않으면서 기능 업데이트 및 성능 개선 속도를 높이기 위해 노력했습니다.
이러한 변화에는 24시간 연중무휴 운영되는 점점 더 성숙해지고 대규모 운영 탄력성 팀과 같은 기술 및 운영 개선이 모두 포함되었습니다.
2021년 최악의 달 가동 시간은 99%에 가까웠지만, 이러한 개선을 통해 점점 더 공격적인 오류 예산과 99.9% 이상의 거래 가동 시간 목표를 설정할 수 있었습니다.
노력
블루/그린 및 롤링 배포
우리는 점점 더 많이 블루/그린 배포 전략 API 게이트웨이와 많은 내부 서비스에 걸쳐 있습니다. 이에 대한 매우 단순화된 그림이 그림 6에 강조 표시되어 있는 것을 볼 수 있습니다. 완전한 기능을 갖춘 여러 코드 스택을 병렬로 운영함으로써 현재 클라이언트 트래픽을 수신하고 있는 기본 스택을 방해하지 않고 기능을 배포할 수 있습니다. 이후에 트래픽을 새 스택으로 다시 라우팅하여 배포에 영향을 주지 않거나 문제가 발생할 경우 매우 빠른 롤백 절차를 수행할 수 있습니다. 또한 로드 밸런싱을 위해 여러 인스턴스를 운영하는 당사의 많은 서비스의 경우 이러한 인스턴스에 대한 업데이트는 all-or-none이 아닌 롤링 기반으로 발생합니다. 이러한 접근 방식을 통해 이제 대부분의 기술 스택에 영향을 주지 않고 더 자주 업데이트할 수 있습니다.
코드로서의 인프라
크라켄은 크게 활용합니다. 코드형 인프라(IaC) 과 테라 폼 및 유목민, 대부분 모든 코드 배포의 일관성과 반복성을 보장합니다. 지속적 통합 및 지속적 제공으로 Terraform 리포지토리를 자동화하여 변경 사항을 빠르고 안정적으로 롤아웃할 수 있습니다. 지난 XNUMX년 동안 우리는 IaC를 사용하여 새로운 인프라를 배포했으며 오늘날 거의 모든 인프라가 이 패턴을 사용합니다. 이러한 움직임은 중요한 이정표였으며 우리는 클라우드 기반 및 온프레미스 애플리케이션 모두에 IaC를 활용합니다.
연결 및 네트워킹
우리는 AWS와 온프레미스 데이터 센터 간의 프라이빗 연결을 활용합니다. 이 연결을 통해 Kraken은 우리가 항상 AWS에 연결할 수 있도록 가능한 가장 짧은 대기 시간, 가장 높은 보안 및 중복 경로를 보장합니다. 최근의 네트워킹 및 라우팅 개선으로 위에서 강조한 기본 왕복 거래 대기 시간 감소의 상당 부분이 가능해졌습니다.
계측 및 원격 측정
세분화되고 정확한 로깅, 메트릭 및 요청 추적을 통해 예기치 않은 병목 현상 및 성능 문제를 실시간으로 신속하게 식별, 진단 및 해결할 수 있습니다. 이 원격 측정 및 자체 경쟁 모니터링 외에도 최근에 API 대기 시간 및 가동 시간 메트릭을 업데이트했습니다. status.kraken.com 일반적으로 클라이언트가 경험한 수치를 보다 정확하게 반영하기 위해 외부 모니터 배포를 사용합니다.
최적화된 API 배포
언제든지 당사의 API 및 거래 스택은 Websocket 또는 REST API를 통해 알고리즘 방식으로 수만 개의 연결 거래를 지원합니다. 새로운 고성능을 포함하여 수십만 개의 추가 연결이 UI 플랫폼에서 제공됩니다. 크라켄 프로 플랫폼. 이러한 플랫폼은 이 게시물에서 설명한 것과 동일한 핵심 거래 인프라 이점을 많이 얻을 수 있지만 워크로드는 근본적으로 다르고 요구 사항도 다릅니다. 특정 데이터 피드, 압축, 스로틀링, 집계 등을 통해 UI 플랫폼을 지원하는 맞춤형 API 배포를 통해 속도를 더욱 개선하고 낭비되는 대역폭을 줄여 전체 클라이언트 용량을 늘릴 수 있었습니다.
핵심 코드 개선
우리는 핵심 서비스를 리엔지니어링하여 스택 전반에 걸쳐 다양하고 극적인 개선을 이루었습니다 녹 그리고 C++. 이러한 변경 사항은 가능한 경우 비동기 메시징 및 데이터 지속성을 더 많이 사용하고 더 많은 CI/CD 파이프라인에 강력한 성능 프로파일링을 구축하는 데 도움이 됩니다. 또한 정적 및 동적 코드 분석을 위해 가장 잘 알려진 방법을 사용할 수 있습니다. 이러한 개선 사항 중 일부는 매칭 엔진의 평균 대기 시간이 밀리초에서 마이크로 초. 이는 90년 전에 비해 4% 이상 개선되었으며 XNUMX배 이상의 처리량을 지원합니다.
무엇 향후 계획?
기본 FIX API
또한 현물 시장 데이터 및 거래를 위한 기본 FIX API도 곧 출시할 예정입니다. FIX는 금융 정보 교환(Financial Information Exchange)의 약자로 많은 기관에서 주식, FX 및 고정 수입을 대규모로 거래하는 데 사용하는 강력하고 포괄적이지만 유연한 산업 표준 API입니다. 광범위한 제XNUMX자 소프트웨어와 오픈 소스 지원을 통해 신뢰할 수 있고 실전 테스트를 거친 프로토콜로 기관이 Kraken과 통합하고 거래를 시작하는 것이 더 쉽고 빠릅니다.
Kraken의 기본 FIX API는 또한 세션 기반 연결 해제 시 취소, 순서대로 메시지 전달 보장, 세션 복구 및 재생을 포함하여 웹소켓 및 REST API와 관련된 구조적 뉘앙스와 이점을 제공합니다. FIX API는 현재 베타 테스트 중입니다 — 손을 내밀다 타이어 킥을 돕고 싶다면!
가동 중지 시간이 없는 매칭 엔진 배포
우리는 API 게이트웨이 및 다양한 백엔드 서비스(인증, 감사, 원격 측정 등)의 영향이 없는 배포 빈도에 상당한 영향을 미쳤습니다. 하지만 매칭 엔진에 대한 자료 업데이트는 여전히 예약 유지 관리와 짧은 가동 중지 시간이 필요하며 대략 격주로 수행합니다.
그러나 우리 팀은 멀티캐스트 기술로 일부 내부 메시징 시스템을 재설계하기 위해 많은 노력을 기울였습니다. 에어론, 내결함성 고가용성 시스템을 위한 매우 성능이 뛰어나고 강력한 도구 모음입니다. 그 결과 2023년 말에 트레이딩 스택 전반에 걸쳐 가동 중지 시간이 없는 계획된 배포가 가능할 것입니다.
도움이 필요하다? 손을 내밀다
이메일 주소를 사용하여 계정 관리 및 기관 영업 팀에 연락하십시오. 이러한 업데이트에 대해 자세히 알아보고, 거래 연결을 최적화하는 방법을 논의하거나, FIX API와 같은 향후 기능을 베타 테스트할 수 있습니다.
더 많은 증거가 필요하십니까? 눈을 떼지 말고 업데이트를 구독하십시오. status.kraken.com 계획된 유지 관리, 서비스 정보, 대기 시간 및 가동 시간 통계를 위해.
- SEO 기반 콘텐츠 및 PR 배포. 오늘 증폭하십시오.
- 플라토 블록체인. Web3 메타버스 인텔리전스. 지식 증폭. 여기에서 액세스하십시오.
- 출처: https://blog.kraken.com/post/17936/performance-at-kraken/
- :이다
- $UP
- 2021
- 2022
- 2023
- 250K
- 67
- 7
- 9
- a
- 할 수 있는
- 소개
- 위의
- 절대
- 계정
- 계정 관리
- 정확한
- 정확히
- 달성
- 가로질러
- 활동
- 주소
- 영향을
- 집합
- 적극적인
- 알고리즘 적으로
- All
- 수
- 양
- 분석
- 및
- API를
- API
- 어플리케이션
- 구혼
- 건축
- 있군요
- 도착
- AS
- 유산
- 자산
- At
- 공격
- 회계 감사
- 인증
- 자동화
- 유효성
- 가능
- 평균
- AWS
- 백엔드
- 대역폭
- 기지
- 기준
- 기초
- BE
- 가
- 전에
- 시작
- 시작하다
- 존재
- 벤치마킹
- 혜택
- BEST
- 베타
- 더 나은
- 사이에
- 그 너머
- blockchain
- blockchain 기술
- blockchains
- 넓은
- 더 넓은
- 브로커
- 예산
- 빌드
- by
- C + +
- 전화
- CAN
- 생산 능력
- 투자
- 포착
- 나르다
- 케이스
- 가지 경우
- 센터
- 어떤
- 이전 단계로 돌아가기
- 변경
- 거래차트
- 클라이언트
- 클라이언트
- 닫기
- 암호
- 왔다
- 비교
- 경쟁력
- 경쟁
- 포괄적 인
- 손상
- 집중된
- 조건
- 행위
- 확인하기
- 연결
- 연결
- 입/출력 라인
- 계속
- 끊임없는
- 핵심
- 기업
- 비용
- 비용
- 암호화는
- 크립토 통화를
- 현재
- 데이터
- 데이터 센터
- DDoS 공격
- 로사리오 염주
- 깊은
- 지연
- 기쁜
- 배달
- 수요
- 요구
- 따라
- 배포
- 배포
- 전개
- 배포
- 기술 된
- 무례
- DID
- 차이
- 차이
- 다른
- 디지털
- 디지털 자산
- 책임자
- 토론
- 고통
- 말라
- 중단 시간
- 극적으로
- 극적으로
- 적하
- ...동안
- 동적
- e
- 마다
- 쉽게
- 노력
- 노력
- 중
- 다른
- 이메일
- 강조
- 사용 가능
- 엔진
- 엔지니어링
- 전적으로
- 주식
- 오류
- 등
- 조차
- 진화
- 예
- 넘다
- 교환
- 교환
- 실행
- 경험
- 전문가
- 탐험
- 외부
- 매우
- 눈
- 요인
- 공정한
- 특색
- 특징
- 그림
- 도
- 금융
- 금융 정보
- 파인애플
- 기업
- 먼저,
- 수정
- 고정
- 고정 수입
- 융통성있는
- 흐름
- 럭셔리
- 형태
- 출현
- FRAME
- 진동수
- 빈번한
- 에
- FTX
- 가득 찬
- 근본적으로
- 자금
- 추가
- 게다가
- FX
- 일반
- 일반적으로
- 주어진
- Go
- 성장하는
- 성장한
- 성장
- 보증
- 보장
- 처리
- 발생
- 있다
- 헤드 룸
- 무겁게
- 무거운
- 방지책
- 헤지 펀드
- 도움
- 높은
- 최고
- 강조
- 강조
- 방법
- How To
- HTTPS
- 수백
- 확인
- 영향
- 영향
- 중대한
- 개선
- 개선하는
- 개량
- 개량
- in
- 기타의
- 포함
- 포함
- 포함
- 포함
- 수입
- 증가
- 증가
- 증가
- 더욱 더
- 표시된
- 개인
- 산업
- 정보
- 인프라
- 기관
- 기관 고객
- 기관
- 통합
- 완성
- 내부의
- 인터넷 기반
- 법률
- 문제
- IT
- 그
- 유지
- 걷어
- 알려진
- 크라켄
- 넓은
- 성
- 숨어 있음
- 진수
- 지도
- 배우다
- 수
- 레벨
- 이점
- 처럼
- 제한
- 유동성
- 하중
- 위치
- 만든
- 본관
- 유지
- 주요한
- 과반수
- 확인
- 유튜브 영상을 만드는 것은
- 관리
- 구축
- 관리
- .
- 시장
- 시장 자료
- 시장 변동성
- 시장
- 거대한
- 어울리는
- 자료
- 성숙한
- 최대 폭
- 최고
- 방법
- 그 동안에
- 측정
- 측정
- 소개
- 말하는
- 메시지
- 메시지
- 방법
- 통계
- 획기적 사건
- 최소화
- 최저한의
- Mission
- 순간
- 모니터
- 모니터링
- 달
- 배우기
- 가장
- 움직임
- MS
- 여러
- 출신
- 자연
- 거의
- 부정적으로
- 네트워킹
- 신제품
- 다음 것
- 십일월
- 번호
- 숫자
- of
- 제공
- on
- ONE
- 열 수
- 오픈 소스
- 운영
- 운영
- 운영
- 운영
- 운영 탄력성
- 기회
- 최적화
- 주문
- 기타
- 전체
- 자신의
- 평행
- 부품
- 특별히
- 파티
- 과거
- 통로
- 무늬
- 성능
- 고집
- 육체적으로
- 개척
- 계획
- 플랫폼
- 플랫폼
- 플라톤
- 플라톤 데이터 인텔리전스
- 플라토데이터
- 포인트 적립
- 가능한
- 게시하다
- 강한
- 예방
- 가격
- 청춘
- 이전에
- 우선
- 사설
- 찬성
- 프로덕트
- 링크를
- 프로파일 링
- 증명
- 소유권
- 보호
- 프로토콜
- 목적
- 놓다
- Q1
- 빠른
- 빨리
- 빨리
- 범위
- 율
- 차라리
- 도달
- 도달
- 현실 세계
- 실시간
- 전수
- 최근
- 최근에
- 회복
- 감소
- 감소
- 의미
- 반영
- 반영하다
- 지방
- 지역
- 규칙적으로
- 관련된
- 대표
- 의뢰
- 요청
- 필요
- 요구조건 니즈
- 되튀기
- REST
- 결과
- 결과
- 위험
- 강력한
- 롤
- 구르는
- 거칠게
- 판매
- 같은
- 규모
- 스케일링
- 일정
- 보안
- 연속
- 서브
- 서비스
- 서비스
- 세션
- 세트
- 몇몇의
- 영상을
- 종료
- 상당한
- 단순화
- 이후
- 단일
- 크기
- 미끄럼
- So
- 소프트웨어
- 일부
- 출처
- 구체적인
- 속도
- 스파이크
- Spot
- 현물 시장
- 안정
- 스택
- 쌓인
- 스택
- 서
- 스타트
- 시작
- 통계
- 아직도
- 가입
- 성공한
- 이러한
- 스위트
- SUPPORT
- 지원
- 체계
- 시스템은
- 목표
- 팀
- 팀
- 기술
- 테크니컬
- Technology
- 조건
- 테라 폼
- test
- 지원
- 감사
- 그
- XNUMXD덴탈의
- 그들의
- 이론적 인
- 따라서
- Bowman의
- 제삼
- 수천
- 을 통하여
- 처리량
- 시간
- 시계열
- 시간 초과 된
- 시대
- 에
- 오늘
- 검색을
- 상단
- 트레이싱
- 상인
- 트레이딩
- 전통적인
- 교통
- 신뢰할 수있는
- ui
- 궁극의
- 아래에
- 이해
- 예기치 않은
- 업데이트
- 업데이트
- 가동 시간
- us
- 사용
- 여러
- 거대한
- 속도
- 장소
- 장소
- 대
- 를 통해
- 휘발성
- vs
- 손목 시계
- 주
- 잘
- 어느
- 동안
- 의지
- 과
- 이내
- 없이
- 말
- 가장 나쁜
- 겠지
- 잘못된
- year
- 년
- 자신의
- 너의
- 제퍼 넷