Bağımsız mikro hizmetlere (bir RabbitMq veri yolu üzerinden bağlı) dayalı bir sistem tasarlıyoruz. Kod (en azından ilk bileşenler için) python'a (hem python2 hem de python3) yazılır. Mikro hizmetler olarak yeniden düzenleme yapmak ve genişletmek istediğimiz bazı iş mantığını uygulayan monolit bir uygulamamız var. Beni endişelendiren bir soru:
Farklı mikro hizmetler arasında kod paylaşmanın en iyi yolu nedir? Birkaç mikro hizmet tarafından kullanılması gereken ortak yardımcı işlevlerimiz (veri işleme, günlük kaydı, yapılandırma ayrıştırma vb.) Var.
Mikro hizmetlerin kendileri ayrı projeler (git depoları) olarak geliştirilecektir. Ortak kütüphaneler bağımsız bir proje olarak da geliştirilebilir. Bu kütüphaneleri mikro hizmetler arasında nasıl paylaşabilirim?
Birkaç yaklaşım görüyorum:
- her bir mikro hizmet için gereken kitaplık sürümünü kopyalayın ve gerektiği gibi güncelleyin
- ortak kütüphaneleri dahili bir PyPi'ye bırakın ve bu kütüphaneleri mikro hizmet gereksinimlerine bağımlılık olarak listeleyin
- kütüphane havuzunu git alt modülü olarak dahil et
Nasıl ilerleyeceğime karar vermeden önce önerilen yaklaşımlar, en iyi uygulamalar, geçmiş deneyimler hakkında biraz daha okumak istiyorum. Herhangi bir öneriniz veya bağlantınız var mı?
fib(n)
(fibonacci serisinin uygulanması). Her mikro hizmette bu uygulamayı tekrarlamak istemezsiniz. Bu bir utils
kütüphaneye aittir (özellikler ve hata düzeltmeleri için versiyonlanmıştır). Bu dağıtılmış bir monolit değildir, bu sadece ortak işlevsellik katmanıdır. Benim sorum, bu katmanı uygulama düzeyinde nasıl ele alacağım?