Milyarlarca E-postayla Kahvaltı

Yayınlanan: 2020-02-05

Tek istediğimiz pürüzsüz bir Kara Cuma

Kara Cuma hafta sonu boyunca her gün Pasifik Standart Saati'nde (PST) sabah 8'de kahvaltımı yaptığımda Twilio SendGrid, ABD Doğu Standart Saati'ne (EST) göre hesaplandığı üzere 1 milyardan fazla e-postayı zaten işlemişti.

İstatistiklere baktığımızda, Şükran Günü'nden Siber Pazartesi'ye kadar 16,5 milyardan fazla e-posta ve Şükran Günü'nden önceki Salı gününden başlayarak 22,3 milyardan fazla e-postayı işledik. Bunlar iş için gerçekten iyi rakamlar. Bir mühendislik organizasyonunun bakış açısından, bunu herhangi bir uyarı tetiklenmeden veya herhangi bir düşük müşteri deneyimi olmadan yapmak inanılmaz derecede tatmin ediciydi.

Meslektaşım Sara Saedinia tarafından yazılan ve bu ölçekte sorunsuz çalışmanın işimiz ve bize güvenen işletmeler için öneminden bahseden Tek Bir Günde 4+ Milyar E-posta için Altyapımızı Ölçeklendirme başlıklı bu blog makalesini okumanızı tavsiye ederim. Burada, e-posta müşterilerimiz için yılın en kritik hafta sonunu şimdiye kadarki en sorunsuz hale getiren hazırlıklarımıza odaklanacağım.

Bunu sorunsuz bir Kara Cuma hafta sonu nasıl yaptık? En büyük gönderme günlerimizi ele almak, titiz bir planlama, çok sayıda bölge salınım testi, verileri analiz eden çok sayıda insan ve telemetri gözlemlerine dayalı olarak sistemlerimizdeki iyileştirmeleri doğrularken geri bildirim döngülerini sıkılaştırmayı gerektiriyor. Müşterilerimizi memnun etmeye devam ettiğimizden ve doğru iletişimleri doğru alıcılara hızlı bir şekilde gönderdiğimizden emin olmak için yapacağımız daha fazla otomasyon ve iyileştirmemiz var.

İşimizi anlamak

SendGrid'in iş modeli, her zaman hazır olmamızı gerektirir; posta kabul etmek ve teslim etmek için bakım pencerelerimiz yoktur. Müşterilerimiz, postaları kesintisiz olarak kabul eden ve teslim eden güvenilir bir hizmete ihtiyaç duyar. Bu, tüm altyapı değişikliklerimizin, donanımın yanı sıra yazılımın, e-postaları işlemeye ve teslim etmeye devam ederken, fark edilir bir gecikme olmadan yapılması gerektiği anlamına gelir.

Aşağıdaki grafiğin de gösterdiği gibi, işlediğimiz e-postaların sayısı son birkaç yılda muazzam bir şekilde arttı.

2016 yılının ortalarında ilk 1B günümüzü ve bu Kara Cuma günü ilk 4B günümüzü gerçekleştirdik. Bu, 4 yıldan daha kısa bir sürede %400 büyüme demektir. Sürekli artan ölçeğimizi hesaba katmak, maliyetlerimizi yönetilebilir kılmak ve müşterilerimize daha fazla güvenilirlik sağlamak için posta işleme hattımızı yeniden tasarlamak ve geliştirmek zorunda kaldık.

Kara Cuma geliyor

İnsanlar bana "Kara Cuma ve Siber Pazartesi sizin için neden bu kadar önemli?" diye soruyor. Bu Siber Pazartesi, bir önceki yılın zirvesinden %45 daha fazla e-posta işledik. Kara Cuma, Amerika Birleşik Devletleri'ndeki en önemli perakende ve harcama etkinliklerinden biridir. Geleneksel olarak, perakendecilerin yıl boyunca kara (net pozitif) olacağı gündür. E-posta pazarlaması ve işlemsel e-postaların kullanımı tüm işletmeler için kritik hale geldi.

