Posts tagged: db

Pejabat Pengkomputeran Grid menggunakan persekitaran Maya - Bahagian 1

Oleh , Jumaat 4 Disember 2009 11:23

Pengenalan

Saya bekerja di sebuah syarikat di mana kita menjalankan banyak kerja kelompok pemprosesan berjuta-juta rekod data setiap hari dan saya telah memikirkan tentang semua mesin yang duduk di sekitar setiap hari dan setiap melakukan apa-apa untuk beberapa jam baru-baru ini. Bukankah lebih baik jika kita boleh menggunakan mesin tersebut untuk mengukuhkan kuasa pemprosesan sistem kami? Dalam set rencana-rencana ini, saya akan melihat manfaat yang berpotensi menggajikan pejabat grid yang menggunakan persekitaran virtualised.

Sebagai seorang PHP pemaju, saya akan menggunakan alat-alat yang saya gunakan setiap hari iaitu, Linux, mySQL , PHP, VirtualBox dan subversif (SVN). Walau bagaimanapun, saya berharap panduan ini akan menyesuaikan diri dengan bahasa teknologi dan lain-lain dan.

Penyelesaian yang saya berikan akan sangat longgar berdasarkan jenis pemprosesan kami perlu untuk mencapai tetapi ini mungkin tidak benar keseluruhan artikel kerana saya akan mengubah keadaan kesederhanaan, atau untuk menghasilkan senario penggunaan yang lebih menarik.

Persekitaran virtualised akan berjalan di mesin tingkap kerana ini adalah apa yang majoriti pejabat berjalan. Pemprosesan bahawa mesin pejabat tidak seharusnya mengganggu kakitangan menggunakan mereka mesin, sepatutnya tidak memerlukan penyelenggaraan mesin, dan mudah deployable mesin baru kerana ia menjadi tersedia. Juga, mesin maya baru tidak perlu menghendaki mana-mana konfigurasi tambahan kerana ini banyak mengurangkan keupayaannya untuk diperluas dan mudah di mana sistem grid boleh dilanjutkan.

Mengapa menempatkan Pejabat Pengkomputeran Grid?

Pertama anda mungkin terfikir, mengapa tidak hanya menggunakan sumber cloud computing seperti platform Amazon EC2 ? Baik alasannya adalah beberapa contohnya:

  • Anda tidak akan mengamanahkan data tertentu kepada persekitaran perkomputeran awan
  • Anda tidak boleh meletakkan data tertentu ke dalam persekitaran perkomputeran awan atas sebab-sebab undang-undang (meninggalkan data contohnya negara), berpotensi untuk sebab-sebab undang-undang, contohnya NHS rekod.
  • Yang anda hendak simpan unit pemprosesan anda menutup dan mempunyai kawalan penuh ke atas perkakasan terlalu
  • Anda tidak mempunyai dana projek untuk menjalankan kejadian awan
  • Pejabat anda tidak mempunyai sambungan ke internet dan oleh itu tidak mungkin untuk menggunakan sumber awan
  • Anda tidak suka hujan, awan mencadangkan hujan, oleh itu anda menyimpan jauh

Saya pasti senarai itu boleh terus, tetapi saya fikir itu sudah cukup buat masa sekarang.

Kelebihan Grid Computing Pejabat

Baik, mari kita melakukan beberapa matematik (dan dalam gaya fizik benar membolehkan membuat beberapa andaian yang menyapu). Bayangkan anda mempunyai pelayan pemprosesan besar berdaging berlari 100 pekerjaan setiap hari. Di pejabat anda, anda mempunyai 50 mesin yang terbiar 16 jam sehari, setiap mesin ini adalah 10% berkuasa sebagai pelayan pemprosesan berdaging anda. (Semua keputusan di sini bulat untuk memandang rendah peningkatan prestasi).

Jadi, 1 mesin * kuasa 10% * 2/3 masa = 0,067 iaitu 1 desktop pemprosesan dalam masa terbiar boleh memproses 6 pekerjaan penuh setiap hari.

Jika anda sekarang penskalaan ini yang mengambil masa 15 desktop terbiar untuk memproses seberapa banyak pekerjaan sehari sebagai pelayan pemprosesan utama anda.

Demikian di pejabat berpura-pura kami sebanyak 50 mesin, kita boleh meningkatkan kuasa pemprosesan kami daripada 1 Pelayan sehingga 4 pemprosesan pelayan penuh, atau kita boleh memproses 400 pekerjaan setiap hari dan bukannya 100.

Notis, tidak bagi pelaburan dalam perkakasan baru syarikat anda baru sahaja meningkatkan kapasiti pemprosesan kelompok 4 kali! Berpotensi anda akan meningkatkan penggunaan kuasa anda tetapi kebanyakan dari persekitaran pejabat saya pernah ke mesin umumnya ditinggalkan pada semalaman pula, supaya anda dapat melihat ini sebagai inisiatif hijau.

