Posts tagged: svn

Pejabat Pengkomputeran Grid menggunakan persekitaran Maya - Part 4

Oleh , Jumaat 4 Disember 2009 11:59

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 3 bahagian kita menciptakan mesin pemprosesan maya kami dan menubuhkan tingkap mesin untuk menjadi pekerja yang terbiar masa.

Menjalankan code terbaru

Tidak dapat dielakkan selepas mencipta logik perniagaan pekerja anda akan berubah, pepijat akan didapati, kod lebih cepat lebih cekap akan dihasilkan itu meninggalkan pekerja anda duduk di sekitar memproses data menggunakan kod berbau lama . Bagaimana pula dapat kita memastikan bahawa kita selalu menggunakan versi yang terbaru dan terhebat skrip pemprosesan kami?

Terdapat beberapa cara yang sangat mudah mudah yang boleh kita lakukan ini, muslihat, bagaimanapun, adalah untuk mengurangkan kuasa pemprosesan dan trafik rangkaian dalam mencapai matlamat ini. Mari kita bermula dengan penyelesaian yang paling mudah dan meningkatkan secara perlahan-lahan sepanjang beberapa lelaran.

Kaedah pertama akan hanya menyambung kepada pelayan kawalan tugas kami (melalui samba, FTP, atau yang serupa) dan tarik ke bawah versi terbaru kod. Tidak begitu cekap, tetapi ia akan melakukan pekerjaan. Mari kita memperbaiki bahawa agak, bagaimana pula mewujudkan skrip rsync dan menggunakan bahawa setiap kali, bukan? Alternatif bagaimana meletakkan skrip pemprosesan terbaru kami ke subversif melihat kod mulanya dan kemudian hanya mengemaskini kod kami setiap melarikan ( svn update )?

Akhirnya kita boleh berakhir dengan skrip Bash (dipanggil oleh cron setiap 10 minit) yang kelihatan seperti mudah kerana ini:

  #! / Bin / sh
 jika ps ax | grep-v grep | grep php > / dev / null
 kemudian
     echo "Kerja sedang memprosesnya, keluar"
 lain
     echo "Kerja tidak berjalan, bermula sekarang"
     cd / path / to / bekerja / salinan
     svn update
     php yourJobProcessingScript.php
 Wayar 

Sekarang kita boleh yakin bahawa dengan jangka setiap kita pasti menjalankan code terbaru. Kami memastikan ini dengan mengemas kini pangkalan kod kami setiap kali dan setiap kita melaksanakan jangka dan mengurangkan trafik rangkaian dengan hanya memindahkan perbezaan fail di seluruh rangkaian kami.

Dalam persediaan demonstrasi saya, saya berjaya melakukannya seperti di atas. Subversif telah dipasang pada pelayan pemprosesan tugas saya dan saya hanya menarik code terbaru dari cawangan 'pekerja' menggunakan 'svn update'. Saya juga menambah tag nombor versi untuk skrip pemprosesan saya yang telah kembali ke pangkalan data sebagai sebahagian pulangan keputusan. Dengan cara ini saya dapat melihat bahawa kod saya sedang dikemaskini setiap kali saya disalin batang saya ke dalam iaitu cawangan pekerja yang saya pasti menjalankan pemprosesan skrip terkini.

Menggunakan data terkini

Jika pemprosesan kerja anda menggunakan sumber data, maka pada satu masa nanti ini akan dikemas kini terlalu. Melainkan anda menyeru sumber data anda atas dasar yang sangat jarang berlaku, anda akan membanjiri rangkaian anda dengan trafik dengan seberapa segera sebagai pekerja anda mula berlari membawa semua terhenti. Untuk penyelesaian saya, saya memutuskan bahawa saya ingin untuk menggerakkan sumber data saya main dengan VMS saya.

