Posts tagged: subversión

Office Computing Reixa utilización de ambientes virtuais - Parte 4

Por , venres 04 de decembro de 2009 11:59

Introdución

Eu traballo nunha empresa na que corremos moitos traballos en lote procesar millóns de rexistros de datos de cada día e eu estiven a pensar recentemente sobre as máquinas que se sentan ao redor de cada día sen facer nada durante varias horas. Non sería bo se puidésemos utilizar esas máquinas para reforzar o poder de procesamento dos nosos sistemas? Neste conxunto de artigos que eu vou ollar para os potenciais beneficios da contratación dunha oficina de reixa utilización de ambientes virtualizados.

Na parte 3 , creamos a nosa máquina de procesamento virtual e configurar o Windows para facer máquinas de tempo ocioso dos traballadores.

Executando o código máis recente

Inevitablemente, despois de crear a súa lóxica de negocio traballadores vai cambiar, erros serán atopados, código máis rápido máis eficiente será producido deixando os seus traballadores sentados ao redor de procesamento de datos usando código smelly vello . Como entón asegurar que estamos sempre a través da versión máis recente e maior dos nosos scripts de procesamento?

Hai algúns moi fáciles formas simples que poderiamos facelo, o truco, con todo, é reducir o poder de procesamento e tráfico de rede para alcanzar isto. Imos comezar a máis simple das solucións e melloralas lo lentamente ao longo dun par de iterações.

O primeiro método sería simplemente conectar co noso servidor de control de traballo (vía samba, FTP, ou similar) e tire abaixo a versión de código. Non é moi eficiente, pero vai facer o traballo. Permite mellorar iso un pouco, como sobre a creación dun guión rsync e utilizar ese tempo cada vez? Alternativamente o que sobre a colocación do noso script última transformación en subversión comprobar o código inicialmente e despois é só actualizar o noso código en cada run ( svn update )?

Ao final, pode acabar cun guión bash (chamado polo cron cada 10 minutos), que parece tan sinxelo coma isto:

  #! / Bin / sh
 se ps ax | grep-v grep | grep php > / dev / null
 entón
     echo "Job está a procesar, de saída"
 outro
     echo "O traballo non está en execución, comezar agora"
     cd / ruta / a / traballo / copia
     svn update
     php yourJobProcessingScript.php
 fi 

Agora podemos estar seguro de que cada rolda estamos sempre en execución o código máis recente. Estamos garantindo que a actualizar a nosa base de código cada vez que facemos unha carreira e reducindo o tráfico da rede por trasladar só as diferenzas de arquivo en toda a nosa rede.

Na miña configuración de demostración, eu fixen exactamente como descrito anteriormente. Subversion foi instalado no meu servidor de procesamento de traballo e eu simplemente tirou o último código dun "traballador" filial usando 'svn update'. Eu tamén engade unha etiqueta número de versión para o meu programa de procesamento que foi devolto á base de datos como parte do retorno de resultados. Desta forma, puiden ver que o meu código estaba sendo actualizado cada vez que eu copiei o meu tronco no ie sector de traballo que eu estaba sempre executar o script máis recente de procesamento.

Empregando os datos máis recentes

O procesamento do traballo fai uso de fontes de datos, a continuación, nalgún momento estes van ser actualizados. A menos que chamar as súas fontes de datos en unha base moi frecuente vai inundar a rede con tráfico así que os traballadores comezan a correr levando todo a un impasse. Para a miña solución, decidín que me gustaría pasar miñas fontes de datos de todo coas miñas VMS.