Kelebihan lain juga bermaksud bahawa pelaburan dalam baru (atau dikemaskini) pelayan pemprosesan boleh ditangguhkan jika mesin pejabat anda adalah mencukupi dan bahawa anda meningkatkan kuasa mesin pejabat anda grid pejabat anda menjadi lebih kuat secara automatik.

Teknologi

Apa yang anda perlukan? (Atau lebih tepat lagi apakah yang dilakukan oleh saya menggunakan):

  • Mesin pejabat terbiar (dalam kes saya XP komputer riba ganti lama tingkap)
  • VirtualBox (atau perisian maya klien yang lain)
  • Sebuah mesin maya dengan PHP, mySQL running menjalankan cut turun OS, saya memanggil pelayan tempang ini saya :)
  • Pekerjaan untuk menjalankan
  • Pelayan kerja (boleh menjadi satu lagi mesin maya tempat)

Pekerjaan tipikal

Jenis-jenis pekerjaan yang bahawa sistem ini direka untuk dilaksanakan adalah seperti berikut:

  • Sistem menerima senarai data yang kita perlu untuk memadankan dan mengembalikan hasil
  • Padanan melibatkan memeriksa / mencari sumber data beberapa (agak statik)
  • Keputusan daripada sumber-sumber data mungkin memerlukan pengesahan lanjut, penggabungan, memeriksa sumber data tambahan sebagai respons kepada keputusan
  • Data dikembalikan sepadan dengan rekod, disahkan sepenuhnya dan diproses
  • Setiap rekod dalam pekerjaan adalah bebas daripada yang lain

Jadi pada asasnya kami sedang mencari pada menjalankan pekerjaan yang memerlukan campuran lookup pangkalan data dan beberapa crunching nombor, satu senario yang agak tipikal dalam persekitaran perniagaan.

Penyelesaian grid tidak hanya berfaedah untuk memproses kerja jenis ini. Pada asasnya, mana-mana proses yang boleh dibahagikan kepada unit-unit yang bebas boleh dijalankan secara selari. Lihat wikipedia ini untuk contoh dan maklumat lanjut: Pengkomputeran Grid , tetapi beberapa contoh terkenal adalah Halkum @ Home dan BIONC . Terdapat rangka kerja untuk menjalankan pengkomputeran grid, dan ini berbaloi mengkaji.

Apa yang kita akan capai?

Menjelang akhir artikel ini, saya berharap dapat menunjukkan bahawa penggunaan grid pejabat tidak perlu memakan sangat mahal atau masa. Saya akan membincangkan:

  • Menubuhkan sistem kawalan kerja, konfigurasi kerja
  • Mewujudkan sebuah mesin pemprosesan yang sesuai maya
  • Bagaimana untuk membuat sistem pada mesin tingkap
  • Memastikan anda menggunakan kod dan data terkini
  • Kerahan dan penandaarasan
  • Memandang ke hadapan

Saya akan menjadi bangunan (ok saya dibina, kemudian menulis ini) permohonan contoh untuk menguji konsep pada mesin tempatan yang menggunakan windows XP dan 'GridMachine' mesin maya saya. Pelayan kawalan tugas saya akan menjadi mesin utama saya yang berjalan Fedora 11 .

Ini tidak bertujuan untuk menunjukkan sistem yang sepenuhnya bekerja, bermakna lebih satu demonstrasi dan membincangkan menunjukkan bahawa perkara-perkara ini boleh dicapai dalam ruang masa yang agak singkat dan pada kos yang sedikit. Sila berasa bebas untuk menghantar saya untuk sebarang komen, pembetulan atau penambahbaikan dan saya akan melakukan yang terbaik untuk menyimpan artikel ini dikemas kini untuk menyamai.

Masa yang akan datang

Dalam bahagian 2 saya akan bermula dengan melihat pada sistem kawalan kerja, dan melihat kepada bagaimana kerja sepatutnya dikonfigurasi untuk mencapai jumlah terbesar pemprosesan di samping memastikan bahawa setiap pekerjaan diproses tanpa gagal.

Pejabat Pengkomputeran Grid menggunakan persekitaran Maya - Bahagian 2

Oleh , Jumaat 4 Disember 2009 11:23

Pengenalan

Saya bekerja di sebuah syarikat di mana kita menjalankan banyak kerja kelompok pemprosesan berjuta-juta rekod data setiap hari dan saya telah memikirkan tentang semua mesin yang duduk di sekitar setiap hari dan setiap melakukan apa-apa untuk beberapa jam baru-baru ini. Bukankah lebih baik jika kita boleh menggunakan mesin tersebut untuk mengukuhkan kuasa pemprosesan sistem kami? Dalam set rencana-rencana ini, saya akan melihat manfaat yang berpotensi menggajikan pejabat grid yang menggunakan persekitaran virtualised.

