Büyüyen cron: sonraki programcı nedir? [kapalı]


30

Tüm iş planlama ihtiyaçlarımızı yerine getirmeyi hatırlayabildiğim kadar uzun zamandır cron kullanıyoruz. Depolama klonlarından / anlık görüntülerinden veritabanlarına karşı raporlara, günlük sistem raporlarına ve denetleme kontrollerine kadar her şey cron aracılığıyla birkaç yüz sunucuda programlanır.

Dezavantajları oldukça açık: işleri yönetmek zor, bağımlılıklar yaratmanın kolay bir yolu yok (özellikle farklı sunucularda) ve elbette, bir kişinin "geçici olarak" bir işi atlaması ancak daha sonra yorumu kaldırmayı unutması kaçınılmaz.

Ticari bir teklif denedik, ancak sonuçta cron'dan bir adım öteye gidemeyecek kadar pahalı olarak kabul edildi.

Orada, SLURM, Oracle Grid Engine, Tork / Maui, Quartz, DIET, Condor gibi, daha fazla sayıda benzer düğümde çalışacak işleri olan daha büyük, daha homojen küme ortamlarına yönelik görünen diğer seçenekleri görüyorum: ızgara hesaplama ve benzerleri. Çevremiz oldukça karışık (çeşitli Linux, AIX ve FreeBSD) ve farklı sistem türleri arasında bağımlılıklar yaratmamız gerekiyor (örneğin, bir Linux kutusundaki bir işin bir AIX kutusundaki bir işin çalışıp çalışmayacağını belirlemesi gerekebilir).

Cron'dan daha merkezi olarak yönetilen bir teklife geçiş deneyimi olan var mı? Yazılımı seçmek için ya da açık kaynak kodlu veya ticari kullanıma açılmasının daha iyi olup olmadığı hakkında herhangi bir ipucu?

Yanıtlar:


11

Condor, OGE ve Torque sizi oraya götürebilir ancak DAGMan aracıyla yalnızca Condor yerleşik bağımlılık yönetimine sahiptir . DAGMan , iş akışınızı tanımlayan yönlendirilmiş, asiklik bir grafik hazırlamanıza olanak tanır ve yönetici iş akışınızdaki işler arasında geçiş yapmayı ve akıştaki her adımda başarılı / başarısız sonuçlarını değerlendirmeyi sağlar. Condor nispeten platform agnostiğidir, yani DAGMan da öyledir ve ebeveyn Linux veya Windows'ta çalışırken kesinlikle AIX'te çalışan bir çocuk adımınız olabilir. DAGMan işlerin nerede yürüdüğü ile ilgili değil, sadece bu çıkış kodlarının geçilmesi veya geçilmesiyle ilgilenmiyor.

Yazılımı seçmek için ya da açık kaynak kodlu veya ticari kullanıma açılmasının daha iyi olup olmadığı hakkında herhangi bir ipucu?

Bazı uyarılarla, bu alandaki özgür toplulukların bakmaya değer olduğunu düşünüyorum.

OGE şimdi garip bir alanda. Artık Oracle tarafından üretilen GE varyantını çalıştırmak artık özgür değil ve Oracle artık GE SCC'ye geri yazdığı koda katkıda bulunmuyor, ancak ücretsiz, açık kaynaklı projeler olarak askerlik yapmaya çalışan birçok kod var. Özellikle Univa , eski GE GE devs'lerini açık kaynaklı, serbestçe kullanılabilir bir GE varyantı üzerinde çalışmaya devam etmek üzere işe almak için ücretlendirme yapmıştır . Grid Engine'de bunun için iki şey var: kurulumu kolaydır, verimi yavaşlatan işlerde fazla zamanlama yapmadan kısa süreli (<2 dakika) işleri yönetebilir. Büyük dezavantajı, Windows için çok iyi bir destek olmadığı. Bazılarımız, yıllar önce Cygwin'de yayınlanmaya çalışmak için çaba sarfetti, ama kesin olan kadar iyi değil.