Perakendecilerden pazarlama otomasyonu sağlayan işletmelere kadar, Kara Cuma hafta sonu e-postaları güvenilir bir şekilde teslim etmekte sorun yaşamak, önemli gelir kayıplarına neden olabilir. Sonuç olarak, bu hafta sonu genellikle bizim için hafta sonunu tanımlayan bir iş. Mühendislerimiz, destek temsilcilerimiz, müşteri başarı yöneticilerimiz, yöneticilerimiz ve en önemlisi müşterilerimiz için elimizden geldiğince kolaylaştırmak için elimizden gelenin en iyisini yapıyoruz.

Kara Cuma için hazırlanıyor

Peki Kara Cuma'ya nasıl hazırlanacağız? Tişört alıyoruz! (Ve bir ton iş yapın.) Nasıl hazırlandığımızı okuyun.

Twilio SendGrid Irvine Ofisi Üyeleri

Twilio SendGrid Denver ofisinin bazı üyeleri.

istatistikler

Bazı istatistiklerle başlayalım:

  • Kara Cuma'da 4,1 milyardan fazla e-posta ve Siber Pazartesi günü 4,2 milyardan fazla e-posta işlendi
  • Şükran Günü'nden Siber Pazartesi'ye kadar 16.5 milyardan fazla e-posta işlendi
  • Yoğun saatlerde 315 milyondan fazla e-posta işlendi
  • Kara Cuma ve Siber Pazartesi, her birinin 220 milyon veya daha fazla e-postayı işlemek için art arda 8 saati vardı
  • Tüm bunlar, 1,9 saniyede teslim edilebilir e-postaların uçtan uca medyan zamanı ile
  • Ortalama olarak, mesaj başına kabaca 5.5 olay yayarız. Buna dayanarak, sistemlerimiz Şükran Günü'nden Siber Pazartesi'ye, 23B+'a kadar yalnızca Siber Pazartesi günü 91B+ olay yaydı ve işledi

Mücadeleler

Daha önce hiç görülmemiş ölçek : Test etmeyi hedeflediğimiz ölçek, öngörülen tepe yükümüzle eşleşmelidir. Geçen yılın hazırlıkları için ilk testimizi Nisan ayı başlarında yaptığımızda, ortalama hafta içi hacmimiz en yüksek tahminimizin yarısından azdı. Saatlik zirvelerimiz, test edeceğimiz seviyenin yarısı bile değildi.

Ortamlarımızı yönetme : E-posta durum bilgisi olan bir iş akışıdır: Bir mesajın durumunu takip etmek gereklidir. Böylece mesaj ardışık düzende ilerlerken, geri dönüp dönmediğini veya ertelenip ertelenmediğini takip ediyor ve tekrarı önlüyoruz. Bu nedenle, posta hattımız hibrit bir bulut ve şirket içi mimaridir ve otomatik ölçeklendirme sihirli bir düzeltme değildir. Karşılaştığımız zorluk, müşterilerin maliyetini etkilemeden büyük hacimli artışların üstesinden gelebilecek kapasiteyi hazırlarken veri merkezi hizmetlerimizin verimliliğini en üst düzeye çıkarmaktır.

Ölçekleme doğrusal değil : Tüm sistemler doğrusal olarak ölçeklenmez. Tahmin edilen ölçeğimiz, test etmeye başladığımız zamandan çok daha yüksek olduğundan, donanım ihtiyaçlarımızı basit bir matematiksel modelle hesaplayamayız. Ayrıca, körü körüne ölçeklendirme hizmetlerinin bağımlılıkları aşırı yükleyeceğini ve veritabanı gibi bağımlılıkların posta aktarım aracımız (MTA) ile aynı şekilde ölçeklenmediğini hatırlamak da önemlidir.