Dalam Bahagian 1, saya memberi gambaran keseluruhan sistem dan teknologi yang saya akan gunakan serta membincangkan beberapa potensi sebab-sebab mengapa anda mahu untuk mewujudkan grid pejabat.

Kawalan kerja

Jika anda akan perlu menjalankan kerja maka anda akan memerlukan beberapa cara untuk menguruskan mereka. Keperluan sistem kawalan kerja anda pada pelayan kerja anda akan benar-benar difikirkan dengan baik sebelum cuba untuk menjalankan grid pejabat. Jadi pertamanya, apakah tugas untuk sistem kawalan kerja:

  • Membiayai aktiviti pekerjaan atas permintaan daripada pekerja
  • Memberitahu pekerja apa jenis daripada pekerjaan untuk menjalankan
  • Trek pekerjaan
  • Pastikan yang pekerjaan hanya dijalankan sekali
  • Menyediakan data pekerjaan kepada pekerja-pekerja, atau sekurang-kurangnya memberitahu mereka di mana untuk mendapatkan

Sistem ini juga perlu untuk menjadi extensible, satu penyelesaian yang bekerja buat masa ini dalam kes satu boleh dilanjutkan untuk menjalankan beberapa jenis pekerjaan sebagai perniagaan melihat dalam penyelesaian grid bernilai. Sebagai contoh, pekerjaan boleh mendapat keutamaan lebih daripada satu jenis kerja mungkin wujud (iaitu beberapa asas kod), akhirnya anda mungkin menjalankan beberapa mesin pekerja berbeza yang dioptimumkan untuk setiap jenis pekerjaan (walaupun yang tidak bergerak jauh daripada pekerja 'generik 'idea). Sentiasa cuba untuk berfikir tentang masa depan apabila membangunkan sistem, visi jangka pendek boleh membawa kepada kekecewaan jangka panjang dan peningkatan masa pembangunan.

Pelayan kerja

Kami akan memerlukan tempat untuk mengawal kerja kita, ini perlu menjadi satu-satunya sistem dalam grid anda yang mempunyai sumber tetap pencari, adalah bahawa alamat IP, nama hos, URL (menggunakan dalaman DNS), dll. Ini adalah kerana pekerja perlu tahu di mana untuk mencari pekerjaan, pekerja perlu mencari sistem kerja kawalan (tidak sistem kawalan kerja mencari pekerja).

Pelayan kerja itu sendiri tidak benar-benar mempunyai satu tugas yang rumit (dalam sistem asas bagaimanapun), ia perlu untuk menyimpan senarai pekerjaan, tangan keluar kerja, menerima keputusan, dan seterusnya menyimpannya untuk mendapatkan semula kemudian. Bagaimana bahagian-bahagian ini ('tangan keluar pekerjaan' seperti) ditakrifkan boleh menjadi sangat asas. Kemudian kita boleh melanjutkan sistem termasuk antara muka pentadbiran untuk menambah, mengedit, memadam, menggantung pekerjaan tetapi ini adalah di luar latihan ini.

Terdapat tiada sebab kemudian bahawa pelayan kerja anda tidak boleh menjadi mesin maya berjalan dalam pelayan pemprosesan utama anda dengan syarat ia tidak mengalirkan sumber-sumber yang terlalu banyak daripada ia. Walau bagaimanapun, pelayan pekerjaan tidak memerlukan ketersediaan tinggi, jika ia menjunam pada malam Jumaat anda akan kehilangan hujung minggu seluruh pemprosesan, berpotensi berharga beberapa minggu yang bernilai masa pemprosesan (apabila dibandingkan dengan pelayan pemprosesan utama anda sahaja) . Anda mungkin mahu mempertimbangkan untuk meletakkan pelayan kerja anda terhadap alam sekitar beban yang seimbang bagi ketersediaan tinggi.

Persediaan Asas

Persediaan asas untuk pelayan tugas kami akan terdiri daripada apa yang saya memanggil salah satu pelayan tempang saya (yang Nux Li, m ySql, P HP). Kod yang dijalankan pada pekerja Thea sebenarnya akan bekerja apa pekerjaan yang ia boleh berjalan dengan berinteraksi dengan pangkalan data sistem kawalan kerja. Kemudian pada kita dapat mewujudkan perkhidmatan web dan sebenarnya tangan keluar pekerjaan dan bukannya mempunyai para pekerja melakukan kerja keras sendiri, tetapi sekarang ini kita akan terus menggunakan prinsip KISS (Keep it Simple, Stupid!).

Jadi, mari kita membuat tiga jadual mySQL untuk berurusan dengan pekerjaan. Ini akan menjadi `kerja`, `jobRecords`, dan `jobResults`.