Şimdi Condor, bahsettiğiniz üç teknolojiden favorim. Condor'un çevresinde güçlü bir topluluk var ve yazılım çok olgunlaştı (> 20 yaşında). Yerel Windows ve POSIX OS desteği, her yerde çok iyi çalıştığı anlamına gelir. Yukarıda bahsedilen DAGMan, Condor ile birlikte gelen birçok harika parçadan sadece biri. Kurulması karmaşık bir dokunuş olabilir, ancak bir kez açılıp çalıştığında sağlamdır. <-> Makine eşleştirme ve kaynaklarınız için kullanım kurallarınızı oluşturma işinde inanılmaz esnek bir dile sahiptir. Ayrıca, makinelerdeki dinamik provizyonu destekler, işlerin ihtiyaç duydukları makine kaynaklarının ne kadarını seçeceklerini seçmelerine izin verir ve aradaki farkı hala kullanılabilir olarak yeniden ilan eder. Global kaynak sayaçlarını destekler, böylece yazılım lisansları gibi şeylerle kısıtlayabilirsiniz. Ve tabi ki, iş akışı yönetimi için inanılmaz derecede güçlü bir araç olan DAGMan'a sahiptir. Condor'un dezavantajı, kısa süreli işler için zamanlama ek yükü zahmetli olabilir. İdeal olarak 2 dakikadan daha uzun süren işler istiyorsanız, aksi halde çizelgeleme işin sistemdeki zamanının büyük bir parçası olmaya başlar.

Tork biraz daha niş. Daha az biliyorum, korkarım. Condor'dan daha fazla Grid Engine ile karşılaştırır. @ Warren'in temel, özgür Tork'un yapabileceklerini genişletebileceği belirtilen ücretli eklentiler var.

Üç teknolojiyi denemek ve kendi iş yüklerinizle nasıl çalıştıklarını görmek istiyorsanız, CycleCloud güvenli, sanallaştırılmış, Condor, GridEngine veya Torque ile önceden yapılandırılmış havuzları döndürebilir; senin kısmında. Her teknolojinin küçük havuzlarını çevirip onları temsili iş yükleriyle denemek birkaç dolar olurdu. (Feragatname: Cycle Computing için çalışıyorum, CycleCloud yapıyoruz)


Bilgi için teşekkürler. Condor, hepsi belirli bir işi yürütebilecek kapasitedeki daha geniş makine koleksiyonlarına yönelik görünüyor. Benim sahip olduğum sorun, çok özel yerlerde çalışan bir grup iş bulmaktan daha fazla, ancak işleri belirli bir düzende çalıştırmak için bir araya getirmem gerekiyor. Bu, Condor'un da yapabileceği bir şey mi, yoksa bu şekilde çalışmasını sağlamak için acı verici mi olacak?
Cakemox

1
Condor durumunuzu halledebilir. DAG'lerden gelen işleri her türlü şekilde kısıtlayabilirsiniz; böylece havuzlarınızdaki çok özel makineleri veya donanımları hedeflerler.
Ian C.,

6

Chronos çok umut verici görünüyor.

Chronos, Airbnb'nin cron oyununun yerini aldı. Apache Mesos'un üstünde çalışan, dağınık ve hataya dayanıklı bir programlayıcıdır. İşleri düzenlemek için kullanabilirsiniz. Özel Mesos uygulayıcılarının yanı sıra varsayılan komut uygulayıcılarını da destekler. Bu nedenle, Chronos varsayılan olarak sh (çoğu sistem bash) komut dosyasını çalıştırır. Chronos, Hadoop (EMR dahil) gibi sistemlerle etkileşime geçmek için kullanılabilir, bunun üzerine yürütmenin gerçekleştiği Mesos köleleri Hadoop yüklü olmasa bile. Dahil olan sarmalayıcı komut dosyaları, dosyaları aktarmaya ve arka planda uzaktaki bir makinede çalıştırmaya ve Chronos'un işin tamamlandığını veya başarısız olduğunu bildirmek için zaman uyumsuz geri aramaları kullanmaya izin verir.

Ayrıca Jenkins'i bir cron yedeklemesi olarak kullanmakla büyük kişisel başarılar elde ettim. Uzak sunucularda işleri yürütmek oldukça hoş. İşte üzerine bir yazı: http://www.22ideastreet.com/blog/2014/05/02/replace-local-cron-with-jenkins/


4

4.5 yıl boyunca, HP'nin (nee Opsware) Sunucu Otomasyon platformu ve İş Teknolojisi Optimizasyon paketinin geri kalanı (Network Automation, Operations Orchestration, vb.) İle çalıştım.

