Slides TCC

Fazer download em pptx, pdf ou txt
Fazer download em pptx, pdf ou txt
Você está na página 1de 29

Universidade Federal do Pará

Faculdade de Engenharia da Computação

Técnicas e Tecnologias de Computação em Nuvem


Aplicadas à Montagem de Genomas

Acadêmico: Augusto César Oliveira Gonçalves


Orientador: Prof. Dr. Raimundo Viégas Júnior
Introdução
• Computação: ferramenta fundamental do mundo moderno

• O crescimento do conhecimento e dos dados e informações


desafia os limites do computador

• Muitos problemas na pesquisa científica se enquadram

• Computação em nuvem: consolidação de avanços em redes,


hardware e teoria da computação
Contexto
• As demandas do crescimento da Internet exigem técnicas de
concentração e distribuição eficiente de recursos computacionais
• Recursos e programas antes difusos podem ser concentrados para
resolver problemas custosos, com maior economia
• Em bioinformática, um processo importante é a montagem de
grandes quantidades de sequências genomas, problema
computacionalmente custoso, mas paralelizável
Justificativa
• Em vários projetos de pesquisa, um problema recorrente é a
existência de problemas de resolução computacional custosa
• Soluções tradicionais, especializadas, de alta performance são
economicamente e tecnicamente inviáveis na realidade de muitos
projetos de pesquisa
• A nuvem de computação se mostra uma alternativa econômica,
eficiente e ajustável ás particularidades e necessidades dos problemas
em questão, e cria um campo de prática para desenvolver o know-
how sobre a nuvem
Objetivos
• Geral: desenvolver uma nuvem de computação, para atender de forma
eficiente ás demandas computacionais de pesquisas em bioinformática
• Específicos:
• 1. Criar um projeto de infraestrutura computacional para
implementação de cluster computacional e nuvem de computação
• 2. Traçar um método de processamento paralelo, em alto nível,
envolvendo os estágios da montagem genômica.
• 3. Implementar na nuvem de computação métodos de controle e
soluções de montagem genômica, aproveitando o potencial da
orquestração de contêineres
Trabalhos Relacionados
• Inspiração inicial: técnicas de paralelização e computação em nuvem
aplicadas ao Algoritmo Genético
• Zheng et al (2013): paralelização de AG’s em baixo nível
• Salza e Ferruci (2018): paralelização em alto nível por meio de
contêiners orquestrados, em nuvem de computação
• Schatz et al (2010): paralelização de montagem de genomas em
nuvem com MapReduce
Metodologia
• Pesquisa bibliográfica em repositórios online sobre computação em
nuvem, virtualização, orquestração de contêiners, montagem de
genomas
• Desenvolvimento da solução em nuvem: Docker, Kubernetes,
RabbitMQ e aplicações de montagem genômica Prinseq, Megahit,
Metabat e MetaQUAST.
• Comparação de tempos de execução no cluster com arquiteturas
sequenciais e máquinas individuais
Referencial teórico – computação em nuvem
• Computação em nuvem: • Figura 1 – Representação visual de modelos de
serviços de computação em nuvem.
“[...]modelo que permite acesso
conveniente, onipresente e sob
demanda á redes de conjuntos
compartilhados de recursos
computacionais configuráveis.”
Mell e Grance (2011)
• Blocos fundamentais:
processamento, armazenamento
e networking, segundo
García(2015)
Fonte: Autor, adaptado de Mell e Grance (2011)
Referencial teórico – computação em nuvem
• Modelos de serviço para • Figura 2 – Diagrama de demonstração da
relação entre modelos de implantação de
computação em nuvem: infraestrutura de nuvem de computação
infraestrutura como
serviço(IaaS), plataforma como
serviço(PaaS) e software como
serviço(SaaS)
• Modelos de infraestrutura para
computação em nuvem: nuvem
privada, nuvem pública, nuvem
comunitária e nuvem híbrida
• Fonte: Autor, adaptado de Mell e Grance
(2011)
Referencial teórico – computação em nuvem
• Modelos de arquitetura de software orientada a serviços: monolítica,
microserviços e serverless
• Arquitetura monolítica: todos os componentes da aplicação em única
instância
• Arquitetura em microserviços: aplicação divida em componentes
independentes, distribuídos entre várias instâncias
• Arquitetura serverless: abstração do servidor, funções executadas sob
demanda
• Arquitetura reativa, resiliente e assíncrona: aplicações conceituadas para se
adequar às enormes demandas do paradigma mobile e da alta disponiblidade
Referencial teórico – computação em nuvem
• Figura 3 – Complexidade e organização de infraestrura e aplicações em modelos de arquitetura orientada a
serviços.

