Teknik muhafazakarlık, daha hızlı ve daha iyi ölçeklendirmemize nasıl yardımcı olur?

Yayınlanan: 2022-07-21

Intercom'da geleceğe odaklanıyoruz ve oraya ulaşmak için cesur adımlar atıyoruz. Ancak teknik kararlar verdiğimizde muhafazakar olmayı severiz.

Pratikte, teknik olarak muhafazakar olmak, yığınımızdaki mevcut teknolojileri ve çerçeveleri yeniden kullanmak veya denenmiş ve test edilmiş kalıpları ve çözümleri teşvik etmek gibi görünüyor. Bu aşinalığa değer veriyoruz çünkü çözülmesi gereken önemli sorunların müşteri veya işletme değeri sağlayan sorunlar olduğunu anlıyoruz.

Yeni teknolojileri değerlendirmek ve sonuçta çok az müşteri değeri sağlayan halihazırda çözülmüş operasyonel sorunlara zaman harcamak yerine, çözümler oluşturarak, yayınlayarak ve yineleyerek ürünü geliştirmeye odaklanabiliriz.

Bu, ürün ilkelerimizi araştıran bir dizinin altıncı gönderisidir . Burada Waheed, “Teknik olarak muhafazakar olun” mühendislik prensibimizi tartışıyor.

Teknik muhafazakarlığın birçok uzun vadeli faydası vardır.

Bu ilke, "Teknik olarak muhafazakar olun " un, nihayetinde bir kısıtlama olmaksızın hızlı ölçeklendirmemize nasıl izin verdiğini gösteren, yıllar içinde en iyi şekilde birkaç örnekle açıklanmaktadır. Daha önce, yığınımıza yeni bir veri deposu eklemenin faydalarını değerlendirdiğimiz raporlama sistemimizi tasarlama deneyimimizden bahsetmiştim – Redshift. Bu, üretime karşı hiç test edilmemiş yeni bir veritabanı türünü sistemimize dahil etmek anlamına gelirdi. Ayrıca, operasyonel bilgi oluşturmak, üretimdeki kümeleri korumak ve Redshift'i geniş ölçekte çalıştırmanın öngörülemeyen sorunlarıyla uğraşmak için çok zaman harcamamız gerekecekti.

" Tahmini altı aydan altı haftaya kadar olan süreci hızlandırmak için mevcut altyapımızdan yararlandık"

Sonunda, tanıdık bir veri deposunun bu işe daha uygun olduğuna karar verdik. Süreci tahmini altı aydan altı haftaya hızlandırmak için Intercom'un arama yeteneklerinin çoğuna güç veren mevcut Elasticsearch altyapımızdan yararlandık.

Raporlama sisteminin ilk sürümü birkaç yıl önce sevk edildi, bu nedenle bu durumda teknik muhafazakarlık uygulamamızın bazı uzun vadeli faydaları üzerinde düşünme fırsatımız oldu:

Müşterinin sorununu daha hızlı çözdük

Mevcut altyapımızı kullanmak, yeni bir veri deposuna alışmak ve kaçınılmaz tüm aksaklıklarla uğraşmak için zaman harcamaktan kaçındığımız anlamına geliyordu. Hemen çözülmesi gereken müşteri sorununa odaklanabildik ve teslimat süresini dört aydan fazla kısaltarak hızlı bir şekilde sevk ettik.

Takımın zamanını en iyi şekilde kullandık

Veri Altyapısı ekibimiz, birden fazla teknolojiye yayılmak yerine küçük, tanıdık bir dizi teknolojiye odaklanmaya devam edebildi. Sonuç olarak, mevcut sistemlerimizin sağlıklı olmasını sağlamak ve her bir teknolojiyi kullanımımızı optimize etmek için daha fazla zamanları oldu ve hala da var.

Teknoloji setimiz nispeten küçük olduğu için iyileştirmeler düzenli olarak gerçekleşiyor”

Devam eden iyileştirmelerin değerini birleştirdik

Teknoloji setimiz nispeten küçük olduğundan, iyileştirmeler düzenli olarak gerçekleşir. Ürün, bu teknolojilerden yararlanır ve bu iyileştirmelerin etkisi, bunların üzerine inşa edilen her şeyde birleşir. Küçük bir iyileştirme, ürünün tamamında büyük, olumlu bir dalgalanma etkisi yaratabilir.