Yatırımlarımızı dengelemek : Yeniliklere devam ederken, e-posta teslimatlarıyla ilgili müşteri ihtiyaçlarını desteklediğimizden emin olarak, erişilebilir olmadıklarında ve gerektiği gibi çalışmadıklarında özelliklerimizin müşterilerimize herhangi bir değer sağlamadığını anlıyoruz. Kendi ölçeğimizde güvenilir ve dayanıklı olmak için sistemlerimizi test etmeye, öğrenmeye, yükseltmeye ve geliştirmeye bir denge bulmalı ve uygun şekilde yatırım yapmalıyız. Bunu verimli bir şekilde yapmak, inovasyona yatırım yapmaya devam etmemizi sağlar.

Nasıl yaptık?

Bir ekip olarak birlikte başardık. Dediğimiz gibi kol kola. Bu yılki hazırlıklarımız, Nisan'dan Kasım'a kadar birçok ekipten 100'den fazla üyenin katılımını içeriyordu. Zirve tahminlerini modellemek, gözlemlenebilirlik kriterlerini tanımlamak, gözlemlerimizden öğrenmek, gerekli değişiklikleri tasarlamak, planlamak ve yönetmek, birden fazla kişiden çeşitli beceriler gerektirir.

Birbirimizi dürüst tutarken, odaklı kalırken ve hedeflerimizi gerçekleştirirken birbirimize güvendik.

Etkili ve sürekli gelişen bir süreç arkadaşımızdı.

Planlama

Müşterinin e-postalarını işlemek için üç veri merkezimiz var. Ulaşılmamış bir ölçeği planlamak için, yalnızca iki veri merkeziyle en yoğun tahmini trafiğimizi idare edebileceğimizi doğrularız. Yüksek kullanılabilirlik SLA'mızı karşılamak için altyapımızda yerleşik bölge yük devretme vardır. Bu, bölgeler arasında trafiği devretme yeteneğine sahip olduğumuz anlamına gelir.

Bu kapasiteyi standart bir işletim prosedürü olarak yıl boyunca sık bir kadansla kullanıyor ve hizmet kalitesini korurken Kara Cuma/Siber Pazartesi pik hacimlerine hizmet verebildiğimizi gösterme çabalarımızın bir parçası olarak hızlandırıyoruz. Sistem telemetrisi, hizmet düzeyi hedefimizin (SLO) eşiğine yaklaşırsa, nominal durumu sürdürmek için birden çok bölgeden hızla faydalanabiliriz. Ardından, nerede değişiklik yapmamız gerektiğini belirlemek için toplanan telemetriden yararlanırız.

Buna paralel olarak, sistem kullanılabilirliği için bize kesin bir sayısal hedef sağlayan Hizmet Düzeyi Hedeflerimizi (SLO'lar) ve sistemlerimize başarılı incelemelerin sıklığını sağlayan Hizmet Düzeyi Göstergelerimizi (SLI'ler) gözden geçirmeye ve sağlamlaştırmaya başladık.

Gözlemler, öğrenmeler ve iletişim

Her test büyük miktarda bilgi sağladı. Karşılaştığımız zorluklardan biri, gözlemleri dönen test ekipleri arasında etkili bir şekilde belgelemek ve iletmek ve ardından verileri birden çok sistem arasında analiz etmekti. Standart ekip panolarımız olsa da, her üyenin gözlemlediği belirli bir şey olabilir.

Birden çok ekip tarafından yönetilen birden çok hizmet için dökülen tüm teknik bilgileri analiz etmek için test ekipleriyle bir retro yapmaya başladık. Bu retrolar uzundu ve sürenin çoğunda test başına yalnızca bir veya iki takım için faydalı oldu. Sonunda, retro notlar için Slack Thread kullanmaya geçtik ve test başına 10 saat insan çalışma saatinden tasarruf sağladık.

Test yönetim ekibimiz, bir mimar ve bir kıdemli mühendis olmak üzere iki mühendislik yöneticisinden oluşuyordu. Yöneticiler, planlama ve bağımlılık yönetiminde çok önemliydiler, daha teknik kişiler ise bilgilerin uçtan uca sistem düzeyinde işlenmesine ve analiz edilmesine yardımcı oldu.

