Altyapımız müşterilerimizle birlikte nasıl ölçeklenir?

Yayınlanan: 2022-06-03

Engagement İşletim Sistemimizle en iyi müşteri deneyimini sunma konusunda ciddiyiz. İnternet işini kişiselleştirme misyonumuzu dünyadaki en büyük kurumsal müşterilere getirmek için gerçekten küresel hedeflerimiz var.

Bu tutku, Intercom platformunu destekleyen altyapıyı tasarlama ve inşa etme şeklimize yansır. Uzun vade için inşa ediyoruz - bu, varsayılan olarak güvenilirliğin sağlanması ve büyüdükçe büyük ölçeği barındırma yeteneği anlamına gelir.

Intercom büyüyor ve büyümeye devam edecek - en uzun süredir devam eden müşterilerimizin çoğu yıllar içinde bizimle birlikte gelişti. Bu mevcut müşteriler büyüdükçe ve daha büyük müşterileri memnuniyetle karşıladık, her zaman ölçeklendirmeye evet demeye odaklandık.

Bu, Intercom'un kurumsal müşterilerin ihtiyaçlarını desteklemek için temel işlevleri nasıl ölçeklendirdiğini araştıran bir dizinin üçüncü gönderisidir.

Müşterilerimizle birlikte büyüyoruz

  • Milyonlarca aktif kullanıcıya hizmet vermek istiyorsunuz. Intercom bunu yapabilir mi?
  • Milyonlarca kullanıcı kaydını saklamanız gerekir. Intercom bunu yapabilir mi?
  • Çalışma alanınızda harekete geçmek istediğiniz binlerce aktif aracınız var. Intercom bunu halledebilir mi?

Yukarıdakilerin tümüne evet.

Bugün sistemlerimiz, en üst düzeyde saniyede yaklaşık 50.000 web isteğine, saniyede 26.000 arka plan işine ve saniyede 11.000 genel API isteğine hizmet verecek şekilde dinamik olarak ölçekleniyor; bu, modern işletmelerin gereksinimlerini karşılamak için sürekli olarak ölçeklendirme yeteneğimizi gösteriyor.

Hedeflerinizi eşleştirmek istiyoruz. Bu, büyük iş yüklerini güvenilir ve performanslı bir şekilde karşılayabilmek ve müşterilerimiz bizimle birlikte büyüdükçe bunları sürekli olarak genişletmek anlamına gelir. Sorunlarını uzun vadede geniş ölçekte çözdüğümüzden emin olmak için müşterilerimizle gerçek bir ortaklık kurmak istiyoruz.

Intercom'da daha az yazılım çalıştırmayı hedefliyoruz

Yalnızca çok küçük bir dizi çekirdek teknolojinin üzerine inşa ediyoruz. Bu , yeni nesil Intercom'u oluştururken ürün mühendislerini desteklemek ve etkinleştirmek için derin etki alanı uzmanlarından oluşan ekipler geliştirmemize ve birinci sınıf gözlemlenebilirlik araçları, ölçeklendirme, güvenilirlik ve varsayılan olarak güvenli yapı kalıpları sağlamamıza olanak tanır.

Takımlarımız yüksek kullanılabilirlik sağlar

Bulut hizmetleri sağlayıcımız olarak özel olarak AWS ile çalışıyoruz ve şu anda üç farklı küresel bölgede (ABD, AB ve Avustralya) veri barındırma teklifleri sunuyoruz.

Takım arkadaşı uygulamamız, bir Ruby on Rails monoliti tarafından desteklenen bir Ember.js ön yüzüdür. Rails uygulaması, Intercom'un özüdür ve işlev başına ayrılmış kümelerde binlerce web, API ve eşzamansız çalışana dağıttığımız şeydir.

"Her yıl Kara Cuma günü, birçok müşterimiz en yoğun dönemlerini yaşarken, altyapımız insan müdahalesi olmadan eşleşecek şekilde ölçekleniyor"

Bu kümeler, biz her gün müşteri trafiğinin iniş çıkışlarından geçerken müşteri isteklerine hizmet etmek için otomatik olarak ölçeklenir. Örneğin, her yıl Kara Cuma'da, birçok müşterimiz en yoğun dönemlerine girdiğinden, altyapımız insan müdahalesi olmadan eşleşecek şekilde ölçeklenir.

Gözlenebilirlik araçlarımız, trafiği nasıl sunduğumuzu yakından izlememize olanak tanır

Gözlenebilirlik araçlarımız, müşteri bazında trafiğe ne kadar verimli ve etkili hizmet verdiğimizin nabzını tutmamızı sağlar. Ayrıca, hızlı büyümemizi gelecekte kanıtlamak için tasarlanmış yeni teknolojiler ve yaklaşımlar konusunda AWS ile yakın iş ortaklığı yapıyoruz.

