Kategori: Pengkomputeran

proksi Apache dengan pengesahan

Dengan Watkin Lloyd Steven , 27 Mac 2011 Minggu 12:57

Posting ini dengan cepat akan menunjukkan cara menetapkan proksi dengan pengesahan asas menggunakan apache .

Dalam kes saya saya ingin punya pelanggan penghantaran bit torrent terdapat melalui internet sehingga saya boleh menyemak adminster torrent download dan negara (seperti keluaran fedora terkini) mengikut keperluan. Transmisi itu sendiri berjalan pelanggan web pada port 9091 secara default. Daripada repot-repot membuka port lebih lanjut tentang firewall dan menambah Peraturan forwarding port nessecary aku memutuskan aku baru sahaja proksi panggilan melalui untuk penghantaran melalui apache menggunakan mod_proxy .

Teruskan membaca 'proksi Apache dengan pengesahan' »

Zend Framework: Render Jika Exists

Dengan Watkin Lloyd Steven , 12 Disember 2010 04:19 Minggu

Review

Ini adalah posting cepat untuk membincangkan paparan penolong sederhana bukan saya buat untuk render Zend Framework gaya fail paparan hanya jika ada. Umumnya meminta kod untuk membuat sebuah fail yang tidak ada akan memunculkan eksepsi. Oleh kerana itu saya membuat sebuah pembungkus untuk Zend_View:: render () method yang menentukan sama ada fail tersebut ada dan jika demikian membuat, jika tidak hanya mengembalikan sebuah string kosong.
Continue reading 'Zend Framework: Render Jika Exists' »

Zend Certified Engineer (ZCE) 5.3

Dengan Watkin Lloyd Steven , Kamis 30 September 2010 09:00

Dengan keluaran rasmi dari Certified Engineer (ZCE) program Zend untuk 5.3 saya fikir saya akan memberikan kesan segera saya dari apa yang saya memikirkan ujian.

Latar belakang kecil pada diri sendiri: saya pertama kali diperkenalkan ke PHP sekitar 7 tahun yang lalu dan telah bekerja secara profesional di PHP sejak tahun 2006. Saat ini saya bekerja untuk menarik start-up yang disebut Brightpearl berpusat di Bristol, United Kingdom , menghasilkan CRM terintegrasi, perakaunan, dan perisian e-dagang. Saya sebelumnya belum memperoleh salah satu kelayakan ZCE dahulu. Saat ini saya mengembangkan dalam siri 5.2.x dan belum benar-benar digunakan salah satu ciri khas 5.3 (Saya sedang menunggu Zend Framework 2 dan Ajaran 2) dalam projek pembangunan saya.
Continue reading 'Zend Certified Engineer (ZCE) 5.3' »

Zend Framework Per Tetapan Layout Modul - Tindakan Lanjut

Dengan Watkin Lloyd Steven , Selasa 16 Februari 2010 08:48

Sebagai tindak lanjut posting saya sebelumnya tentang pada modul tatacara tata letak berdasarkan untuk Zend Framework , saya telah mengemas kini kod untuk memerlukan konfigurasi yang kurang maka sebelum (bukan yang memerlukan lebih bahawa beberapa baris dalam konfigurasi aplikasi anda!).
Continue reading 'Zend Framework Modul Per Layout Tetapan - Tindakan Lanjut' »

Pejabat Grid Computing menggunakan persekitaran Virtual - Bahagian 4

Dengan Watkin Lloyd Steven , 4 Disember 2009 23:59 Jumaat

Pengantar

Saya bekerja di sebuah syarikat di mana kita menjalankan banyak kerja batch processing berjuta-juta nota data setiap hari dan saya sudah berfikir baru-baru ini tentang semua mesin yang duduk-duduk masing-masing dan setiap hari melakukan apa-apa selama beberapa jam. Bukankah lebih baik jika kita boleh menggunakan mesin-mesin untuk meningkatkan kekuatan pemprosesan sistem kita? Dalam Seri artikel ini saya akan melihat potensi manfaat menggaji pejabat grid menggunakan persekitaran virtualised.

Di bahagian 3 kita buat mesin pengolah virtual kami dan menetapkan mesin windows menjadi pekerja waktu idle.

Menjalankan kod terbaru

Tak pelak setelah membuat logik perniagaan anda pekerja akan berubah, bug yang akan dijumpai, lebih efisien kod yang lebih cepat akan dihasilkan sehingga membuat pekerja anda duduk di sekitar pemprosesan data menggunakan kod bau tua . Lalu bagaimana kita memastikan bahawa kami selalu menggunakan versi terbaru dan terbaik dari pemprosesan script kita?

Ada beberapa cara sederhana yang sangat mudah kita boleh melakukan hal ini, trik, bagaimanapun, adalah untuk mengurangkan kekuatan pemprosesan dan lalu lintas rangkaian dalam mencapai hal ini. Mari kita mulai dengan yang paling sederhana penyelesaian dan memperbaikinya perlahan-lahan selama beberapa iterasi.

Kaedah pertama adalah dengan hanya disambungkan ke pelayan kawalan kami pekerjaan (melalui samba, FTP, atau semacam itu) dan tarik ke bawah versi terbaru kod. Tidak sangat cekap, tetapi akan melakukan pekerjaan. Mari memperbaiki yang agak, bagaimana mencipta sebuah script rsync dan menggunakan bahawa setiap kali saja? Atau apa tentang menempatkan script terkini pemprosesan kami menjadi subversi menyemak kod pada awalnya dan kemudian hanya mengemas kini kod kita pada setiap run ( update svn )?

Pada akhirnya kita bisa berakhir dengan script bash (disebut oleh cron setiap 10 minit) yang tampak sederhana seperti ini:

  #! / Bin / sh
 jika ps ax | grep-v grep | grep php > / dev / null
 kemudian
     echo "Ayub saat ini pemprosesan, keluar"
 lain
     echo "Ayub tidak berjalan, mulai sekarang"
     cd / path / ke / kerja / copy
     svn update
     php yourJobProcessingScript.php
 fi 

Sekarang kita boleh yakin bahawa dengan menjalankan setiap kami sungguh-sungguh menjalankan kod terbaru. Kami memastikan hal ini dengan mengemas kini pangkalan kod kita masing-masing dan setiap kali kita melakukan lari dan mengurangkan lalu lintas rangkaian dengan hanya memindahkan fail perbezaan di seluruh jaringan kami.

Dalam tatarajah demonstrasi saya, saya melakukan persis seperti di atas. Subversion dipasang di pelayan pemprosesan saya kerja dan saya hanya menarik kod terbaru dari cabang 'pekerja' menggunakan 'svn update'. Saya juga menambah tag nombor versi untuk memproses naskah saya yang dikembalikan ke database sebagai sebahagian daripada mengembalikan hasil. Dengan cara ini aku dapat melihat bahawa kod saya sedang dikemaskini setiap kali saya disalin Bagasi saya ke cabang, iaitu pekerja bahawa saya benar-benar menjalankan skrip pemprosesan terkini.

Menggunakan data terkini

Jika proses kerja anda memanfaatkan sumber data kemudian di beberapa titik ini akan dikemaskini. Kecuali anda menelefon sumber data anda pada dasar yang sangat jarang berlaku anda akan membanjiri jaringan dengan lalu lintas akan selepas pekerja anda mula berjalan membawa segala sesuatu untuk berhenti. Untuk penyelesaian saya, saya memutuskan bahawa saya ingin memindahkan sumber data saya sekitar dengan VM saya.