Yeterince geniş bir ortam için, SA aracılığıyla iş yönetimi oldukça uygulanabilir (ve arzu edilir) bir araçtır. OO ile birlikte işler değişiklik kontrol yönetimi, biletleme vb. İle kontrol edilebilir.

İşte o kadar eğlenceli olmayan kısmı: pahalı (çok pahalı). Bir süre önce sorduğum benzer bir sorudaki önerileri kontrol edebilirsiniz: FLOSS Sunucu yönetimi ve denetim araçları .

Ayrıca Torque / Maui / Moab'ın ( Adaptive Computing'den ) çok iyi olduğunu söyleyebilirim : fiyatlandırma konusunda emin değiller ama aynı zamanda oldukça esnek araçlar.


Feragatname - HP BTO ve Uyarlanabilir bir ortak için çalışıyorum


2

DİKKAT Bu konuda tamamen farklı bir yaklaşım!

cron olan yaşlı ve belli açısından aksak.

Eğer gerçekten zamanlama yapmak için yeni yollar arıyorsanız, bir mesajlaşma yazılımı tabanlı bir olayı denerdim. Her sunucuda müşterileri ile RabbitMQ düşünün.

Ana bilgisayar bağımlılıkları "bildirim kuyrukları" ile çözülebilir.

"Gerçek" Zamana dayalı olaylar biraz daha zordur, aslında cron bunun içindir (ve en azından küçük ortamlarda oldukça iyidir). Fikri elde etmenin zor olduğu yer, ipuçlarını önlemektir. Gibi: 0100h her gece bir anlık görüntü. Tüm altyapınızı incelerken o sırada bazı yük yükselmeleri veya çok sayıda başarısız oturum açma görebilirsiniz. Bir yaklaşıma dayalı bir sıranız varsa, en azından ücretsiz bir sapma elde edersiniz (garanti edilmese de - bazı mantıklar bunu yapmıyorsa).

Etrafta dolaşılması gereken şey, gerçek zamanlı tabanlı işler olmadan aşağıdaki gibi şeylere güvenemeyeceğinizdir: evet, yedeklemelerim 0200 saatte başlayacak ve eğer hala 0400 saatte çalışıyorlarsa, bir şeyler yanlış olacaktır. Yapılacak daha kolay olan, müdahale eden 2 işin aynı anda yürütülmemesini sağlamaktır. Sadece bir seferde sadece bir iş tüketecek bir engelleme aracısı yapın.

İdari kısım, işlerin talep üzerine gönderilebileceği güzel bir web arayüzü olabilir ya da - şimdi "cron" a geri dönersiniz ya da en sevdiğiniz uygulaması java kuvars zamanlayıcının AFAIK’te saniyeler içinde bir ayrıntıya sahip olduğunu gösterir. zamana dayalı kısmı sadece eski güzel cron kullanın :)

Lütfen OT olduğum için beni küçümseme - bu oldukça zor bir kavram ama soru parayı dışlamıyor çünkü para harcamaktan ziyade, kurum içi ihtiyaçlara çözüm bulmak için para harcayabilir. Bir satıcının bazı gereksinimleri yerine getirdiğini düşündüğü bir şeyi satın alarak parayı almak :)


Bu büyük işleri dağıtmak için ilginç, ancak işlerim çok daha geçici. Yine de, bu şekilde sıraya konabilecek bazı işlerim var, bu yüzden bunu aklımda tutacağım.
Cakemox

1

CA'dan Espresso (Cybermation) kullandım. Şimdi ne dediklerinden emin değilim. Ben de UC4 kullandım. Her ikisi de işe yarar, çok paraya mal olur (benim düşünceme göre) ve sürdürmesi gereken bir ayı olabilir, ancak teneke dediklerini yaparlar. / Düzenle - ticari uygulamaların çok pahalı olduğunu söylemiştiniz. Kesinlikle katılıyorum, ancak bazı şirketler için, özellikle para kazandıran iş uygulamaları için, buna değer.


1

Açık Kaynaklı İş Zamanlayıcısı ile bir üretim ortamında 2000'den fazla hatlı merkezi crontab'ı değiştirme seçeneği olarak çalıştım . İşler cron ile o kadar karmaşık hale geldi ki, kapalı kalma süresi pencerelerinin ne olduğunu ya da sunucular arası bağımlılıklarla nasıl başa çıkacağımızı belirleyemedik. Bu ürün yardımcı oldu, ancak kurulumu biraz karmaşıktı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.