Mevcut bilgilerin analizine dayanarak, SLI'lerimizin SLO'larımıza kesinlikle uygun olduğunu yinelemeli olarak doğruladık. Olası sistem bozulmalarını önceden belirlemek için uyarılarımızda ince ayar yaptık ve belirli kritik uyarıları daha hassas hale getirdik.

Önceliklendirme ve uygulama

Önerilen değişiklikleri biletledik ve ekipler bu bildirimlere öncelik verdi. Buradaki ilk zorluk, bu biletleri birden fazla ekip panosunda yönetmekti. Diğer bir zorluk da, Kara Cuma çalışmasına diğer önceliklere karşı acımasızca öncelik vermekti.

Mühendislerimize zor sorunlara çözümler bulmaları için yaratıcı özgürlük sağlamamız gerekiyordu. Aynı zamanda, bu çözümlerin uzun vadeli planlarımızla uyumlu olduğundan emin olmamız gerekiyordu. Ayrıca, bizi ısırmak için geri gelebilecek kısa vadeli çözümlerden kaçınmak anlamına gelen herhangi bir çıkar çatışmasının her zaman bilincinde olmamız da çok önemliydi.

Uygulanan değişiklikleri doğrulamak, gelecek testler için hedefimiz olacaktır.

Kara Cuma'ya yaklaştıkça tempoyu korumak ve yükseltmek, planlama ve uygulamada büyük bir zorluktu.

hızlanma

Eylül ayına girerken her hafta birden fazla stres testi yapmaya başladık. Bu, sorunları daha hızlı tanımlamamızı, düzeltmemizi ve doğrulamamızı gerektirdi. Ayrıca bize çok daha hızlı bir öğrenme ve adaptasyon döngüsü sağladı.

Daha önce açıklandığı gibi posta hattının tam salınım testine ek olarak, aynı zamanda destek hizmetlerimizi de stres testine başladık. Aynı dönemde, gelen jeopodlarımızın tatil sezonunda beklenen patlama gönderilerini herhangi bir endişe duymadan halledebilmelerini sağlamak için en büyük müşterilerimizden biriyle yük testleri yapmaya başladık.

Uzun saatler ve işi yönetmenin zorluğu nedeniyle ekiplerimiz yanıyordu. Gerekirse testimizi durdurmak için gereken en kritik uyarıları listeledik ve daha hassas hale getirdik. Bu, sabah erkenden sistemlerimizi izlemek için orada olmamıza gerek kalmadan testlerimizi yapmaya başlamamızı sağladı.

Dikkatli hız

Eylül ayının sonuna yaklaşırken, doğru yönde yeterince hızlı hareket edemeyebileceğimize dair bir endişe vardı. Bir kaplan ekibi, birden fazla ekipte herhangi bir bilet üzerinde çalışabilecek ve günlük düzeyde çok daha yalın bir süreçle çalışan bir uzman ekibi oluşturduk.

Kara Cuma hazırlıklarında operasyonel altyapımızda ve posta işleme yazılımımızda önemli iyileştirmeler yaptık. Bu değişiklikler açıkça önceliklendiriliyordu ve ekiplerin birbirleriyle büyük bir koordinasyon içinde çalışması gerekiyordu. SendGrid'i ilk sıraya koyan insanlar için harika bir deneyimdi. Bir halka açık şirketin iş biriminin çekirdek motorunu başlangıç ​​hızında çalıştırırken uygulamalarda, altyapıda değişiklikler yapıyor ve donanım kapasitemizi artırıyorduk. Hepsinden iyisi, tüm bunları müşterilerimiz için herhangi bir kötü hizmet deneyimi yaşamadan gerçekleştirdik.

Gelecek planları

Kara Cuma 2019'a hazırlanmak için çok fazla insan saati harcadık. Bu yıldan öğrendiklerimiz, 2020'deki Kara Cuma ve Siber Pazartesi hazırlıklarımızın çoğunu otomatikleştirmemize yardımcı olacak. -Müşterilerimiz ve çalışanlarımız için rekor sayıda tatil gönderimi.