Kategori: Komputasi

proxy Apache dengan otentikasi

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

Posting ini dengan cepat akan menunjukkan cara mengatur proxy dengan otentikasi dasar menggunakan apache .

Dalam kasus saya saya ingin punya klien transmisi bit torrent tersedia melalui internet sehingga saya bisa memeriksa adminster torrent download dan negara (seperti rilis fedora terbaru) sesuai kebutuhan. Transmisi itu sendiri berjalan klien web pada port 9091 secara default. Daripada repot-repot membuka port lebih lanjut tentang firewall dan menambahkan aturan forwarding port nessecary aku memutuskan aku baru saja proxy panggilan melalui untuk transmisi melalui apache menggunakan mod_proxy .

Lanjutkan membaca 'proxy Apache dengan otentikasi' »

Zend Framework: Render Jika Exists

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

Ringkasan

Ini adalah posting cepat untuk membahas tampilan penolong sederhana bukan saya buat untuk render Zend Framework gaya file tampilan hanya jika ada. Umumnya meminta kode untuk membuat sebuah file yang tidak ada akan memunculkan eksepsi. Oleh karena itu saya membuat sebuah pembungkus untuk Zend_View:: render () method yang menentukan apakah file 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 rilis resmi dari Certified Engineer (ZCE) program Zend untuk 5.3 saya pikir saya akan memberikan kesan cepat 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 berbasis di Bristol, Inggris , menghasilkan CRM terintegrasi, akuntansi, dan perangkat lunak e-commerce. Saya sebelumnya belum memperoleh salah satu kualifikasi ZCE sebelumnya. Saat ini saya mengembangkan dalam seri 5.2.x dan belum benar-benar digunakan salah satu fitur khusus 5.3 (Saya sedang menunggu Zend Framework 2 dan Ajaran 2) dalam proyek pembangunan saya.
Continue reading 'Zend Certified Engineer (ZCE) 5.3' »

Zend Framework Per Pengaturan Layout Modul - Tindak Lanjut

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

Sebagai tindak lanjut posting saya sebelumnya tentang per modul pengaturan tata letak berdasarkan untuk Zend Framework , saya telah memperbarui kode untuk memerlukan konfigurasi yang kurang maka sebelum (bukan yang memerlukan lebih bahwa beberapa baris dalam konfigurasi aplikasi anda!).
Continue reading 'Zend Framework Modul Per Layout Pengaturan - Tindak Lanjut' »

Kantor Grid Computing menggunakan lingkungan Virtual - Bagian 4

Dengan Watkin Lloyd Steven , 4 Desember 2009 23:59 Jumat

Pengantar

Saya bekerja di sebuah perusahaan di mana kita menjalankan banyak pekerjaan batch processing jutaan catatan data setiap hari dan saya sudah berpikir 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 bisa menggunakan mesin-mesin untuk meningkatkan kekuatan pemrosesan sistem kita? Dalam Seri artikel ini saya akan melihat potensi manfaat mempekerjakan kantor grid menggunakan lingkungan virtualised.

Di bagian 3 kita buat mesin pengolah virtual kami dan mengatur mesin windows menjadi pekerja waktu idle.

Menjalankan kode terbaru

Tak pelak setelah membuat logika bisnis Anda pekerja akan berubah, bug yang akan ditemukan, lebih efisien kode yang lebih cepat akan diproduksi sehingga membuat pekerja Anda duduk di sekitar pengolahan data menggunakan kode bau tua . Lalu bagaimana kita memastikan bahwa kami selalu menggunakan versi terbaru dan terbaik dari pengolahan script kita?

Ada beberapa cara sederhana yang sangat mudah kita bisa melakukan hal ini, trik, bagaimanapun, adalah untuk mengurangi kekuatan pemrosesan dan lalu lintas jaringan dalam mencapai hal ini. Mari kita mulai dengan paling sederhana solusi dan memperbaikinya perlahan-lahan selama beberapa iterasi.

Metode pertama adalah dengan hanya terhubung ke server kendali kami pekerjaan (melalui samba, FTP, atau semacam itu) dan tarik ke bawah versi terbaru kode. Tidak sangat efisien, tetapi akan melakukan pekerjaan. Mari memperbaiki yang agak, bagaimana menciptakan sebuah script rsync dan menggunakan bahwa setiap kali saja? Atau apa tentang menempatkan script terbaru pengolahan kami menjadi subversi memeriksa kode pada awalnya dan kemudian hanya memperbarui kode kita pada setiap run ( update svn )?

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

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

Sekarang kita bisa yakin bahwa dengan menjalankan setiap kami sungguh-sungguh menjalankan kode terbaru. Kami memastikan hal ini dengan memperbarui basis kode kita masing-masing dan setiap kali kita melakukan lari dan mengurangi lalu lintas jaringan dengan hanya mentransfer file perbedaan di seluruh jaringan kami.

Dalam konfigurasi demonstrasi saya, saya melakukan persis seperti di atas. Subversion dipasang di server pengolahan saya kerja dan saya hanya menarik kode terbaru dari cabang 'pekerja' menggunakan 'svn update'. Saya juga menambahkan tag nomor versi untuk memproses naskah saya yang dikembalikan ke database sebagai bagian dari mengembalikan hasil. Dengan cara ini aku bisa melihat bahwa kode saya sedang diperbarui setiap kali saya disalin bagasi saya ke cabang, yaitu pekerja bahwa saya benar-benar menjalankan skrip pemrosesan terbaru.

Menggunakan data terbaru

Jika proses pekerjaan Anda memanfaatkan sumber data kemudian di beberapa titik ini akan diperbarui. Kecuali Anda menelepon sumber data Anda pada dasar yang sangat jarang terjadi Anda akan membanjiri jaringan dengan lalu lintas segera setelah pekerja Anda mulai berjalan membawa segala sesuatu untuk berhenti. Untuk solusi saya, saya memutuskan bahwa 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 kasus berapa banyak data yang kita bicarakan? Ini mungkin biaya yang lebih efektif untuk menginstal sebuah hard drive tambahan yang lebih besar ke mesin masing-masing daripada membeli server pengolahan tambahan. Ini adalah masalah anggaran dan terserah bisnis untuk memutuskan. Ini mungkin bahwa 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 bisa melihat memanggil server data lokal, tetapi ini dapat menyebabkan masalah dengan jaringan. Dalam hal ini suatu sistem grid seperti ini dapat menjadi tidak realistis untuk memasukkan di lingkungan kantor Anda. Ini mungkin juga bahwa Anda dapat 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 jaringan pada pembaruan. Bagaimana kita memastikan bahwa kita memiliki salinan terbaru dari data dalam kasus ini? Rsync kemungkinan, tapi secara pribadi saya pikir dengan menjalankan sumber data terbaru Anda pada server pemrosesan Anda kerja dan pengaturan ini sebagai master dalam replikasi (dengan log bin yang bagus panjang) mungkin cara untuk pergi:

replikasi Dengan menetapkan setiap pekerja Anda sebagai budak pembaruan pekerjaan kontrol server untuk sumber data Anda akan menetes ke bawah baik untuk pekerja Anda tanpa peningkatan yang sangat besar dalam aktivitas jaringan (yaitu kecuali jika Anda melakukan update data besar dan seluruh pekerja Anda menendang sekaligus). Ini memiliki keunggulan dibandingkan rsync karena Anda tidak akan mendapatkan jeda lama sebelum setiap pekerjaan, seperti update database, mysql daemon pada pekerja Anda akan terus memperbarui data sementara pengolahan terus.

Ini adalah bagaimana cara mengkonfigurasi server demonstrasi saya. Untuk mengatur replikasi saya mengikuti panduan di situs mySQL ( Menyiapkan replikasi ) dan dalam 20 menit aku pekerja inital saya mereplikasi kontrol pekerjaan dataset server. Untuk setiap pekerja tambahan pengaturan replikasi dan proses bekerja setiap kali ketika VM itu disalin.

Ringkasan

Dalam bagian dari artikel yang kita telah melihat bagaimana mudah dan tanpa rasa sakit itu adalah untuk menjaga kode pengolahan Anda up to date dengan rsync using atau subverion (SVN) untuk melakukan pekerjaan dan mengurangi lalu lintas jaringan di time. sama Kami juga membahas bagaimana untuk menyimpan informasi data sumber Anda up-to-date dengan memungkinkan untuk menetes ke bawah untuk masing-masing pekerja Anda. Jadi kita daerah memastikan bahwa kita tetap dengan logika bisnis dan informasi dalam sistem grid kantor 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 solusi akan datang dengan.

Lain kali

Pada bagian akhir seri ini, aptly bernama Bagian 5 , kita akan membicarakan menyebarkan sistem ini. Aku akan meringkas apa yang telah dipelajari dan apa yang saya berhasil menciptakan.

Kantor Grid Computing menggunakan lingkungan Virtual - Bagian 3

Dengan Watkin Lloyd Steven , 4 Desember 2009 23:37 Jumat

Pengantar

Saya bekerja di sebuah perusahaan di mana kita menjalankan banyak pekerjaan batch processing jutaan catatan data setiap hari dan saya sudah berpikir 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 bisa menggunakan mesin-mesin untuk meningkatkan kekuatan pemrosesan sistem kita? Dalam Seri artikel ini saya akan melihat potensi manfaat mempekerjakan kantor grid menggunakan lingkungan virtualised.

Pada bagian 2 kita melihat pekerjaan server akan berjalan, dan bagaimana pekerjaan harus dikonfigurasi untuk mencapai jumlah terbesar sementara proses memastikan bahwa setiap pekerjaan diproses tanpa gagal.

Menyiapkan pekerja Anda - atau server Limp

Langkah berikutnya dalam proses ini adalah untuk mengatur pekerja virtual Anda. Untuk ini saya akan menggunakan instalasi CentOS menggunakan VirtualBox. Aku akan menginstal mySQL dan PHP pada server, juga dikenal sebagai pincang (Li Nux, m ySQL, P HP) Server (saya mungkin telah membuat nama itu atas).

  • Instal VirtualBox pada mesin windows anda (ikuti link)
  • Download dan install CentOS (versi 5.3) 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 ). Poin penting untuk diperhatikan saya kira adalah bahwa saya disebut GridMachine mesin virtual saya.

Sejauh pilihan saya klien 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 didukung oleh tiga sistem operasi utama. Saya memilih CentOS sebagai OS nya stabil baik dan saya gunakan di server web sendiri. Saya sangat percaya pada alat yang tepat untuk pekerjaan (walaupun aku menerapkan 'menggunakan tercepat dan termudah untuk Anda' mentalitas di sini), jadi jika sistem operasi X menjalankan kode Anda lebih cepat dan lebih efisien menggunakannya sebagai gantinya:)

Yang penting pastikan bahwa VM Anda menggunakan DHCP, dinyatakan untuk setiap mesin virtual baru akan harus dikonfigurasi secara terpisah yang merupakan sesuatu yang kita tidak want.By menggunakan DHCP kita tidak perlu mengkonfigurasi pengaturan jaringan secara individual untuk mesin pekerja, DHCP akan tangan keluar IP untuk Anda. Karena itu anda dapat menyalin mesin virtual Anda tentang kantor tanpa khawatir tentang pengaturan masing-masing Facebook (ini meningkatkan skalabilitas dan mengurangi administrasi pekerja).

Proses Anda harus berusaha untuk mencapai adalah untuk mendapatkan sebuah mesin fisik baru, instal VirtualBox, dan kemudian cukup banyak menyebarkan gambar virtual tanpa banyak lagi. Mungkin bijaksana untuk setup semua pekerja Anda pada subnet yang berbeda sehingga Anda setidaknya bisa melihat berapa banyak mesin berjalan. Anda juga harus menyiapkan mesin Anda pada sewa panjang atau DHCP sewa terbatas.

Bagaimana menjalankan Jobs pada pekerja

Ini adalah area yang menarik dan ada beberapa metode yang valid untuk pekerjaan pengolahan pada pekerja. Di sini saya hanya akan membahas dua yang paling jelas:

  • Menerus menjalankan script: script A, baik itu shell script, atau script PHP dieksekusi sekali pada pekerja dan berjalan sebagai bagian dari sebuah loop tak terbatas. Saya sudah diskon metode ini sebagai salah satu kecelakaan naskah dan berpotensi pekerja Anda akan berhenti berjalan tanpa semacam intervensi.
  • Cron eksekusi script berdasarkan: Setiap menit X cron daemon kicks off panggilan ke skrip Anda untuk mendapatkan hal yang terjadi. Tanpa memeriksa beberapa hal ini dapat 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 daftar proses dan grep ini untuk 'php'. Jika tidak ditemukan maka melanjutkan.
  2. Kode panggilan pekerjaan Anda, dalam kasus saya ini akan menjadi sesuatu yang berbasis PHP
  3. Pekerja script selesai menjalankan perusahaan
  4. Siap untuk pergi lagi pada panggilan yang sesuai berikutnya

bash script saya terlihat seperti berikut:

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

Catatan: echo adalah hampir sama sekali tidak ada gunanya, tetapi dapat membantu orang berikutnya yang datang untuk mencoba dan mengeditnya.

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

Menyiapkan Windows untuk Menginisialisasinya Pekerja

Tugas pertama adalah untuk bekerja di luar perintah yang diperlukan untuk menjalankan mesin virtual dari baris perintah windows. Jika anda telah menginstal VirtualBox di lokasi default dan Anda sudah bernama GridMachine pekerja Anda maka perintah yang diperlukan untuk memuat 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 memulai mesin virtual tanpa GUI dan memungkinkan untuk menyelamatkan negara dengan anggun. Argumen kedua mematikan RDP sehingga tidak bertentangan dengan windows RDP, atau memberikan pesan tentang mendengarkan pada port 3389. Nama mesin virtual adalah kasus sensitif!

Berikutnya, kita akan perlu untuk mengatur jendela Facebook untuk memulai VM pekerja kita sekali mesin sudah idle. Untuk melakukan hal ini (pada Windows XP) Anda harus pergi Start -> All Programs - Accessories -> System Tools -> Jadwal Tugas sebagai berikut:

jadwal tugas

Selanjutnya klik pada 'Tambahkan Scheduled Task' diikuti dengan menelusuri menambahkan program kustom. Arahkan ke script VBoxManage Anda dan klik ok. Jadwal tugas Anda untuk salah satu pilihan (kita akan perubahan ini dalam satu menit) dan lanjutkan. Setelah melewati jendela layar berikutnya akan meminta Anda yang Anda ingin menjalankan tugas ini, saya sarankan baik 'Administrator' atau membuat pengguna istimewa baru. Ingat kita tidak ingin mengganggu akun staf standar pada mesin pada titik apapun. Klik pilihan acara berikutnya dan periksa lanjutan untuk tugas ini.

Untuk akhir textbox menjalankan menambahkan string 'startvm GridMachine' kami dan memastikan bahwa hanya berjalan ketika login dibiarkan unticked. Kunjungi tugas jadwal berikutnya dan mengubah jadwal drop ke pilihan 'saat menganggur', memilih jumlah waktu yang Anda ingin mesin untuk idle sebelum pindah ke tab berikutnya.

Akhirnya untick opsi yang menyatakan menghentikan tugas jika telah menjalankan X jumlah waktu, tapi jangan centang opsi untuk menghentikan tugas jika mesin tidak lagi menganggur.

jadwal

Itu saja kemudian untuk host setup windows!

Ringkasan

Pada bagian ini kami telah menetapkan suatu mesin virtual untuk bertindak sebagai seorang pekerja, serta cara yang kita sebut dan melaksanakan tugas kita skrip pengolahan (untuk diriku sendiri script PHP). Dari sini kita melihat cara membuat salinan kita jendela untuk memulai mesin virtual dalam modus tanpa kepala ketika komputer menjadi siaga, dan simpan negaranya ketika pengguna kembali penggunaan mesin. Semoga pada saat ini Anda melihat betapa sederhananya adalah untuk mengatur sistem tersebut dan gatal untuk mendapatkan beberapa percobaan pergi sendiri!

Lain kali

Di Bagian 4 kita akan melihat menggunakan alat-alat untuk memastikan bahwa Anda menjalankan versi terbaru dan kode sumber data sehingga hasil yang diperoleh selalu up-to-date dengan informasi bisnis terbaru dan logika.

Kantor Grid Computing menggunakan lingkungan Virtual - Bagian 1

Dengan Watkin Lloyd Steven , 4 Desember 2009 23:23 Jumat

Pengantar

Saya bekerja di sebuah perusahaan di mana kita menjalankan banyak pekerjaan batch processing jutaan catatan data setiap hari dan saya sudah berpikir 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 bisa menggunakan mesin-mesin untuk meningkatkan kekuatan pemrosesan sistem kita? Dalam Seri artikel ini saya akan melihat potensi manfaat mempekerjakan kantor grid menggunakan lingkungan virtualised.

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

Solusi yang saya berikan akan sangat longgar didasarkan pada jenis pengolahan kami butuhkan untuk mencapai namun hal ini tidak mungkin benar melalui seluruh artikel yang saya akan mengubah sesuatu untuk kesederhanaan, atau untuk menghasilkan skenario penggunaan lebih menarik.

Virtualised lingkungan ini akan berjalan di mesin windows karena ini adalah apa yang sebagian besar kantor dijalankan. Pengolahan bahwa mesin kantor tidak boleh mengganggu dengan staf menggunakan mesin-mesin, seharusnya tidak memerlukan perawatan di mesin, dan mudah deployable untuk mesin baru saat tersedia. Selain itu, mesin virtual yang baru seharusnya tidak memerlukan konfigurasi tambahan karena hal ini sangat mengurangi skalabilitas dan kemudahan di mana sistem grid dapat diperpanjang.

Mengapa Menyebarkan sebuah Grid Computing Kantor?

Pertama anda mungkin berpikir, 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 lingkungan komputasi awan
  • Anda tidak dapat menempatkan data tertentu ke sebuah lingkungan komputasi awan untuk alasan hukum (misalnya data meninggalkan negara), berpotensi karena alasan hukum, misalnya catatan NHS.
  • Anda ingin menyimpan unit pengolahan Anda dekat dan memiliki kendali penuh atas hardware terlalu
  • Anda tidak memiliki dana proyek untuk menjalankan contoh awan
  • kantor Anda tidak memiliki koneksi ke internet dan karena itu yang tidak mungkin untuk menggunakan sumber daya awan
  • Anda tidak seperti hujan, awan menyarankan hujan, karena itu Anda tetap cukup jauh

Aku yakin daftar itu bisa terus, tapi saya berpikir bahwa cukup untuk saat ini.

Keuntungan dari Grid Computing Kantor

Yah, mari kita melakukan beberapa matematika (dan dalam gaya fisika benar memungkinkan membuat beberapa asumsi sweeping). Bayangkan Anda memiliki server pengolahan besar berdaging menjalankan 100 pekerjaan per hari. Di kantor Anda, Anda memiliki 50 mesin yang idle 16 jam sehari, masing-masing mesin adalah 10% sekuat pengolahan berdaging Anda memutuskan. (Semua hasil di sini adalah bulat untuk meningkatkan kinerja meremehkan).

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

Jika Anda sekarang skala ini Facebook dibutuhkan 15 desktop siaga untuk proses sebagai banyak pekerjaan per hari sebagai server pemrosesan utama Anda tidak.

Jadi di kantor pura-pura kita 50 mesin kita bisa meningkatkan kekuatan pemrosesan kami dari 1 server sampai dengan 4 server pengolahan penuh, atau kita bisa memproses 400 pekerjaan per hari bukan 100.

Perhatikan, karena tidak ada investasi perangkat keras baru perusahaan Anda baru saja meningkatkan kapasitas pemrosesan batch 4 kali! Anda akan berpotensi untuk meningkatkan penggunaan kekuatan Anda tapi dari lingkungan kantor paling saya pernah ke mesin umumnya tersisa pada semalam, jadi Anda bisa melihat ini sebagai sebuah inisiatif hijau.

Keuntungan lain juga berarti bahwa investasi baru (atau diperbarui) server pengolahan dapat ditunda jika mesin kantor Anda sudah cukup dan bahwa Anda meningkatkan kekuatan mesin kantor Anda grid kantor Anda menjadi lebih kuat secara otomatis.

Technologies

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

  • Idle Mesin kantor (dalam kasus saya laptop windows XP lama cadang)
  • VirtualBox (atau software klien virtualisasi)
  • Sebuah mesin virtual dengan PHP, mySQL running menjalankan ditebang OS, aku memanggil Limp ini saya server:)
  • Pekerjaan untuk menjalankan
  • Ayub server (bisa mesin virtual lain di suatu tempat)

Khas Pekerjaan

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

  • Sistem menerima daftar data atas mana kita harus mencocokkan dan mengembalikan hasil
  • Pencocokan melibatkan pemeriksaan / mencari beberapa (cukup statis) sumber data
  • Hasil dari sumber data mungkin memerlukan validasi lebih lanjut, penggabungan, memeriksa sumber data tambahan dalam menanggapi hasil
  • Data kembali dengan catatan yang cocok, sepenuhnya divalidasi dan diproses
  • Setiap catatan dalam pekerjaan adalah independen dari sisanya

