Beş yıl boyunca buradan sunucu satın almak, ödeme webhook'undan kimlik bilgilerinizin gelen kutunuza düşmesine kadar ortanca üç dakika yirmi saniye sürdü. Kimse şikayet etmedi. Sektörün çoğundan daha hızlıydı ve onaylamak için bir insan gerektiren herhangi bir şeyden önemli ölçüde daha hızlıydı.
Aynı zamanda seri olmaması gereken dört seri adımdı ve bir kez fark ettiğinizde fark etmemeyi bırakamazsınız. Yeniden yazım Mart'ta yayınlandı ve medyan artık kırk yedi saniye, doksan beşinci yüzdelik dilim ise dört dakikanın hemen altında.
Eski sistem ne yapıyordu
| Adım | Medyan | Ne oluyordu |
|---|---|---|
| Görüntü kopyalama | 84 sn | Site deposundan hedef düğüme disk görüntüsü çekme |
| Birim oluşturma | 31 sn | NVMe birimini ayırma ve biçimlendirme |
| Adres atama | 46 sn | Site adres havuzunda kilit alma, IPv4 seçme, ters DNS yazma |
| İlk önyükleme ve cloud-init | 39 sn | Anahtar üretme, dosya sistemini genişletme, e-posta gönderme |
Dört adım, bir global çalışan havuzu ve aynı sitedeki her siparişin arkasında sıraya girmek zorunda olduğu adres havuzunda bir kilit. Sakin bir Salı günü sorun değildi. Bir promosyon sırasında veya büyük bir müşterinin kırk oluşturmayı komut dosyasıyla çalıştırdığı saatten sonraki bir saat içinde medyan ikiye katlandı ve kuyruk on iki dakikayı geçti.
Ne değiştirdik
Görüntüler önceden yerleştirildi, kopyalanmadı. Her düğüm, katalogdaki her görüntü için gece yenilenen ince bir klon tabanı tutar. Birim oluşturmak artık ağdan çekme yerine yerel bir Gen4 NVMe yansımasına karşı copy-on-write klonudur. Bu adım seksen dört saniyeden iki saniyenin altına düştü.
Adresler önceden ayrılmıştır. Her site, ters DNS zaten yazılmış, o sitedeki talebin yaklaşık altı saatini karşılayacak şekilde boyutlandırılmış sıcak bir adres havuzu tutar. Atama artık bir kilit, tarama ve DNS yazma yerine önceden oluşturulmuş bir havuzdan pop yapmaktır. Kırk altı saniye yaklaşık dört yüz milisaniyeye düştü.
Kuyruklar siteye özeldir. Frankfurt'taki bir yoğunluk artık São Paulo'daki bir oluşturmayı yavaşlatmıyor; bu kulağa açık gelse de orijinal tasarım böyle değildi çünkü orijinal tasarım dört site ve bir mühendise sahipti.
Çalışanlar idempotent ve devam ettirilebilir. Her adım anahtarlıdır, bu nedenle yarı yolda ölen bir çalışan, yarı inşa edilmiş bir örnek ve bir destek bileti yerine devam ettirilebilir bir iş bırakır. Başarısız bir oluşturmada manuel müdahale yaklaşık dört yüzde birden dokuz binde bire düştü.
Sonuç
| Metrik | Önce | Sonra |
|---|---|---|
| Medyan | 3 dk 20 sn | 47 sn |
| 95. yüzdelik dilim | 12 dk 10 sn | 3 dk 56 sn |
| 99. yüzdelik dilim | 41 dk | 8 dk 20 sn |
| İnsan gerektiren başarısız oluşturma | 400'de 1 | 9.000'de 1 |
| Medyan hareket etmeden önce site başına eşzamanlılık | 6 | 90 |
Yolda ne yanlış gitti
Mart'ta, on bir saat boyunca, ince klon tabanlarının gece yenilemesi dört sitede sessizce başarısız oldu ve önceden yerleştirilmiş Debian görüntüsü dokuz gün bayat bir nokta sürümü sundu. Bundan yaklaşık doksan örnek oluşturuldu. Hiçbiri ilginç bir şekilde bozuk değildi, çünkü bayat bir nokta sürümü güncel olandan bir paket güncellemesi uzaktadır, ancak sunucu satın alan hiç kimse kontrol etmek zorunda kalmamalıdır.
Etkilenen örnekleri istek üzerine yeniden oluşturduk, isteyip istemediklerine bakılmaksızın doksanına e-posta gönderdik ve herhangi bir düğümün oluşturma sunmasına izin verilmeden önce temel görüntü karmasını katalogla karşılaştıran bir kontrol ekledik. Gece işindeki sessiz bir başarısızlık en sıkıcı olası nedendir ve sıkıcı olduğu için tam olarak yazmaya değerdir.
Hala yavaş olan şeyler
- Özel ISO kurulumları. Hala manuel, hala onlarca dakika ile ölçülüyor, genellikle bir saat içinde tamamlanıyor. Darboğaz, görüntünün yükleyicisinin söylediğini yaptığını doğrulayan bir kişidir.
- Windows. Lisans etkinleştirme iki ila üç dakika ekler ve bizim kontrolümüzde değildir.
- Bare metal. Aynı gün, aynı dakika değil. Fiziksel bir makinenin fiziksel bir yeniden inşası vardır ve size dürüstçe fiyat teklifi vermek, yenemeyeceğimiz bir saati başlatmaktan daha iyidir.
- IPv6 /48 delegasyonu. Yapılandırmanın daha eski olduğu üç sitede manuel. Düzeltiliyor, yavaşça.
Neden burada durduk
Örnekleri önceden başlatılmış tutarak ve ödeme üzerine size bir tane teslim ederek medyanı yaklaşık yirmi saniyeye getirebiliriz. Bu, boş kapasite tutmak anlamına gelir, bu da kimsenin kullanmadığı çekirdekler için ödeme yapmak anlamına gelir, bu da herkesten biraz daha fazla ücret almak anlamına gelir ki yeni siparişler on bir saniye daha hızlı hissedebilsin.
Kırk yedi saniye, kısıtlamanın artık bizim yaptığımız bir şey değil, zincirin ödemenizi onaylaması olduğu kadar kısadır. Müşterinin fark ettiği noktanın ötesinde optimize etmek bir hobi, mühendislik değil.