Tahan kau kuda di sana! Bagaimana jika sumber data saya BESAR? Nah ini benar-benar adalah kes berapa banyak data yang kita bicarakan? Ini mungkin kos yang lebih efektif untuk memasang sebuah hard drive tambahan yang lebih besar ke mesin masing-masing daripada membeli pelayan pemprosesan tambahan. Ini adalah masalah anggaran dan terserah perniagaan untuk memutuskan. Ini mungkin bahawa sumber data anda yang begitu besar yang tidak layak yang hanya untuk menjaga jumlah data pada mesin pekerja anda. Dalam hal itu apa yang akan anda lakukan? Yah kita boleh melihat memanggil pelayan data tempatan, tetapi ini boleh menyebabkan masalah dengan rangkaian. Dalam hal ini suatu sistem grid seperti ini dapat menjadi tidak realistik untuk memasukkan dalam persekitaran pejabat anda. Ini mungkin juga bahawa anda boleh melihat ke dalam strategi berjalan alternatif, misalnya hanya memanggil pekerja anda 08:00-6:00 setiap malam dan / atau data Throttling permintaan sumber.

Bergerak pada katakanlah data kami jumlah sumber untuk 100GB data. Nah ya itu cukup sedikit data untuk bergerak di sekitar rangkaian pada kemas kini. Bagaimana kita memastikan bahawa kita mempunyai salinan terbaru dari data dalam kes ini? Rsync kemungkinan, tapi secara peribadi saya fikir dengan menjalankan sumber data terkini anda pada pelayan pemprosesan anda kerja dan tetapan ini sebagai master dalam replikasi (dengan log bin yang bagus panjang) mungkin cara untuk pergi:

replikasi Dengan menetapkan setiap pekerja anda sebagai budak kemas kini pekerjaan kawalan pelayan untuk sumber data anda akan menitis ke bawah baik untuk pekerja anda tanpa peningkatan yang sangat besar dalam aktiviti rangkaian (iaitu kecuali jika anda melakukan update data besar dan seluruh pekerja anda menendang sekaligus). Ini mempunyai keunggulan dibandingkan rsync kerana anda tidak akan mendapatkan jeda lama sebelum setiap pekerjaan, seperti update database, mysql daemon pada pekerja anda akan terus mengemas kini data buat sementara waktu pemprosesan terus.

Ini adalah bagaimana cara mengkonfigurasikan pelayan demonstrasi saya. Untuk menetapkan replikasi saya mengikuti panduan di laman mySQL ( Menyediakan replikasi ) dan dalam 20 minit aku pekerja inital saya mereplikasi kawalan pekerjaan dataset pelayan. Untuk setiap pekerja tambahan tatacara replikasi dan proses bekerja setiap kali ketika VM itu disalin.

Review

Dalam bahagian dari artikel yang kita telah melihat bagaimana mudah dan tanpa rasa sakit itu adalah untuk menjaga kod pemprosesan anda up to date dengan rsync using atau subverion (SVN) untuk melakukan pekerjaan dan mengurangkan lalu lintas jaringan di time. sama Kami juga membincangkan bagaimana untuk menyimpan maklumat data sumber anda up-to-date dengan membolehkan untuk menitis ke bawah untuk masing-masing pekerja anda. Jadi kita daerah memastikan bahawa kita tetap dengan logik perniagaan dan maklumat dalam sistem grid pejabat kami. Tidak jelas akan alternatif yang tak terhitung jumlahnya akan melakukan tugas-tugas ini, tapi di sini ada dua contoh sederhana untuk menunjukkan betapa mudahnya penyelesaian akan datang dengan.

Lain kali

Pada bahagian akhir siri ini, aptly bernama Bahagian 5 , kita akan membicarakan menyebarkan sistem ini. Aku akan meringkaskan apa yang telah dipelajari dan apa yang saya berjaya mencipta.

Pejabat Grid Computing menggunakan persekitaran Virtual - Bahagian 3

Dengan Watkin Lloyd Steven , 4 Disember 2009 23:37 Jumaat

Pengantar

Saya bekerja di sebuah syarikat di mana kita menjalankan banyak kerja batch processing berjuta-juta nota data setiap hari dan saya sudah berfikir baru-baru ini tentang semua mesin yang duduk-duduk masing-masing dan setiap hari melakukan apa-apa selama beberapa jam. Bukankah lebih baik jika kita boleh menggunakan mesin-mesin untuk meningkatkan kekuatan pemprosesan sistem kita? Dalam Seri artikel ini saya akan melihat potensi manfaat menggaji pejabat grid menggunakan persekitaran virtualised.

Pada bahagian 2 kita melihat pekerjaan pelayan akan berjalan, dan bagaimana pekerjaan harus dikonfigurasikan untuk mencapai jumlah terbesar sementara proses memastikan bahawa setiap pekerjaan diproses tanpa gagal.

Menyediakan pekerja anda - atau pelayan Limp

Langkah seterusnya dalam proses ini adalah untuk menetapkan pekerja virtual anda. Untuk ini saya akan menggunakan pemasangan CentOS menggunakan VirtualBox. Aku akan memasang mySQL dan PHP pada pelayan, juga dikenali sebagai pincang (Li Nux, m ySQL, L HP) servera (saya mungkin telah membuat nama itu atas).

  • Pasang VirtualBox pada mesin windows anda (ikuti link)
  • Download dan install CentOS (versi 5.3) di dalam mesin virtual yang dibuat

Tidak ada gunanya saya terus ini ada kemungkinan 's / d 1,000 tutorial besar di luar sana (ok, ini satu: Membuat dan Managing mesin virtual CentOS bawah virtualbox ). Mata penting untuk diperhatikan saya kira adalah bahawa saya disebut GridMachine mesin virtual saya.

Sejauh pilihan saya pelanggan virtualisasi dan sistem operasi pergi ke sana ada alasan kuat besar bagi masing-masing pilihan. VirtualBox adalah sesuatu yang saya gunakan di komputer rumah saya dan disokong oleh tiga sistem operasi utama. Saya memilih CentOS sebagai OS nya stabil baik dan saya gunakan di pelayan web sendiri. Saya sangat percaya pada alat yang tepat untuk pekerjaan (walaupun aku menerapkan 'menggunakan terpantas dan termudah untuk anda' mentaliti di sini), jadi jika sistem operasi X menjalankan kod anda lebih cepat dan lebih efisien menggunakannya sebagai gantinya:)

Yang penting pastikan bahawa VM anda menggunakan DHCP, dinyatakan untuk setiap mesin virtual baru akan harus dikonfigurasikan secara berasingan yang merupakan sesuatu yang kita tidak want.By menggunakan DHCP kita tidak perlu menyediakan tatacara rangkaian secara individu untuk mesin pekerja, DHCP akan tangan keluar IP untuk anda. Oleh itu, anda boleh menyalin mesin virtual anda tentang kantor tanpa bimbang tentang tatacara masing-masing Facebook (ini meningkatkan skalabilitas dan mengurangkan pentadbiran pekerja).

Proses anda harus berusaha untuk mencapai adalah untuk mendapatkan sebuah mesin fizikal baru, pasang VirtualBox, dan kemudian cukup banyak menyebarkan gambar virtual tanpa banyak lagi. Mungkin bijaksana untuk setup semua pekerja anda pada subnet yang berbeza sehingga anda sekurang-kurangnya dapat melihat berapa banyak mesin berjalan. Anda juga harus menyiapkan mesin anda pada sewa panjang atau DHCP sewa terhad.

Bagaimana menjalankan Jobs pada pekerja

Ini adalah kawasan yang menarik dan ada beberapa kaedah yang sah untuk pekerjaan pemprosesan pada pekerja. Di sini saya hanya akan membahas dua yang paling jelas:

  • Menerus menjalankan skrip: script A, baik itu shell script, atau script PHP dieksekusi sekali pada pekerja dan berjalan sebagai sebahagian dari sebuah loop tak terbatas. Saya sudah diskaun kaedah ini sebagai salah satu kemalangan naskah dan berpotensi pekerja anda akan berhenti berjalan tanpa semacam campur tangan.
  • Cron eksekusi script mengikut: Setiap minit X cron daemon kicks off panggilan kepada skrip anda untuk mendapatkan hal yang terjadi. Tanpa menyemak beberapa perkara ini boleh menyebabkan banyak salinan banyak script pekerja anda berjalan.