Jadi pada dasarnya kita cari dalam menjalankan pekerjaan yang memerlukan campuran pencarian database dan beberapa angka-angka, sebuah skenario yang cukup khas dalam lingkungan bisnis.

Grid solusi tidak hanya menguntungkan untuk memproses pekerjaan jenis ini. Pada dasarnya, setiap proses yang dapat dibagi menjadi unit yang independen dapat dijalankan secara paralel. Lihat wikipedia ini untuk contoh dan informasi lebih lanjut: Grid Computing , namun beberapa contoh terkenal adalah Seti @ Home dan BIONC . Ada kerangka kerja untuk menjalankan komputasi grid, dan ini layak melihat ke dalam.

Apa yang akan kita capai?

Pada akhir artikel ini saya berharap dapat menunjukkan bahwa pengerahan grid kantor tidak perlu mahal atau sangat memakan waktu. Aku akan membahas:

  • Menyiapkan sistem kontrol pekerjaan, konfigurasi pekerjaan
  • Membuat mesin virtual yang sesuai pengolahan
  • Cara setup sistem pada mesin windows
  • Memastikan Anda menggunakan kode terbaru dan data
  • Deployment dan benchmarking
  • Ke depan

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

Ini sama sekali tidak dimaksudkan untuk menunjukkan sistem yang handal bekerja sepenuhnya, yang berarti lebih dari demonstrasi dan mendiskusikan menunjukkan bahwa hal-hal ini dapat dicapai dalam ruang yang cukup singkat dan dengan biaya sedikit. Silahkan kirim komentar, koreksi, atau perbaikan dan saya akan melakukan yang terbaik untuk menjaga artikel ini diperbarui untuk mencocokkan.

Lain kali

Pada bagian 2 Aku akan mulai dengan melihat pada sistem kontrol pekerjaan, dan melihat bagaimana pekerjaan harus dikonfigurasi untuk mencapai jumlah terbesar sementara proses memastikan bahwa setiap pekerjaan diproses tanpa gagal.

Kantor Grid Computing menggunakan lingkungan Virtual - Bagian 2

Dengan Watkin Lloyd Steven , 4 Desember 2009 23:23 Jumat

Pengantar

Saya bekerja di sebuah perusahaan di mana kita menjalankan banyak pekerjaan batch processing jutaan catatan data setiap hari dan saya sudah berpikir 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 bisa menggunakan mesin-mesin untuk meningkatkan kekuatan pemrosesan sistem kita? Dalam Seri artikel ini saya akan melihat potensi manfaat mempekerjakan kantor grid menggunakan lingkungan virtualised.

Dalam Bagian 1 saya memberi gambaran dari sistem dan teknologi saya akan menggunakan juga dibahas beberapa kemungkinan alasan mengapa Anda ingin membuat grid kantor.

Job Control

Jika Anda akan menjalankan pekerjaan maka Anda akan memerlukan beberapa cara untuk mengatur mereka. sistem kontrol pekerjaan yang Anda (di server pekerjaan Anda) harus benar-benar dipikirkan dengan baik bahkan sebelum mencoba untuk menjalankan sebuah jaringan kantor. Jadi pertama, apa tugas untuk sistem kontrol pekerjaan:

  • Bagikan pekerjaan atas permintaan dari pekerja
  • Beritahu pekerja apa jenis pekerjaan untuk menjalankan
  • Track pekerjaan
  • Pastikan bahwa pekerjaan hanya berjalan sekali
  • Menyediakan data pekerjaan untuk para pekerja, atau setidaknya memberitahu mereka di mana mendapatkannya

Sistem ini juga perlu diperluas, solusi yang bekerja untuk saat ini dalam satu kasus dapat diperpanjang untuk menjalankan beberapa jenis pekerjaan sebagai bisnis melihat berharga dalam larutan grid. Misalnya, pekerjaan bisa mendapatkan prioritas, lebih dari satu jenis pekerjaan mungkin ada (yaitu kode basis beberapa), akhirnya Anda bahkan dapat menjalankan mesin beberapa pekerja yang berbeda yang dioptimalkan untuk setiap jenis pekerjaan (walaupun yang bergerak menjauh dari 'pekerja generik 'ide). Selalu mencoba untuk berpikir tentang masa depan ketika sistem berkembang, visi jangka pendek dapat menyebabkan frustrasi jangka panjang dan waktu pengembangan meningkat.

Ayub Server

Kita akan membutuhkan tempat untuk mengendalikan pekerjaan kita dari, ini harus menjadi sistem hanya dalam grid Anda yang memiliki resource locator tetap, adalah bahwa alamat IP, nama host, URL (menggunakan DNS internal), dll Ini adalah karena pekerja perlu tahu di mana untuk mencari pekerjaan, pekerja harus mencari sistem kerja kontrol (bukan sistem kontrol pekerjaan menemukan pekerja).

Server pekerjaan itu sendiri tidak benar-benar memiliki tugas yang rumit (dalam bagaimanapun sistem dasar), perlu untuk menyimpan daftar pekerjaan, pekerjaan tangan keluar, menerima hasil, dan kemudian menyimpannya untuk pengambilan nanti. Bagaimana bagian-bagian ('tangan dari pekerjaan' seperti) yang ditetapkan bisa sangat dasar. Kemudian kita dapat memperluas sistem untuk menyertakan sebuah antarmuka administrasi untuk menambah, mengedit, menghapus, menunda pekerjaan tapi ini di luar latihan ini.

Tidak ada alasan apapun maka pekerjaan bahwa server Anda tidak bisa menjadi mesin virtual yang berjalan dalam server pemrosesan utama Anda asalkan tidak terlalu banyak menguras sumber daya dari itu. Server pekerjaan namun tidak ketersediaan kebutuhan yang tinggi, jika turun pada Jumat malam Anda akan kehilangan seluruh akhir pekan pengolahan, berpotensi biaya Anda beberapa minggu senilai waktu proses (jika dibandingkan dengan server utama pemrosesan Anda sendiri) . Anda mungkin ingin mempertimbangkan untuk menempatkan server pekerjaan Anda di lingkungan yang seimbang beban untuk ketersediaan tinggi.

Basic Setup

Konfigurasi dasar untuk server pekerjaan kami akan terdiri dari apa yang saya menelepon salah satu dari Limp server saya (yaitu Li Nux, ySql m, P HP). Kode berjalan pada pekerja Thea benar-benar akan bekerja apa pekerjaan dapat berjalan dengan berinteraksi dengan dengan database pekerjaan sistem kontrol. Kemudian kita bisa 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 tabel untuk menangani pekerjaan. Ini akan menjadi `pekerjaan`, `jobRecords`, dan `jobResults`.

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

