Posts tagged: Linux

Sanal ortamlar kullanarak Office Grid - Bölüm 4

By , Cuma 4 Aralık 2009 11:59

Giriş

Birçok toplu iş veriler, her gün milyonlarca kaydın işlenmesi ve ben birkaç saat hiçbir şey yapmadan her gün oturup tüm makineler hakkında son zamanlarda düşünüyordum çalıştırmak nerede bir şirkette çalışmak. Bizim sistemlerinin işlem gücü desteklemek için bu makineleri kullanabilir olsa iyi olmaz mıydı? Bu makaleler set ben bir ofis istihdam potansiyel yararları bakmak için gidiyorum ızgara sanallaştırılmış ortamlarda kullanarak.

Yılında part 3 bizim sanal işleme makine oluşturulur ve boşta-zamanlı çalışanlar olmak pencere makineleri kurmak.

En son kod çalıştırma

Kaçınılmaz olarak da işçilerin iş mantığı değişecek oluşturduktan sonra, böcek bulundu olacak, daha hızlı daha verimli kod böylece işçilerin kullanarak veri işleme oturduk bırakarak üretilecek eski kötü kokulu kodu . Peki biz her zaman bizim işleme komut en son ve en iyi sürümü kullandığınızdan emin mi?

Bu yapabileceği bir kaç çok kolay basit yolları vardır, hüner, ancak bu ulaşmada işlem gücü ve ağ trafiğini azaltmak. Çözüm basit ile başlamak ve iterasyon bir çift üzerinde yavaş yavaş artırmak sağlar.

İlk yöntem, sadece işimizi kontrol sunucu (Samba, FTP veya benzeri ile) bağlanmak ve kodunun en son sürümüne yıkmak olacaktır. Henüz çok etkili, ama iş yapacak. Bu biraz geliştirmek, nasıl bir rsync komut dosyası oluşturma ve bunun yerine her zaman kullanma hakkında? Lets Alternatif ne subversion başlangıçta kod kontrol dışarı içine bizim son işlem komut dosyası koyarak ve sonra sadece her çalışma (bizim kod güncelleme hakkında svn update )?

Sonunda biz bu kadar basit görünen bir bash betiği (cron her 10 dakika da denir) ile son olabilir:

  #! / Bin / sh
 eğer ps ax | grep-v grep | grep php > / dev / null
 o zaman
     echo "İş, şu anda çıkış işliyor"
 başka
     echo "İş çalışmıyorsa, şimdi başlatın"
     cd / bir / yol / / çalışma kopyası
     svn update
     php yourJobProcessingScript.php
 fi 

Şimdi her çalışmaya biz kesinlikle son kod çalıştıran emin olabilirsiniz. Biz kod tabanı bir çalışma gerçekleştirmek her zaman güncellenmesi ve sadece ağ üzerinden dosya farkları aktararak ağ trafiğini azaltarak bu garanti ediyoruz.

Benim gösteri kurulum, ben aynen yukarıdaki gibi yaptım. Subversion işimi işleme sunucu üzerinde yüklü ve sadece 'svn update' kullanarak bir 'işçi' şubesinden son kod çekildi. Ben de sonuç dönüş parçası olarak veritabanına döndü benim işleme komut dosyası için bir sürüm numarası etiket eklendi. Bu şekilde benim kod ben kesinlikle en son işlem komut dosyası çalıştıran olduğu işçi şube yani içine bagajımda kopyalanan her zaman güncellenmekte olduğunu görebiliyordu.

En son verileri kullanarak

İşinizi işleme bir noktada sonra veri kaynaklarından yararlanarak yaparsa bu da güncelleştirilmesi için gidiyoruz. Eğer en kısa zamanda işçilerin durma noktasına getiren şey yayınlanmaya başlaması gibi, trafik ile ağ sel gidiyoruz çok seyrek olarak veri kaynakları aramak sürece. Benim çözüm için ben VM ile etrafında veri kaynakları taşımak istiyorum karar verdi.

Orada atlar sen tut! Benim veri kaynakları BÜYÜK ne olur? Peki bu gerçekten biz ne kadar veri konuşurken bir durumdur? Bu, ek bir işleme sunucu satın almak için daha her makinenin içine bir ek daha büyük sabit sürücü yüklemek için daha uygun maliyetli olabilir. Bu bütçe meselesi ve karar vermek için iş kalmıştır. Bu belki veri kaynakları öyle büyüktür ki bu, bunun için çalışan makinelerde bu miktarın veri tutmak için olanaksız. Bu durumda ne yapardınız? Peki biz yerel bir veri sunucusu arama bakmak olabilir, ancak bu ağ ile sorunlara neden olabilir. Bu durumda böyle bir grid sistemi ofis ortamında eklemek için gerçekçi olabilir. Ayrıca sadece her gece ve / veya azaltma veri kaynağı istekleri 20:00 ile 06:00 arasındaki işçi arama örneğin, alternatif çalışan stratejileri içine bakabilirsiniz olabilir.

Yapalım Hareketli veri 100GB bizim veri kaynakları miktarı söylüyorlar. Evet evet bu bir güncelleştirme ağ dolaşmak için veri yeraldığını var. Nasıl biz bu durumda veri son kopyasına sahip olduğundan emin misiniz? Rsync bir olasılık, ama ben şahsen iş işleme sunucu üzerinde son veri kaynağını çalışan ve çoğaltma konusunda master (güzel bir uzun bin log) olarak ayarlayarak gitmek için yol olabilir düşünüyorum:

çoğaltma Veri kaynaklarına iş denetimi sunucu güncelleştirmeleri bir köle olarak işçilerin her ayarlayarak (Eğer büyük bir veri güncelleme gerçekleştirmek ve tüm işçiler tekme sürece yani ağ etkinliği büyük bir artış olmadan işçilere güzel yavaş yavaş olacak kerede). Bu, her işi önce uzun bir duraklama elde edemeyeceğini belirtti rsync fazla avantajı vardır; veritabanı güncellemeleri gibi mysql işleme devam ederken İşçiye daemon sürekli olarak veri güncelleme olacak.

Bu benim gösteri sunucusu kurmak nasıl olduğunu. Çoğaltma kurmak için ben mySQL sitesinde (on kılavuzu takip çoğaltma kurma ) ve 20 dakika içinde ben iş denetimi sunucuları veri kümesi çoğaltarak benim inital işçisi vardı. VM kopyalanan her bir ilave işçi için çoğaltma ayarları ve süreç her zaman çalıştı.

Özet

Makalenin bu bölümde kolay ve ağrısız bir işi yapmak için rsync using veya subverion (SVN) tarafından bugüne ve aynı time. de ağ trafiğini azaltmak için işlem kodu tutmak için ne kadar baktım Biz de nasıl ele sizin işçilerin her birine vurur olanak sağlayarak veri kaynağı bilgilerini güncel tutmak için. Böylece bölgede bizim ofis ızgara sisteminde iş mantığı ve bilgileri takip sağlamak. Orada açıkça bu görevleri yerine getirmek için sayısız alternatif olabilir, ama burada bir çözüm gelmek ne kadar kolay olduğunu göstermek için basit iki örnek vardı olacaktır.

Bir dahaki sefere

Aptly adlı bu dizi, en son bölümünde Bölüm 5 , biz bu sistemi dağıtma ele alacağız. Ben yaratmayı başarmış öğrendim olmuştur ve ne özetlemeye olacak.

Sanal ortamlar kullanarak Office Grid - Bölüm 3

By , Cuma 4 Aralık 2009 23:37

Giriş

