Shopify(쇼피파이)가 성장에 대응하기 위해 기술적으로 발생한 이슈와 선택한 기술을 공식 발표 자료를 조사하여 정리한 글입니다.
Shopify 아키텍처의 진화
Shopify(쇼피파이)가 성장에 대응하기 위해 기술적으로 발생한 이슈와 선택한 기술을 공식 발표 자료를 조사하여 정리한 글입니다.
2013년~2018년 기간의 공식 발표 자료를 조사한 결과물이며, 잘못되거나 누락된 정보가 있을 수 있음을 인지하고 읽어주세요. 목차 요약 2018년 2017년 2016년 2015년 2013/2014 2005년 2004년 초기 참고 자료 기술 문화(Tech Culture) 아키텍처(Architecture) 마무리 요약 쇼피파이는 마이크로서비스 아키텍처(MSA)가 아니라고 말합니다. 하지만 일부 기능이 도메인별로 분리되어 있고 이를 관리/추적하기 위한 ServicesDB 자체 도구를 만들어 도메인별 이슈를 해결하고 있습니다.
모놀리식 아키텍처로 단위 테스트가 약 10만건이며 ORM 의존도가 높아서 CI에 많은 시간과 리소스가 투입되고 있는데, 효율화를 위해 배포 도구로 Shipit 를 사용하며 소스 병합은 Merge Queue 라는 개념을 추가했습니다. 쇼피파이에게 배울 점 3가지 는 아래와 같습니다. 유행하는 기술 문화가 아닌 “DevOps vs SRE vs PE” 분석 후 자사에 적합한 PE를 선택 DB Connection Pool 이슈를 해결하기 위한 방법으로 GraphQL과 GCP MySQL 순으로 순차 적용 클라우드 환경이 아닌 상태에서 백업 서버가 즉시 프로덕션 서버로 전환될 수 있는 환경 구축 2018년 모놀리식 아키텍처를 인프라만 Kubernetes로 전환 MySQL도 자체 데이터센터에서 구글 클라우드 서비스로 전환 쇼핑몰 별 분산 처리 관리 비용이 늘어나자 해결 방안으로 구글 클라우드를 선택 2017년 여전한 모놀리식 아키텍처 SPA 기술 변화: React와 TypeScript로 전환 2016년 멀티 데이터센터 아키텍처 운영 서버에 이슈가 발생하면 재해 복구 서버로 우회하도록 처리 여기서 쇼피파이는 Mult DC Podding이란 용어를 사용함 SPA 기술 변화: 정적 HTML 페이지 및 VanillaJS 사용 GraphQL 적용 추측 GraphQL 발표가 2015년이고 쇼…