Bu Sistemi Nasıl Tasarlamalıyım ?
-
merhabalar
bir projem için mimari konusunda fikre ihtiyacım var,
basitçe front endde kullanıcıdan aldığımız verileri arkada belli aralıklarla işleyeceğiz, atıyorum adamdan bi link alıcaz linkteki videoyu indirip işleyeceğiz falan. web tarafında django kullanıyoruz, bu arkadaki işler içinde celery kullanıcaz. celery yi aws fargate ile bağlayıp her task için bir vm açmayı düşünüyorum, böylece hem tasklar paralel çalışır hem de hiç task yoksa hiç bişey çalışmaz , maliyet sıfır olur :P
taskları lambdaya atmayı düşündüm lakin bazı tasklar baya uzun sürüyor (10dk falan, ve optimize etme şansım yok çünkü google apilerinden bişeyler çekiyorum, süreyi o uzatıyor) lambda da uçuk maliyetler çıkar diye düşündüm.yanlış mı düşünüyorum ?
fargate dışında daha mantıklı önerisi olan var mıdır? ya da bu workflowu yönetebileceğim, workerları farklı farklı dillerde yazabileceğim lambda dışında platform var mı ? atıyorum bi workerı ben pythonda yazayım sonra js ci adam gelsin öbürünü js de yazsın vs vs
-
yolbulucu bunu yazdı
merhabalar
bir projem için mimari konusunda fikre ihtiyacım var,
basitçe front endde kullanıcıdan aldığımız verileri arkada belli aralıklarla işleyeceğiz, atıyorum adamdan bi link alıcaz linkteki videoyu indirip işleyeceğiz falan. web tarafında django kullanıyoruz, bu arkadaki işler içinde celery kullanıcaz. celery yi aws fargate ile bağlayıp her task için bir vm açmayı düşünüyorum, böylece hem tasklar paralel çalışır hem de hiç task yoksa hiç bişey çalışmaz , maliyet sıfır olur :P
taskları lambdaya atmayı düşündüm lakin bazı tasklar baya uzun sürüyor (10dk falan, ve optimize etme şansım yok çünkü google apilerinden bişeyler çekiyorum, süreyi o uzatıyor) lambda da uçuk maliyetler çıkar diye düşündüm.yanlış mı düşünüyorum ?
fargate dışında daha mantıklı önerisi olan var mıdır? ya da bu workflowu yönetebileceğim, workerları farklı farklı dillerde yazabileceğim lambda dışında platform var mı ? atıyorum bi workerı ben pythonda yazayım sonra js ci adam gelsin öbürünü js de yazsın vs vs
hocam detaylar çok kısıtılı, hangi sitelerden alınan videolar hangi kalitede hangi limitlerle alınacak(google svlerinden r2. sublarından mı mesela)
kullanıcılar arası hiyerarşi olacak mı, özel üyelikler olacak mı ve ne ölçekte bir proje olacak?
-
yalinyalniz bunu yazdıyolbulucu bunu yazdı
merhabalar
bir projem için mimari konusunda fikre ihtiyacım var,
basitçe front endde kullanıcıdan aldığımız verileri arkada belli aralıklarla işleyeceğiz, atıyorum adamdan bi link alıcaz linkteki videoyu indirip işleyeceğiz falan. web tarafında django kullanıyoruz, bu arkadaki işler içinde celery kullanıcaz. celery yi aws fargate ile bağlayıp her task için bir vm açmayı düşünüyorum, böylece hem tasklar paralel çalışır hem de hiç task yoksa hiç bişey çalışmaz , maliyet sıfır olur :P
taskları lambdaya atmayı düşündüm lakin bazı tasklar baya uzun sürüyor (10dk falan, ve optimize etme şansım yok çünkü google apilerinden bişeyler çekiyorum, süreyi o uzatıyor) lambda da uçuk maliyetler çıkar diye düşündüm.yanlış mı düşünüyorum ?
fargate dışında daha mantıklı önerisi olan var mıdır? ya da bu workflowu yönetebileceğim, workerları farklı farklı dillerde yazabileceğim lambda dışında platform var mı ? atıyorum bi workerı ben pythonda yazayım sonra js ci adam gelsin öbürünü js de yazsın vs vs
hocam detaylar çok kısıtılı, hangi sitelerden alınan videolar hangi kalitede hangi limitlerle alınacak(google svlerinden r2. sublarından mı mesela)
kullanıcılar arası hiyerarşi olacak mı, özel üyelikler olacak mı ve ne ölçekte bir proje olacak?
hocam bu detayların sorduğum soruyla ne ilgisi var anlamadım ? video işlemeyi örnek olarak verdim, herhangi bir uzun sürecek task düşünebilirsin. bir sürü kullanıcıdan gelmiş bir sürü uzun sürecek taskı ölçekleme konusunda düşünmeden, paralel olarak çalıştırmak istiyorum ben.
-
yolbulucu bunu yazdıyalinyalniz bunu yazdıyolbulucu bunu yazdı
merhabalar
bir projem için mimari konusunda fikre ihtiyacım var,
basitçe front endde kullanıcıdan aldığımız verileri arkada belli aralıklarla işleyeceğiz, atıyorum adamdan bi link alıcaz linkteki videoyu indirip işleyeceğiz falan. web tarafında django kullanıyoruz, bu arkadaki işler içinde celery kullanıcaz. celery yi aws fargate ile bağlayıp her task için bir vm açmayı düşünüyorum, böylece hem tasklar paralel çalışır hem de hiç task yoksa hiç bişey çalışmaz , maliyet sıfır olur :P
taskları lambdaya atmayı düşündüm lakin bazı tasklar baya uzun sürüyor (10dk falan, ve optimize etme şansım yok çünkü google apilerinden bişeyler çekiyorum, süreyi o uzatıyor) lambda da uçuk maliyetler çıkar diye düşündüm.yanlış mı düşünüyorum ?
fargate dışında daha mantıklı önerisi olan var mıdır? ya da bu workflowu yönetebileceğim, workerları farklı farklı dillerde yazabileceğim lambda dışında platform var mı ? atıyorum bi workerı ben pythonda yazayım sonra js ci adam gelsin öbürünü js de yazsın vs vs
hocam detaylar çok kısıtılı, hangi sitelerden alınan videolar hangi kalitede hangi limitlerle alınacak(google svlerinden r2. sublarından mı mesela)
kullanıcılar arası hiyerarşi olacak mı, özel üyelikler olacak mı ve ne ölçekte bir proje olacak?
hocam bu detayların sorduğum soruyla ne ilgisi var anlamadım ? video işlemeyi örnek olarak verdim, herhangi bir uzun sürecek task düşünebilirsin. bir sürü kullanıcıdan gelmiş bir sürü uzun sürecek taskı ölçekleme konusunda düşünmeden, paralel olarak çalıştırmak istiyorum ben.
Taskin sistemi yorma oranına göre tek makinede de çalıştırabilirsin mesela veya her makineye instance de açabilirsin ama en verimli yolu bulmak için tüm yapıyı bilmek gerek.
Saydığın servisler bu iş için uygundur hocam ama verimli midir onu söyleyemeyeceğim maalesef.
-
yalinyalniz bunu yazdıyolbulucu bunu yazdıyalinyalniz bunu yazdıyolbulucu bunu yazdı
merhabalar
bir projem için mimari konusunda fikre ihtiyacım var,
basitçe front endde kullanıcıdan aldığımız verileri arkada belli aralıklarla işleyeceğiz, atıyorum adamdan bi link alıcaz linkteki videoyu indirip işleyeceğiz falan. web tarafında django kullanıyoruz, bu arkadaki işler içinde celery kullanıcaz. celery yi aws fargate ile bağlayıp her task için bir vm açmayı düşünüyorum, böylece hem tasklar paralel çalışır hem de hiç task yoksa hiç bişey çalışmaz , maliyet sıfır olur :P
taskları lambdaya atmayı düşündüm lakin bazı tasklar baya uzun sürüyor (10dk falan, ve optimize etme şansım yok çünkü google apilerinden bişeyler çekiyorum, süreyi o uzatıyor) lambda da uçuk maliyetler çıkar diye düşündüm.yanlış mı düşünüyorum ?
fargate dışında daha mantıklı önerisi olan var mıdır? ya da bu workflowu yönetebileceğim, workerları farklı farklı dillerde yazabileceğim lambda dışında platform var mı ? atıyorum bi workerı ben pythonda yazayım sonra js ci adam gelsin öbürünü js de yazsın vs vs
hocam detaylar çok kısıtılı, hangi sitelerden alınan videolar hangi kalitede hangi limitlerle alınacak(google svlerinden r2. sublarından mı mesela)
kullanıcılar arası hiyerarşi olacak mı, özel üyelikler olacak mı ve ne ölçekte bir proje olacak?
hocam bu detayların sorduğum soruyla ne ilgisi var anlamadım ? video işlemeyi örnek olarak verdim, herhangi bir uzun sürecek task düşünebilirsin. bir sürü kullanıcıdan gelmiş bir sürü uzun sürecek taskı ölçekleme konusunda düşünmeden, paralel olarak çalıştırmak istiyorum ben.
Taskin sistemi yorma oranına göre tek makinede de çalıştırabilirsin mesela veya her makineye instance de açabilirsin ama en verimli yolu bulmak için tüm yapıyı bilmek gerek.
Saydığın servisler bu iş için uygundur hocam ama verimli midir onu söyleyemeyeceğim maalesef.
tek makina yetmez hocam, anlık bin tane task ta gelebilir, onu kaldıracak makinayı bulamam.
-
Sadece link alıp aldığın linklerden birşey crawl mı edeceksin?
eğer öyleyse herşeyden önce her işlemi bir kuyruğa atmanı öneririm. Fargate veya benzeri herhangi bir kontayner orchestratoru scale işini görür. Önüne mq koy dememin sebebi orchestratorunda scale up süresi var ve dar boğaz oluşturabilir.
eğer obje işleyeceksen işleme ve yazma işlemlerini direk s3 ver ve kullanıcı oradan indirsin.
farklı dillerde worker yazdırma ihtiyacın eğer farklı işler içinse, her iş tipine göre ayrı bir container yazarsın ve fargate iş tipine göre container başlatır.
eğer streaming data bekliyorsanız durum farklı onu konuşalım
-
sandman bunu yazdı
Sadece link alıp aldığın linklerden birşey crawl mı edeceksin?
eğer öyleyse herşeyden önce her işlemi bir kuyruğa atmanı öneririm. Fargate veya benzeri herhangi bir kontayner orchestratoru scale işini görür. Önüne mq koy dememin sebebi orchestratorunda scale up süresi var ve dar boğaz oluşturabilir.
eğer obje işleyeceksen işleme ve yazma işlemlerini direk s3 ver ve kullanıcı oradan indirsin.
farklı dillerde worker yazdırma ihtiyacın eğer farklı işler içinse, her iş tipine göre ayrı bir container yazarsın ve fargate iş tipine göre container başlatır.
eğer streaming data bekliyorsanız durum farklı onu konuşalım
Linkten xml, csv tarzı dosyalar indirip bunları mongodb ye import edip ekstra apilardan biseyleride üstüne yazicam. Queue kullanıyorum zaten su an, celery redis le çalışıyor.
-
Güzel,
şimdi benim önerim dosyaları direk s3'e yaz, daha sonra farklı dosya tiplerini eğer ortak bir formata almak istersen hemen aws data pipeline etl işlemlerine sok. Sonra ortak formatta lambda ile yap manipülasyonunu sonra yine pipeline ile istedipin veri tabanına yaz
ön tarafta kurguladığın fargate'li yapının arka tarafı gibi düşün.
-
konuşulan şeyleri çok beğendim. konuşulmayan bir not düşüp uzuyorum. "Bu kadar çok, farklı ve tecrübenin az olduğu teknoloji, ortam, çözüme ihtiyacın varmı?" bunu da karar verirken kendine sor lütfen :*
-
TeRRoR bunu yazdı
konuşulan şeyleri çok beğendim. konuşulmayan bir not düşüp uzuyorum. "Bu kadar çok, farklı ve tecrübenin az olduğu teknoloji, ortam, çözüme ihtiyacın varmı?" bunu da karar verirken kendine sor lütfen :*
Bu servislerin çoğu managed services olduğundna ciddi bir sıkıntı yaşayacağını sanmıyorum
-
sandman bunu yazdı
Güzel,
şimdi benim önerim dosyaları direk s3'e yaz, daha sonra farklı dosya tiplerini eğer ortak bir formata almak istersen hemen aws data pipeline etl işlemlerine sok. Sonra ortak formatta lambda ile yap manipülasyonunu sonra yine pipeline ile istedipin veri tabanına yaz
ön tarafta kurguladığın fargate'li yapının arka tarafı gibi düşün.
"data pipeline" ı bilmiyodum hocam baya işime yarayacak bişey gibi duruyo , çok sağol.
data pipeline ingestion işlemini çözüyor ama yine de verinin üstünde yapmam gereken işlemler var. kullanıcıdan aldığım parametrelere mongodb üstünde mapreduce javascriptleriyle yapıyorum şu an. bunlar için yine workerlar kullanmam gerekecek sanırım.
edit: bunların dışında , veriyi apilardan çekip ya da download edip s3 e atmak içinde workerlar gerekecek
bir de datapipeline da iki farklı kaynaktan gelen veriyi belirli bir fielda göre birleştirebilirmiyim ona bakacağım (99% yapabiliyorumdur )
@terror hocam işin karmaşıklığını azaltmak için olabildiğince manager servis kullanmaya çalışıyorum.