Birçok toplu iş veriler, her gün milyonlarca kaydın işlenmesi ve ben birkaç saat hiçbir şey yapmadan her gün oturup tüm makineler hakkında son zamanlarda düşünüyordum çalıştırmak nerede bir şirkette çalışmak. Bizim sistemlerinin işlem gücü desteklemek için bu makineleri kullanabilir olsa iyi olmaz mıydı? Bu makaleler set ben bir ofis istihdam potansiyel yararları bakmak için gidiyorum ızgara sanallaştırılmış ortamlarda kullanarak.

In part 2 bir sunucunun çalışacağı işler baktı ve işler her iş aksatmadan işlenir sağlarken işleme büyük miktarda elde etmek için nasıl yapılandırılmalıdır.

Veya gevşek sunucu - işçi ayarlama

Sürecinde bir sonraki adım sanal işçilerin kurmaktır. Bunun için VirtualBox kullanarak CentOS bir yükleme kullanmak için gidiyorum. Ben yüklemek için gidiyorum MySQL ve PHP de topallama (Li nux, m ySQL, P HP) Servera (Ben bu ismi kadar yapmış olabilir) olarak bilinen sunucu üzerinde.

  • (Bağlantıyı izleyin) windows makinede VirtualBox yükleyin
  • Bir oluşturulan sanal makine içinde CentOS (güncel sürüm 5.3) indirin ve kurun

Hiçbir nokta beni orada büyük öğreticiler (: Tamam, biri 1000 'muhtemelen orada bu olacak var virtualbox altında Oluşturma ve Managing CentOS sanal makine ). Sanırım dikkat edilmesi gereken önemli nokta benim sanal makine GridMachine denilen olmasıdır.

Bildiğim kadarıyla sanallaştırma istemci ve işletim sistemi ile ilgili seçenekleri gitmek gibi, her seçim için büyük zorlayıcı neden yoktur. VirtualBox benim ev makinede kullanmak ve üç büyük işletim sistemi tarafından desteklenen bir şeydir. Ben onun iyi bir kararlı bir işletim sistemi olarak Pardus seçti ve benim kendi web sunucusu üzerinde kullanabilirsiniz. (Kendimi uygulayarak ediyorum rağmen burada zihniyet 'sizin için en hızlı ve kolay kullanın') iş için doğru araçları büyük bir inananlardanım, böylece işletim sistemi X hızlı kodunuz çalışır ve eğer daha verimli bunun yerine :) kullanın

Önemlisi VM her yeni sanal makine için aksi takdirde, DHCP kullandığından emin olun biz işçi makineleri için ayrı ayrı ağ ayarlarını yapılandırmak gerekmez biz want.By DHCP kullanılarak yok bir şey olduğu ayrı olarak yapılandırılması gerekir, DHCP devredecek sizin için IP'leri dışarı. Bu nedenle, (bu ölçeklenebilirlik artırır ve işçi yönetimi azaltır) her biri kurma hakkında endişelenmeden ofis hakkında sanal makine kopyalayabilirsiniz.

Size ulaşmak amacı olmalıdır süreci yeni bir fiziksel makine, kurulum VirtualBox edinmek ve ardından çok başka olmaksızın hemen hemen sanal görüntü dağıtmak için olacaktır. Bu size en azından çalışan kaç makineleri görebilirsiniz böylece farklı bir alt ağdaki tüm işçilerin kurmak akıllıca olacaktır. Ayrıca, uzun bir kira veya sınırsız kiralama DHCP üzerinde makineleri kurmak gerekir.

İşçiye İşler nasıl çalıştırılır

Bu ilginç bir alandır ve İşçiye işlerini işlemek için birçok geçerli yöntem vardır. Ben burada sadece iki en belirgin ele alacağız:

  • Sürekli komut dosyası çalıştırma: Bir komut dosyası, bir kabuk, ya da bir PHP komut dosyası olması işçinin bir kez idam ve sonsuz bir döngünün bir parçası olarak çalıştırır. Senaryoyu bir çarpışma olarak bu yöntemi iskonto ettik ve potansiyel olarak işçiler müdahale çeşit olmadan çalıştırmak sona erecek.
  • Cron tabanlı komut dosyası yürütme: Her X dakika cron işlerin almak için komut bir arama başladı. Bazı kontroller olmadan bu sizin işçi komut çalışan çok sayıda kopya yol açabilir.

Benim karar bir kabuk Benim kabuk aşağıdaki görevleri gerçekleştirir her 10 minutes. başladı hangi cron ile gitmek oldu:

  1. Bir süreç listesini alın ve 'php' Bu grep. Bulamazlarsa sonra devam edin.
  2. İşinizi kod aramak, benim durumumda bu PHP tabanlı bir şey olurdu
  3. İşçi komut onun çalışma tamamlar
  4. Sonraki uygun çağrı üzerine tekrar gitmek için hazır

Benim bash betiği aşağıdaki gibi görünür:

  #! / Bin / sh
 eğer ps ax | grep-v grep | grep php> / dev / null
 o zaman
     echo "İş, şu anda çıkış işliyor"
 başka
     echo "İş çalışmıyorsa, şimdi başlatın"
     php yourJobProcessingScript.php
 fi 

Not: yankı Kullanıcı neredeyse tamamen anlamsız olduğunu, ancak bunları deneyin ve düzenlemek için birlikte gelir sonraki kişiye yardımcı olabilir.

Yani, hızlı, basit, ve alınan her yeni donanım parçasının kopyalanması kolay işçi sanal makine, kümesi kadar varmıştır. Izgara sisteminin 'akıllılık' gerçekten görselleştirildiği OS, değil sürecini işler, iş yapılandırma ve için oluşturulan kod ile ilgili tüm zaman (yani ev sahibi boştayken uygun iş çalıştığından emin yapımında ).

İşçiler başlatmak için Windows kurma

İlk görev pencereler komut satırından sanal makine çalıştırmak için gerekli komutu yerine çalışmaktır. Eğer varsayılan konumda VirtualBox yükledim ve sizin işçi GridMachine adlı yaptıysanız sonra işçi kadar yük için gerekli komut:

  "C: \ Program Files \ Sun \ VirtualBox \ VBoxManage.exe" startvm GridMachine 

Ancak bir 'başsız' devlet içinde komut dosyasını çalıştırmak için biz kullanmanız gerekir:

  "C: \ Program Files \ Sun \ VirtualBox \ VBoxHeadless.exe"-startvm GridMachine - VRDP = kapalı 

Bu GUI olmadan sanal makine başlatmak ve olağan durumunu kaydetmek için izin verecek. İkinci argüman pencereleri RDP ile çakışmaması için RDP kapatır, ya da 3389 numaralı bağlantı noktasında dinleme ile ilgili bir mesaj vermek. Sanal makine adı küçük harf duyarlıdır!

Sonra, makinenin boş kaldığında bizim işçi VM tekmelemek için pencereleri kurmak gerekir. > Tüm Programlar - -> Donatılar -> Sistem Araçları - Bu (Windows XP) yapmak için Başlat gitmek gerekir aşağıdaki gibi> Zamanlanmış Görevler:

zamanlanmış görevler

Sonraki tıklayın özel bir program eklemek için göz takip 'Zamanlanmış Görev Ekle'. Sizin VBoxManage komut gidin ve ok tıklayın. Seçeneklerden birini (biz bir dakika içinde bu değişikliği olacak) için görev zamanlama ve devam edin. Bir sonraki ekranda atlayarak sonra pencereleri bu görevi çalıştırmak istediğiniz kim soracak, ben de 'Yönetici' ya yeni bir ayrıcalıklı kullanıcı oluşturma öneririm. Biz herhangi bir noktada makine üzerinde standart personeli hesabı ile müdahale istemiyorum unutmayın. Sonraki tıklayın ve bu görev için show advanced options kontrol edin.