Daha fazla takım daha fazla girdi aldı

Ortak teknolojilerin kullanılması, daha fazla mühendis ve ekibin onlarla çalışmak için kendinden emin ve yetkili hissetmesi anlamına gelir. Sistemin belirli bir bölümüne sahip olan tek bir ekip yerine, şirket genelindeki ekiplerden raporlama ürününde sık sık iyileştirmeler gördük.

İlkelerin kural olmadığını unutmayın, onlar kılavuzdur

İlkeler, ekipleri hizalamanın inanılmaz bir yoludur ve Intercom için harika sonuçlar vermiştir. Ancak, onları takip etmemenin daha mantıklı olabileceği zamanlar vardır. Bir şirket ölçeklendikçe, bazı ekip üyelerinin ilkeleri dogmatik olarak izlemesi veya yanlış yorumlaması riski vardır. Teknik muhafazakarlığa boyun eğmek, asla yeni bir şey tanıtmayacağımız anlamına gelmemelidir.

"Teknik muhafazakarlık, zaten yığınınızda olan bir teknolojiyi tercih etmek anlamına gelir - ancak bu yalnızca en iyi seçenekse"

Teknik muhafazakarlık, zaten yığınınızda olan bir teknolojiyi tercih etmek anlamına gelir - ancak bu yalnızca en iyi seçenekse. Bazı durumlarda mevcut bir teknoloji uygun olmayabilir. Aşağıdaki sorulara cevap veremezse, daha ileri bakabilir ve alternatifleri değerlendirebiliriz:

  • Yeni araç, işletmenizin daha etkili bir şekilde ölçeklenmesini sağlıyor mu?
  • Ekibinizin veya kuruluşunuzun daha hızlı hareket etmesine ve daha hızlı değer sunmasına izin veriyor mu?
  • Mevcut araçlarınızla çözülemeyen bir müşteri sorununu çözüyor mu?

Bunlardan herhangi birine “evet” cevabını veriyorsanız, bu yeni aracı tanıtmayı düşünmeye değer olabilir. Intercom'da yakın zamanda üç soruya da "evet" yanıtı veren bir örnek vardı.

Kullanıcılar veya müşterilerimizin müşterileri, Intercom platformunun özüdür. Biz büyüdükçe, intercom'da ne kadar kullanıcı verisi depoladıklarına ilişkin müşterilerimiz ve ihtiyaçları da büyüdü. Çok büyük miktarda kullanıcı verisi, o sırada mevcut kullanıcı veri depomuzla ilgili ölçeklendirme sorunlarına yol açıyordu ve mevcut ve yeni müşterileri desteklemeye devam edebilmemiz için mevcut çözümümüzü yeniden düşünmemiz gerekiyordu. Bu, nihayetinde yığınımıza yeni bir teknoloji eklememize neden oldu - işte bu karara nasıl ulaştık.

Veri depomuzun izin verdiğinden daha hızlı ölçekleniyorduk

MongoDB'yi yaklaşık beş yıldır kullanıyorduk ve bunu kanıtlayacak operasyonel yaralarımız vardı. Üzerinde çalıştığı donanım türünden, üzerinde çalıştırdığımız sorgulara kadar, ona sahip olmanın ve çalıştırmanın her yönünü optimize ettik. Azalan getiriler noktasındaydık ve birkaç yıl içinde amaca uygun olmaktan çıkacağına ve hatta şirketin büyümesinde bir darboğaz haline gelebileceğine dair güçlü sinyaller görüyorduk.

“Düzenli olarak işinizin gidişatını düşünün ve ' Bizi buraya getiren şey, bizi oraya götürecek mi? '. Bu , seçimleriniz konusunda reaktif olmak yerine proaktif olmanızı sağlayacaktır”

Güçlü, ileri görüşlü bir teknik stratejiye sahip olmanın anahtar olduğu yer burasıdır. Bu noktada, başka bir yaklaşımı değerlendirmemiz gerekebileceğini düşündürecek yeterli veriye ve bunu yapacak piste sahip olduk. Düzenli olarak işinizin gidişatını düşünün ve “Bizi buraya getiren şey, bizi oraya götürecek mi?” diye sorun. Bu, reaktif olmaktan ziyade seçimleriniz konusunda proaktif olmanızı sağlayacak ve yeni bir teknoloji sunmanın bilinmeyen bilinmeyenleri etrafındaki riskleri azaltacaktır.