kerja jadual Di sini saya menggunakan SQL Buddy alternatif yang besar sedikit untuk phpMyAdmin hanya kerana lebih mudah dengan memasang CentOS (untuk orang lain melihat: 10 alternatif Great untuk phpMyAdmin )

Jadual ini terdiri daripada 5 bidang yang mudah,

  • id: Unik mengenal pasti pekerjaan
  • name: dapat menjadi rujukan pelanggan, atau mana-mana nombor pengenalan lain
  • Status: Anda perlu tahu di mana kerja adalah pada, contohnya
    • 0: Tidak memulakan
    • 1: meningkat
    • 2: Siap
  • started_by: Siapa yang mula melakukan kerja? Ini tidak sepenuhnya diperlukan tetapi adalah baik untuk mempunyai. Saya hendak mencadangkan pekerja menjejaki oleh alamat IP mereka di rangkaian anda
  • started_at: Bilakah pekerja memulakan kerja? Dengan menjejaki pekerjaan yang belum selesai dalam jumlah X masa kita tahu kita perlu memilih kerja sekali lagi dan mula pemprosesan oleh pekerja lain. Pekerja boleh berhenti pemprosesan / pergi offline untuk apa-apa bilangan sebab, kegagalan kuasa, kemalangan, kehilangan rangkaian, dll.

Ia adalah mudah bagaimana jadual ini boleh dilanjutkan dengan beberapa bidang tambahan bagi membolehkan statistik pengesanan, lajur penamat masa untuk melihat berapa lama Kerja mengambil, kaunter untuk melihat berapa ramai pekerja yang mengambil kerja (jelas ini perlu cenderung untuk 1), keutamaan kerja, senarai yang boleh menyala dan menyala. Dalam senario pekerjaan yang lebih kompleks, ia akan dibuat untuk menentukan berapa banyak memori pekerja akan memerlukan akses kepada (dan oleh itu hanya menggunakan pekerja yang sesuai), atau pun jenis pekerja yang dikehendaki.

Mari menambah beberapa pekerjaan contoh:

contoh kerja

Jadual seterusnya sekali lagi agak ringkas difahami, ini adalah rekod tugas kami. Mereka ada kaitan dengan jadual kerja utama oleh kolum `jobs_id`. Membuat jadual ini amat bergantung kepada data yang anda perlukan untuk membekalkan kepada pekerja-pekerja anda, membolehkan membuat contoh yang sangat mudah di mana kita ada 4 lajur:

  • id: ID rekod
  • nama: nama Orang.
  • address: alamat Orang
  • jobs_id: ID kerja bahawa rekod ini dikaitkan dengan

Jadual ketiga dan terakhir terdiri daripada jadual keputusan, ia mempunyai banyak yang sama mengikut jadual rekod kami, dan dengan penambahan beberapa lajur boleh menjadi sebahagian daripada jadual rekod:

  • job_record_id: Link keputusan untuk jadual kerja
  • result: data hasil

... Dan itulah semua yang anda perlukan untuk mengawal kerja! (Walaupun pada tahap yang sangat asas) Dalam kes saya saya menunjukkan ke meja yang lain di mana data saya untuk proses itu terletak, tetapi ini boleh semudah fail, parameter untuk menjalankan kod simulasi, anda namakan sahaja.

Memilih pekerjaan

Seperti yang dinyatakan sebelum ini, pekerja akan melakukan pengurusan tugas kita untuk kita sekarang, jadi kita perlu benar-benar melakukan mencari pekerjaan yang memerlukan pemprosesan dan mendapatkan maklumat. Bagaimana kita akan melakukan ini? Juga memilih kriteria pemilihan kerja kami dan mencari pekerjaan, dalam SQL saya lakukan yang berikut:

  1. Mengambil mana-mana kerja yang tidak ditandakan sebagai lengkap tetapi dari pekerja kami dan menetapkan semula mereka (menggantikan ME__ __ dengan pengecam, mudah akan menjadi alamat IP):
      UPDATE `kerja` SET `status` = 0 MANA `status` = 1 DAN `started_by` = __ ME__; 
  2. Menggunakan kriteria pemilihan kerja kami, memilih pekerjaan dan memberitahu sistem kawalan bahawa pekerja ini berurusan dengan:
      UPDATE `kerja` SET `status` = 1, `started_by` = __ ME__, `started_at` = SEKARANG () DI MANA `status` = 0 ATAU
     (`Status` = 1 DAN `started_at`> DATE_SUB (SEKARANG (), JARAK X JAM)) PERINTAH OLEH `id` ASC; 

    Oleh pekerjaan capaian anak yang telah tidak dikembalikan keputusan dalam jumlah X masa kita memastikan bahawa semua kerja berjalan sekiranya pekerja terhempas atau akan AWOL.

  3. Seterusnya merebut butiran pekerjaan yang diikuti dengan rekod itu sendiri:
      SELECT * DARIPADA `kerja` MANA `started_by` = __ ME__ HAD 1;
     Pilih * DARIPADA `job_records` MANA `id` = __ JOBID__; 