Run metin sonunda bizim 'startvm GridMachine' dizeyi ekleyin ve unticked bırakılır oturum sadece bu çalışma sağlar. Bir sonraki program görev ziyaret edin ve makinanın sonraki sekmeye geçmeden önce boşta olmak istiyorum süreyi seçin 'boş zaman' zamanlama seçeneği açılır değiştirin.

Nihayet o zaman X miktar çalışmakta olduğu takdirde görevini durdurmak belirten seçeneği işaretini kaldırın, ancak makine boşta artık eğer görevini durdurmak için seçeneği işaretleyiniz yok.

zamanlamak

Bu pencere ana kurulum için o kadar!

Özet

Bu bölümde bir işçinin yanı sıra dediğimiz ve iş işleme programları çalıştırma hangi yolu olarak hareket için bir sanal makine kurdunuz (kendimi bir PHP komut dosyası için). Buradan itibaren kullanıcının makinenin kullanımı devam ettiğinde, devlet bilgisayar boşta olduğunda başsız modunda sanal makine başlatmak ve kaydetmek için pencereleri bizim kopyalarını kurmak için nasıl bakmak. Umarım bu noktada böyle bir sistemi kurmak için ne kadar basit olduğunu görüyoruz ve bazı deneyler kendinizi yola çıkmaya kaşıntı vardır!

Bir dahaki sefere

Olarak Bölüm 4 biz elde edilen sonuçlar her zaman en son iş bilgilerini ve mantık ile güncel olduğunu böylece kod ve veri kaynaklarının son sürümü kullanıp sağlamak için araçlarını kullanarak bakacağız.

Sanal ortamlar kullanarak Office Grid - Bölüm 1

By , Cuma 4 Aralık 2009 11:23

Giriş

Birçok toplu iş veriler, her gün milyonlarca kaydın işlenmesi ve ben birkaç saat hiçbir şey yapmadan her gün oturup tüm makineler hakkında son zamanlarda düşünüyordum çalıştırmak nerede bir şirkette çalışmak. Bizim sistemlerinin işlem gücü desteklemek için bu makineleri kullanabilir olsa iyi olmaz mıydı? Bu makaleler set ben bir ofis istihdam potansiyel yararları bakmak için gidiyorum ızgara sanallaştırılmış ortamlarda kullanarak.

Olarak PHP geliştiricisi Ben, yani her gün Linux, kullandığınız araçları kullanmak için gidiyorum mySQL , PHP, VirtualBox ve subversion (SVN). Ancak ben bu kılavuz gibi diğer dillerde ve teknolojilere adapte umuyoruz.

Ben sağlayan çözüm çok gevşek biz Burada basitlik için şeyleri değiştirmek gerekir, ya da daha ilginç kullanım senaryoları üretmek için bu makalenin tümünü doğru olmayabilir ancak ulaşmak için ihtiyaç duyacağımı işlem türüne göre yapılacaktır.

Bu ofisler çoğunluğu çalıştırmak ne zamandan beri bu sanallaştırılmış ortamlarda pencereler makinelerde çalışacaktır. Büro makineleri yaptığımız işlem bu makineleri kullanarak personel ile müdahale etmemelidir, makinede herhangi bir bakım gerektirir ve kullanılabilir olduklarında yeni makinelerin kolayca konuşlandırılabilir olmalıdır. Bu büyük ölçüde ızgara sistemi uzatılabilir hangi ölçeklenebilirlik ve kolay azaltır olarak da, yeni sanal makineler herhangi bir ek yapılandırma gerektirmemelidir.

Neden bir Office hesaplama parmaklığı dağıtma?

Öncelikle düşünce olabilir, neden sadece gibi bir bulut bilgi işlem kaynağı kullanmaz Amazon'un EC2 platformu ? Sıra nedenlerle, örneğin, çeşitli olabilir:

  • Bir bulut bilgi işlem ortamı için belirli veri emanet olmaz
  • Siz yasal nedenlerle, örneğin NHS kayıtları için potansiyel olarak, yasal nedenlerle (örneğin veri ülkeyi terk) için bir bulut bilgi işlem ortamı içine belirli veri koyamazsınız.
  • Sen işleme üniteleri çok donanım üzerinde tam kontrol kapatmak ve sahip tutmak istiyor
  • Sen bulut örneklerini çalıştırmak üzere proje fon yok
  • Ofisiniz bir bulut kaynak kullanmak için internet bağlantısı olmayan ve bu nedenle mümkün değil
  • Sen yağmur sevmiyorum, bulutlar yağmur öneririm, bu nedenle de uzak tutun

Ben liste devam edebilir emin değilim, ama yeterli şimdilik olduğunu düşünüyorum.

Office Computing Grid Avantajları

Eh, biraz matematik (ve gerçek fizik tarzı bazı süpürme varsayımlar yapmanıza olanak sağlar) yapmanıza olanak sağlar. Eğer günde 100 iş çalışan büyük etli işleme sunucu var düşünün. Ofisinizde size günde 16 saat boşta 50 makinemiz var, bu makinelerin her biri kendi adeleli işleme sever gibi güçlü% 10'dur. (Buradaki tüm sonuçları performans artışı hafife yuvarlanır).

Yani, 1 makine *% 10 güç * 2/3 saat = boş zaman 0,067 yani 1 masaüstü işlemci günde 6 tam işlerini işlemek olabilir.

Şimdi bu kadar ölçeklendirilebilir Eğer ana işleme sunucu yaptığı gibi günde bir işlerini işlemek için 15 boşta masaüstü alır.

Yani 50 makinelerin bizim hayali ofiste biz 4 tam işleme sunuculara kadar 1 sunucu bizim işlemci gücü artabilir, ya da 100 yerine günde 400 işlerini işlemek olabilir.

Bildirim, yeni donanım hiçbir yatırım için şirket sadece kendi toplu işleme kapasitesi 4 kat arttı! Potansiyel size güç kullanımını artırmak için gidiyoruz ama çoğu ofis ortamlarına Ben makineleri ziyaretinde genellikle zaten gece boyunca, bu nedenle yeşil bir girişim olarak bu görebiliyordu.

Diğer avantajlar da büro makineleri yeterli iseniz ve büro makinelerinin gücü artırmak olarak ofis ızgara otomatik olarak daha güçlü hale gelmesi durumunda yeni bu yatırım (veya güncellenmiş) işleme sunucuları gecikebilir demek.

Teknolojileri

Neye ihtiyacın var? (Daha doğrusu ne kullanmalıyım vermedi):

  • Boşta büro makineleri (benim durumumda bir yedek eski windows XP dizüstü)
  • VirtualBox (veya başka bir istemci sanallaştırma yazılımı)
  • PHP, mySQL running OS aşağı bir kesim ile çalışan bir sanal makine, ben bu benim LIMP sunucular :) arıyorum
  • Çalıştırmak için İş
  • İş sunucusu (bir yerde başka bir sanal makine olabilir)

Tipik İşler