Tabel ini terdiri dari 5 bidang yang sederhana,

  • id: Uniknya mengidentifikasi pekerjaan
  • Nama: Bisa jadi referensi klien, atau jumlah pengenal lainnya
  • Status: Anda perlu tahu di mana pekerjaan itu pada, misalnya
    • 0: Belum dimulai
    • 1: Dijemput
    • 2: Selesai
  • started_by: Siapa yang mulai melakukan pekerjaan? Hal ini tidak sepenuhnya dibutuhkan tetapi adalah baik untuk memiliki. Saya sarankan pelacakan pekerja dengan alamat IP pada jaringan Anda
  • started_at: Kapan pekerja memulai pekerjaan? Dengan pelacakan pekerjaan yang belum selesai dalam waktu X jumlah waktu kita tahu kita perlu mengambil pekerjaan sekali lagi dan mulai memproses oleh pekerja lain. Pekerja bisa menghentikan pengolahan / offline untuk sejumlah alasan, listrik mati, kecelakaan, kehilangan jaringan, dll

Sangat mudah bagaimana tabel ini dapat diperpanjang dengan beberapa kolom tambahan untuk memungkinkan untuk statistik pelacakan, kolom waktu selesai untuk melihat berapa lama pekerjaan itu mengambil, sebuah counter untuk melihat berapa banyak pekerja mengambil pekerjaan itu (jelas ini perlu cenderung 1), prioritas pekerjaan, daftar bisa terus dan terus. Dalam skenario pekerjaan yang lebih kompleks akan mungkin untuk menentukan berapa banyak memori pekerja akan membutuhkan akses ke (dan karena itu hanya menggunakan pekerja sesuai), atau bahkan jenis pekerja akan diperlukan.

Mari menambahkan pekerjaan beberapa contoh:

contoh pekerjaan

Tabel berikutnya lagi adalah cukup sederhana untuk memahami, ini adalah catatan pekerjaan kita. Mereka terkait dengan tabel pekerjaan utama dengan sebuah kolom `jobs_id`. Yang membuat tabel ini sangat tergantung pada data yang Anda butuhkan untuk memasok para pekerja Anda, memungkinkan membuat contoh yang sangat sederhana di mana kita memiliki empat kolom:

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

Tabel ketiga dan terakhir terdiri dari tabel hasil, itu telah sama make up sebagaimana tabel catatan kami, dan dengan penambahan beberapa kolom bisa menjadi bagian dari tabel catatan:

  • job_record_id: Link hasilnya ke meja kerja
  • Hasil: Data hasil

... Dan itu semua Anda butuhkan untuk kontrol pekerjaan! (Meskipun pada tingkat yang sangat dasar) Dalam kasus saya, saya menunjuk ke meja tempat data saya untuk memproses berada, tapi ini bisa saja menjadi file, parameter untuk menjalankan kode simulasi, apa saja.

Memilih pekerjaan

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

  1. Mengambil pekerjaan yang tidak ditandai sebagai lengkap tapi dari pekerja kami dan ulang 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 kontrol 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 sebesar X waktu kami memastikan bahwa semua pekerjaan yang berjalan jika seorang pekerja menabrak atau pergi AWOL.

  3. Selanjutnya ambil rincian pekerjaan diikuti dengan catatan sendiri:
      SELECT * FROM `pekerjaan` WHERE `started_by` = __ME__ LIMIT 1;
     SELECT * FROM `job_records` WHERE `id` = __JOBID__; 

Setelah menyelesaikan pekerjaan kami memasukkan kami hasil catatan dan menandai tugas sebagai selesai. Ingat sebagai pekerjaan dapat menangguhkan / resume kapan saja memungkinkan untuk beberapa kekokohan dalam naskah anda. Mungkin bahwa tugas menghentikan setengah jalan melalui memperbarui sistem kontrol pekerjaan, sehingga memeriksa jumlah record dalam pekerjaan dan jumlah hasil disimpan kembali ke sistem kontrol pekerjaan akan menjadi langkah yang bijak.

Selain itu, sementara ini menunjukkan bagaimana pekerjaan dapat dipilih dan dikelola dari frame-query SQL Anda benar-benar harus mencabut kontrol pekerjaan Anda sehingga jika Anda memutuskan untuk beralih menggunakan layanan web, yang didasarkan sistem file, XML , atau lainnya sejumlah sistem itu tidak akan mempengaruhi kode di atasnya.

Job Konfigurasi

Aspek berikutnya yang perlu dipertimbangkan adalah pekerjaan ukuran dan konfigurasi. Dengan bermain dengan konfigurasi pekerjaan kita bisa menyerang keseimbangan yang sangat baik antara kecepatan, proses replikasi, dan kehandalan. Ambil beberapa OFA skenario:

  1. Pekerjaan mengambil 1 setiap hari untuk menjalankan: Ini berarti bahwa para pekerja Anda butuh 15 hari untuk memproses setiap pekerjaan (ingat 10% dari kekuatan untuk 2/3rds dari waktu). Ini jelas bukan konfigurasi bijak, ukuran pekerjaan Anda terlalu besar! Itu akan mengambil setidaknya dua kali waktu untuk mendapatkan pekerjaan harus diproses pekerja awal pergi AWOL (waktu untuk mengambil bahwa hal itu tidak kembali hasil ditambah waktu pemrosesan kembali). Dalam ideal Anda akan memiliki minimal satu pekerjaan penuh mudah dibersihkan pada akhir setiap periode idle lama, bahwa cara Anda menjaga pekerjaan berdetak lebih dan pada kasus terburuk pekerjaan akan mengambil dua hari untuk memproses harus yang pertama hilang.
  2. Pekerjaan mengambil 1 menit untuk menjalankan: Ini berarti bahwa para pekerja Anda memakan waktu sekitar 15 menit untuk menjalankan setiap pekerjaan. Sementara ini awalnya mungkin tampak ideal, Anda mendapatkan pengolahan pekerjaan tambahan selama waktu makan siang, istirahat kopi, pertemuan, dll skenario ini membuat kerusakan pada area lain dari sistem anda dan memperkenalkan masalah sendiri. Sebagai contoh, pertama setup Anda / pengolahan rasio waktu akan pergi ke kanan bawah, sehingga kehilangan efisiensi sistem. jaringan Anda akan terus-menerus streaming informasi kerja dengan berbagai pekerja staf frustasi yang dong hari mereka untuk bekerja sehari. Anda juga akan menambah beban lebih pada server pemrosesan pekerjaan Anda karena harus mengeluarkan banyak dan banyak potongan-potongan kecil pekerjaan secara teratur. Terakhir, dalam situasi ini jika server pekerjaan Anda turun Anda akan membuat log kembali besar dari pekerjaan yang belum selesai sementara pekerjaan yang lebih besar bisa dari pengolahan lanjutan tidak menyadari bahwa server kerja adalah mengalami kesulitan.