• Fonte: Autor, adaptado de Lewis e Fowler(2015)


Referencial teórico – virtualização baseada
em contêineres
• Contêiner: máquina virtual • Figura 4 – Comparação entre arquiteturas de
virtualização em máquinas virtuais tradicionais e
mínima contêineres.

• Isolamento de instâncias
• Voltada á aplicações com grande
quantidade de componentes
concorrentes

Fonte: Autor, adaptado de Casalicchio(2017)


Referencial teórico – virtualização baseada
em contêineres
• Orquestração de contêineres: conjunto de operações de adminis-
tração de contêineres: implantação, monitoramento,
dimensionamento e controle de recursos, objetivando alto nível de
disponibilidade e QoS (qualidade de serviço).
• Desafios da orquestração: gerência de recursos em tempo de
execução, sincronização entre ambientes de testes e produção,
perfilamento, caracterização e modelagem de performance, e
definição de modelos de otimização para orquestração e adaptação
• Decisões baseadas em informações do estado de ambiente e
sistema, para se adequar á política de orquestração definida
Referencial teórico – montagem genômica
• Processo de alinhamento e fusão de • Figura 5 – Diagrama de reresentação do processo
de montagem genômica.
fragmentos de sequências de DNA
• Limitações tecnológicas e qualidade de
amostras não permitem a leitura
completa de um genoma inteiro
• A montagem de genomas se dá por
meio da análise de sobreposições
entre fragmentos e combinação destes
• Sucesso do resultado da montagem é
influenciado por processos de
tratamento e análise de qualidade
• Fonte: Miller Jr., Koren S. e Sutton G. (2010)
Tecnologias de orquestração de contêineres: o
estado da arte
• Contêiner Docker: o padrão da indústria para aplicações Linux em
contêineres portáteis, interligados via API e com isolamento por
namespaces
• Cada contêiner possui um ambiente de execução completo próprio,
com exclusividade de recursos de hardware, isolado de outros
processos em execução em outros contêineres ou na máquina
hospedeira
• Criados a partir de imagens-base contendo um sistema operacional
mínimo, a aplicação a ser executada e suas dependências e
utilitários necessários
Soluções de orquestração de contêineres
• Docker Swarm: orquestrador de contêineres nativo do Docker
• Farcic (2017) pontua que o Swarm fornece suporte nativo para
importantes aspectos do processo de conteinerização
• Componentes: Servidor dockerd, API Docker, runC e containerd,
interfaces via HTTP, CLI e API REST
• Cluster definido a partir da necessidade de recursos de um
serviço e mantido por meio do algoritmo raft consensus
Soluções de orquestração de contêineres
• Kubernetes: orquestrador de • Figura 6 – Arquitetura do orquestrador de
contêineres Kubernetes.
contêineres voltado ao balanço
de carga, isolação e
posicionamento de contêineres
• Serviços com escopo bem
limitado
• Componentes: servidor de API,
containerd, gerenciador de
controle e agendamento,
Kubelet, Proxy e cAdvisor • Fonte: Autor, adaptado de Linux Foundation(2019)
Soluções de orquestração de contêineres
• Objetos e cargas de trabalho no Kubernetes: camadas de abstração
• Pod: conjunto de contêineres compartilhando armazenamento e IP
em comum, menor unidade de gerência do orquestrador
• Serviço: define portas e protocolos de acesso á aplicações
• Deployment: comanda operações de configuração, atualização e
rollback
• Replication controller: Cria e desativa pods de acordo com políticas
definidas
• Stateful set: tipo especial de controlador voltado á preservação de
dados
Soluções de orquestração de contêineres
• Mesos/Marathon/DC/OS – o “Mesosphere”:
• Mesos: “uma plataforma de compartilhamento de clusters de
recursos computacionais para frameworks de computação
distribuída” – Hindman(2011)
• Marathon: sistema de orquestração de contêineres completo, com
suporte á aplicações stateful (aplicações com preservação de
estados), balanceamento de carga e contêineres Docker.
• DC/OS: sistema operacional distribuído, reunindo as funções do
Mesos e Marathon, expandindo funcionalidades e adicionando uma
camada adicional de abstração, focado para o uso em grande escala.
Experimento: desenvolvimento da nuvem de
computação
• Nuvem de computação privada, • Figura 7 – Arquitetura da solução em camadas