Standart ölçümlere ve günlüğe kaydetmeye ek olarak, Rails monolitimiz yüksek kaliteli, zengin niteliklere sahip izlerle otomatik olarak donatılmıştır. Bu, mühendislerin herhangi bir ek kod yazmaya gerek kalmadan üretimi gözlemlemelerini sağlar.

Gözlemlenebilirlik boru hattımız Honeycomb Rafinerisine dayanmaktadır ve varsayılan olarak ilginç izleri (örneğin müşteriye yönelik bir hata) korumak için değerli istekleri dinamik olarak örnekler. Ayrıca tam örnekleme kontrolü için özel kurallar konfigüre etme yeteneğine de sahibiz.

"Yeni özellikler geliştirirken veya üretim sorunlarını ayıklarken mühendislere ihtiyaç duydukları tüm verileri sağlamak için %100 elde tutmayı destekliyoruz"

En değerli işlemler için, mühendislere yeni özellikler oluştururken veya üretim sorunlarını ayıklarken ihtiyaç duydukları tüm verileri sağlamak için %100 saklamayı destekliyoruz. Ek olarak, tüm izleri istek oluşturanın müşteri kimliğiyle etiketlediğimiz için, müşterilerimizin herhangi birinin Intercom'u nasıl deneyimlediğini derinlemesine inceleyebiliriz.

Farklı veri depoları, çeşitli kullanım durumlarında optimizasyona izin verir

Uygulamalar arasında çeşitli veri okuma ve yazma gereksinimlerimizi desteklemek için birkaç farklı türde veri deposu çalıştırıyoruz:

  • AWS Aurora MySQL : Doğruluk veri depoları kaynağımız büyük ölçüde AWS Aurora MySQL'in üzerine inşa edilmiştir. İlk ölçeklememizin bir parçası olarak veritabanlarını işleve göre paylaştık. Bireysel veritabanı kümeleri, AWS Aurora'nın sağladığı en büyük bulut sunucularına ulaştığında, artık hem yatay hem de dikey olarak ölçeklendirebileceğimiz daha küçük veritabanı kümelerinden oluşan birden çok kümede bulunan müşteri başına veritabanları oluşturmak için bir program başlattık. Bu çalışma 2020'nin başlarında tamamlandı ve mimari, en büyük tablolarımızı süresiz olarak ölçeklendirmemize izin veriyor.
  • Elasticache : Veritabanlarımızın önünde Elasticache'nin üzerine inşa edilmiş bir memcached önbellek katmanımız var.
  • DynamoDB : DynamoDB'yi çok yüksek okuma ve yazma kullanım durumları için idareli kullanıyoruz .

Arama, Intercom'un vazgeçilmez bir parçasıdır

Arama, bir dizi temel Intercom özelliğinin temelini oluşturur - Gelen Kutusu Görünümleri , API , Makaleler , kullanıcı listesi, Giden , Raporlama , Çözünürlük Botu ve dahili kayıt sistemlerimiz.

Arama, büyük ölçüde, işlev başına birçok Elasticsearch kümesi tarafından desteklenir. Güvenlik düzeltme eki uygulama, yükseltme ve bozulmuş donanımın değiştirilmesi gibi Elasticsearch'ün en zahmetli görevlerini otomatikleştiren birçok araç geliştirdik. Ayrıca, endekslere karşı geçişleri (MySQL'e benzer bir şekilde) çalıştırmamıza izin veren araçlar oluşturduk.

“Küresel altyapımız irili ufaklı yüz binlerce şirkete hizmet verecek şekilde tasarlandı”

Mühendislerimizin ölçekler şeması üzerinde yineleme yapma yeteneğini geliştirmenin yanı sıra, büyük endeksleri daha kolay yönetilebilen daha küçük endekslere bölmemize ve daha yüksek performans ve kararlılık sağlamamıza olanak tanır. Ayrıca, Elasticsearch kümelerimizi ölçeklendirebileceğimiz başka bir boyut da veriyor. MySQL parçalama yaklaşımımız gibi, bu da bize uzun yıllar ölçeklendirme pisti sağlar.

Intercom'un küresel altyapısı internet ölçeği için oluşturuldu

Küresel altyapımız, büyük ve küçük yüz binlerce şirkete hizmet verecek şekilde tasarlanmıştır ve altyapı operasyonlarımızı yönetmek için uyguladığımız titizlik, işlerin sorunsuz yürümesini sağlar.

Yol haritası oluştururken ölçeklendirme, her ekibin dikkate aldığı önemli bir girdidir. Düzenli operasyonel incelemelerimize, altyapı ölçümlerini değerlendirdiğimiz ve kapasite gereksinimlerini gözden geçirdiğimiz arka uç ekiplerimizde birden fazla düzeydeki uzmanlar katkıda bulunur.

Bunu bu şekilde tutmak için çok ve akıllıca çalışıyoruz ve bu yüzden müşterilerimiz bize güveniyor - en küçük startuplardan dünyanın en büyük kuruluşlarına kadar.

Intercom for Enterprise serisindeki diğer gönderileri keşfedin