Keputusan saya adalah pergi dengan cron yang kicks off shell script setiap 10 minutes. shell script saya melakukan kegiatan sebagai berikut:

  1. Dapatkan senarai proses dan grep ini untuk 'php'. Jika tidak dijumpai, maka teruskan.
  2. Kod panggilan pekerjaan anda, dalam kes saya ini akan menjadi sesuatu yang berasaskan PHP
  3. Pekerja script selesai menjalankan syarikat
  4. Siap untuk pergi lagi pada panggilan yang sesuai seterusnya

bash script saya terlihat seperti berikut:

  #! / Bin / sh
 jika ps ax | grep-v grep |> grep php / dev / null
 kemudian
     echo "Ayub saat ini pemprosesan, keluar"
 lain
     echo "Ayub tidak berjalan, mulai sekarang"
     php yourJobProcessingScript.php
 fi 

Nota: echo adalah hampir sama sekali tidak ada gunanya, tetapi boleh membantu orang seterusnya yang datang untuk mencuba dan mengeditnya.

Yang menyimpulkan set up dari pekerja mesin virtual, cepat, sederhana, dan mudah untuk copy ke mana-mana bahagian hardware baru yang diterima. 'Kepintaran' The sistem grid benar-benar tidak di OS divisualisasikan, yang semua dilakukan dengan kod dibuat untuk pekerjaan proses, tatarajah pekerjaan, dan dalam memastikan bahawa pekerjaan berjalan saat yang tepat (iaitu ketika tuan rumah itu idle ).

Menyediakan Windows untuk Menginisialisasinya Pekerja

Tugas pertama adalah untuk bekerja di luar arahan yang diperlukan untuk menjalankan mesin virtual dari baris arahan windows. Jika anda telah memasang VirtualBox di lokasi lalai dan anda sudah bernama GridMachine pekerja anda maka perintah yang diperlukan untuk memuatkan pekerja anda adalah:

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

Namun untuk menjalankan skrip dalam keadaan 'tanpa kepala' kita perlu menggunakan:

  "C: \ Program Files \ Sun \ VirtualBox \ VBoxHeadless.exe"-startvm GridMachine - vrdp = off 

Ini akan memulakan mesin virtual tanpa GUI dan membolehkan untuk menyelamatkan negara dengan anggun. Hujah kedua mematikan RDP sehingga tidak bertentangan dengan windows RDP, atau memberikan mesej tentang mendengar pada port 3389. Nama mesin virtual adalah kes sensitif!

Kemudian, kita akan perlu untuk menetapkan tetingkap Facebook untuk memulakan VM pekerja kita sekali mesin sudah idle. Untuk melakukan hal ini (pada Windows XP) anda perlu pergi Start -> All Programs - Accessories -> System Tools -> Jadual Tugas sebagai berikut:

jadual tugas

Selanjutnya klik pada 'Tambah Scheduled Task' diikuti dengan menelusuri menambah program tersuai. Arahkan ke script VBoxManage anda dan klik ok. Jadual tugas anda untuk salah satu pilihan (kita akan perubahan ini dalam satu minit) dan teruskan. Setelah melewati tetingkap berikutnya akan meminta anda yang anda ingin menjalankan tugas ini, saya cadangkan baik 'Administrator' atau membuat pengguna istimewa baru. Ingat kita tidak mahu mengganggu akaun kakitangan standard pada mesin pada titik apapun. Klik pilihan acara berikutnya dan periksa lanjutan untuk tugas ini.

Untuk akhir textbox menjalankan menambah string 'startvm GridMachine' kami dan memastikan bahawa hanya berjalan ketika login dibiarkan unticked. Lawati tugas jadual seterusnya dan menukar jadual drop ke pilihan 'saat menganggur', memilih jumlah masa yang anda ingin mesin untuk idle sebelum pindah ke tab berikutnya.

Akhirnya untick opsyen yang menyatakan menghentikan tugas jika telah menjalankan X jumlah masa, tapi jangan tandakan pilihan untuk menghentikan tugas jika enjin tidak lagi menganggur.

jadual

Itu saja dan untuk host setup windows!

Review

Pada bahagian ini, kami telah menetapkan suatu mesin virtual untuk bertindak sebagai seorang pekerja, serta cara yang kita sebut dan melaksanakan tugas kita skrip pemprosesan (untuk diriku sendiri script PHP). Dari sini kita melihat cara membuat salinan kita tetingkap untuk memulakan mesin virtual dalam mod tanpa kepala ketika komputer menjadi siap sedia, dan simpan negaranya ketika pengguna kembali penggunaan mesin. Semoga pada saat ini anda melihat betapa sederhananya adalah untuk menetapkan sistem tersebut dan gatal untuk mendapatkan beberapa percubaan pergi sendiri!

Lain kali

Di Bahagian 4 kita akan melihat menggunakan alat-alat untuk memastikan bahawa anda menjalankan versi terbaru dan kod sumber data sehingga hasil yang diperolehi selalu up-to-date dengan maklumat perniagaan terbaru dan logik.

Pejabat Grid Computing menggunakan persekitaran Virtual - Bahagian 1

Dengan Watkin Lloyd Steven , 4 Disember 2009 23:23 Jumaat

Pengantar

Saya bekerja di sebuah syarikat di mana kita menjalankan banyak kerja batch processing berjuta-juta nota data setiap hari dan saya sudah berfikir baru-baru ini tentang semua mesin yang duduk-duduk masing-masing dan setiap hari melakukan apa-apa selama beberapa jam. Bukankah lebih baik jika kita boleh menggunakan mesin-mesin untuk meningkatkan kekuatan pemprosesan sistem kita? Dalam Seri artikel ini saya akan melihat potensi manfaat menggaji pejabat grid menggunakan persekitaran virtualised.

Sebagai seorang PHP developer saya akan menggunakan tools yang saya gunakan setiap hari iaitu, Linux, mySQL , PHP, VirtualBox dan subversi (SVN). Namun saya berharap panduan ini akan menyesuaikan diri dengan bahasa lain dan teknologi baik begitu.

Solusi yang saya berikan akan sangat longgar didasarkan pada jenis pemprosesan kami perlukan untuk mencapai namun hal ini tidak mungkin benar melalui semua artikel yang saya akan mengubah sesuatu untuk kesederhanaan, atau untuk menghasilkan senario penggunaan lebih menarik.

Virtualised persekitaran ini akan berjalan di mesin windows kerana ini adalah apa yang sebahagian besar pejabat dijalankan. Pemprosesan bahawa mesin pejabat tidak boleh mengganggu dengan kakitangan menggunakan mesin-mesin, seharusnya tidak memerlukan rawatan di mesin, dan mudah deployable untuk mesin baru saat tersedia. Selain itu, mesin virtual yang baru seharusnya tidak memerlukan konfigurasi tambahan kerana hal ini sangat mengurangkan skalabilitas dan kemudahan di mana sistem grid boleh diperbaharui.

Mengapa Menyebarkan sebuah Grid Computing Pejabat?

Pertama anda mungkin berfikir, mengapa tidak hanya menggunakan sumber daya komputasi awan seperti Amazon EC2 platform ? Yah bisa beberapa alasan, misalnya:

  • Anda tidak akan mempercayakan data tertentu untuk sebuah persekitaran pengkomputeran awan
  • Anda tidak boleh meletakkan data tertentu kepada sebuah persekitaran pengkomputeran awan untuk alasan undang-undang (misalnya data meninggalkan negara), berpotensi kerana alasan undang-undang, misalnya catatan NHS.
  • Anda ingin menyimpan unit pemprosesan anda berhampiran dan mempunyai kawalan penuh atas hardware terlalu
  • Anda tidak mempunyai dana projek untuk menjalankan contoh awan
  • pejabat anda tidak mempunyai sambungan ke internet dan kerana itu yang tidak mungkin untuk menggunakan sumber daya awan
  • Anda tidak seperti hujan, awan menyarankan hujan, kerana itu anda tetap cukup jauh