Pada kenyataannya tidak akan ada konfigurasi satu ideal untuk pengaturan grid Anda, banyak tergantung pada sumber daya yang tersedia, jenis pekerjaan, persyaratan kerja waktu turnaround, kemampuan jaringan, dan sebagainya. Namun beberapa pedoman akan menjadi:

  • Ukuran pekerjaan sehingga setiap pekerja bisa melalui setidaknya 3-4 pekerjaan dalam jangka waktu 15 jam (periode waktu terlama mungkin idle)
  • Bermain dengan ukuran pekerjaan sehingga waktu setup menjadi cukup signifikan dibandingkan waktu pemrosesan (mengingat titik di atas).
  • Jika pekerjaan tidak lengkap dalam dua kali lipat jumlah waktu (mungkin kurang) Anda harapkan untuk menyelesaikannya berasumsi bahwa AWOL yang hilang dan mulai memproses dengan pekerja lain. Ini berarti Anda mungkin harus menunggu hingga tiga kali panjang normal pekerjaan sampai selesai (mungkin lebih lama jika pekerjaan berikutnya gagal). Anda mungkin ingin mengurangi saat ini, tapi hati-hati tidak untuk mengurangi terlalu banyak karena Anda mungkin mulai menduplikasi tugas-tugas pengolahan secara teratur.
  • Pekerjaan harus independen dari persyaratan luar sebanyak mungkin. Server pekerjaan, misalnya, hanya harus dihubungi pada awal dan akhir setiap pekerjaan.
  • Jangan jenuh jaringan Anda, ini akan memiliki dua efek negatif, staf siang hari Anda akan menemukan menggunakan jaringan frustasi dan masalah mungkin dialami dengan koneksi waktu keluar masalah yang hanya akan bertambah buruk karena Anda skala grid Anda.
  • Pastikan pekerjaan dapat berjalan pada pekerja Anda. Jika pekerjaan menjadi terlalu memori pekerjaan ruang intensif atau intensif disk akan mulai membatalkan dan satu-satunya adalah Anda akan melihat penurunan jumlah pekerjaan yang telah diproses tanpa alasan mengapa.

Menyerahkan Hasil Pekerjaan yang

Ketika menyerahkan hasil dari pekerjaan adalah penting untuk memeriksa bahwa hasil belum diserahkan oleh pekerja lain, terutama jika pekerja saat ini telah tidak aktif selama beberapa waktu.

Bila hasil disampaikan memastikan bahwa jumlah hasil pertandingan jumlah record dalam pekerjaan.

Sebagaimana dinyatakan sebelumnya, dan tidak bisa lebih ditekankan, membangun toleransi kesalahan ke dalam sistem pengambilan dan penyerahan hasil pekerjaan. Para pekerja dapat (dan kemungkinan besar akan) masuk ke mode Suspend di paling nyaman kali dan ini harus dipenuhi. Juga sekali lagi pergi pengiriman abstrak hasil Anda akan membantu memenuhi untuk perubahan masa depan untuk sistem kendali Anda pekerjaan lebih mudah untuk menangani.

Ringkasan

Dalam section ini kita telah melihat apa server kontrol pekerjaan perlu dilakukan dan bagaimana untuk mendapatkan sistem yang sangat dasar yang mengatur. Kita mendiskusikan bagaimana untuk mengambil pekerjaan dari sistem kontrol dan cara terbaik untuk mengkonfigurasi pekerjaan untuk mendapatkan yang paling kita sistem grid kantor Anda. Untuk menyelesaikan, satu atau dua paragraf di mengirimkan hasilnya kembali ke server kontrol kerja adalah disajikan.

  • Sebuah server kontrol pekerjaan mengelola pekerjaan dan memastikan bahwa semua unit kerja selesai
  • Dengan abstrak pekerjaan Anda pilih / penyampaian hasil yang kita dapat mengubah teknologi dari server kontrol tanpa masalah banyak
  • Konfigurasi pekerjaan Anda untuk memastikan bahwa mereka dijalankan dengan cepat dan efisien tanpa memberi tekanan terlalu banyak pada infrastruktur jaringan Anda, dan tanpa duplikasi tugas pengolahan secara teratur.
  • Pastikan bahwa Anda membangun toleransi kesalahan dan checking kesalahan ke dalam rutinitas Anda, pekerja dapat menunda dan melanjutkan dan yang paling nyaman kali. Ingatlah untuk memeriksa apakah hasil yang telah disampaikan oleh pekerja lain.

Lain kali

Di bagian 3 kita akan menciptakan mesin virtual pengolahan kami dan mengatur jendela kami mesin menjadi idle-time.

Kantor Grid Computing menggunakan lingkungan Virtual - Bagian 5

Dengan Watkin Lloyd Steven , 4 Desember 2009 23:03 Jumat

Pengantar

Saya bekerja di sebuah perusahaan di mana kita menjalankan banyak pekerjaan batch processing jutaan catatan data setiap hari dan saya sudah berpikir 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 bisa menggunakan mesin-mesin untuk meningkatkan kekuatan pemrosesan sistem kita? Dalam Seri artikel ini saya akan melihat potensi manfaat mempekerjakan kantor grid menggunakan lingkungan virtualised.

Di Bagian 4 kita melihat menggunakan alat untuk memastikan bahwa kami menjalankan versi terbaru dan kode sumber data sehingga hasil yang diperoleh selalu up-to-date dengan informasi bisnis terbaru dan logika.

Pre-Deployment

Sebelum menyebarkan sistem grid Anda jika ada satu hal yang Anda lakukan dan satu hal saja itu benchmark sistem Anda saat ini! Tidak peduli apa yang Anda katakan rekan tentang berapa banyak pekerjaan tambahan sistem anda akan lakukan apabila Anda mempunyai beberapa nomor untuk mendukung hal ini menjamin Anda apa-apa. Jadi,

  • berapa banyak catatan yang dapat Anda proses saat ini? Per Hari? Per Jam?
  • Berapa lama biasanya waktu yang diperlukan untuk berbalik pekerjaan?
  • Berapa banyak lagi kapasitas yang Anda miliki?

Ada juga pertanyaan tambahan:

  • Jika server memproses Anda (atau salah satu server pengolahan Anda) turun bagaimana ini akan mempengaruhi kemampuan Anda, Anda akan lumpuh?
  • Apa keuntungan yang Anda harapkan / mengharapkan untuk mendapatkan dari suatu sistem grid?
  • Apakah mesin kantor Anda mampu menjalankan pekerjaan?
  • Apakah Anda (atau bisa Anda pekerjaan dikonversi) untuk bekerja dalam gaya berjalan?

Titik besar terakhir adalah untuk mengambil waktu Anda pada setiap perubahan besar seperti ini. Update kode pengolahan Anda untuk bekerja dengan menggunakan metodologi baru, patokan lagi. Mungkin proses menyiapkan server Anda untuk menjalankan mesin virtual, setelah semua proses server Anda hanya akan menjadi pekerja lain (hanya satu yang sangat kuat relatif). Biarkan proses baru untuk menetap.

Penyebaran

Saran saya akan pop ke akhir pekan satu kantor melakukan semua instalasi dan setup. Lakukan ini sebelum dua minggu libur dan cuti miskin laki-laki lain sehingga untuk berurusan dengan konsekuensi ... mungkin tidak ...

Penyebaran untuk sistem seperti ini harus lambat. Meskipun itu menjadi relatif sederhana untuk mengatur sistem ini akan mempengaruhi seluruh kantor Anda infrastruktur (baik satu digital). Pertama, roll ke beberapa mesin sekaligus, memonitor lalu lintas jaringan, bagaimana host pekerja melakukan atas dasar sehari-hari. Anda mungkin perlu mengubah konfigurasi pekerjaan Anda dalam menanggapi temuan-temuan Anda.