Aşağıdaki gibi, bu sistemin çalıştırmak için tasarlanmış bir iş türlerine şöyledir:

  • Sistem biz sonuçları maç ve dönmek gerek bunun üzerine veri listesini alır
  • Eşleştirme (oldukça statik) çeşitli veri kaynaklarına kontrol / arıyor içerir
  • Veri kaynaklarından Sonuçları sonuç yanıt olarak ek veri kaynaklarının denetimi, birleştirilmesi, daha doğrulama gerektirebilir
  • Veri, eşleşen kayıtları ile iade tamamen onaylanmadığı ve işlenir
  • Bir iş içindeki her kayıt geri kalanından bağımsız olduğunu

Yani temelde biz veritabanı aramalarına karışımı ve bazı numarası çıtırdatan, bir iş ortamında oldukça tipik bir senaryo gerektiren işlerde çalışan bakıyoruz.

Izgara çözümlerin bu tip işler işlenmesi için, sadece avantajlı değildir. Temel olarak, bağımsız birimler bölünebilir herhangi bir işlem paralel olarak çalıştırılabilir. Örnekler ve daha fazla bilgi için bu wikipedia bakınız: Grid , ancak ünlü birkaç örnek vardır Seti @ Home ve BIONC . Orada bilgisayar ızgaraları çalıştırmak için çerçeveler vardır ve bunlar içine bakarak iyi değer.

Ne elde edecek?

Bu maddelerin sonunda ben bir ofis ızgara dağıtma derece pahalı veya zaman alıcı olması gerekmez göstermek istiyoruz. Ben tartışmak için gidiyorum:

  • Iş yapılandırma, iş denetim sisteminin kurulması
  • Uygun bir işleme sanal makine oluşturma
  • Bir windows makinede sistemi kurmak için nasıl
  • En son kod ve veri kullanıyorsanız sağlanması
  • Dağıtım ve kıyaslama
  • İleriye

Ben (tamam ben bu yazdı, sonra yerleşik) Windows XP ve benim 'GridMachine' sanal makine kullanarak bir yerel makine üzerinde kavramları test etmek için örnek bir uygulama bina olacak. Benim işim kontrol sunucusu çalıştırır benim ana makine olacak Fedora 11 .

Bu, hiçbir şekilde tam çalışan sağlam bir sistem göstermek içindir, onun bir gösteri daha fazla ve bunları makul bir süre kısa ve az maliyetle elde edilebileceğini gösteren tartışılması anlamına geliyordu. Bana herhangi bir yorum, düzeltilmesi veya iyileştirmeler göndermek için çekinmeyin ve ben eşleşecek şekilde güncelleştirilir bu makalede tutmak için elimden geleni yapacağım olun.

Bir dahaki sefere

In part 2 ben iş denetim sistemi bakarak başlayacak ve işler her iş aksatmadan işlenir sağlarken işleme büyük miktarda elde etmek için nasıl yapılandırılmalıdır içine bakmak.

Sanal ortamlar kullanarak Office Grid - Bölüm 2

By , Cuma 4 Aralık 2009 11:23

Giriş

Birçok toplu iş veriler, her gün milyonlarca kaydın işlenmesi ve ben birkaç saat hiçbir şey yapmadan her gün oturup tüm makineler hakkında son zamanlarda düşünüyordum çalıştırmak nerede bir şirkette çalışmak. Bizim sistemlerinin işlem gücü desteklemek için bu makineleri kullanabilir olsa iyi olmaz mıydı? Bu makaleler set ben bir ofis istihdam potansiyel yararları bakmak için gidiyorum ızgara sanallaştırılmış ortamlarda kullanarak.

In Part 1 sana bir ofis ızgara oluşturmak için neden isteyeyim sıra potansiyel bazı nedenleri tartışıldı olarak kullanıyorum edilecek sistem ve teknolojileri konusunda bilgi verdi.

İş Denetimi

Eğer işler çalışıyor gidiyoruz, o zaman onları yönetmek için bir yol gerekir gidiyoruz. İşiniz kontrol sistemi (iş sunucuda) gerçekten iyi hatta bir ofis ızgara çalıştığınız önce düşünülmüş olması gerekir. Yani öncelikle bir iş denetim sisteminin görevleri nelerdir:

  • Işçilerin talebi üzerine işleri teslim
  • Ne tür işler çalıştırmak için işçi söyle
  • Parça işler
  • Işler sadece bir kez çalıştırmak emin olun
  • Işçilerin işi verileri sağlayın, ya da en azından bunu elde etmek için onlara

Sistem aynı zamanda genişletilebilir, bir ızgara çözüm değer gördüğü iş olarak işler çeşitli çalıştırmak için uzatılabilir tek bir durumda şu an için çalışan bir çözüm olması gerekir. For example, jobs may gain priorities, more than one job type may exist (ie several code bases), eventually you may even run several different worker machines that are optimised for each type of job (although that does move away from the 'generic worker' idea). Always try to think about the future when developing systems, a short term vision can lead to longer term frustration and increased development time.

İş Sunucu

We're going to need somewhere to control our jobs from, this should be the only system in your grid that has a fixed resource locator, be that an IP address, host name, URL (using internal DNS), etc. This is because the workers need to know where to look for jobs, workers need to find the job control system (not the job control system find the workers).

Iş sunucusu kendisini gerçekten (temel bir sistemde olsa) karmaşık bir görev yoktur, bu işleri el, işlerin bir listesini saklamak sonuçlar alırsınız ve daha sonra daha sonra geri alma için bunları saklamak gerekiyor. Bu parçalar (örneğin 'el işleri') nasıl tanımlanmaktadır çok basit olabilir. Later on we can extend the system to include an administration interface to add, edit, delete, suspend jobs but this is beyond this exercise.

İşinizi sunucu bunu ondan çok fazla kaynak drenaj değil sağlanan ana işleme sunucu içerisinde çalışan bir sanal makine olamayacağı sonra hiçbir sebep yoktur. The job server however does need high availability, if it goes down on a Friday evening you're going to lose a whole weekend of processing, potentially costing you a couple of weeks worth of processing time (when compared to your main processing server alone). Bu yüksek kullanılabilirlik için bir yük dengeli çevreye verdiğiniz iş sunucusu koyarak düşünebilirsiniz.

Basic Setup

Bizim iş sunucusu için temel kurulum benim LIMP sunuculardan biri (ki Li nux, m ySql, P HP ise) aradığım ne oluşacaktır. Thea işçi çalıştıran kodu aslında işi kontrol sistemi veritabanları ile etkileşerek çalıştırabilirsiniz ne işler yoluna girecek. Later on we could create a web service and actually hand out jobs rather than having the workers do the hard work themselves, but for now we'll continue using the KISS principle (Keep it Simple, Stupid!).

Yani, üç oluşturmanızı sağlar mySQL işleri ile uğraşmak tablolar. These will be `jobs`, `jobRecords`, and `jobResults`.

işler tablosu İşte kullanıyorum SQL Buddy için büyük bir küçük bir alternatif phpMyAdmin (: için diğerlerini görmek CentOS yüklemek için sırf onun kolay phpMyAdmin 10 Büyük alternatifler )

This table consists of 5 simple fields,

  • id: Uniquely identify the job
  • ad: Bir müşteri referansı veya diğer tanımlayıcıları herhangi bir sayı olabilir
  • Durum: Bu iş nerede olduğunu bilmek gerekir, örneğin
    • 0: Not started
    • 1: aldım
    • 2: Completed
  • started_by: iş yapmaya başladı kim? Bu tamamen ihtiyaç var ama bir güzel değil. Ben ağınızdaki IP adresi ile izleme işçilerin öneririm
  • started_at: Ne zaman işçinin işe ne zaman başladınız? Zaman X miktar içinde tamamlamamış olan işleri takip ederek biz bir kez daha işi alıp başka bir işçi tarafından işleme başlamak gerekir biliyorum. İşçi işleme / stop herhangi sayısı nedenleri, elektrik kesintisi, crash, şebeke kaybı, vb için çevrimdışı gidebiliriz