Aku yakin senarai itu boleh terus, tapi saya berfikir bahawa cukup untuk saat ini.

Keuntungan dari Grid Computing Pejabat

Yah, mari kita melakukan beberapa matematik (dan dalam gaya fizik benar membolehkan membuat beberapa andaian sweeping). Bayangkan anda mempunyai pelayan pemprosesan besar berdaging menjalankan 100 pekerjaan pada hari. Di pejabat anda, anda mempunyai 50 mesin yang idle 16 jam sehari, masing-masing mesin adalah 10% sekuat pemprosesan berdaging anda memutuskan. (Semua hasil di sini adalah bulat untuk meningkatkan prestasi meremehkan).

Jadi, 1 mesin * 10% * power 2 / 3 waktu = 0,067 iaitu 1 pemprosesan desktop di waktu idle dapat memproses 6 pekerjaan penuh pada hari.

Jika anda sekarang skala ini Facebook diperlukan 15 desktop siap sedia untuk proses sebagai banyak pekerjaan pada hari sebagai pelayan pemprosesan utama anda tidak.

Jadi di kantor pura-pura kita 50 mesin kita boleh meningkatkan kekuatan pemprosesan kami dari 1 server sampai dengan 4 pelayan pemprosesan penuh, atau kita boleh memproses 400 pekerjaan pada hari bukan 100.

Perhatikan, kerana tidak ada pelaburan peranti keras baru syarikat anda baru saja meningkatkan kapasiti pemprosesan batch 4 kali! Anda akan berpotensi untuk meningkatkan penggunaan kekuatan anda tetapi dari lingkungan kantor paling saya pernah ke mesin umumnya tertinggal dalam semalam, jadi anda boleh melihat ini sebagai sebuah inisiatif hijau.

Keuntungan lain juga bermakna bahawa pelaburan baru (atau dikemaskini) pelayan pemprosesan boleh ditunda jika mesin pejabat anda sudah cukup dan bahawa anda meningkatkan kekuatan mesin pejabat anda grid pejabat anda menjadi lebih kuat secara automatik.

Technologies

Apa yang anda perlukan? (Atau lebih tepatnya apa yang saya gunakan):

  • Idle Mesin pejabat (dalam kes saya laptop windows XP lama cadang)
  • VirtualBox (atau software pelanggan virtualisasi)
  • Sebuah mesin virtual dengan PHP, mySQL running menjalankan ditebang OS, aku memanggil Limp ini saya pelayan:)
  • Pekerjaan untuk menjalankan
  • Ayub pelayan (boleh mesin virtual lain di suatu tempat)

Khas Pekerjaan

Jenis-jenis pekerjaan yang sistem ini direka untuk menjalankan adalah sebagai berikut:

  • Sistem menerima senarai data atas mana kita harus mencocokkan dan mengembalikan hasil
  • Pencocokan melibatkan pemeriksaan / mencari beberapa (cukup statik) sumber data
  • Hasil dari sumber data mungkin memerlukan pengesahan lebih lanjut, penggabungan, menyemak sumber data tambahan dalam menanggapi hasil
  • Data kembali dengan nota yang sesuai, sepenuhnya diaktifkan dan diproses
  • Setiap nota dalam pekerjaan adalah bebas daripada sisanya

Jadi pada dasarnya kita cari dalam menjalankan pekerjaan yang memerlukan campuran carian database dan beberapa nombor-nombor, sebuah senario yang cukup khas dalam persekitaran perniagaan.

Grid penyelesaian tidak hanya menguntungkan untuk memproses kerja jenis ini. Pada dasarnya, setiap proses yang boleh dibahagikan menjadi unit yang bebas dapat dijalankan secara selari. Lihat wikipedia ini untuk contoh dan maklumat lebih lanjut: Grid Computing , namun beberapa contoh terkenal adalah Seti @ Home dan BIONC . Ada rangka kerja untuk menjalankan pengkomputeran grid, dan ini layak melihat ke dalam.

Apa yang akan kita capai?

Pada akhir rencana ini saya berharap dapat menunjukkan bahawa pengerahan grid pejabat tidak perlu mahal atau sangat memakan masa. Aku akan membahas:

  • Menyediakan sistem kawalan kerja, tatarajah pekerjaan
  • Membuat mesin virtual yang sesuai pemprosesan
  • Cara setup sistem pada enjin windows
  • Memastikan anda menggunakan kod terbaru dan data
  • Deployment dan benchmarking
  • Ke depan

Aku akan membina (ok yang saya bangun, lalu menulis ini) contoh aplikasi untuk menguji konsep-konsep pada mesin tempatan dengan menggunakan windows XP dan mesin virtual 'GridMachine' saya. Server saya kawalan kerja akan menjadi mesin utama saya yang menjalankan Fedora 11 .

Ini sama sekali tidak bertujuan untuk menunjukkan sistem yang handal bekerja sepenuhnya, yang berarti lebih dari demonstrasi dan membincangkan menunjukkan bahawa hal-hal ini dapat dicapai dalam ruangan yang cukup singkat dan dengan bayaran yang kecil. Sila hantar komen, pembetulan, atau pembaikan dan saya akan melakukan yang terbaik untuk menjaga artikel ini dikemaskini untuk mencocokkan.

Lain kali

Pada bahagian 2 Aku akan bermula dengan melihat pada sistem kawalan kerja, dan melihat bagaimana pekerjaan harus dikonfigurasikan untuk mencapai jumlah terbesar sementara proses memastikan bahawa setiap pekerjaan diproses tanpa gagal.

Pejabat Grid Computing menggunakan persekitaran Virtual - Bahagian 2

Dengan Watkin Lloyd Steven , 4 Disember 2009 23:23 Jumaat

Pengantar

Saya bekerja di sebuah syarikat di mana kita menjalankan banyak kerja batch processing berjuta-juta nota data setiap hari dan saya sudah berfikir baru-baru ini tentang semua mesin yang duduk-duduk masing-masing dan setiap hari melakukan apa-apa selama beberapa jam. Bukankah lebih baik jika kita boleh menggunakan mesin-mesin untuk meningkatkan kekuatan pemprosesan sistem kita? Dalam Seri artikel ini saya akan melihat potensi manfaat menggaji pejabat grid menggunakan persekitaran virtualised.

Dalam Bahagian 1 saya memberi gambaran dari sistem dan teknologi saya akan menggunakan juga dibahas beberapa kemungkinan alasan mengapa anda ingin membuat grid pejabat.

Job Control

Jika anda akan menjalankan kerja maka anda akan memerlukan beberapa cara untuk menetapkan mereka. sistem kawalan pekerjaan yang anda (di server pekerjaan anda) harus benar-benar difikirkan dengan baik bahkan sebelum cuba untuk menjalankan sebuah rangkaian pejabat. Jadi pertama, apa tugas untuk sistem kawalan pekerjaan:

  • Berkongsi pekerjaan atas permintaan dari pekerja
  • Beritahu pekerja apa jenis pekerjaan untuk menjalankan
  • Track pekerjaan
  • Pastikan bahawa pekerjaan hanya berjalan sekali
  • Menyediakan data pekerjaan untuk para pekerja, atau sekurang-kurangnya memberitahu mereka di mana mendapatkannya

Sistem ini juga perlu diperluas, penyelesaian yang bekerja untuk saat ini dalam satu kes boleh diperbaharui untuk menjalankan beberapa jenis pekerjaan sebagai perniagaan melihat berharga dalam larutan grid. Contohnya, pekerjaan boleh mendapatkan keutamaan, lebih daripada satu jenis pekerjaan mungkin ada (iaitu kod pangkalan beberapa), akhirnya anda bahkan dapat menjalankan mesin beberapa pekerja yang berbeza yang dioptimalkan untuk setiap jenis pekerjaan (walaupun yang bergerak menjauh dari 'pekerja generik 'idea). Selalu cuba untuk berfikir tentang masa depan ketika sistem berkembang, visi jangka pendek boleh menyebabkan kekecewaan jangka panjang dan masa pembangunan meningkat.