Manteña vostede cabalos alí! E se as miñas fontes de datos son enormes? Ben este é realmente un caso de que a cantidade de datos que estamos a falar? Pode ser máis rendible para instalar un maior disco duro adicional en cada máquina que mercar un servidor de procesamento adicional. Esta é unha cuestión de orzamento e ata a empresa para decidir. Poida que sexa a que as súas fontes de datos son tan grandes que non é máis inviábel para manter esa cantidade de datos nas súas máquinas de traballo. Nese caso o que faría? Así, poderiamos mirar para chamar a un servidor de datos local, pero iso pode causar problemas coa rede. Neste caso un sistema de rede, como iso se pode facer irrealista para incluír no seu ambiente de escritorio. Pode ser tamén que podes ollar para estratexias alternativas de execución, por exemplo, só chamar seus traballadores oito horas - seis horas cada noite e / ou optimización de solicitudes de datos de orixe.

Seguindo adiante, imos dicir os nosos datos cantidade de fontes de 100GB de datos. Ben, si que é un pouco de datos para se desprazar na rede nunha actualización. Como é seguro que temos a copia máis recente dos datos neste caso? Rsync é unha posibilidade, pero persoalmente creo que, executando o seu último fonte de datos no servidor de procesamento de traballo e como facer esa configuración como un mestre na replicación (cun ​​rexistro bin bo tempo) pode ser o camiño a seguir:

replicación Ao definir cada un dos seus traballadores como un escravo para o traballo actualizacións do servidor de control das súas fontes de datos pode escorrer ben aos seus traballadores, sen un gran aumento na actividade da rede (que é a menos que executar unha actualización de datos enorme e os seus traballadores entran en acción dunha vez). Isto ten vantaxes sobre rsync en que non ía estar unha longa pausa antes de cada traballo, como as actualizacións da base de datos, o mysql servizo no seu traballo continuamente actualizar os seus datos, o procesamento continúa.

Isto é como eu configurar o meu servidor de demostración. Para configurar a replicação seguín a guía no sitio web de MySQL ( Configurar replicación ) e en 20 minutos eu tiña o meu traballo inital replicar o traballo de control conxunto de datos servidores. Para cada traballador adicional a configuración de replicación e proceso de traballo cada vez que a máquina virtual foi copiado.

Resumo

Nesta sección do artigo vimos como é doado e indolor e para manter o código de procesamento ata a data por using rsync ou subverion (SVN) para facer o traballo e reducir o tráfico de rede no mesmo time. Tamén discutir como para manter as súas informacións de fonte de datos up-to-date, permitíndolles a escorrer para cada un dos seus traballadores. Así, área que garanta a manter-se coa lóxica de negocio e información no noso sistema de rede da oficina. Non será, obviamente, moitas alternativas para a execución destas tarefas, pero aquí foron dous exemplos sinxelos para mostrar como é fácil solución está por vir.

Próxima vez

Na parte final desta serie, apropiadamente chamado Parte 5 , imos discutir a implantación deste sistema para. Vou resumir o que foi aprendido eo que eu puiden crear.

Office Computing Reixa utilización de ambientes virtuais - Parte 1

Por , venres 04 de decembro de 2009 11:23

Introdución

Eu traballo nunha empresa na que corremos moitos traballos en lote procesar millóns de rexistros de datos de cada día e eu estiven a pensar recentemente sobre as máquinas que se sentan ao redor de cada día sen facer nada durante varias horas. Non sería bo se puidésemos utilizar esas máquinas para reforzar o poder de procesamento dos nosos sistemas? Neste conxunto de artigos que eu vou ollar para os potenciais beneficios da contratación dunha oficina de reixa utilización de ambientes virtualizados.

Como PHP desenvolvedor vou usar as ferramentas que eu uso todos os días, ou sexa, Linux, MySQL , PHP, VirtualBox e Subversion (SVN). Con todo, eu espero que esta guía pode adaptarse a outras linguaxes e tecnoloxías tamén.

A solución que fornecer serán moi vagamente baseado no tipo de procesamento que sería necesario para conseguir, pode non ser verdade a través de todo o artigo como eu vou cambiar as cousas para a simplicidade, ou para producir escenarios de uso máis interesantes.