Bu tablo istatistiklerini izleme, işi kaç işçi iş aldı görmek için, bir karşı ne kadar sürdüğünü görmek için bir bitiş saati sütunu için izin vermek için birkaç ek alanlar ile uzatılabilir ne kadar kolay olduğunu (tabi bu ihtiyaçları eğilimindedir 1), iş önceliği, liste uzayıp gidebilir. Daha karmaşık iş senaryolarda bu işçi (ve bu nedenle sadece uygun işçiler kullanın), hatta ne tür işçinin gerekli olacaktır erişimi gerekir ne kadar bellek belirtmek mümkün olacaktır.

Lets add a few example jobs:

Örnek işler

Sonraki tablo yeniden anlamak için oldukça basit, bu bizim işimiz kayıtları vardır. Bunlar, bir kolon `jobs_id` tarafından ana işler tablosu ile bağlantılıdır. Bu tablo oluşturan çok sizin işçilere sağlamak için gereken verilere bağlıdır, biz dört sütun var çok basit bir örnek yapmanızı sağlar:

  • id: kaydın kimliği
  • Adı: Kişi adı
  • Adres: Kişinin adresi
  • jobs_id: The job ID that this record is linked to

Üçüncü ve son tablosu bir tablo içerir sonuçlar, aynı kayıtlarımızdan tablo olarak telafi kadar sahiptir ve bazı sütun ilavesi ile kayıt tablosu bir parçası olabilir:

  • job_record_id: iş tabloya sonucu Bağlantı
  • Sonuç: Sonuç olarak veri

... Ve size iş denetimi için gereken herşey! (albeit at a very basic level) In my case I'm pointed to another table where my data to process was located, but this could just as easily been a file, parameters to run simulation code, you name it.

Bir iş seçme

Daha önce belirtildiği gibi, işçilerin artık bizim için bizim iş yönetimi yapacak, bu yüzden gerçekten tüm yapmanız gereken işlem gerektiren bir iş bulmak ve bilgi almak olduğunu. Bunu nasıl yapardın? Well pick our job selection criteria and look for jobs, in SQL I did the following:

  1. Tam olarak ama bizim görevliden işaretli olmayan herhangi bir işle alın ve (bir tanımlayıcı ile __ ME__ yerine, en kolay IP adresi olacak) bunları sıfırlamak:
      UPDATE `işler` SET `Durum` = 0 WHERE `durum` = 1 AND `started_by` = __ ME__; 
  2. Using our job selection criteria, select a job and tell the control system that this worker is dealing with it:
      UPDATE `işler` SET `Durum` = 1, `started_by` = __ ME__, `started_at` = ŞİMDİ () WHERE `durum` = 0 VEYA
    (`status` = 1 AND `started_at` > DATE_SUB(NOW(), INTERVAL X HOUR)) ORDER BY `id` ASC; 

    By grabbing jobs that haven't returned results in X amount of time we ensure that all jobs are run in the event of a worker crashing or going AWOL.

  3. Sonraki kayıtlarını kendileri tarafından takip işleri ayrıntıları yakala:
     SELECT * FROM `jobs` WHERE `started_by` = __ME__ LIMIT 1;
     Job_records `SELECT * FROM` WHERE `id` = __ JOBID__; 

Upon completion of the job we insert our result records and mark the job as complete. Remember as jobs can suspend/resume at any time allow for some robustness in your script. Bu görev çok akıllıca bir hareket olacak bir iş ve iş denetim sistemine geri kaydedilen sonuç sayısını kayıtların sayısını kontrol, iş denetim sisteminin güncellenmesi ile yarım askıya ki olabilir.

Ayrıca, bu işler gerçekten olması gereken bir SQL sorgusu çerçeve seçilir ve nasıl idare edilir gösterir iken soyutlayarak böylece iş kontrolü size bir web hizmeti, dosya tabanlı sistem kullanarak geçmek için karar verirseniz, XML , veya başka bir sistemlerinin numarası buna yukarıda kodu etkilemez.

İş Yapılandırma

Dikkate sonraki yönü iş boyutuna ve yapılandırma. Iş yapılandırma ile oynayarak biz mükemmel bir hızı arasındaki denge, süreç çoğaltma ve güvenilirlik grev olabilir. Bir çift OFA senaryoları atın:

  1. Jobs take 1 day each to run: This means that your workers need 15 days to process each job (remember 10% of the power for 2/3rds of the time). Bu açıkça akıllıca bir yapılandırma değildir, bu iş boyutuna şekilde çok büyük! İlk işçi AWOL (bir sonucu artı yeniden işleme zamanı iade etmediği pick up zamanı) gitmeli Bu bir iş işlenmiş olsun en az iki katı zaman alacaktı. İdeal olarak size ilk kayıp gitmeli, bir iş sürecini iki gün alacağını durumda tekrar ve en kötü geçiyor işler tutmak bu şekilde, kolayca her Cihaz uzun süre sonuna kadar temizlenmiş en az bir tam iş olurdu.
  2. İş çalıştırmak için 1 dakikanızı alacak: Bu işçilerin her iş çalıştırmak için yaklaşık 15 dakika sürer anlamına gelir. Bu başlangıçta idealdir görünebilir yaparken, öğle saatlerinde ek iş işleme kazanmak, kahve molaları, toplantılar, vs bu senaryo sisteminin diğer alanlarında gerginlik koyar ve kendi sorunları tanıttı. Örneğin, öncelikle kurulum / işlem süresi oranı bu nedenle sistem verimliliğini kaybediyor, sağ aşağı gidecek. Ağ gün iş onların gün dong olan çeşitli işçi sinir bozucu personele sürekli akış iş bilgileri olacak. Ayrıca o çok ve düzenli bir çalışma küçük parçalar çok saçmak için olduğu gibi iş işleme sunucuda daha fazla zorlayacak gidiyoruz. İşinizi sunucu aşağı giderse Son olarak, bu durumda size iş sunucusu sorunlar yaşıyor olduğunu blissfully habersiz işleme devam verebilecek büyük işler tamamlanmamış ise çalışmaların büyük bir geri günlüğü oluşturmak için gidiyoruz.

In reality there will be no one ideal configuration for your grid setup, much depends on the available resources, types of job, job turnaround time requirements, network capability, and so on. Ancak bazı kurallar olacaktır:

  • Size jobs so that each worker can get through at least 3-4 jobs in a period of 15 hours (the longest likely idle time period)
  • Bu kurulum süresi işlem süresi (zihin yukarıdaki noktada rulman) ile karşılaştırıldığında oldukça önemsiz hale gelir böylece iş büyüklüğü ile oynayın.
  • Bir iş bunu tamamlamak için bekliyoruz zaman çift miktarı (belki daha az) tam olmazsa onun gitti AWOL ve başka bir işçi ile işlemeye başlayacağı varsayılmaktadır. Bu, sizin (sonraki iş başarısız olursa muhtemelen daha uzun) tamamlamak için bir iş üç kez normal uzunluğa kadar beklemek zorunda kalabilirsiniz demektir. Bu zamanı azaltmak istiyorum, ama çok fazla bir düzenli olarak işleme görevleri çoğaltarak başlayabilir olarak azaltmak için dikkatli olabilir.
  • İş dışında gereksinimleri mümkün olduğunca bağımsız olmalıdır. Iş sunucusu, örneğin, sadece her işin başında ve sonunda temasa geçilmelidir.
  • Ağınızda bombalamak etmeyin, bu iki olumsuz etkileri olacaktır, sizin gündüz personeli bağlantıları size ızgara ölçeklendirebilirsiniz olarak daha da kötüye gidecek bir sorun aşımından yaşanan olabilir ağ sinir bozucu ve sorunları kullanarak bulabilirsiniz.
  • Emin olun işler işçiler üzerinde çalıştırabilirsiniz. Işler çok bellek olursanız yoğun veya disk alanı yoğun işler durduruluyor başlayacak ve fark edeceksiniz tek şey hiçbir gerçek sebebi ile işlenen iş sayısı bir damladır.