Setelah selesai kerja, kami memasukkan rekod hasil dan menandakan pekerjaan sebagai lengkap. Ingat sebagai pekerjaan boleh menggantung / disambung semula pada bila-bila masa membolehkan untuk ketegapan beberapa dalam skrip anda. Ia mungkin bahawa tugas menggantung setengah jalan melalui mengemaskini sistem kawalan kerja, jadi memeriksa bilangan rekod dalam pekerjaan dan bilangan keputusan yang disimpan kembali kepada sistem kawalan kerja akan menjadi satu langkah yang bijak.

Di samping itu, sementara ini menunjukkan bagaimana pekerjaan boleh dipilih dan diuruskan dari bingkai SQL-query anda benar-benar perlu pengabstrakan kawalan kerja anda bahawa jika anda memutuskan untuk beralih untuk menggunakan perkhidmatan laman web, sistem berasaskan fail XML , atau mana-mana orang lain bilangan sistem, ia tidak akan menjejaskan kod di atas.

Konfigurasi kerja

Aspek seterusnya adalah untuk saiz pekerjaan dan konfigurasi. Dengan bermain dengan konfigurasi kerja kita boleh menyerang keseimbangan yang terbaik antara kelajuan, replikasi proses, dan kebolehpercayaan. Ambil senario Salim pasangan:

  1. Pekerjaan mengambil 1 setiap hari untuk menjalankan: Ini bermakna bahawa pekerja-pekerja anda memerlukan 15 hari untuk memproses setiap pekerjaan (ingat 10% daripada kuasa untuk 2/3rds masa). Ini adalah jelas tidak tatarajah bijaksana, saiz tugas anda ialah terlalu besar! Ia akan mengambil masa sekurang-kurangnya dua kali ganda masa untuk mendapatkan pekerjaan diproses pekerja awal yang perlu pergi AWOL (masa mengutip bahawa ia telah tidak dikembalikan hasil tambah masa pemprosesan semula). Dalam ideal anda akan mempunyai sekurang-kurangnya satu kerja mudah dibersihkan oleh akhir setiap tempoh terbiar panjang, dengan cara itu anda menyimpan pekerjaan berdetik lebih dan paling teruk kes pekerjaan akan mengambil masa dua hari untuk proses yang pertama harus hilang.
  2. Pekerjaan mengambil 1 minit untuk menjalankan: Ini bermakna bahawa pekerja-pekerja anda mengambil masa kira-kira 15 minit untuk menjalankan setiap pekerjaan. Walaupun ini pada mulanya mungkin kelihatan sesuai, anda boleh mendapat pemprosesan kerja-kerja tambahan pada waktu makan tengahari, rehat kopi, mesyuarat, dll senario ini meletakkan tekanan pada kawasan lain sistem anda dan memperkenalkan masalah sendiri. Sebagai contoh, pertama nisbah tetapan / pemprosesan masa anda akan pergi ke bawah, oleh itu kehilangan kecekapan sistem. Rangkaian anda akan menjadi kerja yang sentiasa streaming maklumat kepada pekerja mengecewakan pelbagai kakitangan yang dong hari mereka untuk kerja hari. Anda juga akan meletakkan ketegangan yang lebih pada pelayan pemprosesan kerja anda kerana ia mempunyai ketepikan banyak dan banyak kepingan kecil kerja secara tetap. Akhir sekali, dalam situasi ini jika pelayan kerja anda terbenam anda akan mewujudkan log belakang besar kerja yang belum siap manakala lebih besar pekerjaan boleh terus memproses tidak sedar bahawa pelayan kerja mengalami masalah.

Dalam realiti tidak akan ada konfigurasi ideal bagi persediaan grid anda, banyak bergantung kepada sumber-sumber yang sedia ada, jenis pekerjaan, keperluan masa yang diambil kerja, keupayaan rangkaian, dan sebagainya. Walau bagaimanapun, beberapa garis panduan akan:

  • Pekerjaan saiz supaya setiap pekerja boleh mendapatkan melalui sekurang-kurangnya pekerjaan 3-4 dalam tempoh 15 jam (yang paling lama tempoh masa mungkin terbiar)
  • Bermain dengan saiz kerja supaya masa persediaan menjadi agak kecil berbanding dengan masa pemprosesan (berkenaan dalam minda titik di atas).
  • Jika kerja tidak lengkap dalam jumlah dua kali ganda masa (mungkin kurang) anda menjangka ia selesai, ia mengandaikan bahawa AWOL hilang dan mula memproses dengan pekerja lain. Ini bermakna anda mungkin perlu menunggu sehingga tiga kali panjang biasa kerja untuk melengkapkan (mungkin lebih panjang jika kerja berikutnya gagal). Anda mungkin mahu mengurangkan masa ini, tetapi berhati-hati untuk tidak mengurangkan terlalu banyak kerana anda mungkin mula menduplikasi tugas pemprosesan secara tetap.
  • Pekerjaan seharusnya bebas daripada keperluan di luar sebanyak mungkin. Pelayan pekerjaan, sebagai contoh, hanya perlu dihubungi pada permulaan dan akhir setiap kerja.
  • Jangan menepukan rangkaian anda, ini akan mempunyai dua kesan negatif, kakitangan siang hari anda akan mendapati menggunakan rangkaian mengecewakan dan masalah boleh dialami dengan sambungan menentukan masa yang sesuai masalah yang hanya akan bertambah buruk sebagai anda skala grid anda.
  • Memastikan kerja boleh dijalankan ke atas pekerja anda. Jika pekerjaan menjadi terlalu memori pekerjaan ruang intensif atau cakera intensif akan bermula paksa dan satu-satunya perkara yang anda akan perasan penurunan dalam bilangan pekerjaan yang diproses dengan tanpa sebab sebenar mengapa.