Ayub Server

Kita akan memerlukan tempat untuk mengendalikan kerja kita dari, ini harus menjadi sistem hanya dalam grid anda yang mengandungi resource locator tetap, adalah bahawa alamat IP, nama host, URL (menggunakan DNS dalaman), dll Ini adalah kerana pekerja perlu tahu di mana untuk mencari pekerjaan, pekerja perlu mencari sistem kerja kawalan (bukan sistem kawalan pekerjaan mencari pekerja).

Server pekerjaan itu sendiri tidak benar-benar memiliki tugas yang rumit (dalam bagaimanapun sistem asas), perlu untuk menyimpan senarai pekerjaan, pekerjaan tangan keluar, menerima keputusan, dan kemudian menyimpannya untuk turun nanti. Bagaimana bahagian-bahagian ('tangan dari pekerjaan' seperti) yang ditetapkan boleh sangat asas. Kemudian kita dapat memperluaskan sistem untuk menyertakan sebuah antara muka pentadbiran untuk menambah, mengedit, memadam, menunda pekerjaan tapi ini di luar latihan ini.

Tidak ada alasan apapun maka pekerjaan bahawa pelayan anda tidak boleh menjadi mesin virtual yang berjalan dalam pelayan pemprosesan utama anda asalkan tidak terlalu banyak menguras sumber daya dari itu. Server pekerjaan tetapi tidak mengetahui sama ada keperluan yang tinggi, jika turun pada Jumaat malam anda akan kehilangan semua akhir pekan pemprosesan, berpotensi bayaran anda beberapa minggu bernilai masa proses (jika dibandingkan dengan pelayan utama pemprosesan anda sendiri) . Anda mungkin ingin mempertimbangkan untuk menempatkan pelayan pekerjaan anda di persekitaran yang seimbang beban untuk ketersediaan tinggi.

Basic Setup

Tatarajah asas untuk pelayan pekerjaan kami akan terdiri dari apa yang saya menelefon salah satu daripada Limp server saya (iaitu Li Nux, ySql m, L HP). Kod berjalan pada pekerja Thea benar-benar akan bekerja apa kerja boleh berjalan dengan berinteraksi dengan dengan database pekerjaan sistem kawalan. Kemudian kita boleh membuat web service dan benar-benar tangan keluar pekerjaan daripada memiliki pekerja melakukan kerja keras sendiri, tetapi untuk sekarang kita akan terus menggunakan prinsip KISS (Keep it Simple, Stupid!).

Jadi, mari membuat tiga mySQL jadual untuk menangani pekerjaan. Ini akan menjadi `pekerjaan`, `jobRecords`, dan `jobResults`.

pekerjaan jadual Disini Saya menggunakan SQL Buddy alternatif yang sedikit besar untuk phpMyAdmin hanya kerana lebih mudah untuk dipasang pada CentOS (untuk orang lain lihat: 10 alternatif Besar ke phpMyAdmin )

Jadual ini terdiri daripada 5 bidang yang sederhana,

  • id: Uniknya mengenalpasti pekerjaan
  • Nama: Boleh jadi rujukan pelanggan, atau jumlah pengenal lain
  • Status: anda perlu tahu di mana pekerjaan itu pada, misalnya
    • 0: Belum bermula
    • 1: Dijemput
    • 2: Selesai
  • started_by: Siapa yang mula melakukan kerja? Hal ini tidak sepenuhnya diperlukan tetapi adalah baik untuk memiliki. Saya cadangkan pelacakan pekerja dengan alamat IP pada rangkaian anda
  • started_at: Bila pekerja memulakan kerja? Dengan pengesanan pekerjaan yang belum selesai dalam waktu X jumlah masa kita tahu kita perlu mengambil pekerjaan sekali lagi dan mula memproses oleh pekerja-pekerja lain. Pekerja boleh menghentikan pemprosesan / offline untuk sejumlah alasan, listrik mati, kemalangan, kehilangan rangkaian, dll

Sangat mudah bagaimana jadual ini boleh diperbaharui dengan beberapa medan tambahan untuk membolehkan anda statistik pelacakan, medan waktu selesai untuk melihat berapa lama pekerjaan itu mengambil, sebuah counter untuk melihat berapa ramai pekerja mengambil pekerjaan itu (jelas ini perlu cenderung 1), keutamaan kerja, senarai boleh terus dan terus. Dalam senario pekerjaan yang lebih kompleks akan mungkin untuk menentukan berapa banyak memori pekerja akan memerlukan akses kepada (dan kerana itu hanya menggunakan pekerja sesuai), atau bahkan jenis pekerja akan diperlukan.

Mari menambah pekerjaan beberapa contoh:

contoh kerja

Jadual berikutnya lagi adalah cukup sederhana untuk memahami, ini adalah catatan pekerjaan kita. Mereka berkaitan dengan jadual kerja utama dengan sebuah medan `jobs_id`. Yang membuat jadual ini sangat bergantung pada data yang anda perlukan untuk membekalkan para pekerja anda, membolehkan membuat contoh yang sangat sederhana di mana kita mempunyai empat medan:

  • id: ID dari nota
  • Nama: Nama Orang
  • Alamat: alamat Person
  • jobs_id: MY pekerjaan yang catatan ini berkaitan dengan

Jadual ketiga dan terakhir terdiri daripada jadual keputusan, itu telah sama make up sebagaimana jadual catatan kami, dan dengan penambahan beberapa medan boleh menjadi sebahagian daripada jadual nota:

  • job_record_id: Link hasilnya ke meja kerja
  • Keputusan: Data keputusan

... Dan itu semua anda perlukan untuk kawalan kerja! (Walaupun pada tahap yang sangat asas) Dalam kes saya, saya menunjuk ke meja tempat data saya untuk memproses berada, tapi ini bisa saja menjadi jumlah gambar, parameter untuk menjalankan kod simulasi, apa saja.

Memilih pekerjaan

Sebagaimana dinyatakan sebelum ini, para pekerja akan melakukan pengurusan tugas kita untuk kita untuk saat ini, sehingga semua kita harus benar-benar lakukan adalah mencari pekerjaan yang memerlukan pemprosesan dan mendapatkan maklumat. Bagaimana kita melakukan ini? Nah tugas kami memilih kriteria seleksi dan mencari pekerjaan, di SQL saya melakukan hal berikut:

  1. Mengambil pekerjaan yang tidak ditandakan sebagai lengkap tapi dari pekerja kami dan semula mereka (__ME__ gantikan dengan sebuah identifier, termudah akan alamat IP):
      UPDATE `pekerjaan` SET `status` = 0 WHERE `status` = 1 DAN `started_by` = __ME__; 
  2. Menggunakan tugas kita kriteria seleksi, pilih pekerjaan dan kepada sistem kawalan yang pekerja ini berurusan dengan itu:
      UPDATE `pekerjaan` SET `status` = 1, `started_by` = __ME__, `started_at` = NOW () WHERE `status` = 0 OR
     (`Status` = 1 DAN `started_at`> DATE_SUB (NOW (), interval X JAM)) ORDER BY `id` ASC; 

    Dengan menyambar pekerjaan yang belum kembali hasil sebanyak X waktu kami memastikan bahawa semua kerja yang berjalan jika seorang pekerja menabrak atau pergi AWOL.

  3. Selanjutnya turun butiran pekerjaan diikuti dengan nota sendiri:
      SELECT * FROM `pekerjaan` WHERE `started_by` = __ME__ LIMIT 1;
     SELECT * FROM `job_records` WHERE `id` = __JOBID__; 

