Temporal Technologies'e göre mikro hizmetlerin durumu

  • Jul 19, 2023

Bulutta yerel uygulamaların çalışmaya devam etmesi için düğüm arızaları etrafında mühendislik yapmak çok önemlidir. Temporal, hatanın üstesinden gelmek üzere tasarlanmış durum yönetimi için ara katman yazılımıyla Java geçmişinden bir sayfa çalar.

saat.jpg
Doğrulanmış

Son kullanıcı için, bulutta yerel hizmetlerin hayatı basitleştirmesi ve daha fazla çeviklik sağlaması gerekiyor. Yine de geliştirici için hayatı çok daha karmaşık hale getirebilirler. dağıtık yapıları nedeniyle. Zorluklar arasında, veritabanı uygulayıcılarının ikinci doğası olan, ancak uygulama geliştiricileri olması gerekmeyen durum yönetimi yer alır. meydan okuma bu Zamansal Teknolojiler mikro hizmetlerin orkestrasyonunun ardındaki durum yönetimini sağlayarak, hizmetin aşağıdaki gibi birbirine geçtiği yerleri ele alarak üstlendi: Istio vazgeçmek.

Anlaşılır bir şekilde, bu iki yıllık şirketi muhtemelen daha önce hiç duymamışsınızdır, çünkü seyrek web sitesi şirketi neredeyse hala gizlilik içindeymiş gibi gösteriyor. Temporal'ın ücretli bir müşteri tabanı olup olmadığı net değil; Datadog, Netflix, Instacart, Qualtrics, Box ve diğerleri gibi bir dizi logoyu listeler, ancak bunlar açık kaynak teknolojisinin kullanıcılarıdır, ödeme yapan müşteriler değildir. Yeterince yakından kazarsanız, gerçekten bazı gerçek belgeler bulabilirsiniz. Ancak bahsetmeyi unutursak diye Temporal, 103 milyon dolarlık bir B Serisi raundu elde etti.

Temporal özellikle dar bir görevi saptar: mikro hizmetlerin durumunu yönetmek. Mikro hizmetlerin tipik olarak yüksek oranda dağıtılmış bulut ortamlarında devreye girdiği göz önüne alındığında, durumu yönetmek, ana bilgisayarsız veya çok yöneticili bir veritabanında işlemlerin koreografisini yapmaya benzer. Bu, örneğin Cassandra geliştiricilerinin bizim de gayet iyi bildiğimiz bir zorluk. Veritabanlarında, her şey işlem tutarlılığı ile yazma kullanılabilirliğini dengelemekle ilgilidir. Uygulama veya mikro hizmetler katmanında, zincirin (bu durumda, belirli mikro hizmetleri barındıran bilgi işlem düğümleri) yalnızca en zayıf halkası kadar güçlü olacağı kullanılabilirlik ile ilgilidir.

İşlemleri gerçekleştiren durumu yönetmek, sonuçların geçerli ve güncel olmasını sağlamanın ve ister veritabanı ister uygulama olsun sistemin çökmesini önlemenin anahtarıdır. Örneğin, bir banka ATM makinesinden nakit çektiğinizde, işlemin ancak hesap borçlandırıldığında tamamlanmasını sağlamak için durum yönetimi esastır.

Dağıtılmış ortamlarda durumu yönetme ihtiyacı çok kritiktir çünkü birden fazla hareketli parça söz konusu olduğunda, bunlardan birinin tekleme yapma olasılığı oldukça yüksektir. Dolayısıyla, internette veya bulutta çalışan herhangi bir şey, başarısızlık için mühendislik gerektirir. yük devretme ve geçici çözümler, böylece tek bir düğümün kesintisi tüm uygulamayı veya hizmet.

Veritabanı dünyasında, durum motorları tipik olarak yerleşikti; bir veritabanı başlatırsanız, kendi durum motorunuzu yazmanız gerekmez. AppDev dünyasında durum böyle değil; geliştiriciler genellikle kendi yazmak zorunda kaldı.