Mengemukakan Keputusan Ayub

Apabila mengemukakan hasil kerja adalah penting untuk memeriksa bahawa keputusan telah tidak diserahkan oleh pekerja lain, terutamanya jika pekerja semasa telah tidak aktif untuk beberapa waktu.

Apabila keputusan telah diserahkan memastikan bahawa bilangan keputusan sepadan dengan bilangan rekod dalam kerja.

Seperti yang telah dinyatakan sebelum ini, dan tidak boleh lebih menekankan, membina toleransi kesalahan ke dalam mendapatkan semula pekerjaan dan penyerahan keputusan. Pekerja-pekerja boleh (dan besar kemungkinan akan) pergi ke mod menggantung pada kali yang menyusahkan dan ini perlu dipenuhi. Juga sekali lagi abstrak penyerahan keputusan anda akan membantu menampung perubahan masa depan kepada sistem kawalan kerja anda lebih mudah untuk berurusan dengan.

Ringkasan

Dalam section ini kita telah melihat di pelayan kerja kawalan perlu lakukan dan bagaimana untuk mendapatkan satu sistem yang sangat asas ditubuhkan. Kami membincangkan cara untuk mengambil kerja dari sistem kawalan dan cara terbaik untuk mengkonfigurasi pekerjaan untuk mendapatkan yang paling kami sistem grid pejabat anda. Hingga ke akhir, perenggan atau dua mengemukakan keputusan kembali ke pelayan kawalan kerja telah dibentangkan.

  • Pelayan kawalan kerja menguruskan pekerjaan dan memastikan bahawa semua unit kerja telah siap
  • Oleh pengabstrakan kerja anda pilih / keputusan penyerahan kita boleh mengubah teknologi pelayan kawalan tanpa banyak masalah
  • Mengkonfigurasi pekerjaan anda untuk memastikan bahawa mereka berjalan dengan pantas dan cekap tanpa meletakkan terlalu banyak tekanan ke atas infrastruktur rangkaian anda, dan tanpa menduplikasi tugas pemprosesan secara tetap.
  • Pastikan anda membina toleransi kesalahan dan checking kesilapan ke dalam rutin anda, pekerja boleh menggantung dan resume dan yang paling menyusahkan kali. Ingatlah untuk memeriksa jika keputusan telah pun diserahkan oleh pekerja lain.

Masa yang akan datang

Dalam 3 bahagian, kita akan membuat mesin pemprosesan maya kami dan menubuhkan mesin tingkap kami untuk menjadi pekerja yang terbiar masa.

Zend Rangka Kerja: Asas - Kajian

Oleh , Sabtu 28 November 2009 22:42

Majikan saya baru-baru ini dibayar untuk kumpulan kami pemaju untuk mengambil Rangka Kerja Zend: Kursus Asas , di sini saya akan meringkaskan fikiran dan pendapat saya mengenai kursus untuk orang lain. Bagi mereka yang mencari untuk menjimatkan masa, di sini adalah ringkasan saya:

Bagi pemaju yang tidak mempunyai masa untuk melihat Rangka Kerja Zend kursus ini (Zend Rangka Kerja: Asas) menawarkan gambar yang baik secara keseluruhan rangka kerja yang memperkenalkan anda kepada bidang utama dan memberikan maklumat yang cukup untuk meneruskan. Bagi mereka yang telah menghabiskan masa melihat rangka kerja dan telah diikuti satu atau dua tutorial kursus ini tidak menawarkan lebih daripada sekadar.

Latar belakang

