Uber'in Checkenv'i, veri sızıntısını önlemek için ortamdaki RPC çağrılarını algılar
Uber, gevşek bağlı birçok hizmetin uzaktan prosedür çağrıları (RPC'ler) aracılığıyla etkileşime girdiği mikro hizmet mimarisinin karmaşıklığını gidermek için CheckEnv adında yeni bir araç geliştirdi. Bu araç, veri tutarsızlığı veya beklenmeyen davranışlar gibi istenmeyen sonuçlara yol açabilecek, üretim ve hazırlama gibi farklı ortamlar arasında geçiş yapan RPC çağrılarını hızlı bir şekilde tespit etmek ve işlemek için tasarlanmıştır.
CheckEnv, hizmetten hizmete çağrıları temsil eden bağımlılık grafiklerini kullanarak çağrı düzenleri ve bağımlılıklara ilişkin öngörüler sağlar. Bu görselleştirme, ortamdaki RPC çağrılarının tanımlanmasına yardımcı olur. Sistem, algılama sürecini otomatikleştirmek için gelişmiş grafik analiz tekniklerini kullanıyor ve bu tür sorunları hızlı bir şekilde çözmek için bu yetenekleri Uber'in izleme ve uyarı sistemlerine entegre ediyor.
Araç hem gerçek zamanlı hem de toplu bağımlılık grafiklerini içerir. Gerçek zamanlı grafik sürekli olarak güncellenerek temel metrikler yakalanır ve hizmet bağımlılıklarındaki olası sorunlar belirlenir. Öte yandan, toplu bir grafik, hizmet etkileşimlerinin tarihsel bir perspektifini sağlar ve bu da zaman içindeki sistem performansının analiz edilmesine yardımcı olur.
CheckEnv, Uber'deki Grail ve Local Graph olmak üzere iki grafik veri depolama sisteminde çalışır. Bu platformlar bağlantı grafiği verilerini toplar ve saklar; CheckEnv, hizmet bağımlılıkları ve üretim bağımlılıklarına giden yollar gibi bilgilere erişmek ve bunları almak için API'ler sağlar. Bu ayar anormallikleri belirleme, sorunları giderme ve mikro hizmet mimarisini optimize etme yeteneğini geliştirir.
CheckEnv uygulamasının bir örneği Uber'in sentetik yük testi platformu Ballast'tır. Burada, yük testleri sırasında ortamlar arasındaki potansiyel çağrıları tespit eder ve kullanıcıları herhangi bir potansiyel sorun ortaya çıkmadan önce uyararak güvenli ve güvenilir bir test ortamı sağlar.
Geleceğe baktığımızda Uber, daha güçlü bir grafik oluşturmak için CheckEnv'in ve onun temel veri alma hattı MazeX'in yeteneklerini genişletmeyi planlıyor. Bu genişleme, sistemin hizmetler arasındaki iletişim modellerini analiz etme, veri akışını iyileştirme ve hizmet verimliliğini artırma yeteneğini geliştirmeyi amaçlamaktadır. Bu grafik tabanlı yaklaşımın, mikro hizmet mimarisindeki gerçek zamanlı hata tespiti ve iş akışı yönetimi gibi birçok zorluğu ele alması bekleniyor.