Office Computing Reixa utilización de ambientes virtuais - Parte 4
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:
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.

















