Setelah sistem telah diselesaikan dengan beberapa mesin (katakanlah 10% dari semua mesin kantor, yaitu 5) terus memonitor lalu lintas jaringan dan host mesin benchmark performance. Next lagi, Anda sekarang harus memproses pekerjaan 33% lebih dari benchmark pertama Anda. Periksa ini begitu, atau bahwa Anda setidaknya dalam ballpark ini. Jika tidak, menyelidiki apa yang terjadi sebelum pindah. Ulangi siklus ini sampai Anda bahagia memiliki semua mesin kantor berjalan tanpa membunuh kinerja mesin penggiling individu atau jaringan Anda untuk berhenti.

Pada setiap waktu terus pembandingan, bahkan setelah semua penyebaran dilakukan. Periksa bagaimana pembaruan kode baru mempengaruhi kecepatan sistem Anda, periksa semua pekerja pelaporan dan pekerjaan pengolahan. Perlahan (sangat lambat) kenaikan konfigurasi pekerjaan Anda untuk mendapatkan yang terbaik dari pekerja Anda dan jaringan.

Stop!

Bagaimana jika Anda ingin menghentikan pekerja Anda dari berjalan pada beberapa waktu? Mereka semua ada berjalan, regenerasi, dan mencoba yang terbaik untuk memproses data seperti serangga lapar. Jawabannya mungkin tampak jelas tapi nilainya menambahkan hanya dalam kasus yang diabaikan. Cukup mengedit script pengolahan Anda dengan exit (0) atau mati () atau beberapa pernyataan lain untuk membunuh pekerjaan pengolahan Anda. Sebuah alasan penting mengapa kita selalu mencoba untuk update ke skrip pemrosesan terbaru sebelum menjalankan!

Sistem Demonstrasi

Dalam rangka untuk menulis artikel ini set pendek saya membuat sebuah kotak yang sangat kecil untuk mendemonstrasikan teknologi dan metodologi. Saya membaca banyak artikel, tutorial, dan digunakan berbagai alat untuk setup dan memonitor apa yang terjadi. Dengan tidak berarti aku pergi keluar dan jenuh kantor keseluruhan dengan lalu lintas dan juga tidak pernah saya memiliki akses ke PC anggota staf biasa untuk melihat bagaimana kinerja host terpengaruh.

demonstrasi sistem saya sangat sederhana memang. Saya menggunakan desktop biasa saya set sebagai server kontrol pekerjaan. Pada ini saya telah terinstal mySQL server terinstal ditetapkan sebagai master dalam replikasi, PHP , Â dan SVN dihubungkan melalui apache (untuk akses melalui pekerja VM).

Saya kemudian membuat sebuah mesin pekerja CentOS pada VirtualBox pada laptop berusia 6 tahun windows XP. Aku setup dijadwalkan tugas sebagaimana ditentukan setelah menyalin VM ke mesin dan membiarkannya pergi.

Mesin virtual didirikan dengan PHP, subversi, dan mySQL. Aku memeriksa cabang bernama 'pekerja' dari server repositori kontrol pekerjaan saya dan membuat yakin itu dapat diperbarui dengan menggunakan 'svn update'. Berikutnya setup Aku mySQL sebagai budak dan memeriksa bahwa data replikasi dari mySQL di server kontrol pekerjaan ke VM pekerja. Setelah semua ini saya setup script bash dan cron job.

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

  • Baca di bidang nama
  • Menghitung jumlah nama yang mirip dalam tabel dari sumber data yang diadakan pada VM
  • Menghitung jumlah nama-nama seperti di atas tapi membelah nama dengan spasi (nama kecil, yaitu tengah, nama keluarga)
  • Mengulangi proses ini 1.000 kali

Setiap pekerjaan waktu sekitar 20 menit untuk menjalankan. Pada satu titik saya membuka beberapa salinan dari VM pekerja pada laptop jendela dan mengawasi pekerjaan diperiksa off oleh masing-masing alamat IP pekerja. Pada titik ini saya juga menegaskan replikasi yang secara otomatis restart.

Meninggalkan laptop untuk idle menghasilkan pekerja mulai proses pekerjaan dari server kontrol pekerjaan. Ketika melanjutkan penggunaan laptop ada penundaan dari sekitar 30-60 detik, ini adalah cukup banyak waktu dan staf akan perlu dibuat sadar bahwa mesin mereka dapat menghentikan untuk sementara waktu ketika kembali ke mesin. mesin yang lebih baru mungkin tidak memiliki jeda selama ini. Manfaat dari jumlah pengolahan yang dilakukan oleh mesin-mesin selama periode idle akan lebih yang lebih besar daripada anggota staf harus menunggu jangka waktu singkat (katakanlah 1 menit) pada mesin mereka tiba di suatu pagi (aku sering menunggu lebih lama bahwa ini untuk Windows Defender update untuk mengambil tempat) asalkan mereka dibuat sadar kali ini (berguna untuk mengambil kopi pagi!).

Semuanya saya merasa yakin bahwa saya telah menunjukkan teknologi yang dapat digunakan untuk membuat sistem tersebut. Saya telah menunjukkan bahwa sistem seperti ini tidak bekerja pada skala (sangat) kecil dan lebih bereksperimen dengan beberapa bisa ditingkatkan memanfaatkan sumber daya dari mesin-mesin kantor itu. 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 dunia nyata dan mulai untuk menggelar sebuah sistem seperti ini dalam lingkungan kantor dan melihat apa yang terjadi. Meminta bisnis untuk melakukan ini tanpa sebuah perusahaan jejak menyala untuk membuktikan teknologi dan efektivitas mungkin sedikit sulit. Grid / komputasi terdistribusi yang sangat populer adalah beberapa kalangan dan memiliki beberapa aplikasi besar (BIONC, SETI @ Home, Folding @ Home, dll). Aku tidak, bagaimanapun, menemukan skala yang lebih kecil dan sistem sederhana seperti ini dalam pencarian saya yang dapat diluncurkan dalam lingkungan kantor.

Saya menciptakan sistem pada dasarnya bebas menggunakan perangkat lunak sumber terbuka dan sebagian besar alat yang tersedia di hampir setiap kantor. Teknologi pada dasarnya menunjukkan dan menunjukkan untuk melakukan dan bekerja seperti yang diharapkan. Mudah-mudahan saya telah menunjukkan bahwa dengan tidak bekerja banyak dan dengan setup yang sangat sederhana Anda bisa menyebarkan sebuah sistem komputasi grid kantor yang sangat kuat, murah, Â dan scalable semua pada waktu yang sama.

Setelah sebuah sistem dan berjalan hampir tidak ada akhir untuk jumlah penyesuaian dan perbaikan Anda dapat membuat. Untuk statistik contoh / benchmarking dengan mudah dapat ditambahkan menunjukkan nilai dari sistem tersebut setiap hari. mesin baru dapat ditambahkan dengan cepat dan mudah dan ketika mereka tiba dengan upgrade ke hardware yang ada memperkuat daya proses Anda.