Estes ambientes virtualizados serán executados en máquinas Windows porque é o que a maioría das oficinas executado. O tratamento que as máquinas de oficina non debe interferir co persoal utilizando esas máquinas, deben non necesitan de mantemento na máquina, e ser facilmente salientable para novas máquinas que estean dispoñibles. Ademais, novas máquinas virtuais non debe esixir calquera configuración adicional, xa que reduce a módulos ea facilidade con que o sistema de rede pode ser prorrogado.

Por que implantar un Grid Computing Office?

En primeiro lugar, pode estar a pensar, por que non usar un recurso de computación en nube como plataforma EC2 de Amazon ? Ben, as razóns poden ser varias, por exemplo:

  • Non vai confiar certos datos para un ambiente de computación en nube
  • Non podes poñer algúns datos nun entorno de cloud computing, por motivos legais (por exemplo, datos de deixar o país), potencialmente, por razóns legais, por exemplo, os rexistros do SNS.
  • Vostede quere manter as súas unidades de procesamento de pechar e ten control total sobre o hardware tamén
  • Non ten os fondos do proxecto de execución de instancias de nubes
  • Súa oficina non ten unha conexión a internet e, por tanto, que non é posible utilizar un recurso de nube
  • Non gusta de choiva, nubes de chuvia suxiren, polo tanto, a manter moi lonxe

Estou seguro que a lista podería continuar, pero eu creo que é suficiente polo de agora.

Vantaxes dun Grid Computing Oficina

Ben, imos facer algunha matemática (e ao grande física realidade imos facer algunhas suposicións ampla). Imaxina que ten de procesamento do servidor gran executando beefy 100 postos de traballo ao día. Na súa oficina, ten 50 máquinas que están ociosos 16 horas ao día, cada unha destas máquinas é do 10% tan poderoso como o seu Sever procesamento robusto. (Todos os resultados aquí son redondeados a subestimar aumento de rendemento).

Así, unha máquina de poder do * 10% * 2/3 do tempo = 0,067 é dicir, procesamento escritorio 1 o tempo ocioso pode procesar 6 prazas de emprego completas por día.

Se agora escalar isto leva 15 escritorios ociosos para procesar traballos como moitos por día como o seu servidor de procesamento principal fai.

Así, na nosa oficina finxir de 50 máquinas, poderiamos aumentar o noso poder de procesamento a partir do 1 servidor ata 4 servidores de procesamento pleno, ou poderiamos estar procesar 400 empregos ao día en vez de 100.

Aviso previo, por ningún investimento en hardware novo a súa empresa acaba de ampliar a súa capacidade de procesamento en lote 4 veces! Potencialmente vai aumentar o seu consumo de enerxía, senón da maioría dos ambientes de escritorio que estiveron en máquinas son xeralmente deixadas pola noite de calquera xeito, así que podería ver isto como unha iniciativa verde.

Outras vantaxes tamén significa que o investimento en novas (ou actualizado) servidores de procesamento pode ser adiada se as máquinas da súa oficina son suficientes e que, como mellorar o poder das súas máquinas de oficina a súa reixa oficina faise máis poderosa automaticamente.

Tecnoloxías

O que precisa? (Ou máis correctamente o que eu uso):

  • Ociosos de máquinas de oficina (no meu caso un libre de idade fiestras portátil XP)
  • VirtualBox (ou outro software de virtualización de cliente)
  • Unha máquina virtual con PHP, MySQL running executando un corte OS, eu estou chamando eses servidores meus Limp :)
  • Traballos para seren executados
  • Servidor Job (pode ser outra máquina virtual nalgún lugar)

Empregos típicos

Tipo de emprego que este sistema está deseñado para executar é o seguinte:

  • Sistema recibe unha lista de datos sobre a que necesitamos para responder e devolver resultados
  • Correspondencia implica comprobar / buscar varias fontes (bastante fixa) de datos
  • Resultados das fontes de datos poden requirir unha validación adicional, fusión, comprobación de fontes de datos adicionais en resposta aos resultados
  • Os datos son devoltos con rexistros correspondentes debidamente validados e procesados
  • Cada rexistro dentro dun traballo é independente do resto