voltada á montagem genômica


• Componentes: orquestrador
Kubernetes, servidor de
mensagens RabbitMQ,
aplicações de montagem
genômica Prinseq, Megahit,
Metabat e MetaQUAST

Fonte: Autor
Experimento: desenvolvimento da nuvem de
computação
• RabbitMQ: Servidor de filas de • Figura 8 – Filas de mensagens do protocolo AMQP.

mensagens e protocolo AMQP,


controla o fluxo de trabalho dos
processos de montagem
• Prinseq: tratamento de qualidade
• Megahit: montagem de genomas
• Metabat: binning metagenômico
• MetaQUAST: análise de qualidade
da montagem genômica
Fonte: Autor
Experimento: desenvolvimento da nuvem de
computação
• Controle de processos realizado por meio de filas de mensagens, e
scripts de captação e consumo de mensagens, e disparo organizado
de execução
• Processamento realizado de forma paralela e assíncrona: cada
processo é disparado apenas ao final do processo anterior
• A nuvem é capaz de processar n números de amostras, e a
quantidade de réplicas de componentes não é determinada pelo
número de amostras a processar
• Aplicações containerizadas com imagens customizadas, provisionadas
em repositório
Experimento: desenvolvimento da nuvem de
computação
• Figura 9 – Fluxograma e componentes da cadeia de processamento.

Fonte: Autor
Experimento: desenvolvimento da nuvem de
computação
• Implementação prática em
cluster de computação
distribuída, com 4 máquinas
virtuais
• Pods funcionais: RabbitMQ,
Prinseq, Megahit, Metabat e
Metaquast.
• Servidor NFS para compartilhar
arquivos entre todos os
aplicativos de montagem
Resultados
• Testes de tempo de execução dos processos de montagem de
10 amostras genômicas.
• Medições feitas por cronometragem, a partir da execução do
script de partida starter.sh
• Medição leva em conta o overhad induzido pelo orquestrador e
o serviço de troca de mensagens

• Os resultados do teste de tempo de execução foram


comparados com medições do tempo de execução do processo
das amostras, distribuídas entre máquinas
"monolíticas"individuais, com configurações de hardware
equivalentes ás máquinas que integram os nós de trabalho do
cluster, para fins de controle e validação.

• Por inspeção do gráfico, pode-se concluir que o cluster executa


o processamento de uma amostra, em média, em 29% do
tempo de execução em máquina individual, e 123% do tempo
deduzido teoricamente, assumindo distribuição de cargas
perfeitas entre 4 máquinas individuais. O acréscimo de tempo é
explicado pelo tempo de processamento do servidor de
mensagens, e o próprio overhead induzido pelo orquestrador.
Conclusão
• O trabalho demonstrou a viabilidade da nuvem de computação no apoio á pesquisa
científica, o que também foi demonstrado por Schatz et al. (2010) e Salza e Ferruci (2018),
ao aplicarem técnicas de paralelismo em processos, e no caso do último, divisão de
aplicação em microserviços e contêineres. Com o uso de softwares e serviços livres, foi
realizado o desenvolvimento de uma nuvem de computação, com o objetivo de executar
a montagem genômica e processos associados de forma rápida e eficiente.
• A contribuição deste trabalho, além da nuvem de computação em si, é o fornecimento de
uma ferramenta para apoio á pesquisas em bioinformática na instituição, e a aquisição de
know-how no desenvolvimento e implementação prática de plataformas de computação
em nuvem.
• Embora a plataforma tenha sido criada voltada á execução de montagens genômicas,
também pode receber qualquer outra aplicação que possa ser dividida em componentes
executáveis em contêineres Docker.
Referências bibliográficas
Obrigado!

Você também pode gostar