İş ve gönderme Sonuçları

Bir işin sonuçları sunarken bu sonuçlar, mevcut işçi bir süre atıl olmuştur, özellikle eğer başka bir işçi tarafından teslim edilmemiş olması kontrol etmek önemlidir.

Sonuçları sonuç sayısını iş içindeki kayıtların sayısını eşleşen emin gönderildiğinde.

Daha önce de belirtildiği ve vurgulandığı üzerinde olamaz gibi, işi alma ve sonuç boyun hata toleransı oluşturmak. Işçilerin zamanların en uygunsuz anda askıya alma moduna geçer (ve muhtemelen) ve bunun için yiyecek ve içecek gerekiyor. Ayrıca bir kez daha sonuç verme uzakta soyutlayarak işinizi kontrol sistemi ile başa çıkmak çok daha kolay gelecek değişiklikler hitap yardımcı olacaktır.

Özet

Bu Bölümüa biz ne iş denetimi sunucusuna yapmak gerekiyor ve nasıl bir çok temel sistemi kurmak almak için baktım. Biz bir kontrol sisteminden iş ve en iyi nasıl çoğunu ofis ızgara sisteminin almak için işler yapılandırmak için almak için ele aldı. Bitirmek için, iş denetim sunucuya sonuçları geri göndererek bir paragraf ya da iki sunuldu.

  • Bir iş, kontrol sunucu işlerini yönetir ve tüm iş birimlerinin tamamlanmış olmasını sağlar
  • Seçmek / sonuç gönderme işinizi soyutlayarak biz çok sorun olmadan kontrol sunucu teknolojisi değiştirebilirsiniz
  • Onlar ağ altyapısı üzerinde çok fazla baskı olmadan hızlı ve verimli çalışması emin olmak için iş yapılandırın ve düzenli bir şekilde işleme görevleri çoğaltma olmadan.
  • Eğer rutin işlere hata toleransı ve hata checking inşa emin olun, işçilerin askıya alma ve sürdürme ve zamanların en rahatsız edici olabilir. Sonuçlar zaten başka bir işçi tarafından sunuldu olmadığını kontrol etmeyi unutmayın.

Bir dahaki sefere

Yılında part 3 bizim sanal işleme makine oluşturmak ve atıl zamanlı işçileri olmak için elimizden pencere makineleri kuracağım.

Sanal ortamlar kullanarak Office Grid - Bölüm 5

By , Cuma 4 Aralık 2009 11:03

Giriş

Birçok toplu iş veriler, her gün milyonlarca kaydın işlenmesi ve ben birkaç saat hiçbir şey yapmadan her gün oturup tüm makineler hakkında son zamanlarda düşünüyordum çalıştırmak nerede bir şirkette çalışmak. Bizim sistemlerinin işlem gücü desteklemek için bu makineleri kullanabilir olsa iyi olmaz mıydı? Bu makaleler set ben bir ofis istihdam potansiyel yararları bakmak için gidiyorum ızgara sanallaştırılmış ortamlarda kullanarak.

Olarak Bölüm 4 biz elde edilen sonuçlar her zaman en son iş bilgilerini ve mantık ile güncel böylece biz kod ve veri kaynaklarının son sürümü kullanıp sağlamak için araçlarını kullanarak baktı.

Ön Dağıtım

Yaptığın bir şey ve bir şey tek başına var eğer ızgara sistemi dağıtmadan önce bu kriter mevcut sistemi olacak! Eğer numaralar teminatlar kadar bu yedeklemek için yoksa sistem yapacaksın ne kadar ekstra çalışma arkadaşları hakkında söylemek ne olursa olsun bir şey değildir. Bu yüzden,

  • Şu anda kaç kayıt işleyebilir? Günlük? Saat Başına?
  • Ne kadar tipik bir iş dönüp alır?
  • Ne kadar daha fazla kapasite var?

Ek sorular da var:

  • Sizin işleme sunucu (veya işleme sunuculardan biri) bu nasıl yeteneklerinizi etkileyecek aşağı giderse, sakat olacak?
  • Eğer / ızgara sistemi almak için bekliyoruz ne gibi avantajlar umuyorsunuz?
  • Ofisinizde makineleri işler çalıştırabilen var mı?
  • Sizin (veya iş dönüştürülebilir) çalışan bu tarzda wrok mıdır?

Son büyük nokta böyle önemli bir değişikliği üzerinde zaman almaktır. Tekrar yeni bir metodoloji, kriter kullanarak çalışmak için işlem kodu güncelleyin. Muhtemelen, bir sanal makine çalıştırmak için işleme sunucu kurmak, tüm işleme sunucu hemen sonra (nispeten sadece çok güçlü bir) başka bir işçi olacak. Yeni süreç yerleşmek için izin ver.

Dağıtım

Benim önerim ofis hafta içine pop, tüm tesisat ve kurulumu gerçekleştirmek olacaktır. Sadece bir iki haftalık tatil önce bunu yapın ve sonuçları ... belki de değil başa chap böylece diğer yoksul bırakmak ...

Bu gibi bir dağıtım sistemi için yavaş olması gerekmektedir. Bu sistemi kurmak oldukça basit olmasına rağmen, tüm ofis altyapısı (iyi dijital bir) etkileyecektir. Öncelikle, bir anda makinelerin bir çift için çalışan bilgisayarlar bir gün için günlük bazda nasıl performans monitör ağ trafiğini, dışarı rulo. Sen bulgulara tepki olarak iş yapılandırmasını değiştirmek gerekebilir.

Sistem birkaç makineleri (haydi tüm ofis makinelerinin% 10, yani 5 söylüyorlar) izleme ağ trafiği ve ana makine tekrar performance. Sonraki kriter tutmak ile geçtikten sonra, şimdi ilk deneylerimize göre% 33 daha fazla iş işleme yapılmalıdır. Bu yüzden olup olmadığını kontrol edin, veya bu ballpark en az olduğunuzu. Değilse, geçmeden önce ne olup bittiğini araştırmak. Eğer mutlu Tüm ofis makineleri tek tek makine performansı öldürme veya sekteye ağınıza taşlama olmadan çalışan kadar bu döngü tekrarlayın.

Tüm zamanlarda, tüm dağıtımlar yapılır sonra bile, kıyaslama tutun. Tüm işçiler, raporlama ve işlerini işlemek kontrol edin, yeni kod güncellemeleri sisteminizin hızını nasıl etkilediğini kontrol edin. Yavaşça (çok yavaş) ve işçilerine ağdan iyi almak için iş yapılandırma artırmak.

Dur!

Ne zaman çalışan sizin işçileri durdurmak isterseniz? Hepsi orada, yenileyici çalışan ve aç böcekler gibi verileri işlemek için ellerinden geleni çalışıyorlar. Cevap apaçık ortada ancak değer sadece durumda onun ardı ekledi. Sadece bir çıkış (0) ile işleme dosyasını düzenlemek or die () veya diğer bazı tablosunun işleme işi öldürmek için. Biz her zaman herhangi bir koşudan önce en son işlem komut dosyası için güncellemeyi deneyin neden önemli bir neden!