Entón, basicamente, estamos mirando para realizar traballos que requiren unha mestura de investigacións da base de datos e algún procesamento de números, un escenario bastante común en un ambiente de negocios.

Solucións de redes non só son vantaxosos para procesar os traballos deste tipo. Basicamente, calquera proceso que pode ser dividida en unidades independentes poden ser executados en paralelo. Vexa esta wikipedia exemplos e máis información: Grid Computing , pero un par de exemplos famosos son Seti @ Home e BIONC . Hai cadros para a execución de redes de computación, e estes valen a pena ollar en.

O que imos conseguir?

Ao final destes artigos, espero mostrar que a implantación dunha reixa de oficina non precisa estar consumindo moi caros ou de tempo. Estou indo para discutir:

  • Configurar o sistema de control de traballo, configuración de traballo
  • Creando unha máquina de procesamento virtual axeitada
  • Como configurar o sistema nunha máquina Windows
  • Garantir que está a usar o código máis recente e os datos
  • Implantación e avaliación do desempeño
  • Mirando cara o futuro

Eu estarei de construción (ok eu constrúe, entón escribín iso) unha aplicación de exemplo para probar os conceptos nunha máquina local usando o Windows XP e miña máquina GridMachine 'virtual. O meu servidor de control de traballo será a miña máquina principal, que corre o Fedora 11 .

Isto é así sentido para demostrar un sistema totalmente funcional robusto, o seu significado máis dunha demostración e discusión mostrando que estas cousas pode ser conseguida nun período de tempo razoablemente curto e con custos relativamente reducidos. Sinto-se libre para me enviar os comentarios, correccións ou melloras e eu vou facer o meu mellor para manter este artigo actualizado para corresponden.

Próxima vez

Na parte 2 vou comezar por ollar para o sistema de control de traballo, e ollar en como os traballos deben ser configurados para acadar maior cantidade de procesamento, garantindo que cada traballo é procesado, sen fallar.

Office Computing Reixa utilización de ambientes virtuais - Parte 5

Por , venres 04 de decembro de 2009 11:03

Introdución

Eu traballo nunha empresa na que corremos moitos traballos en lote procesar millóns de rexistros de datos de cada día e eu estiven a pensar recentemente sobre as máquinas que se sentan ao redor de cada día sen facer nada durante varias horas. Non sería bo se puidésemos utilizar esas máquinas para reforzar o poder de procesamento dos nosos sistemas? Neste conxunto de artigos que eu vou ollar para os potenciais beneficios da contratación dunha oficina de reixa utilización de ambientes virtualizados.

Na Parte 4 miramos para o uso de ferramentas para garantir que estamos executando a última versión das fontes de código e datos, para que os resultados obtidos son sempre up-to-date coas últimas información da empresa e da lóxica.

Vista Replanteo

Antes de implantar o sistema de rede, se hai unha cousa que fai e unha cousa só que é referencia do seu sistema actual! Non importa o que dicir aos compañeiros sobre o que traballo extra o seu sistema vai facer menos que teña números para apoiar que as súas garantías non son nada. Así,

  • cantos rexistros pode procesar actualmente? Ao día? Por hora?
  • Canto tempo funcionar para virar un emprego?
  • Canto máis capacidade que ten?

Hai tamén cuestións adicionais:

  • Se o seu servidor de procesamento (ou un dos seus servidores de procesamento) vai para abaixo como isto afectará as súas capacidades, vai estar aleijado?
  • Que as vantaxes que espera / espera obter a partir dun sistema de rede?
  • Son máquinas da súa oficina capaz de realizar os traballos?
  • Son o seu (ou pode ser convertido emprego) para wrok neste estilo de correr?

O último punto importante é levar o seu tempo en calquera gran cambio como esta. Actualiza o teu código de procesamento para traballar coa nova metodoloxía de referencia, unha vez máis. Posiblemente configurar o servidor de procesamento para realizar unha máquina virtual, fin e ao cabo o seu servidor de procesamento será só outro traballador (só unha forma moi poderosa relativamente). Facer que o novo proceso para resolver.