Pegang anda kuda di sana! Bagaimana jika sumber data saya adalah BESAR? Baik ini benar-benar adalah satu kes berapa banyak data yang kita bercakap? Ia boleh menjadi lebih berkesan kos untuk memasang tambahan cakera keras yang lebih besar ke dalam setiap mesin daripada membeli pelayan pemprosesan tambahan. Ini adalah persoalan bajet dan perniagaan untuk memutuskan. Ia mungkin bahawa sumber data anda adalah begitu besar sehingga hanya unfeasible untuk memastikan bahawa jumlah data dalam mesin pekerja anda. Dalam hal yang demikian apakah yang akan anda lakukan? Juga kita boleh melihat memanggil pelayan data tempatan, tetapi ini mungkin menyebabkan isu-isu dengan rangkaian. Dalam kes ini, sistem grid seperti ini boleh menjadi tidak realistik untuk termasuk dalam persekitaran pejabat anda. Ia juga mungkin yang anda boleh melihat ke dalam strategi alternatif, contohnya hanya memanggil pekerja anda 20:00-06:00 setiap malam dan / atau pendikitan permintaan sumber data.

Bergerak atas membolehkan berkata jumlah sumber data kami untuk 100GB data. Baik ya yang agak sedikit data untuk bergerak di seluruh rangkaian pada kemas kini. Bagaimana kita akan memastikan bahawa kita mempunyai salinan terbaru data dalam kes ini? Rsync adalah satu kemungkinan, tetapi secara peribadi saya berfikir dengan menjalankan sumber data terkini anda pada pelayan pemprosesan kerja anda dan menetapkan ini sebagai induk dalam replikasi (dengan log nice bin panjang) mungkin menjadi cara untuk pergi:

replikasi Dengan setiap pekerja anda sebagai hamba kepada pelayan kawalan update pekerjaan kepada sumber data anda akan dinikmati oleh segenap lapisan baik untuk pekerja anda tanpa peningkatan besar dalam aktiviti rangkaian (yang melainkan anda melakukan kemas kini data yang besar dan semua pekerja anda menendang dalam sekali gus). Ini mempunyai kelebihan lebih rsync yang anda tidak akan mendapat jeda lama sebelum setiap kerja; sebagai kemas kini pangkalan data mysql daemon pada pekerja anda akan sentiasa mengemaskini data manakala pemprosesan berterusan.

Ini adalah bagaimana saya menetapkan pelayan demonstrasi saya. Untuk menubuhkan replikasi saya mengikuti panduan di laman mySQL ( tetapan sehingga replikasi ) dan dalam masa 20 minit, saya mempunyai pekerja awal daripada saya mengulangi dataset kawalan kerja pelayan. Bagi setiap pekerja tambahan tetapan replikasi dan proses bekerja setiap kali apabila VM tersebut telah disalin.

Ringkasan

Dalam seksyen ini rencana kita telah melihat bagaimana mudah dan tidak menyakitkan ia adalah untuk menyimpan kod pemprosesan anda sehingga kini oleh using rsync atau subverion (SVN) untuk melakukan kerja dan mengurangkan trafik rangkaian pada time. yang sama Kami juga membincangkan bagaimana untuk menyimpan maklumat sumber data anda up-to-dengan membenarkan ia untuk dinikmati oleh segenap lapisan kepada setiap pekerja anda. Oleh itu, kita kawasan memastikan bahawa kita menjaga dengan logik perniagaan dan maklumat dalam sistem grid pejabat kami. Jelas akan ada alternatif yang tidak terkira banyaknya untuk melaksanakan tugas-tugas ini, tetapi di sini adalah dua contoh mudah untuk menunjukkan betapa mudahnya penyelesaian diperolehi.

Masa yang akan datang

Di bahagian akhir siri ini, yang dinamakan Bahagian 5 , kami akan membincangkan menggerakkan sistem ini untuk Saya akan meringkaskan apa yang telah dipelajari dan apa yang saya berjaya untuk mencipta.

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.













Tema Panorama oleh Themocracy

8 pelawat online sekarang
6 tetamu, 2 bots, 0 ahli
Pelawat Max hari ini: 15 at 05:20 am UTC
Bulan ini: 26 di 2012/4/4 10:27 pm UTC
Tahun ini: 69 pada 27-02-2012 09:56 am UTC
Semua masa: 130 pada 28-03-2011 10:40 pm UTC