Gösteri Sistemi

Ben teknolojileri ve yöntemleri göstermek için çok küçük bir kılavuz hazırlandı kısa yazılar bu set yazmak için. Ben makaleler, öğreticiler çok okumak, ve kurulum ve neler olup bittiğini izlemek için çeşitli araçlar kullanılır. Hiçbir şekilde dışarı gitti ve trafik ve ne de bir bütün ofis doymuş var ben ev sahibi performansı nasıl etkilendiğini şöyle görmek için düzenli bir personelin bilgisayara erişimi vardı.

Benim gösteri sistemi gerçekten çok mütevazi idi. Ben bir iş denetimi sunucusu olarak kurmak benim normal masaüstü kullanılır. Bu konuda ben yüklü olan MySQL sunucusu çoğaltma konusunda master olarak ayarlanmış yüklü PHP ile bağlantılı, Â ve SVN apache (işçi VM üzerinden erişim için).

Daha sonra 6 yaşındaki bir windows XP dizüstü VirtualBox bir CentOS işçinin makine yarattı. Ben makine üzerine VM kopyaladıktan sonra belirtilen zamanlanmış görevler kurulum ve gidelim.

Sanal makine PHP, subversion, ve mySQL ile kurulmuştur. İşimi kontrolü sunucuları deposundan 'işçi' adlı bir şube, kontrol ve 'svn update' kullanarak güncelleştirilmiş olabilir emin oldum. Sonraki Ben bir köle olarak kurulum mySQL ve veri işçi VM iş denetimi sunucuda mySQL gelen çoğaltarak olduğunu kontrol etti. Bütün bunlardan sonra ben bash betiği ve cron işi ayarlamak.

Benim işleme komut temelde bu hatları (çok basit şeyler) birlikte gitti:

  • Adı alanına Oku
  • VM yapılan veri kaynağından bir tablo içinde benzer isimler sayısı sayılır
  • Boşluklarla yukarıda ama yarma adı (yani adı, orta, soyadı) gibi isimlerin sayısı sayılır
  • Bu proses 1000 defa tekrarlanır

Her iş çalıştırmak için yaklaşık 20 dakika sürdü. Bir noktada ben pencereleri laptop işçi VM birkaç kopya açtı ve işler işçinin her bir IP adresi tarafından kapalı kontrol edilmesi izledi. Bu noktada ben de çoğaltmayı otomatik olarak yeniden doğruladı.

Iş kontrolü sunucudan işlerini işlemek için başlayan bir işçi sonuçlandı rölantide dizüstü bırakmak. Dizüstü bilgisayar kullanımı sürdürme 30-60 saniyelik bir gecikme oldu, bu zaman ve personelin adil bir miktar makine dönerken onların makine kısa bir süre duraklama olabilir farkında yapılması gereken olacaktınız. Yeni makineler bu uzun bir duraklama olmayabilir. Boşta dönemlerinde bu makineleri tarafından gerçekleştirilen işleme miktarı yararı daha bir sabah kendi makinelerine gelmeden kısa bir süre (1 dakika demek) beklemek zorunda personeli daha ağır olacak (Ben sık sık uzun süre beklemek bir Windows Defender için bu ) yer almak güncelleştirmek onlar (bir sabah kahvesi kapmak için yararlı bir zaman!) bunun farkında yapıldı sağladı.

Genel olarak ben böyle bir sistem oluşturmak için kullanılabilecek teknolojiler göstermiştir emin hissediyorum. Ben böyle bir sistemin bir (çok) küçük ölçekte ve biraz daha bir ofisin makineleri kaynakları kullanmak kadar ölçekli olabilir deneme ile çalışır göstermiştir. Bunu yapma noktasına alamazsanız biliyorum / başkasının yaptığında görmek çok ilgi olurdu.

Sonuç / Değerlendirme

Sonraki apaçık adım, aslında gerçek bir dünyadan bir örnek almak ve bir ofis ortamında bu gibi bir sistem dağıtmak ve ne olacağını görmek için başlatmak olacaktır. Teknoloji ve etkinliğini biraz zor olabilir kanıtlamak için bir iz yanan şirket olmadan bu işlemek için bir iş sorma. Grid / Dağıtık bilgi-işlem çok popüler olan bazı çevreler ve bazı büyük uygulama (BIONC, SETI @ Home, Katlanır @ Home, vb) vardır. Ben, ancak, bir ofis ortamında dışarı atılmasında olabilir benim aramalarında bu gibi daha küçük bir ölçekte ve basit bir sistem bulamadı.

Neredeyse herhangi bir ofis mevcuttur çoğunlukla açık kaynak yazılım ve araçları kullanarak bir temelde sistemi oluşturdu. Teknolojileri temelde gösterdi ve beklendiği gibi gerçekleştirmek ve işe göstermek edildi. Umarım çok fazla değil çalışma ile ve çok basit bir kurulum ile aynı zamanda güçlü, ucuz, Â ve ölçeklenebilir bir ofis grid bilgi işlem sistemini dağıtabileceği gösterisi var.

Bir kez, bir sistem ve orada çalışan neredeyse özelleştirme ve siz yapabilirsiniz gelişmeler miktarı sonu yoktur. Örneğin istatistikleri / kıyaslama kolayca her gün böyle bir sistemin değerini gösteren eklenebilir. Yeni makineler hızlı ve kolay olarak eklenmiş ve mevcut donanım yükseltmeleri ile geldiğinizde sizin işlem gücünü destekleme yapılabilir.

Seni Bu makaleler serisinin okuma zevk aldım ve bir ofis ızgara sistemi üzerinde çalışan düşünce için yiyecek verilen umuyoruz. Burada sunulan çözüm mutlaka her durumda çalışmaz ancak kendi çözüm kullanarak veri işleme yapılması için izin de uyumlu olmalıdır.

Bana herhangi bir yorum, düzeltilmesi veya iyileştirmeler göndermek için çekinmeyin ve ben eşleşecek şekilde güncelleştirilir bu makalede tutmak için elimden geleni yapacağım olun.

Zend Framework: Temelleri - İnceleme

By Cumartesi, 28 Kasım 2009 22:42

İşverenim son zamanlarda almak bizi geliştiricileri bir grup için ödenen Zend Framework: Temelleri kursu, burada ben başkaları için ders ilgili düşünce ve görüşleri özetlemek gerekir. Zaman kazanmak isteyenler için, işte özeti:

Bakmaya zamanım olmadı geliştiriciler için Zend Framework Bu dersin (Zend Framework: Temelleri) kilit alanlarda tanıtan ve devam etmek için yeterli bilgi veren çerçevesi iyi bir genel resim sunuyor. Çerçevesinde bakarak zaman geçirdim ve bir veya iki Öğreticiler takip edenler için bu dersin çok ötesinde sunmuyor.

Arkaplan

Ben oldum PHP 5-6 yaş civarında için geliştirici ve son 6 ay içinde bir bileşen olarak Zend Framework ile çalışmaya başladık. Ben geliştirilen ve / veya küçük Zend Framework bir çift bir geliştirici oldum MVC Ben dürüst olacağım sites.Â, Bir bakış kodlama noktadan diğer çerçeveler maruz kalma büyük miktarda olmadı ama birkaç geçirdim saat projenin web siteleri araştıran ve them. oldukça heyecan verici ve gidiş nereye muazzam olanaklar orada görünmektedir çerçeve ve Zend Framework çevreleyen topluluk değerlendirilmesi.