Desenvolvemento

A miña suxestión sería a aparecer na fin de semana unha oficina realizar todas as instalacións e configuración. Faino inmediatamente antes de vacacións de dúas semanas e deixar a outro coitado para xestionar as consecuencias ... quizais non ...

Implantación dun sistema como este ten que ser lenta. A pesar de ser relativamente sinxelo de configurar este sistema ha afectar a súa infraestrutura de oficina enteiro (ben o dixital). En primeiro lugar, lanzar un par de máquinas ao mesmo tempo, monitorizar o tráfico da rede, como os anfitrións do traballador executar o día a día. Pode cambiar a configuración do traballo en resposta ás súas descubertas.

Unha vez que o sistema se estableceu con algunhas máquinas (digamos 10% de todas as máquinas de oficina, ou sexa, 5) manter o tráfico de monitores de rede e máquina host performance. referencia Seguinte de novo, agora ten que estar a procesar os traballos de 33% máis que os primeiros benchmarks. Comprobe isto é así, ou que é, polo menos, neste estadio. Se non, investigar o que está a suceder antes de continuar. Repita este ciclo ata que por sorte teñen todas as máquinas de oficina funcionando sen matar o performance da máquina individual e moenda súa rede a unha paralización.

En todo momento manter Benchmarking, mesmo despois de todos os implementacións poden facer. Comprobe como as actualizacións do código afecta a velocidade do seu sistema, asegúrese de todos os traballadores están relatando e procesar os traballos. Pouco a pouco (moi lentamente) aumentar a súa configuración de traballo para obter o mellor dos seus traballadores e de rede.

Pare!

E se queres deixar de funcionar os seus traballadores, nalgún momento? Eles están todos alí fóra, correndo, rexenerar, e tentar o mellor para procesar datos, como insectos famentos. A resposta pode parecer obvia, pero paga a pena engadir só no caso da súa esquecido. Só ten que editar o script de procesamento cun exit (0) ou morrer () ou algunha outra indicación de matar o seu traballo de procesamento. Unha razón importante para que nós sempre tentamos facer a actualización para o guión máis recente de procesamento antes de calquera carreira!

Sistema de demostración

Para escribir este conxunto de pequenos artigos que creei unha rede moi pequena para demostrar as tecnoloxías e metodoloxías. Lin moitos artigos, tutoriais, e utilizado varias ferramentas para configurar e monitorizar o que estaba acontecendo. De maneira ningunha eu teño ido para fóra, e saturado de oficina conxunto co tráfico e non teño tido acceso a un ordenador normal membros do persoal de ver como o desempeño do servidor foi afectada.

O meu sistema de demostración era moi humilde, de feito. Eu usei o meu escritorio normal configurado como un servidor de control de traballo. Por iso eu tiña instalado MySQL servidor instalado configurado como un mestre na replicación, PHP , Â e SVN conectados a través de apache (para acceso vía VM traballador).

Eu, entón, creou unha máquina CentOS traballador no VirtualBox nun antigo Windows XP portátil 6 anos. Eu configurar tarefas programadas conforme especificado despois copiar o VM para a máquina e deixar ir.

A máquina virtual foi creada co PHP, subversión e MySQL. Eu comproba unha rama chamado "traballador" do meu traballo repositorio servidores de control e fixo que pode ser actualizado usando 'svn update'. A continuación eu instalación de MySQL como un escravo e comprobado que os datos foron replicar a partir do MySQL no servidor de control de traballo ata o VM traballador. Despois de todo isto eu configurar o script para o cron job.

O meu programa de procesamento basicamente seguiron as liñas deste material (moi sinxelo):

  • Ler o campo de nome
  • Contado o número de nomes semellantes nunha táboa a partir da fonte de datos realizado no VM
  • Contado o número de nomes como antes, pero o nome da división por espazos (por exemplo, nome propio, do medio, sobrenome)
  • Repetir o proceso 1.000 veces