Setelah menyelesaikan pekerjaan kami memasukkan kami hasil nota dan menandakan tugas sebagai selesai. Ingat sebagai kerja boleh menangguhkan / resume pada bila-bila saja membolehkan untuk beberapa kekokohan dalam naskah anda. Mungkin bahawa tugas menghentikan setengah jalan melalui mengemas kini sistem kawalan kerja, sehingga memeriksa jumlah record dalam pekerjaan dan jumlah hasil disimpan kembali kepada sistem kawalan kerja akan menjadi langkah yang bijak.

Selain itu, sementara ini menunjukkan bagaimana kerja boleh dipilih dan ditapis daripada frame-query SQL anda benar-benar harus mencabut kawalan kerja anda sehingga jika anda memutuskan untuk beralih menggunakan perkhidmatan web, yang didasarkan sistem fail, XML , atau yang lain sejumlah sistem itu tidak akan menjejaskan kod di atasnya.

Job Tatarajah

Aspek seterusnya yang perlu dipertimbangkan adalah pekerjaan saiz dan konfigurasi. Dengan bermain dengan tatarajah pekerjaan kita boleh menyerang keseimbangan yang sangat baik antara kelajuan, proses replikasi, dan kehandalan. Ambil beberapa ofa senario:

  1. Pekerjaan mengambil 1 setiap hari untuk menjalankan: Ini bermakna bahawa para pekerja anda butuh 15 hari untuk memproses setiap pekerjaan (ingat 10% dari kekuatan untuk 2/3rds dari masa). Ini jelas bukan tatarajah bijak, saiz pekerjaan anda terlalu besar! Itu akan mengambil sekurang-kurangnya dua kali masa untuk mendapatkan pekerjaan harus diproses pekerja awal pergi AWOL (masa untuk mengambil bahawa hal itu tidak kembali hasil ditambah masa pemprosesan semula). Dalam ideal anda akan memiliki minimal satu pekerjaan penuh lebih mudah dibersihkan pada akhir setiap tempoh idle lama, bahawa cara anda menjaga pekerjaan berdetak lebih dan pada kes terburuk pekerjaan akan mengambil dua hari untuk memproses harus yang pertama hilang.
  2. Pekerjaan mengambil 1 minit untuk menjalankan: Ini bermakna bahawa para pekerja anda memakan masa kira-kira 15 minit untuk menjalankan setiap pekerjaan. Sementara ini pada asalnya mungkin kelihatan ideal, anda mendapatkan pemprosesan pekerjaan tambahan selama waktu makan siang, istirahat kopi, pertemuan, dll senario ini membuat kerosakan pada kawasan lain dari sistem anda dan memperkenalkan masalah sendiri. Sebagai contoh, pertama setup anda / pemprosesan nisbah masa akan pergi ke kanan bawah, sehingga kehilangan kecekapan sistem. rangkaian anda akan terus-menerus streaming maklumat kerja dengan pelbagai pekerja kakitangan frustasi yang dong hari mereka untuk bekerja sehari. Anda juga akan menambah beban lebih pada server pemprosesan pekerjaan anda karena harus mengeluarkan banyak dan banyak potongan-potongan kecil pekerjaan secara teratur. Terkini, dalam situasi ini jika pelayan pekerjaan anda turun anda akan membuat log kembali besar dari pekerjaan yang belum selesai sementara pekerjaan yang lebih besar bisa dari pemprosesan lanjutan tidak menyedari bahawa pelayan kerja adalah mengalami kesulitan.

Pada kenyataannya tidak akan ada konfigurasi satu ideal untuk tatacara grid anda, banyak bergantung pada sumber daya yang tersedia, jenis pekerjaan, keperluan kerja masa turnaround, kemampuan rangkaian, dan sebagainya. Namun beberapa pedoman akan menjadi:

  • Saiz pekerjaan sehingga setiap pekerja bisa melalui sekurang-kurangnya 3-4 pekerjaan dalam jangka masa 15 jam (tempoh masa yang paling lama mungkin idle)
  • Bermain dengan saiz pekerjaan sehingga waktu setup menjadi cukup signifikan dibandingkan masa pemprosesan (mengingati titik di atas).
  • Jika pekerjaan tidak lengkap dalam dua kali ganda jumlah masa (mungkin kurang) anda harapkan untuk menyelesaikannya berasumsi bahawa AWOL yang hilang dan mula memproses dengan pekerja-pekerja lain. Ini bermakna anda mungkin perlu menunggu sehingga tiga kali panjang muzik pekerjaan sampai selesai (mungkin lebih lama jika pekerjaan seterusnya gagal). Anda mungkin mahu mengurangkan saat ini, tapi hati-hati tidak untuk mengurangkan terlalu banyak kerana anda mungkin mula menduplikasi tugas-tugas pemprosesan secara teratur.
  • Pekerjaan harus bebas daripada keperluan luar sebanyak mungkin. The job server, for example, should only be contacted at the start and end of every job.
  • Don't saturate your network, this will have two negative effects, your daytime staff will find using the network frustrating and problems may be experienced with connections timing out a problem that will only get worse as you scale your grid.
  • Ensure jobs can run on your workers. If jobs become too memory intensive or disk space intensive jobs will start aborting and the only thing you'll notice is a drop in number of jobs processed with no real reason why.

Submitting Results of a Job

When submitting the results of a job it is important to check that results have not been submitted by another worker, especially if the current worker has been dormant for some time.

When results are submitted ensure that the number of results matches the number of records within the job.

As stated previously, and can not be over emphasised, build fault tolerance into job retrieval and results submission. The workers can (and most likely will) go into suspend mode at the most inconvenient of times and this needs to be catered for. Also once again abstracting away your results submission will help cater for future changes to your job control system much easier to deal with.

Review

In this section we have looked at what a job control server needs to do and how to get a very basic system set up. We discussed how to retrieve a job from the control system and how best to configure jobs to get the most our of your office grid system. To finish, a paragraph or two on submitting results back to the job control server was presented.

  • A job control server manages jobs and ensures that all work units are completed
  • By abstracting your job select/results submission we can change the technology of the control server without much problems
  • Tatarajah pekerjaan anda untuk memastikan bahawa mereka dijalankan dengan cepat dan cekap tanpa memberi tekanan terlalu banyak pada infrastruktur rangkaian anda, dan tanpa duplikasi tugas pemprosesan secara teratur.
  • Ensure that you build fault tolerance and error checking into your routines, workers can suspend and resume and the most inconvenient of times. Remember to check if results have already been submitted by another worker.

Lain kali

In part 3 we'll create our virtual processing machine and set up our windows machines to become idle-time workers.

Pejabat Grid Computing menggunakan persekitaran Virtual - Bahagian 5

Dengan Watkin Lloyd Steven , 4 Disember 2009 23:03 Jumaat

Pengantar

I work in a company where we run many batch jobs processing millions of records of data each day and I've been thinking recently about all the machines that sit around each and every day doing nothing for several hours. Wouldn't it be good if we could use those machines to bolster the processing power of our systems? In this set of articles I'm going to look at the potential benefits of employing an office grid using virtualised environments.

In Part 4 we looked at using tools to ensure that we're running the latest version of the code and data sources so that obtained results are always up-to-date with the latest business information and logic.

Pre-Deployment

Before deploying your grid system if there's one thing you do and one thing alone it's benchmark your current system ! Tidak peduli apa yang anda katakan rakan tentang berapa banyak pekerjaan tambahan sistem anda akan lakukan apabila anda mempunyai beberapa nombor untuk menyokong hal ini menjamin anda apa-apa. Jadi,

  • berapa banyak nota yang boleh anda proses saat ini? Per Hari? Per Hour?
  • How long does it typically take to turn around a job?
  • Berapa banyak lagi kapasiti yang anda miliki?

Ada juga soalan tambahan:

  • If your processing server (or one of your processing servers) goes down how will this affect your capabilities, will you be crippled?
  • Apa keuntungan yang anda inginkan / mengharapkan untuk mendapatkan dari suatu sistem grid?
  • Apakah mesin pejabat anda mampu menjalankan kerja?
  • Adakah anda (atau bisa anda pekerjaan ditukar) untuk bekerja dalam gaya berjalan?