Ders Hakkında

Tabii 9 iki saat WebEx seans (ortasında 10 dakika ara ile) üzerinde teslim edilir. Zaman her zaman tartışma ile Zend tarafından sağlanan slaytlar bir dizi geçiyor harcanmaktadır. Bu öğretim konuşmak için bir mikrofon kullanabilirsiniz, ancak dürüst olmak gerekirse ben kimseye sohbet penceresi başka bir şey kullanmak görmedik. Ayrıca bir VMWare Ubuntu makine kod örneği vardır ve projeleri Zend Studio bir deneme sürümü kurmak sağlanır. Elbette lideri entegre VoIP çözümü üzerinden ya katılanlara görüşmeler veya sayıları pek çok dünya çapında arama birini kullanarak arayabilirsiniz.

Kurs süresince maddi bir örnek ziyaretçi defteri uygulamasına gitmeden önce Framework ve MVC deseni kısa bir bakış oluşur. Tartışma önyükleme, Zend_Application, Db Tablolar, Veritabanı erişim, Formlar, Filtreleme, ACL, vb Temelde için gerekli araçları sağlayan bir çalışan, her geçen gün bir temel site almak gerekir istediğiniz tüm konuları kapsayan, vb Validating gösterdi gidin ve (bu kez çok 'web sitesine bakın' tutarı yaptı rağmen) çerçevesinde daha gelişmiş olsun.

Zaman bazı örnekler kadar kod ve 'ziyaretçi defteri' ve basit 'wiki' uygulama geliştirmek için verilir. Şahsen ben kodu veya her uygulama sağlayan ve daha sonra gerçekten iyi bir öğrenme deneyimi vermedi yanında aslında bir kopyasını ne geliştirmek için bize soran hissettim. Ben benzer bir uygulama geliştirmek için tercih ettiği, ancak aynı olurdu. ifade etmek için bir kılavuz olmasının avantajı ile Örneğin uygulama için. Alternatively building the applications from scratch with the demonstrator would of possibly led to more questions about why and how , thus giving a better understanding of the framework, after all you can look up specifics after the course.

The last lecture consisted of working on the wiki application with help/guidance from the instructor. After the course feedback was taken, it was emphasised several times through the course that Zend takes feedback very seriously, in fact apparently our version of the course was quite new. Some of the other developers in the company will be taking the course soon so it will be interesting to see if this has happened.

The course style was informal, allowed for feedback and collaboration between attendees and the instructor. Elbette lideri dostu idi, cana (e-posta adresleri sorular için paylaşıldı) ve slaytları yaptığı sunumda ederken biraz sallantılı oldu çerçevesinde tam yetkili görünüyordu. O açıkça yerine ders öğretmek öğretilen birinden daha düzenli bir çerçeve kullanılır birisi oldu, ben bu konuda 'gerçek dünya' deneyimi sevdim.

Genel Hissediyorum

Bazı bakımlardan ben zaman kaybı, bazılarında ise çok kullanışlı olduğunu kursunu buldum. Umarım açıkça karşısında benim nedenlerle alırsınız, belki düşünce ya da faydalı bir geri besleme (bu pek mümkün değildir bana bilerek!) Için bazı gıda sağlamak.

For myself this course was aimed at too low a level. Hızlı başlangıç ​​kılavuzu ile gitmiş olması, Eylem Rob Allen'in Zend Framework okumak ve biraz da ben gerçekten çok fazla bir şey alamadım çerçeve ile çalıştı. I quickstart sonuna gelen pick up ve ilave beceriler geliştirmek için kurs severlerdi.

That said, the course title does clearly state “Zend Framework: Fundamentals ” and in that aspect the course achieves what it sets out to do. Çerçeve içine bakarak zaman geçirdim değil geliştirme ekibinin diğer üyeleri coşkuyla her oturum bitmiş ve gerçekten görmek iyi oldu, sorular sordu.

All was not lost, it was good to spend time confirming the basic details of the framework and get to ask a couple of questions in areas where I wasn't 100%. Ben her gün oturup, ben değil (Eğer şirket olduğunu kabul hayal edebiliyorum? :)) Başka türlü yapmak mümkün bir şey çerçeve ve gelecek projeleri kullanarak kodlama düşünmek zorunda olduğunu da zamanı gelmişti. Last but not least you also get a nice certificate from Zend to say that you attended the course (albeit by email).

Zend Framework Certification

This was one question that kept coming to mind during the course, would it prepare me for the certification? The quick, easy is a resounding No . The course instructor was quite clear on that with the additional advice that for the certification you should really be using the framework on a day to day basis and feel very comfortable and confident in its usage and methodologies.

Özet

Yukarıda yazdığım her şeyi göz önüne alındığında, iki kolay mermi noktalarına her şeyi özetlemeye olacak:

  • New to Zend Framework: This course does exactly what you'd expect, it gives you a nice introduction to the framework and a good grounding on the basics from which you can build. The course seems to generate interest and enthusiasm for the framework amongst developers.
  • Zend Framework el: bu çok temel bazı desteklemek güzel iken ben zaman, çaba hissettim ve daha iyi yerlerde harcandı olabilir fonlar ders almak. It will be nice to see Zend create a new higher level course to take developers to the next level – at least to the standard of certification and beyond. For that I would sign up immediately.

[Uyarı] çocuk pid XXXX çıkış sinyali Segmentasyon hatası (11)

By Pazar, 11 Ekim 2009 06:09

Son zamanlarda yükseltilmiş ettiyseniz PHP veya Apache belki burada bunu düzeltmek için olası bir yol ..., boş sayfalar dönen web sunucunuzun soruna karşı geliyor ve neden hiçbir fikri ile kütük haline hata mesajları atma

Ben bir sanal makine üzerinde Apache veya PHP yükselttikten sonra birkaç kez son zamanlarda bu sorun yaşadım. Ben hata fark ilk kez ben sadece benim VM bir yedek ama ben sorunu içine bakmak zorunda gerçekleştirilen ikinci kez döndü.

Diğerleri kesinlikle iyi çalıştı ederken ben sorunu benim web sayfalarının bazı fark ilk kez boş dosya olarak görev ediliyordu. Biraz araştırma yaptığımızda apache repeatidly Aşağıdaki ileti / var / log / http / error_log dışarı yazmakta olduğunu kaydetti:

[Uyarı] çocuk pid XXXX çıkış sinyali Segmentasyon hatası (11)

Orada tahsis on-line ile gitmek değil, ve bu konuda sayfaların çoğu hiçbir şey kapalı izi. Ben gereksiz dinamik kütüphaneleri çalışırken çökmesini PHP sorunu daraltıldığı, dedi.

Benim php.ini (/ etc / php.ini) bakarak ben gerektiği gibi, onları geri yorumda planlıyor yüklenen dinamik kütüphaneleri tüm dışarı yorumladı. İki I pdo.so ve nerede çıkarmak zorunda kaldık mysql yüzden..

Bir kere bu benim tüm web sayfaları sadece PHP / Apache güncelleştirme daha önce olduğu gibi, ince hizmet ediliyordu çıkarıldı.













Tarafından Panorama Tema Themocracy

4 visitors online now
4 guests, 0 bots, 0 members
Bugün Max ziyaretçiler: 09:43 16 UTC ÖS
Bu ay: 2012/01/05 01:02 UTC de 16
Bu yıl: 27-02-2012 09:56 de 69 UTC ÖS
Bütün Zaman: 28-03-2011 10:40 UTC de 130