10억 개의 이메일이 포함된 아침 식사
게시 됨: 2020-02-05순조로운 블랙 프라이데이가 우리가 바라는 전부입니다
블랙 프라이데이 주말 동안 매일 오전 8시 태평양 표준시(PST)에 아침 식사를 했을 때 Twilio SendGrid는 이미 미국 동부 표준시(EST)로 계산된 10억 개 이상의 이메일을 처리했습니다.
통계를 살펴보면 추수감사절부터 사이버 먼데이까지 165억 개 이상의 이메일을 처리했으며, 추수감사절 전 화요일부터 시작하는 주에는 223억 개 이상의 이메일을 처리했습니다. 이것은 비즈니스에 정말 좋은 수치입니다. 엔지니어링 조직의 관점에서 경고 발생이나 저하된 고객 경험 없이 그렇게 하는 것은 믿을 수 없을 정도로 만족스러웠습니다.
내 동료인 Sara Saedinia가 작성한 이 블로그 기사 하루에 40억 개 이상의 이메일을 위한 인프라 확장을 읽는 것이 좋습니다. 이 기사에서는 우리 비즈니스와 우리에게 의존하는 비즈니스를 위해 이 규모에서 원활하게 운영하는 것의 중요성에 대해 설명합니다. 여기에서는 이메일 고객에게 올해의 가장 중요한 주말을 지금까지 가장 순조롭게 만든 준비에 중점을 둘 것입니다.
이 완벽한 블랙 프라이데이 주말을 어떻게 만들었습니까? 가장 큰 발송일을 처리하려면 근면한 계획, 수많은 지역 변동 테스트, 수십 명의 사람들이 데이터를 분석하고 원격 측정 관찰을 기반으로 시스템 개선 사항을 검증할 때 피드백 루프를 강화해야 합니다. 우리는 계속해서 고객을 기쁘게 하고 올바른 수신자에게 올바른 커뮤니케이션을 신속하게 보낼 수 있도록 더 많은 자동화 및 개선 작업을 수행할 것입니다.
비즈니스 이해
SendGrid의 비즈니스 모델은 항상 깨어 있어야 합니다. 메일 수락 및 배달을 위한 유지 관리 기간이 없습니다. 고객은 중단 없이 메일을 수락하고 배달하는 안정적인 서비스를 필요로 합니다. 이는 우리가 눈에 띄는 지연 없이 이메일을 계속 처리하고 전달하는 동안 하드웨어와 소프트웨어를 비롯한 모든 인프라 변경을 완료해야 함을 의미합니다.
다음 그래프에서 볼 수 있듯이 처리하는 이메일의 수는 지난 몇 년 동안 엄청나게 증가했습니다.
2016년 중반에 첫 1B 날을 보냈고 이번 블랙 프라이데이에 첫 4B 날을 보냈습니다. 불과 4년 만에 400% 성장한 셈이다. 계속 증가하는 규모를 설명하고 비용을 관리 가능하게 유지하며 고객에게 더 큰 안정성을 제공하기 위해 메일 처리 파이프라인을 재설계하고 발전시켜야 했습니다.
블랙프라이데이가 다가온다
사람들은 "블랙 프라이데이와 사이버 먼데이가 왜 당신에게 그렇게 중요한가요?"라고 묻습니다. 이번 사이버 먼데이에 우리는 전년도 최고치보다 45% 더 많은 이메일을 처리했습니다. 블랙 프라이데이는 미국에서 가장 중요한 소매 및 지출 이벤트 중 하나입니다. 전통적으로 소매업체가 해당 연도에 흑자(순 플러스)가 되는 날입니다. 이메일 마케팅과 거래 이메일의 사용은 모든 비즈니스에서 매우 중요해졌습니다.
소매업체에서 마케팅 자동화를 제공하는 기업에 이르기까지 블랙 프라이데이 주말에 이메일을 안정적으로 전달하는 데 문제가 있으면 상당한 수익 손실이 발생할 수 있습니다. 결과적으로 이번 주말은 종종 우리에게 비즈니스를 정의하는 주말입니다. 우리는 엔지니어, 지원 에이전트, 고객 성공 관리자, 경영진, 그리고 가장 중요한 고객을 위해 가능한 한 쉽게 하기 위해 최선을 다합니다.
블랙프라이데이 준비
그렇다면 블랙프라이데이는 어떻게 준비해야 할까요? 우리는 티셔츠를 산다! (그리고 많은 일을 하십시오.) 우리가 어떻게 준비하는지 계속 읽으십시오.
Twilio SendGrid Irvine Office 구성원
Twilio SendGrid Denver 사무실의 구성원 중 일부입니다.
통계
몇 가지 통계부터 시작하겠습니다.
- 블랙 프라이데이에 41억 개 이상의 이메일 및 사이버 먼데이에 42억 개 이상의 이메일을 처리했습니다.
- 추수감사절부터 사이버 먼데이까지 165억 개 이상의 이메일 처리
- 피크 시간 동안 3억 1500만 개 이상의 이메일 처리
- 블랙 프라이데이와 사이버 먼데이, 각각 2억 2천만 개 이상의 이메일을 연속적으로 8시간 처리했습니다.
- 이 모든 것이 1.9초로 전송 가능한 이메일의 중간 종단 간 시간으로 이루어집니다.
- 평균적으로 메시지당 대략 5.5개의 이벤트를 내보냅니다. 이를 기반으로 당사 시스템은 추수감사절부터 사이버 먼데이까지 910억 개 이상의 이벤트를 생성하고 처리했으며 사이버 먼데이에만 230억 개 이상의 이벤트를 생성 및 처리했습니다.
도전 과제
이전에 본 적 없는 규모 : 테스트 대상으로 하는 규모는 예상 최대 부하와 일치해야 합니다. 4월 초에 작년 준비를 위한 첫 번째 테스트를 수행했을 때 평균 평일 볼륨은 피크 예측의 절반 미만이었습니다. 시간당 피크는 테스트 대상의 절반도 되지 않았습니다.
환경 관리 : 이메일은 상태 저장 워크플로입니다. 메시지 상태를 추적하는 데 필요합니다. 따라서 메시지가 파이프라인을 통해 이동할 때 반송되거나 지연되는지 추적하고 중복을 방지합니다. 따라서 메일 파이프라인은 하이브리드 클라우드 및 온프레미스 아키텍처이며 자동 확장은 마법의 해결책이 아닙니다. 우리의 과제는 데이터 센터 서비스의 효율성을 극대화하는 동시에 고객의 비용에 영향을 주지 않으면서 대규모 볼륨 급증을 처리할 수 있는 용량을 준비하는 것입니다.
확장이 선형이 아님 : 모든 시스템이 선형으로 확장되는 것은 아닙니다. 예측된 규모는 처음 테스트를 시작할 때보다 훨씬 높기 때문에 간단한 수학적 모델로 하드웨어 요구 사항을 계산할 수 없습니다. 맹목적으로 서비스를 확장하면 종속성이 과부하되고 데이터베이스와 같은 종속성은 메일 전송 에이전트(MTA)와 같은 방식으로 확장되지 않는다는 점을 기억하는 것도 중요합니다.
투자 균형 조정 : 이메일 전송과 관련된 고객 요구 사항을 지원하고 혁신을 계속함에 따라 고객이 액세스할 수 없고 필요에 따라 성능을 발휘하지 못하는 경우 고객에게 어떤 가치도 제공하지 못한다는 점을 이해합니다. 우리는 균형을 찾고 시스템을 테스트, 학습, 업그레이드 및 개선하는 데 적절하게 투자해야 우리 규모에서 안정적이고 탄력적입니다. 그렇게 함으로써 우리는 혁신에 계속 투자할 수 있습니다.
우리는 그것을 어떻게 했는가?
우리는 하나의 팀으로 함께 했습니다. 우리가 말하는 것처럼 팔짱을 끼고 있습니다. 올해 4월부터 11월까지 우리의 준비에는 많은 팀의 100명 이상의 구성원이 참여했습니다. 피크 예측 모델링, 관찰 가능성 기준 정의, 관찰에서 학습, 필요한 변경 엔지니어링, 계획 및 관리에는 여러 사람의 다양한 기술이 필요합니다.
우리는 서로 정직하고 집중하며 목표를 달성하면서 서로를 신뢰했습니다.
효과적이고 지속적으로 개선되는 프로세스는 우리의 친구였습니다.
계획
고객의 이메일을 처리하는 3개의 데이터 센터가 있습니다. 도달할 수 없는 규모에 대한 계획을 세우기 위해 사용 가능한 데이터 센터가 두 개뿐인 최대 예상 트래픽을 처리할 수 있는지 확인합니다. 고가용성 SLA를 충족하기 위해 인프라에는 기본 제공 지역 장애 조치가 있습니다. 이는 지역 간 트래픽을 장애 조치할 수 있음을 의미합니다.
우리는 이 기능을 표준 운영 절차로 연중 내내 빈번하게 활용하고 서비스 품질을 유지하면서 블랙 프라이데이/사이버 먼데이 피크 볼륨에 서비스를 제공할 수 있음을 입증하기 위한 노력의 일환으로 가속화합니다. 시스템 원격 분석이 서비스 수준 목표(SLO)의 임계값에 도달하면 여러 지역을 빠르게 활용하여 명목 상태를 재개할 수 있습니다. 그런 다음 수집된 원격 분석을 활용하여 변경이 필요한 위치를 결정합니다.
이와 병행하여 우리는 시스템 가용성에 대한 정확한 수치 목표를 제공하는 서비스 수준 목표(SLO)와 시스템에 대한 성공적인 프로브 빈도를 제공하는 서비스 수준 지표(SLI)를 검토하고 구체화하기 시작했습니다.
관찰, 학습 및 의사 소통
각 테스트는 많은 양의 정보를 제공했습니다. 우리가 직면한 과제 중 하나는 순환 테스트 팀 전체에서 관찰을 효과적으로 문서화하고 전달한 다음 여러 시스템에서 데이터를 분석하는 것이었습니다. 표준 팀 대시보드가 있지만 각 구성원은 관찰하는 특정 항목이 있을 수 있습니다.
우리는 여러 팀에서 관리하는 여러 서비스에 대해 덤프된 모든 기술 정보를 분석하기 위해 테스트 팀과 함께 레트로를 시작했습니다. 이러한 복고는 길고 대부분의 기간 동안 테스트당 한두 팀에만 유용했습니다. 우리는 결국 Slack Thread를 사용하여 테스트당 10시간의 회의 시간을 절약하는 복고풍 메모로 옮겼습니다.
우리의 테스트 관리 팀에는 두 명의 엔지니어링 관리자, 한 명의 건축가와 한 명의 수석 엔지니어가 포함되었습니다. 관리자는 계획 및 종속성 관리에서 중추적인 역할을 했으며 더 많은 기술 인력이 종단 간 시스템 수준에서 정보를 처리하고 분석하는 데 도움을 주었습니다.
사용 가능한 정보의 분석을 기반으로 SLI가 SLO를 엄격하게 준수하는지 반복적으로 검증했습니다. 잠재적인 시스템 성능 저하를 미리 식별하기 위해 경고를 미세 조정하고 특정 중요 경고를 더 민감하게 만들었습니다.
우선순위 지정 및 구현
우리는 제안된 변경 사항을 티켓팅했고 팀은 이러한 티켓의 우선 순위를 지정했습니다. 여기서 첫 번째 과제는 여러 팀 보드에서 이러한 티켓을 관리하는 것이었습니다. 또 다른 과제는 블랙 프라이데이 작업을 다른 우선 순위와 비교하여 무자비하게 우선 순위를 지정하는 것이었습니다.
우리는 엔지니어들에게 어려운 문제에 대한 해결책을 제시할 수 있는 창의적인 자유를 제공해야 했습니다. 동시에 우리는 이러한 솔루션이 우리의 장기 계획과 일치하는지 확인해야 했습니다. 또한 이해 상충을 항상 염두에 두는 것이 매우 중요했습니다. 즉, 우리를 물릴 수 있는 단기 솔루션을 피해야 한다는 의미였습니다.
구현된 변경 사항을 검증하는 것이 향후 테스트의 목표가 될 것입니다.
블랙 프라이데이에 가까워지면서 템포를 유지하고 높이는 것은 계획과 실행에 있어 중요한 도전이었습니다.
가속도
9월에 들어서면서 우리는 매주 여러 스트레스 테스트를 실행하기 시작했습니다. 이를 위해서는 문제를 더 빨리 식별, 수정 및 검증해야 했습니다. 그것은 또한 우리에게 훨씬 더 빠른 학습과 적응 주기를 제공했습니다.
앞서 설명한 메일 파이프라인의 전체 테스트 외에도 지원 서비스에 대한 스트레스 테스트도 동시에 시작했습니다. 같은 기간 동안 우리는 들어오는 지오포드가 휴가철 동안 아무런 문제 없이 예상되는 버스트 전송을 처리할 수 있도록 가장 큰 고객 중 하나와 함께 부하 테스트를 수행하기 시작했습니다.
긴 시간과 작업 관리의 어려움으로 인해 우리 팀은 지쳐 있었습니다. 필요한 경우 테스트를 중지하는 데 필요한 가장 중요한 경고를 나열하고 더 민감하게 만들었습니다. 이를 통해 이른 아침에 시스템을 모니터링하기 위해 참석하지 않고도 테스트를 시작할 수 있었습니다.
주의해서 속도를 내십시오
9월 말에 가까워지면서 우리가 올바른 방향으로 충분히 빨리 움직이지 못할 수도 있다는 우려가 있었습니다. 우리는 여러 팀의 모든 티켓에 대해 작업할 수 있는 전문가 팀인 Tiger 팀과 일상적인 수준에서 훨씬 더 간단한 프로세스로 작업하는 팀을 만들었습니다.
블랙 프라이데이에 대비하여 운영 인프라와 메일 처리 소프트웨어를 크게 개선했습니다. 이러한 변경 사항은 명시적으로 우선 순위가 지정되었으며 팀은 서로 긴밀하게 협력해야 했습니다. SendGrid를 먼저 생각하는 사람들에게는 좋은 경험이었습니다. 우리는 애플리케이션, 인프라를 변경하고 하드웨어 용량을 늘리면서 공기업 사업부의 핵심 엔진을 모두 스타트업 속도로 실행하고 있었습니다. 무엇보다도 우리는 고객에 대한 서비스 경험 저하 없이 이 모든 작업을 수행했습니다.
향후 계획
우리는 2019년 블랙 프라이데이를 준비하는 데 많은 시간을 보냈습니다. 올해의 학습은 2020년 블랙 프라이데이와 사이버 먼데이 준비를 자동화하는 데 도움이 될 것입니다. 스트레스 없는 기록으로 성공적인 또 다른 한 해를 기대합니다. -고객과 직원을 위해 엄청난 양의 휴가를 보냅니다.