The last major point is to take your time on any major change like this. Update kod pemprosesan anda untuk bekerja dengan menggunakan metodologi baru, patokan lagi. Mungkin proses menyiapkan pelayan anda untuk menjalankan mesin virtual, selepas semua proses pelayan anda hanya akan menjadi pekerja-pekerja lain (hanya satu yang sangat kuat relatif). Biarkan proses baru untuk menetap.

Penyebaran

My suggestion would be to pop into the office one weekend perform all the installations and setup. Do this just before a fortnight's holiday and leave so other poor chap to deal with the consequences… maybe not…

Penyebaran untuk sistem seperti ini harus lambat. Despite it being relatively simple to set up this system will affect your entire office infrastructure (well the digital one). Pertama, roll ke beberapa mesin sekaligus, memantau lalu lintas rangkaian, bagaimana host pekerja melakukan atas dasar sehari-hari. Anda mungkin perlu mengubah konfigurasi pekerjaan anda dalam menanggapi penemuan-penemuan anda.

Once the system has settled with a few machines (lets say 10% of all office machines, ie 5) keep monitoring network traffic and host machine performance. Next benchmark again, you should now be processing 33% more jobs than your first benchmarks. Check this is so, or that you're at least in this ballpark. If not, investigate what is going on before moving on. Ulangi kitaran ini sehingga anda bahagia memiliki semua mesin pejabat berjalan tanpa membunuh prestasi mesin penggiling individu atau rangkaian anda untuk berhenti.

At all times keep benchmarking, even after all deployments are made. Semak bagaimana kemas kini kod baru mempengaruhi kelajuan sistem anda, semak semua pekerja laporan dan pekerjaan pemprosesan. Slowly (very slowly) increment your job configuration to get the best from your workers and network.

Stop!

Bagaimana jika anda ingin menghentikan pekerja anda daripada berjalan pada beberapa waktu? Mereka semua ada berjalan, regenerasi, dan cuba yang terbaik untuk memproses data seperti serangga lapar. Jawapannya mungkin tampak jelas tapi nilainya menambah hanya dalam kes yang diabaikan. Cukup mengedit script pemprosesan anda dengan exit (0) atau mati () atau beberapa kenyataan lain untuk membunuh tugas pemprosesan anda. An important reason why we always try to update to the latest processing script before any run!

Sistem Demonstrasi

In order to write this set of short articles I created a very small grid to demonstrate the technologies and methodologies. I read lots of articles, tutorials, and used various tools to setup and monitor what was going on. Dengan tidak bermaksud aku pergi keluar dan jenuh pejabat keseluruhan dengan lalu lintas dan juga tidak pernah saya mempunyai akses ke PC ahli kakitangan biasa untuk melihat bagaimana prestasi host terjejas.

demonstrasi sistem saya sangat sederhana memang. I used my regular desktop set up as a job control server. Pada ini saya telah dipasang mySQL server dipasang ditetapkan sebagai master dalam replikasi, PHP , Â dan SVN dihubungkan melalui apache (anda akses melalui pekerja VM).

Saya kemudian membuat sebuah mesin pekerja CentOS pada VirtualBox pada laptop berusia 6 tahun windows XP. I setup scheduled tasks as specified after copying the VM onto the machine and let it go.

Mesin virtual ditubuhkan dengan PHP, subversi, dan mySQL. I checked out a branch named 'worker' from my job control servers repository and made sure it could be updated using 'svn update'. Kemudian setup Aku mySQL sebagai budak dan memeriksa bahawa data replikasi dari mySQL di server kawalan kerja ke VM pekerja. Setelah semua ini saya setup script bash dan cron job.

pemprosesan script pada dasarnya saya pergi sepanjang garis ini (hal yang sangat sederhana):

  • Baca di bidang nama
  • Menghitung jumlah nama yang mirip dalam jadual dari sumber data yang diadakan pada VM
  • Counted the number of names as above but splitting the name by spaces (ie forename, middle, surname)
  • Mengulangi proses ini 1,000 kali

Setiap pekerjaan masa sekitar 20 minit untuk menjalankan. At one point I opened several copies of the worker VM on the windows laptop and watched the jobs be checked off by each of the worker IP addresses. Pada titik ini saya juga menegaskan replikasi yang secara automatik restart.

Meninggalkan laptop untuk idle menghasilkan pekerja mula proses kerja dari pelayan kawalan pekerjaan. When resuming laptop usage there was a delay of about 30-60 seconds, this is a fair amount of time and staff would need to be made aware that their machine may pause for a short while when returning to the machine. mesin yang lebih baru mungkin tidak mempunyai jeda selama ini. The benefit of the amount of processing performed by these machines during idle periods would more that outweigh staff members having to wait a short period (say 1 minute) on arriving at their machines of a morning (I frequently wait longer that this for a Windows Defender update to take place) provided they were made aware of this (useful time to grab a morning coffee!).

Semuanya saya merasa yakin bahawa saya telah menunjukkan teknologi yang boleh digunakan untuk membuat sistem tersebut. I have shown that such a system does work on a (very) small scale and with some more experimenting could be scaled up utilise the resources of an office's machines. Jika saya tidak bisa sampai ke titik melakukan hal ini saya akan sangat tertarik untuk mengetahui / melihat bila orang lain tidak.

Kesimpulan / Evaluasi

Langkah pasti yang berikutnya adalah untuk benar-benar mendapatkan contoh dalam dunia nyata dan mula untuk menggelar sebuah sistem seperti ini dalam persekitaran pejabat dan melihat apa yang terjadi. Meminta perniagaan untuk melakukan ini tanpa sebuah syarikat jejak bernyala untuk membuktikan teknologi dan keberkesanan mungkin sedikit sukar. Grid / pengkomputeran teragih yang sangat popular adalah beberapa kalangan dan mempunyai beberapa aplikasi besar (BIONC, SETI @ Home, Folding @ Home, dll). Aku tidak, bagaimanapun, mencari skala yang lebih kecil dan sistem sederhana seperti ini dalam carian saya yang boleh dilancarkan dalam lingkungan kantor.

Saya mencipta sistem pada dasarnya tidak menggunakan perisian sumber terbuka dan sebahagian besar alat yang terdapat di hampir setiap pejabat. Teknologi pada dasarnya menunjukkan dan menunjukkan untuk melakukan dan bekerja seperti yang diharapkan. Mudah-mudahan saya telah menunjukkan bahawa dengan tidak bekerja banyak dan dengan setup yang sangat sederhana anda boleh menyebarkan sebuah sistem pengkomputeran grid pejabat yang sangat kuat, murah, "dan scalable semua pada masa yang sama.

Setelah sebuah sistem dan berjalan hampir tidak ada akhir untuk jumlah penyesuaian dan perbaikan Anda boleh membuat. Untuk statistik contoh / benchmarking dengan mudah dapat ditambah menunjukkan nilai dari sistem tersebut setiap hari. New machines can be added quickly and easily as and when they arrive with upgrades to existing hardware bolstering your processing power.

Saya berharap anda menikmati membaca rangkaian artikel dan yang memberi anda makanan untuk berfikir untuk menjalankan sistem grid pejabat. Penyelesaian yang disajikan di sini tidak akan selalu bekerja dalam segala situasi tetapi harus disesuaikan untuk membolehkan anda untuk mendapatkan pemprosesan data dilakukan dengan menggunakan penyelesaian sendiri.

Sila hantar komen, pembetulan, atau pembaikan dan saya akan melakukan yang terbaik untuk menjaga artikel ini dikemaskini untuk mencocokkan.

Zend Framework: Fundamental - Review

Dengan Watkin Lloyd Steven , Sabtu 28 November 2009 22:42