Saya harap Anda menikmati membaca rangkaian artikel dan yang memberi Anda makanan untuk berpikir untuk menjalankan sistem grid kantor. Solusi yang disajikan di sini tidak akan selalu bekerja dalam segala situasi tetapi harus disesuaikan untuk memungkinkan Anda untuk mendapatkan pengolahan data dilakukan dengan menggunakan solusi sendiri.

Silahkan kirim komentar, koreksi, atau perbaikan dan saya akan melakukan yang terbaik untuk menjaga artikel ini diperbarui untuk mencocokkan.

Zend Framework: Fundamental - Review

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

Majikan saya baru-baru ini dibayar untuk kelompok kami pengembang untuk mengambil Zend Framework: Fundamental Tentu saja, disini saya akan meringkas pikiran dan pendapat pada kursus bagi orang lain. Bagi mereka yang ingin menghemat waktu, inilah ringkasan saya:

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 informasi yang cukup untuk melanjutkan. Bagi mereka yang telah menghabiskan waktu melihat kerangka dan telah mengikuti atau dua tutorial satu program ini tidak menawarkan banyak di luar.

Latar belakang

Aku sudah menjadi PHP pengembang selama sekitar 5-6 tahun, dan telah mulai bekerja dengan Zend Framework secara komponen selama bulan terakhir 6. Saya telah mengembangkan dan / atau menjadi pengembang pada beberapa kecil Zend Framework MVC sites. aku akan jujur, aku tidak punya sejumlah besar paparan kerangka kerja lain dari sudut pandang coding tetapi telah menghabiskan beberapa jam meneliti situs proyek dan mengevaluasi them. Kerangka 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 menit di tengah). Waktu yang dihabiskan akan melalui serangkaian slide yang disediakan oleh Zend dengan diskusi setiap saat. Anda dapat menggunakan mikrofon untuk berbicara dengan instruktur, tapi sejujurnya saya tidak melihat siapa pun apa-apa menggunakan lebih dari jendela chat. Selain itu sebuah mesin VMWare Ubuntu disediakan yang memiliki kode contoh dan proyek mendirikan sebuah versi percobaan Zend Studio. Pembicaraan pemimpin tentu saja untuk peserta baik melalui solusi VoIP yang terintegrasi, atau Anda dapat memanggil dalam menggunakan salah satu dari dial seluruh dunia dalam jumlah yang banyak.

Selama kursus materi terdiri dari gambaran singkat mengenai Kerangka Kerja dan pola MVC sebelum menuju ke dalam aplikasi buku tamu sampel. Diskusi menunjukkan bootstrap, Zend_Application, Tabel Db, akses Database, Formulir, Penyaringan, ACL, Memvalidasi, dll, dll Pada dasarnya mencakup semua topik yang Anda akan perlu mendapatkan situs dasar sampai semua waktu menjalankan memberi Anda alat untuk pergi dan mendapatkan lebih maju dalam kerangka kerja (walaupun hal itu jumlah yang 'Lihat situs web' banyak waktu).

Waktu adalah diberikan untuk kode up beberapa contoh, dan untuk mengembangkan 'buku tamu' dan aplikasi 'wiki' sederhana. Secara pribadi saya merasa bahwa memberikan kode atau aplikasi masing-masing dan kemudian meminta kami untuk mengembangkan 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 membangun aplikasi dari awal dengan demonstran yang mungkin akan menyebabkan lebih banyak pertanyaan tentang mengapa dan bagaimana, sehingga memberikan pemahaman yang lebih baik dari kerangka, setelah semua Anda dapat mencari spesifik setelah kursus.

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

Gaya tentu saja informal, diperbolehkan untuk umpan balik dan kolaborasi antara peserta dan instruktur. Pemimpin kursus yang ramah, didekati (alamat email dibagikan untuk pertanyaan), dan sementara presentasi dari slide agak gemetar tampak penuh kompeten dalam framework. Dia jelas orang yang menggunakan kerangka kerja secara teratur daripada seseorang yang diajarkan untuk mengajar kursus, saya menyukai pengalaman 'dunia nyata' dalam hal ini.

Merasa Keseluruhan

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

Untuk kursus ini sendiri ditujukan untuk tingkat 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. Saya akan dari suka tentunya untuk mengambil dari ujung quickstart dan mengembangkan keterampilan tambahan.

Yang mengatakan, judul saja tidak jelas menyatakan "Zend Framework: Fundamental" dan dalam aspek bahwa program studi mencapai apa yang menetapkan untuk dilakukan. Anggota lain dari tim pengembang yang belum menghabiskan waktu melihat ke dalam kerangka kerja selesai setiap sesi dengan antusiasme dan menanyakan pertanyaan yang sangat baik untuk melihat.

Semua itu tidak hilang, itu baik untuk menghabiskan waktu mengkonfirmasi rincian dasar kerangka dan mendapatkan untuk mengajukan beberapa pertanyaan di daerah mana saya tidak 100%. Itu juga waktu itu saya harus duduk setiap hari dan berpikir tentang coding menggunakan kerangka dan proyek-proyek masa depan, sesuatu yang saya tidak akan dari mampu untuk melakukan sebaliknya (bisa Anda bayangkan perusahaan Anda menyetujui bahwa:?)). Last but not least Anda juga mendapatkan sertifikat yang bagus dari Zend untuk mengatakan bahwa Anda mengikuti kursus tersebut (meskipun melalui email).

Zend Framework Sertifikasi

Ini adalah satu pertanyaan yang terus berdatangan ke pikiran selama kursus, akan hal itu mempersiapkan saya untuk sertifikasi? Yang cepat, mudah adalah bergema No. Instruktur kursus cukup jelas bahwa dengan saran tambahan bahwa untuk sertifikasi Anda benar-benar harus menggunakan kerangka kerja pada hari ke hari dan merasa sangat nyaman dan percaya diri dalam penggunaan dan metodologi.

Ringkasan

Mengingat semua yang saya tulis di atas, saya akan meringkas semuanya dalam dua poin-poin mudah:

  • Baru di Zend Framework: Kursus ini tidak persis apa yang Anda harapkan, Anda memberikan pengenalan yang bagus untuk kerangka dan landasan yang baik pada dasar-dasar dari mana Anda dapat membangun. Kursus ini tampaknya membangkitkan minat dan antusiasme untuk kerangka kalangan pengembang.
  • Menggunakan Zend Framework: Sementara itu bagus untuk menopang beberapa dasar-dasar yang sangat saya merasakan waktu, tenaga, dan dana untuk mengambil kursus bisa dari lebih baik dihabiskan di tempat lain. Ini akan bagus untuk see Zend membuat tingkat kursus yang lebih tinggi baru untuk mengambil pengembang ke tingkat berikutnya - setidaknya dengan standar sertifikasi dan luar segera. Untuk itu saya akan mendaftar.












Panorama Tema oleh Themocracy

7 pengunjung online sekarang
4 tamu, 3 bots, 0 anggota
Max pengunjung hari ini: 14 jam 12:11 UTC
Bulan ini: 26 jam 2011/07/05 00:35 UTC
Tahun ini: 130 pada 28-03-2011 10:40 UTC
Sepanjang waktu: 130 pada 28-03-2011 10:40 UTC