Cada traballo levou uns 20 minutos para ser executado. Nun punto eu abrín varias copias do VM traballador no portátil fiestras e asistiron os traballos ser verificados fóra por cada un dos enderezos IP dos traballadores. Nese punto, eu tamén confirmou que a replicación é reiniciar automaticamente.

Deixando o portátil para a marcha lenta deu lugar a un traballador de comezar a procesar traballos dende o servidor de control de traballo. Ao renovar o uso do portátil había un atraso de preto de 30-60 segundos, esta é unha boa cantidade de tempo e persoal precisaría ser conscientes de que a súa máquina pode facer unha pausa por un curto tempo cando voltar á máquina. Máquinas novas poden non ter unha pausa deste tempo. O beneficio da cantidade de procesamento realizado por esas máquinas durante períodos de ociosidade sería máis que compensan os funcionarios que teñen que esperar un curto período de tempo (por exemplo, 1 minuto), ao chegar nas súas máquinas dunha mañá (eu frecuentemente esperar máis que iso para un Windows Defender actualizar a ter lugar), sempre que tomaron coñecemento desta (tempo útil para incorporarse un almorzo!).

En xeral eu me sinto seguro de que eu demostrei as tecnoloxías que poderían ser usados ​​para crear tal sistema. Eu teño mostrado que este sistema funciona a unha escala (moi) pequena e con pouco máis de experimentación pode ser ampliada utilizar os recursos de máquinas de oficina. Se eu non chegar ao punto de facelo eu estaría moi interesado en saber / ver cando alguén fai.

Conclusións / avaliación

O seguinte paso obvio sería comezar realmente un exemplo do mundo real e comezar a implantar un sistema como este dentro dun ambiente de oficina e ver que pasa. Pedir a un negocio de comprometerse a iso sen unha compañía banda ardente para probar que a tecnoloxía e eficacia pode ser un pouco difícil. Cidadán / A computación distribuída é moi popular e nalgúns círculos e ten algunhas grandes aplicacións (BIONC, o SETI @ Home, Folding @ Home, etc). Non, non obstante, atopar unha escala menor e sistema simple como este nas miñas pescudas que poderían ser implantadas dentro dun ambiente de escritorio.

Eu creei un sistema basicamente libre empregando software de código aberto e, sobre todo ferramentas dispoñibles en case todo o escritorio. As tecnoloxías foron basicamente demostrada e amosar para executar e funcionar como expected. Esperemos que eu teño mostran que o traballo non moito e cunha configuración moi sinxela que pode implantar unha oficina sistema de computación en reixa que é poderoso, Â, barato e scalable, todo á vez.

Unha vez que o sistema está instalado e funcionando case non hai fin para a cantidade de personalización e melloras que podes facer. Por exemplo, estatísticas / análise comparativa poden ser facilmente engadidos mostrando o valor dun tal sistema todos os días. Novas máquinas poden ser engadidos de forma rápida e sinxela como e cando eles chegan con upgrades de hardware existente reforzar o seu poder de procesamento.

Espero que disfrutara de ler esta serie de artigos ea súa lle deu alimento para o pensamento sobre a execución dun sistema de rede da oficina. A solución presentada aquí non vai necesariamente funcionar en todas as situacións, pero debe ser adaptable para permitir que obteña o seu procesamento de datos facer usando a súa propia solución.

Sinto-se libre para me enviar os comentarios, correccións ou melloras e eu vou facer o meu mellor para manter este artigo actualizado para corresponden.













Tema por Panorama Themocracy

5 visitantes en liña agora
4 persoas, 1 bots, 0 membros
Max visitantes hoxe: 20 ás 04:29 am UTC
Este mes: 26 en 2012/04/04 10:27 UTC
Este ano: 69 en 27-02-2012 09:56 pm UTC
Todas as horas: 130 en 28-03-2011 10:40 UTC