Netflix'in Data Projects Modeli: Veri Varlıklarını Ölçekte Yönetmek
Netflix, milyonlarca tabloyu ve on binlerce iş akışını yönetmek için Data Projects'i tanıttı. Kişiye bağlı kimlik ve ACL sorunlarını nasıl çözdüklerini inceliyoruz.
Netflix'in veri platformu, milyonlarca tablo ve on binlerce zamanlanmış iş akışından oluşuyor. Bugüne kadar erişim kontrolü tablo bazında ACL'lerle, iş akışları ise bunları yazan mühendisin kimliğiyle çalışıyordu. Bu yaklaşım, organizasyon değişiklikleri ve personel hareketliliği karşısında sürdürülemez hale geldi: reorganizasyonlarda yüzlerce ACL'nin tek tek güncellenmesi gerekiyor, insanlar takım değiştirdiğinde veya ayrıldığında onların kimliğiyle çalışan iş akışları bozuluyordu.
Netflix bu ikili soruna Data Projects adını verdiği bir soyutlamayla çözüm getirdi. Bir Data Project, ilişkili tabloları, iş akışlarını ve diğer veri varlıklarını tek bir mantıksal kapsayıcı altında toplayan bir kapsayıcı olmanın yanı sıra, zamanlanmış iş akışlarının insan kimliğinden bağımsız çalışabileceği kalıcı ve devralınabilir bir sentetik kimlik de sağlıyor. Yönetim granülerliği tek tek varlıktan proje seviyesine taşınıyor; yüzlerce tabloyu ayrı ayrı yönetmek yerine tek bir projeyi yönetmek yeterli oluyor.
Her projeye kullanıcı, grup, uygulama ve CI job'ları gibi farklı kimlik türleri Contributor veya Viewer gibi rollerle eklenebiliyor. Netflix uygulama kimliği ve isteğe bağlı AWS IAM rolüyle donatılan projeler, Maestro gibi orkestrasyon sistemlerinde çalışan iş akışlarının kimlik doğrulamasını bu kalıcı kimlik üzerinden yapmasını sağlıyor. 'Gravity' adı verilen mekanizma sayesinde bir proje kimliğiyle üretilen yeni varlıklar otomatik olarak o projeye dahil oluyor, böylece organizasyon kendiliğinden oluşuyor.
Bu model, mühendislik ekipleri için önemli bir ders sunuyor: büyük ölçekte kimlik ve erişim yönetimini bireysel varlık yerine anlamlı bir konteyner seviyesinde ele almak, hem operasyonel yükü azaltıyor hem de iş akışlarının organizasyonel değişikliklere karşı dayanıklılığını artırıyor.