Saya telah pemaju PHP untuk kira-kira 5-6 tahun, dan telah mula bekerja dengan Rangka Kerja Zend berasaskan komponen dalam tempoh 6 bulan yang lalu. Saya telah dibangunkan dan / atau pemaju pada beberapa Rangka Kerja Zend kecil MVC sites. biarlah saya berterus terang, saya tidak mempunyai banyak pendedahan kepada rangka kerja lain dari satu titik pengekodan pandangan tetapi telah menghabiskan masa beberapa jam menyelidik laman projek dan menilai them. rangka kerja dan masyarakat sekeliling Zend Rangka Kerja ianya agak menarik dan seolah-olah menjadi kemungkinan besar di mana ia akan.

Mengenai Kursus

Kursus itu diserahkan lebih 9 dua jam webex sesi (dengan waktu rehat selama 10 minit di tengah-tengah). Masa yang dibelanjakan akan melalui satu set slaid yang disediakan oleh Zend dengan perbincangan pada bila-bila masa. Anda boleh menggunakan mikrofon untuk bercakap dengan pengajar, tetapi untuk berterus-terang, saya tidak melihat sesiapa menggunakan apa-apa lebih daripada tetingkap bual. Di samping itu mesin VMWARE Ubuntu disediakan yang mempunyai kod contoh dan projek yang ditubuhkan versi percubaan Zend Studio. Rundingan pemimpin kursus untuk tetamu yang hadir sama ada lebih satu penyelesaian VoIP bersepadu, atau anda boleh mendail menggunakan salah satu daripada dail banyak di seluruh dunia di nombor.

Sepanjang bahan terdiri daripada gambaran keseluruhan ringkas Rangka Kerja dan corak MVC sebelum menuju ke aplikasi buku pelawat sampel. Perbincangan menunjukkan pengikatan but, Zend_Application, Jadual DB, akses Pangkalan Data, Borang, Penapisan, ACL, Pengesahan, dll, dll. Pada asasnya meliputi semua topik yang anda memerlukan untuk mendapatkan tapak asas sehingga 1 berjalan sepanjang masa memberi anda alat untuk pergi dan mendapatkan lebih maju dalam rangka kerja (walaupun ini tidak terjumlah kepada 'Lihat laman web' banyak masa).

Masa diberikan kepada kod beberapa contoh, dan untuk membangunkan 'guestbook' dan permohonan mudah 'wiki'. Secara peribadi saya merasakan bahawa menyediakan kod atau setiap aplikasi dan kemudiannya meminta kami untuk membangunkan apa yang pada dasarnya salinan di samping tidak benar-benar memberi satu pengalaman pembelajaran yang baik. Saya tidak suka untuk membangunkan satu permohonan yang serupa, tetapi tidak serupa. permohonan contoh dengan faedah mempunyai panduan untuk merujuk kepada. Alternatif membina permohonan dari awal dengan demonstrasi akan sebanyak mungkin membawa kepada lebih banyak soalan tentang mengapa dan bagaimana, lantas memberikan pemahaman yang lebih baik rangka kerja ini, selepas anda boleh melihat khusus selepas kursus.

Syarahan terakhir terdiri daripada bekerja atas permohonan wiki dengan bantuan / panduan daripada pengajar. Selepas maklum balas kursus yang diambil, ia menekankan beberapa kali melalui kursus bahawa Zend mengambil maklum balas serius, sebenarnya nampaknya versi kursus kami adalah agak baru. Beberapa pemaju lain dalam syarikat itu akan mengambil kursus ini tidak lama lagi supaya ia akan menjadi menarik untuk melihat jika ini telah berlaku.

Gaya kursus adalah tidak formal, yang dibenarkan untuk mendapatkan maklum balas dan kerjasama antara peserta dan pengajar. Pemimpin kursus adalah mesra, mudah didekati (alamat e-mel telah dikongsi untuk soalan), dan sementara persembahan dari slaid adalah sedikit yang goyah nampaknya cekap sepenuhnya dalam rangka kerja. Beliau dengan jelas seseorang yang menggunakan rangka kerja secara tetap daripada seseorang yang diajar untuk mengajar kursus, saya suka pengalaman 'dunia sebenar' dalam hal itu.

Rasa keseluruhan

Dalam beberapa cara, saya mendapati kursus membuang masa, di lain-lain ia adalah sangat berguna. Semoga saya akan mendapat sebab saya merentasi jelas, dan mungkin memberikan sedikit makanan untuk mendapatkan maklum balas pemikiran atau berguna (mengetahui saya ini tidak mungkin!).

Untuk diri sendiri, kursus ini bertujuan pada tahap terlalu rendah. Setelah melalui panduan mula pantas, baca Zend Rangka Kerja Rob Allen dalam Tindakan, dan bekerja dengan rangka kerja sedikit, saya tidak benar-benar mendapat apa-apa terlalu banyak. Saya akan menyukai kursus untuk menjemput dari akhir yang mula pantas dan membangunkan kemahiran tambahan.