Majikan saya baru-baru ini dibayar untuk kumpulan kami pemaju untuk mengambil Zend Framework: Fundamental Tentu saja, disini saya akan meringkaskan fikiran dan pendapat pada kursus bagi orang lain. For those looking to save time, here's my summary:

Untuk pengembang yang belum punya waktu untuk melihat Zend Framework ini saja (Zend Framework: Fundamental) menawarkan gambaran keseluruhan baik rangka memperkenalkan anda ke daerah-daerah kunci dan memberikan maklumat yang cukup untuk meneruskan. For those who have spent time looking at the framework and have followed one or two tutorials this course does not offer much beyond.

Latar belakang

Aku sudah menjadi PHP pemaju selama sekitar 5-6 tahun, dan telah mula bekerja dengan Zend Framework secara komponen selama bulan terakhir 6. Saya telah membangunkan dan / atau menjadi pemaju pada beberapa kecil Zend Framework MVC sites. aku akan jujur, aku tidak punya sejumlah besar paparan rangka kerja lain dari sudut pandang coding tetapi telah menghabiskan beberapa jam meneliti laman projek dan menilai them. Rangka tersebut dan masyarakat sekitar Zend Framework cukup menarik dan tampaknya ada kemungkinan besar dalam mana pergi nya.

Tentang Kursus yang

Program ini disampaikan melalui dua sesi WebEx 9 jam (dengan istirahat 10 minit di tengah). Waktu yang dihabiskan akan melalui beberapa siri gambar yang disediakan oleh Zend dengan perbincangan bila-bila masa. You can use a microphone to talk to the instructor, but to be honest I didn't see anyone use anything more than the chat window. Selain itu sebuah mesin VMWare Ubuntu disediakan yang mengandungi kod contoh dan projek mendirikan sebuah versi percubaan Zend Studio. Pembicaraan pemimpin tentu saja untuk peserta baik melalui penyelesaian VoIP yang terintegrasi, atau anda boleh memanggil dalam menggunakan salah satu daripada dial seluruh dunia dalam jumlah yang banyak.

Selama kursus bahan terdiri daripada gambaran singkat mengenai Rangka Kerja dan pola MVC sebelum menuju ke dalam aplikasi buku tamu sampel. Perbincangan menunjukkan Bootstrap, Zend_Application, Jadual Db, akses Database, Borang, Penapisan, ACL, Memvalidasi, dll, dll Pada dasarnya merangkumi semua topik yang anda akan perlu mendapatkan halaman dasar sampai semua waktu menjalankan memberi anda alat untuk pergi dan mendapatkan lebih maju dalam rangka kerja (walaupun hal itu jumlah yang 'Lihat laman web' banyak masa).

Waktu adalah diberikan untuk kod up beberapa contoh, dan untuk mengembangkan 'buku tetamu' dan aplikasi 'wiki' sederhana. Secara peribadi saya merasa bahawa memberikan kod atau aplikasi masing-masing dan kemudian meminta kami untuk membangunkan apa yang dasarnya salinan bersama tidak benar-benar memberikan pengalaman belajar yang baik. Saya lebih suka untuk mengembangkan aplikasi serupa, tetapi tidak identik. untuk contoh aplikasi dengan manfaat dari memiliki panduan untuk merujuk kepada. Atau membina aplikasi dari awal dengan demonstran yang mungkin akan menyebabkan lebih banyak soalan tentang mengapa dan bagaimana, sehingga memberikan pemahaman yang lebih baik dari rangka, setelah semua anda boleh mencari khusus selepas kursus.

Kuliah terkini terdiri dari bekerja dalam aplikasi wiki dengan bantuan / bimbingan dari instruktur. Setelah umpan balik saja diambil, itu ditekankan beberapa kali melalui kursus yang Zend memuat maklum balas yang sangat serius, bahkan ternyata versi kami tentu saja masih baru. Beberapa pemaju lain di syarikat akan mengambil kursus akan sehingga akan menarik untuk melihat apakah hal ini terjadi.

Watak tentu saja tidak formal, dibenarkan untuk umpan balik dan kerjasama antara peserta dan instruktur. Pemimpin kursus yang ramah, didekati (alamat e-mel diedar untuk pertanyaan), dan sementara persembahan daripada gambar agak gementar tampak penuh kompeten dalam framework. Dia jelas orang yang menggunakan rangka kerja secara teratur daripada seseorang yang diajar untuk mengajar kursus, saya menyukai pengalaman 'dunia nyata' dalam hal ini.

Merasa Keseluruhan

Dalam beberapa hal saya menemukan kursus membuang masa, pada orang lain itu sangat berguna. Mudah-mudahan saya akan mendapatkan alasan saya di jelas, dan mungkin menyediakan beberapa makanan untuk fikiran atau maklum balas yang berguna (mengetahui saya ini tidak mungkin!).

Untuk kursus ini sendiri ditujukan untuk tahap terlalu rendah. Setelah melewati panduan quickstart, membaca Rob Allen Zend Framework in Action, dan bekerja dengan kerangka sedikit saya tidak benar-benar mendapatkan sesuatu yang terlalu banyak. I would of liked the course to pick up from the end of the quickstart and develop additional skills.

Yang mengatakan, judul saja tidak jelas menyatakan "Zend Framework: Fundamental" dan dalam aspek bahawa program kajian mencapai apa yang menetapkan untuk dilakukan. Ahli lain daripada pasukan pemaju yang belum menghabiskan masa melihat ke dalam rangka kerja selesai setiap sesi dengan keghairahan dan menanyakan soalan yang sangat baik untuk melihat.

Semua itu tidak hilang, itu baik untuk menghabiskan masa mengesahkan butiran asas kerangka dan mendapatkan untuk mengajukan beberapa soalan di daerah mana saya tidak 100%. Itu juga waktu itu saya harus duduk setiap hari dan berfikir tentang coding menggunakan kerangka dan projek-projek masa depan, sesuatu yang saya tidak akan dari mampu untuk melakukan sebaliknya (boleh anda bayangkan syarikat anda bersetuju bahawa :?)). Last but not least anda juga mendapatkan sijil yang bagus dari Zend untuk mengatakan bahawa anda mengikuti kursus tersebut (walaupun melalui e-mel).

Zend Framework Sertifikasi

Ini adalah satu soalan yang terus berdatangan ke fikiran selama kursus, akan hal itu mempersiapkan saya untuk sertifikasi? The quick, easy is a resounding No . Instruktur kursus cukup jelas bahawa dengan cadangan tambahan bahawa untuk sertifikasi anda benar-benar perlu menggunakan rangka kerja pada hari ke hari dan merasa sangat nyaman dan percaya diri dalam penggunaan dan metodologi.

Review

Memandangkan semua yang saya tulis di atas, saya akan meringkaskan semuanya dalam dua mata-mata mudah:

  • Baru di Zend Framework: Kursus ini tidak persis apa yang anda harapkan, anda memberikan pengenalan yang bagus untuk rangka dan landasan yang baik pada dasar-dasar dari mana anda boleh membina. Kursus ini tampaknya membangkitkan minat dan keghairahan untuk rangka kalangan pemaju.
  • Menggunakan Zend Framework: Sementara itu bagus untuk menopang beberapa dasar-dasar yang sangat saya merasakan masa, tenaga, dan dana untuk mengambil kursus boleh dari lebih baik dihabiskan di tempat lain. Ini akan bagus untuk see Zend membuat tingkat kursus yang lebih tinggi baru untuk mengambil pemaju ke tahap seterusnya - sekurang-kurangnya dengan standard pensijilan dan luar segera. Untuk itu saya akan mendaftar.












Panorama Tema oleh Themocracy

5 tetamu online sekarang
3 tetamu, 2 bots, 0 ahli
Max pengunjung hari ini: 10 jam 03:01 UTC
Bulan ini: 26 jam 2011/07/05 00:35 UTC
Tahun ini: 130 pada 28-03-2011 10:40 UTC
Sepanjang masa: 130 pada 28-03-2011 10:40 UTC