Mikro hizmetler için, kuruluşların genellikle uygulama co e'ye ek olarak kendi durum makinelerini yazmaları gerekir. Geçici kullanıcı için denetleyici, çevrimiçi çalışan özgeçmiş kontrolleri sağlayan bir hizmet, tipik bir iş akışı genellikle bir dizi 50 -- 60- otomatik ve manuel adımlar (her biri mikro hizmetlerdir), çok çeşitli harici ağlardan veri alma kaynaklar. Birden fazla hedef veri tabanına veri yazarak ve ardından sonuçları birleştirmek için mantık yazarak hokkabazlık yapacak çok sayıda Kafka kuyruğu vardı. Temporal bir sunucuyla, durum motoru yerine uygulamaya odaklanabilirler.

Temporal, çözümünü "son derece güvenilir, ölçekte görev açısından kritik uygulamalar." Mikro hizmetler için, ilk bakışta bu, kulağa çok benziyor. hizmet ağları yapar. Ancak hizmet ağları altyapı düzeyinde çalışır, bağlantılar kurar ve düğümler giderse yük devretme sağlar. Buna karşın Temporal, bir uygulama düzeyine ve daha spesifik olarak, kodun veya mikro hizmetteki mantık yürütülür ve yürütülmezse basamaklandırma ile ilgili geçici çözümleri yönetir bağımlılıklar.

Temporal'ın mikro hizmetlerle çözdüğü sorun, hiçbir şey değildir. Yukarıda belirtildiği gibi, AppDev dünyasında durum motorlarının harici kod olarak yazılması veya bazı çerçevelerin parçası olarak paketlenmesi gerekir. Web durum bilgisi olmadığı için İnternet uygulamalarının da çözmesi gereken sorun tam olarak buydu. Java gibi popüler dillerin kendi mekanizmalarını taşıdığı web uygulamalarıyla süreci işlemek için ara katman yazılımı veya uygulama sunucuları. yöneten devlet.

Temporal ile geçmiş, mikro hizmetler katmanında kendini tekrar ediyor. Durum yönetimi sunucusu teknolojisi, beş yıllık bir açık kaynak projesi bu, Uber'de geliştirilen çalışmanın doğal sonucuydu. Etrafında inşa edilmiş Geçici Sunucu, bilgi işlem sunucuları ile yürütülebilir kaynak kodu arasında yer alan bir mikro hizmet düzenleme platformu.

Bu, bariz soruyu gündeme getiriyor: Mikro hizmetler doğası gereği dağıtılıyorsa, dağıtılmış olarak yürütülüyorsa bilgi işlem ortamlarında, merkezi bir orkestrasyon sunucusu, tek bir nokta tanıtarak amacı ortadan kaldırmaz mı? arıza? Cevap yeni bir "deneysel" çok kümeli eşzamansız çoğaltma özelliği bu, gerekli yük devretme yeteneklerini sağlamalıdır. Mikro hizmetler için işlem garantileri söz konusu olduğunda, gelecek hala devam eden bir çalışmadır.

Büyük veri

Bir veri ihlaline karışıp karışmadığınızı (ve bundan sonra ne yapacağınızı) nasıl öğrenebilirsiniz?
Yapay zekada önyargıyla mücadele verilerle başlar
Adil tahmin? 180 meteorolog nasıl 'yeterince iyi' hava durumu verileri sağlıyor?
Kanser tedavileri baş döndürücü miktarda veriye bağlıdır. İşte bulutta nasıl sıralandığı
  • Bir veri ihlaline karışıp karışmadığınızı (ve bundan sonra ne yapacağınızı) nasıl öğrenebilirsiniz?
  • Yapay zekada önyargıyla mücadele verilerle başlar
  • Adil tahmin? 180 meteorolog nasıl 'yeterince iyi' hava durumu verileri sağlıyor?
  • Kanser tedavileri baş döndürücü miktarda veriye bağlıdır. İşte bulutta nasıl sıralandığı