Teknolojimiz ekibimizi yavaşlatıyordu

Intercom'da daha az yazılım çalıştırmaya çalışıyoruz. Bu durumda, bilinmeyen bilinmeyenlerle yeni bir teknolojiyi benimsiyor olsak da, DynamoDB'yi benimsemek tam da bunu yapmamızı sağladı.

Önceden, yük dengeleme koduyla birlikte MongoDB'nin ölçeklendirmesini kendimiz yönetiyorduk - bu, ekip için önemli bir ek yük. DynamoDB'nin çekici yanı, satıcı AWS tarafından yönetilmesiydi. Bu, onu benimsemenin başlangıçta bir maliyeti olmasına rağmen, sonuçta daha ucuz olacağı ve ekibe büyük miktarda zaman ve emek tasarrufu sağlayacağı anlamına geliyordu.

“Teknik muhafazakarlık konusunda dogmatik olmamak, bir teknolojiyi büyük genel giderler ve sınırlı yeteneklerle değiştirmemizi sağladı”

Sezgilere aykırı görünebilir, ancak yeni bir teknolojinin tanıtılması sonuçta daha az yazılım çalıştırmamıza neden oldu. Teknik muhafazakarlık konusunda dogmatik olmamak, büyük giderleri ve sınırlı yetenekleri olan bir teknolojiyi, operasyonel olarak daha az külfetli ve daha ölçeklenebilir yeni bir teknolojiyle değiştirmemizi sağladı.

Gereksinimler konusunda acımasızdık

Bazen MongoDB'nin kullanılabilirliği ve daha yaygın ancak daha az karmaşık sorguların performansını riske atan karmaşık ve pahalı sorgular gerçekleştirmesini isteriz. DynamoDB'yi değerlendirirken, bu karmaşık ve pahalı sorguları desteklemeyeceğini ancak daha basit ve yaygın sorgularda çok daha iyi olacağını fark ettik.

Karmaşık sorguları gerçekleştirmek için zaten çoğunlukla Elasticsearch'ü kullandık ve geçiş ihtiyacı bizi kullanıcı mağazamızdan ihtiyaç duyduğumuz yetenekleri gözden geçirmeye ve daha bilinçli bir şekilde tanımlamaya zorladı ve sonuçta birincil kullanım durumu için performansı iyileştirmemize izin verdi: tek kullanıcı kayıtlarını alma.

“Bir teknolojiyi değiştirmeyi düşünürken, yeni teknolojiyi aynı şekilde kullanacağınızı varsaymayın”

Bir teknolojiyi değiştirmeyi düşünürken, yeni teknolojiyi aynı şekilde kullanacağınızı varsaymayın. Gereksinimleriniz zaman içinde büyük olasılıkla önemli ölçüde değişmiş olacak ve yığının geri kalanı, kullanım senaryolarının daha dar hale gelmesi için evrim geçirmiş veya olgunlaşmış olacaktır. Bu, daha odaklı, performanslı teknolojileri benimseme veya bir satıcı tarafından yönetilecek bazı teknolojileri boşaltma fırsatları yaratacaktır.

İlkelerinizin işiniz için çalışmasını sağlayın, tersi değil

Teknik ihtiyatlılık, ekiplerinizin neyin önemli olduğuna - müşteri sorunlarını çözmeye ve değerli kaynakları daha önce yanıtlanmış soruları yanıtlamak için harcamadan değer sunmaya - odaklanmasını sağlamak için harika bir araçtır.

Bununla birlikte, yeni teknolojileri tanıtmanın kötü olduğu inancında çok katı olmak, daha az yazılım çalıştırmanıza ve daha kolay ve hızlı ölçeklendirmenize yardımcı olacak teknolojilerden yararlanmanızı engelleyebilir. Bu ilkeyi uzun vadede ekibiniz ve işiniz için en iyi sonucu verecek şekilde uygulamak önemlidir.

Intercom'un mühendislik ekibine katılmak ister misiniz? Daha fazla bilgi edinin ve burada açık rollerimizi görün.

Kariyer CTA - Mühendislik (yatay)