2016-03-22 47 views
5

Bir Node.js (Meteor) uygulaması oluşturdum ve gelecekte ölçekleme işlemek için stratejiler arıyorum. Uygulamamı bir dizi mikro servis olarak tasarladım ve şimdi bunu üretimde uygulamayı düşünüyorum.Docker kullanarak ölçekleme microservices

Ne yapmak isterim, az sayıda kaynak kullanırken kaynak kullanımını en üst düzeye çıkarmak için bir sunucu örneğinde çalışan birçok mikro hizmet var. konteynerlerin dinamik ölçekleme kümesi oluşturmak için bir yol varsa ben kaplar bunun için faydalıdır biliyorum ama merak ediyorum nerede yapabilirsiniz: Böyle kaplarda ise bu sunucuda "hükmü başka bir uygulama kapsayıcı olarak

  • Yaz komutları çalışan bu uygulama ulaşmak>% 80 CPU/diğer sınırlayıcı metrikleri",
  • Karşılığı ve ekstra kapları için gerekirse diğer sunucular hazırlamak,
  • yük dengesi bu konteynerlerin arasındaki bağlantılar (ve bu sunucu yük dengeleme etkiler, örneğin, daha az gönderin daha az kapsayıcı olan sunuculara bağlantılar?)

AWS EC2, Docker Compose ve nginx'e baktım ama doğru yönde gidip gitmediğimi belirsiz değilim.

+0

Meteor 1.3+'deki kod yapısı, Meteor'da mikro hizmetlerin yazılması için elverişlidir. Hizmetler arasındaki bağımlılıkları yönetmek için, anotherMeteor = DDP.connect (anotherMeteorServer) kullanın. Benim 2c. Henüz bunu denemedim. – vijayst

+0

@Vijay Zamanım olduğunda buna kendim cevap verebilirim. Bunu nasıl yapacağım konusunda bir fikrim olduğunu düşünüyorum, denemek için zamanım olmadıysa da, cevap vermeyi unuttuğum halde ve hala aramaya devam ederseniz, ihtiyacınız varsa cevap için bu alanı izleyin. –

cevap

0

Kubernetleri ve/veya Mesos'u araştırın ve asla geriye bakmayacaksınız. Ne yapmak istediğin için özel yapılmışlar. odaklanmanız gereken iki bileşeni vardır:

  1. Hizmet Bulma: Bu birbirine bağlı hizmetler veriyor (mikro-hizmet "A", "B" olarak adlandırdığı) "Bul" için birbirlerine. Genellikle DNS kullanılarak yapılır, ancak örneklerin ölçeklendirildiği gibi olanı ele alan kayıt özellikleriyle birlikte.

  2. Planlama: Docker-topraklarda, zamanlama CRON işler hakkında değil, konteynerler mevcut kaynakların etkin kullanımını maksimize etmek ölçekli ve çeşitli şekillerde sunuculara "paketlenmiş" nasıl gelir.

Burada düzinelerce seçenek var: Docker Swarm, Rancher, vb. Ayrıca rakip alternatifler. Amazon gibi birçok bulut sağlayıcısı da bu özelliklere sahip özel hizmetler (ECS gibi) sunar. Ama Kubernetes ve Mesos standart seçimler olarak ortaya çıkıyor, bu yüzden en azından orada başlayacaksanız iyi bir şirkette olursunuz.

0

Metrikler Docker API (ve cool blog post) aracılığıyla toplanmış olabilir ve genellikle bunun için kullanılır. DAPI ve docker istifleme araçlarıyla (compose/swarm/machine) tamir edilmesi, mikro servis mimarisini verimli bir şekilde ölçeklendirmek için çok sayıda araç sağlayabilir.

Kaynak bulma sistemindeki discovery'yi yönetmek için Consul lehine tavsiyede bulunabilirim.