Yang berkata, tajuk kursus tidak menyatakan dengan jelas "Rangka Kerja Zend: Asas" dan dalam aspek itu kursus ini mencapai apa yang ia menyatakan lakukan. Ahli-ahli lain dalam pasukan pembangunan yang belum menghabiskan masa melihat ke dalam kerangka selesai setiap sesi dengan penuh semangat dan bertanya soalan yang benar-benar baik untuk melihat.

Semuanya tidak hilang, ia adalah baik untuk menghabiskan masa mengesahkan butir-butir asas rangka kerja dan mendapatkan untuk bertanya beberapa soalan di kawasan di mana saya tidak 100%. Ia adalah juga waktu itu, saya dapat duduk setiap hari dan berfikir tentang pengekodan menggunakan rangka kerja dan projek-projek masa depan, sesuatu yang saya tidak akan mampu untuk berbuat sebaliknya (anda boleh bayangkan syarikat anda bersetuju itu? :)). Akhir sekali anda juga mendapat suatu perakuan yang bagus dari Zend untuk mengatakan bahawa anda menghadiri kursus (walaupun melalui e-mel).

Pensijilan zend Rangka Kerja

Ini adalah satu soalan yang disimpan datang ke fikiran semasa, ia akan menyediakan saya untuk pensijilan? Yang cepat, mudah Tanpa membanggakan. Pengajar kursus adalah cukup jelas tentang dengan nasihat tambahan itu bagi pemerakuan anda benar-benar perlu menggunakan rangka kerja pada hari ke hari dan merasa sangat selesa dan yakin dalam penggunaan dan metodologi.

Ringkasan

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

  • Baru kepada Rangka Kerja Zend: Kursus ini tidak tepat dengan apa yang anda harapkan, ia memberikan pengenalan baik kepada rangka kerja dan asas yang baik mengenai asas-asas dari mana anda boleh membina. Kursus ini seolah-olah untuk menjana minat dan keghairahan untuk rangka kerja di kalangan pemaju.
  • Digunakan Rangka Kerja Zend: Walaupun ia adalah baik untuk meningkatkan beberapa asas sangat saya rasa masa, usaha, dan dana untuk mengambil kursus yang boleh bagi lebih baik digunakan di tempat lain. Ia akan menjadi baik see Zend mewujudkan tahap baru yang lebih tinggi kursus untuk mengambil pemaju untuk tahap yang lebih tinggi - sekurang-kurangnya kepada standard pensijilan dan seterusnya Untuk itu, saya akan mendaftar segera.

Log ke DB menggunakan Zend Rangka Kerja

Oleh , Selasa 14 April 2009 21:06

Saya telah berjaya mendapat tapak dan berjalan dengan Rangka Kerja Zend , semua pembalakan baik untuk Firebug / FirePHP langkah seterusnya adalah untuk log masuk ke DB. Saya juga mahu log beberapa maklumat tambahan yang menggunakan rangka kerja itu sebagai ejen pengguna, tarikh dan masa, dapatkan dan hantar pembolehubah. Jadi untuk melanjutkan manual sedikit di sini apa yang saya lakukan:

// Set up logging to DB
$db = Zend_Registry ::get('dbAdapters');
$db = $db['general'];

$ ColumnMapping = array ('keutamaan' => 'keutamaan',
'Message' => 'mesej',
'Datetime' => 'timestamp',
'User_agent' => 'user_agent',
'Get_vars' => 'get_vars',
'Post_vars' => 'post_vars',
'Tapak' => 'tapak'
);

$ WriterDb = baru Zend_Log_Writer_Db ($ db, 'error_logging', $ columnMapping);
$ Logger = baru Zend_Log ($ writerDb);

$ Logger-> setEventItem ('datetime', tarikh ('Ymd H: i: s'));
$ Logger-> setEventItem ('user_agent', $ _SERVER ['HTTP_USER_AGENT']);
$ Pembalak-> setEventItem ('get_vars', print_r ($ _GET, benar));
$ Pembalak-> setEventItem ('post_vars', print_r ($ _POST, benar));
$ Pembalak-> setEventItem ('tapak', LAMAN);

$ Logger-> info ('mesej sistem maklumat');

Jika kekunci pelbagai dalam columnMapping $ adalah nama kolum saya. 'Keutamaan' dan 'mesej' difahami oleh Zend_Log_Writers tetapi bidang tambahan telah ditambah untuk memberikan saya beberapa maklumat tambahan.

Jelas ini menganggap bahawa anda telah pembalakan bekerja menggunakan salah satu daripada penulis-penulis lain 1 :)













Tema Panorama oleh Themocracy

6 pelawat online sekarang
5 tetamu, 1 bot, 0 ahli
Max pelawat hari ini: 13 pada 08:46 am UTC
Bulan ini: 16 di 2012/1/5 01:02 pm UTC
Tahun ini: 69 pada 27-02-2012 09:56 am UTC
Semua masa: 130 pada 28-03-2011 10:40 pm UTC