• Nenhum resultado encontrado

DVL: Uma Ferramenta para Criação de Laboratórios Práticos de Disciplinas da Área de TI Utilizando Virtualização Baseada em Contêineres

N/A
N/A
Protected

Academic year: 2021

Share "DVL: Uma Ferramenta para Criação de Laboratórios Práticos de Disciplinas da Área de TI Utilizando Virtualização Baseada em Contêineres"

Copied!
8
0
0

Texto

(1)

DVL: Uma Ferramenta para Criac¸˜ao de Laborat´orios

Pr´aticos de Disciplinas da ´

Area de TI Utilizando Virtualizac¸˜ao

Baseada em Contˆeineres

Walafi F. da Silva1, Paulo A. L. Rego1, Jo˜ao M. U. de Alencar1, Antonio R. Braga1e Bruno G. Mateus1

1Curso de Redes de Computadores

Universidade Federal do Cear´a (UFC) - Campus Quixad´a

walafi@alu.ufc.br, {pauloalr,joao.marcelo,rafaelbraga,brunomateus}@ufc.br

Abstract. Practice labs in Information Technology (IT) classes are necessary because they enable students to practice the contents studied. However, many educational institutions do not have a budget for buying dedicated equipment to use in hands-on activities. Virtualization allows the execution of multiple guest systems on a host machine, reducing the physical infrastructure required. In this context, this work presents the DVL tool, which automates the creation of hands-on labs using Docker containers to quickly and easily create, execute and manage scenarios.

Resumo. As pr´aticas de laborat´orio em disciplinas da ´area de Tecnologia da Informac¸˜ao (TI) s˜ao importantes pois possibilitam ao aluno colocar em pr´atica os conte´udos estudados. Entretanto, muitas instituic¸˜oes de ensino n˜ao pos-suem orc¸amento para uma estrutura f´ısica dedicada para atividades pr´aticos. A virtualizac¸˜ao permite a execuc¸˜ao de v´arios sistemas convidados sobre um hospedeiro, reduzindo a infraestrutura f´ısica necess´aria. Nesse contexto, este trabalho apresenta a ferramenta DVL (Docker Virtual Lab), que automatiza a criac¸˜ao de ambientes de estudo utilizando contˆeineres Docker para criar, exe-cutar e gerenciar cen´arios de forma r´apida e acess´ıvel.

1. Introduc¸˜ao

A virtualizac¸˜ao ocupa posic¸˜ao de destaque na ´area de TI, sendo utilizada em servido-res para um melhor aproveitamento dos recursos computacionais [Garcia et al. 2016]. Por´em, a virtualizac¸˜ao n˜ao se limita a facilitar a gerˆencia do parque computacional em-presarial, pois tamb´em ´e ´util na manutenc¸˜ao de sistemas operacionais com configurac¸˜oes distintas coabitando estac¸˜oes de trabalho para usu´arios finais, ou na instanciac¸˜ao de am-bientes para testes e simulac¸˜oes na academia. Entre as diversas soluc¸˜oes de virtualizac¸˜ao existentes, as mais utilizadas s˜ao: hipervisores, que funcionam como uma camada que abstrai o hardware das m´aquinas virtuais, resultando em sobrecarga em termos de hard-ware e drivers; e a virtualizac¸˜ao leve ou baseada em contˆeineres, que oferece um n´ıvel diferente de abstrac¸˜ao e isolamento, apresentado uma menor sobrecarga se comparada aos hipervisores [Morabito et al. 2015].

As atividades de laborat´orio desempenham um papel importante em cursos e treinamentos da ´area de TI, pois n˜ao s´o ajudam aos alunos na compreens˜ao dos

(2)

t´opicos apresentados, mas tamb´em proporcionam habilidades de resoluc¸˜ao de pro-blemas e experiˆencias necess´arias para lidar com situac¸˜oes do mundo profissional [Wannous and Nakano 2010]. Segundo [Garcia et al. 2016], a implementac¸˜ao de labo-rat´orios pr´aticos para o ensino de redes de computadores vem se tornando cada vez mais comum no modelo de ensino atual. As pr´aticas devem simular eventos reais e permi-tir que os discentes vivenciem um amplo leque de experiˆencias relacionadas ao mundo profissional e acadˆemico. Entretanto, manter equipamentos dedicados para cada aluno apresenta alto custo financeiro, tanto com aquisic¸˜ao, quanto com manutenc¸˜ao e consumo energ´etico.

A virtualizac¸˜ao surge como uma alternativa para que instituic¸˜oes de ensino pos-sam viabilizar pr´aticas de laborat´orio e ensino [Carissimi 2008]. Em algumas disciplinas, h´a a necessidade de executar diversos sistemas operacionais ao mesmo tempo e, na maio-ria dos casos, ´e comum o aluno precisar de acesso administrativo ao sistema. Utilizando um ambiente virtualizado, ´e poss´ıvel instanciar diversos sistemas e executar todos os co-mandos sem qualquer tipo de restric¸˜ao, pois as ac¸˜oes de um usu´ario administrador n˜ao afetam o sistema nativo.

Este artigo apresenta a ferramenta DVL (Docker Virtual Lab), uma soluc¸˜ao vol-tada a professores e alunos, que permite gerenciar laborat´orios virtuais (chamados de cen´arios) de disciplinas da ´area de TI e automatizar a criac¸˜ao desses cen´arios, utili-zando contˆeineres Docker. Com ela, os professores podem criar atividades pr´aticas, com cen´arios compostos de v´arias m´aquinas, e instanciar rapidamente v´arias c´opias do cen´ario, uma para cada aluno.

O restante deste artigo est´a organizado como segue: a Sec¸˜ao 2 apresenta alguns trabalhos relacionados, a Sec¸˜ao 3 apresenta a ferramenta e detalha as opc¸˜oes arquiteturais utilizadas no desenvolvimento da mesma. J´a a Sec¸˜ao 4 descreve a demonstrac¸˜ao planejada e apresenta os enderec¸os para acesso ao c´odigo fonte, instruc¸˜oes para implantac¸˜ao e teste da ferramenta. Por fim, a Sec¸˜ao 5 conclui o artigo e apresenta os trabalhos futuros.

2. Trabalhos Relacionados

T´ecnicas de virtualizac¸˜ao tˆem sido utilizadas em v´arios trabalhos para criar ambientes de estudo e treinamento. Em [Garcia et al. 2016], os autores defendem a criac¸˜ao de ambien-tes virtualizados para pr´aticas de laborat´orio em redes de computadores. Para validar o es-tudo, foram elaborados experimentos utilizando o hipervisor VirtualBox1 para ensinar os alunos a proverem diferentes servic¸os, como servidores Web e de Proxy. [Xu et al. 2014] apresenta uma plataforma de treinamento de laborat´orio virtual chamada V-Lab, na qual ´e poss´ıvel criar ambientes para pr´aticas utilizando os hipervisores Xen ou KVM. O V-Lab fornece uma interface Web para o gerenciamento dos recursos.

Diferente dos trabalhos mencionados, nossa soluc¸˜ao utiliza virtualizac¸˜ao base-ada em contˆeineres para criar ambientes de estudo. Al´em disso, tamb´em disponibili-zamos uma interface Web para facilitar o gerenciamento e instanciac¸˜ao dos cen´arios. A escolha da tecnologia de contˆeineres pode ser justificada com os resultados apre-sentados em [Morabito et al. 2015], que fez uma comparac¸˜ao detalhada do desempe-nho da virtualizac¸˜ao baseada em hipervisores tradicionais e virtualizac¸˜ao baseada em

(3)

contˆeineres. Os autores utilizaram uma s´erie de benchmarks para avaliar as ferramen-tas KVM, OSv, LXC e Docker, e mostraram que a virtualizac¸˜ao baseada em contˆeineres tem um desempenho superior a outros tipos de virtualizac¸˜ao, al´em de possibilitar a criac¸˜ao de um maior n´umero de instˆancias na mesma m´aquina f´ısica, devido ao menor tamanho das imagens quando comparadas com as de hipervisores.

3. DVL (Docker Virtual Lab)

Nesta sec¸˜ao, s˜ao apresentados os principais componentes e a arquitetura da ferramenta, as funcionalidades implementadas, bem como os requisitos funcionais e n˜ao funcionais da soluc¸˜ao proposta.

3.1. Arquitetura e componentes

A Figura 1(a) apresenta uma vis˜ao geral da arquitetura da ferramenta. Nela, ´e poss´ıvel observar que o usu´ario professor tem acesso a uma interface web, onde ´e poss´ıvel criar scripts para a instanciac¸˜ao de um cen´ario ou instanciar cen´ario a partir dos scripts j´a existentes. Uma vez criado o cen´ario, os usu´arios alunos podem acessar o servidor e acessar os contˆeineres do cen´ario.

(a) Arquitetura da ferramenta (b) Cen´ario proposto em sala

(c) Script que define o cen´ario Figura 1. Aspectos da ferramenta

Os principais componentes da ferramenta s˜ao: os Scripts que automatizam a instanciac¸˜ao de cen´arios, os Cen´arios, a Interface Web e o Banco de Dados. Os Scripts foram implementados utilizando a linguagem Shell Script e tˆem o papel de criar os

(4)

contˆeineres que fazem parte de um cen´ario, para um ou mais alunos. Um exemplo de scriptpode ser observado na Figura 1(c).

Um Cen´ario ´e um conjunto de contˆeineres destinados a um usu´ario aluno, para a execuc¸˜ao de uma determinada atividade pr´atica. Um exemplo de cen´ario pode ser vi-sualizado na Figura 1(b). Nela, um contˆeiner Gateway ´e criado com uma interface de rede NAT e outra interface de rede conectada `a rede local, sem acesso `a Internet; e dois contˆeineres com apenas uma interface s˜ao conectados `a rede local. Nessa atividade, os alunos devem configurar o Gateway, de modo que ele seja o roteador da rede local, permi-tindo o encaminhamento de pacotes dos outros dois contˆeineres, a fim de que eles tamb´em tenham acesso `a Internet.

A Interface Web foi implementada utilizando a linguagem de programac¸˜ao PHP e executa em um servidor Web Apache. Ela ´e respons´avel por executar os scripts no ser-vidor. E, por fim, o Banco de dados MySQL foi utilizado. Na Figura 2, pode-se observar o esquema utilizado no banco de dados e nele as seguintes tabelas: (1) usuarios, que guarda informac¸˜oes de autenticac¸˜ao dos usu´arios professores `a ferramenta; (2) cenarios, onde s˜ao armazenadas informac¸˜oes sobre os cen´arios criados por todos os usu´arios da ferramenta; (3) containers, que ´e utilizada para guardar informac¸˜oes dos contˆeineres de todos os cen´arios que est˜ao em execuc¸˜ao; (4) maquinas, que ´e uma abstrac¸˜ao utilizada para armazenar informac¸˜oes sobre cada contˆeiner de um cen´ario; (5) imagens, que arma-zena informac¸˜oes das imagens dispon´ıveis no servidor para a criac¸˜ao de um cen´ario; (6) redes, que armazena informac¸˜oes das redes criadas pelos usu´arios professores e que est˜ao dispon´ıveis no servidor para serem utilizadas na construc¸˜ao de um cen´ario.

usuarios id login senha maquinas id id_cenario nome id_imagem redes id nome tipo imagens id nome versao pacotes cenarios id nome_cenario id_user permissao descricao path 1 containers id id_usuario id_cenario id_maquina matricula nome estado id_redes 1 n 1 n 1 n n n 1 n 1 1 1

Figura 2. Esquema do banco de dados

3.1.1. Acesso dos usu´arios alunos ao servidor e aos contˆeineres

Os alunos podem acessar o servidor por meio de acesso remoto (SSH), sendo o nome de usu´ario e senha equivalentes ao n´umero de matr´ıcula do aluno. Vale ressaltar que ao realizar o primeiro acesso, o usu´ario aluno ´e forc¸ado a alterar a senha.

Para cada contˆeiner de um cen´ario instanciado, s˜ao inseridos scripts no diret´orio homede cada aluno, permitindo assim, o acesso ao contˆeiner, como o ilustrado na Figura 3(a). Conforme mostra a figura, dois scripts relacionados ao cen´ario instanciado est˜ao dispon´ıveis: um referente a um contˆeiner servidor e outro a um contˆeiner cliente. Para

(5)

acessar um contˆeiner, o aluno deve executar o script correspondente ao contˆeiner dese-jado, e ent˜ao lhe ser´a solicitado nome de usu´ario e senha de acesso. Tal processo pode ser visualizado na Figura 3(b).

(a) Scripts criados no home do usu´ario aluno (b) Tela de acesso ao contˆeiner

Figura 3. Acesso do usu ´ario via terminal

3.2. Funcionalidades da ferramenta

Na p´agina inicial do professor, aparecem trˆes opc¸˜oes: Instanciar cen´arios, Gerenciar cen´arios instanciadose Criar cen´ario, que s˜ao discutidas nas sec¸˜oes seguintes.

3.2.1. Instanciar cen´arios

Essa func¸˜ao lista todos os cen´arios dispon´ıveis ao usu´ario professor, como mostra a Fi-gura 4. Nela, pode-se observar os cen´arios e as colunas (1) Nome do Cen´ario, (2) Per-miss˜ao, onde s˜ao mostradas as permiss˜oes de cada cen´ario (P´ublico - cen´ario dispon´ıvel a todos os professores cadastrados na ferramenta; ou Privado - apenas o dono pode acessar o cen´ario; (3) Dono, diz se o usu´ario atual ´e dono ou n˜ao do cen´ario; (4) Descric¸˜ao do Cen´ario, e por ´ultimo, (5) Situac¸˜ao, que apresenta a situac¸˜ao atual do cen´ario, em uso ou dispon´ıvel. Em caso de disponibilidade, o professor pode instanciar ou modificar o cen´ario clicando em qualquer lugar da linha do cen´ario desejado. Contudo, se o cen´ario j´a estiver em uso, ele n˜ao pode ser modificado, apenas instanciado para novos alunos.

Figura 4. Cen ´arios dispon´ıveis

O usu´ario pode acessar as informac¸˜oes de um cen´ario, como mostra a Figura 5(a), ao selecion´a-lo. Ainda nessa p´agina, trˆes bot˜oes est˜ao dispon´ıveis: Voltar, Edi-tare Pr´oximo. Ao clicar em Editar, ´e poss´ıvel fazer alterac¸˜oes ou uma c´opia do cen´ario. As alterac¸˜oes podem ser feitas apenas pelo usu´ario dono do cen´ario, enquanto qualquer usu´ario pode fazer uma c´opia do cen´ario. A p´agina de edic¸˜ao ´e similar `a p´agina de criac¸˜ao de cen´ario - mais detalhes ser˜ao apresentados na Sec¸˜ao 3.2.3. Ao clicar em Pr´oximo, o usu´ario segue o fluxo de instanciac¸˜ao de um cen´ario, sendo ent˜ao direcionado `a p´agina de matr´ıculas (Figura 5(b)). Nessa tela, o professor pode adicionar os n´umeros das matr´ıculas dos alunos clicando no bot˜ao Add, enquanto o bot˜ao Del permite remover um aluno. O bot˜ao Finalizar inicia o processo de instanciac¸˜ao do cen´ario e redireciona o professor para a p´agina de gerenciamento de cen´arios instanciados.

(6)

(a) Dados do cen´ario (b) Matr´ıculas Figura 5. Tela de cen ´arios e de matr´ıculas

3.2.2. Gerenciar cen´arios instanciados

Ap´os instanciar um cen´ario, o professor ´e direcionado para a p´agina Gerenciar cen´arios instanciados. Nela, duas opc¸˜oes de listagem est˜ao dispon´ıveis: (1) Cen´arios (Figura 6(a)), que exibe o nome, o estado em que se encontram as m´aquinas de um cen´ario e ac¸˜oes dispon´ıveis (Deletar, Stop, Start e Restart); e (2) Contˆeineres (Figura 6(b)), que exibe mais detalhes de cada cen´ario, como: as matr´ıculas dos aluno, suas m´aquinas, o estado da mesma e ac¸˜oes que podem ser executadas no cen´ario do aluno em quest˜ao (Deletar, Stop, Start e Restart). Apenas nesta opc¸˜ao fica dispon´ıvel ao professor a possibilidade de adicionar novos alunos em um cen´ario em execuc¸˜ao, clicando no bot˜ao Adicionar aluno.

(a) Gerenciamento de cen´arios (b) Gerenciamento de contˆeineres

Figura 6. Gerenciamento de cen ´ario instanciado

As ac¸˜oes Deletar, Stop, Start e Restart levam em conta o estado atual de cada contˆeiner de um determinado cen´ario. A Figura 7 apresenta um diagrama para demons-trar os poss´ıveis estados de um contˆeiner e os bot˜oes dispon´ıveis. O primeiro estado ´e (1) Iniciando. Nesse estado, os contˆeineres est˜ao sendo instanciados e nenhuma ac¸˜ao ´e dispon´ıvel ao professor. Caso a inicializac¸˜ao seja mal sucedida, o estado do contˆeiner muda para (2) Erro. Nesse est´agio, as ac¸˜oes dispon´ıveis para o professor s˜ao: Deletar e Restart. Caso escolha Deletar os contˆeineres, o estado dos mesmos s˜ao alterados para (3) Deletando, que deleta os contˆeineres escolhidas. Caso a ac¸˜ao Restart seja selecionada, os contˆeineres mudar˜ao para o estado Iniciando.

Caso a inicializac¸˜ao ocorra com sucesso, os contˆeineres passam para o estado (4) Running, onde est˜ao em execuc¸˜ao e podem ser acessados pelos alunos. Nesse estado, as ac¸˜oes apresentadas ao professor s˜ao Deletar e Stop. Caso a ac¸˜ao de Deletar seja esco-lhida, os contˆeineres passam para o estado Deletando e s˜ao exclu´ıdos. Caso Stop seja escolhida, os contˆeineres passam para o estado (5) Executando Stop, onde nenhuma ac¸˜ao

(7)

est´a dispon´ıvel. Ao finalizar esse processo, os contˆeineres passam para o estado (6) Stop, que indica que eles est˜ao parados e n˜ao podem ser acessados pelos alunos. Nessa etapa, duas ac¸˜oes est˜ao dispon´ıveis: Deletar, que coloca os contˆeineres no estado Deletando e os exclui, e Start, que p˜oe muda os contˆeineres para o estado (7) Executando Start, que por sua vez n˜ao permite qualquer ac¸˜ao. Finalizado esse processo, os contˆeineres voltam para o estado Running e ficam acess´ıveis aos alunos. Vale ressaltar que, em caso de erro, em qualquer momento um contˆeiner pode passar para o estado Erro.

Figura 7. Diagrama com os poss´ıveis estados dos cont ˆeineres

3.2.3. Criar cen´ario

A opc¸˜ao Criar cen´ario auxilia o professor a implementar cen´arios. Para isso, algumas informac¸˜oes sobre o novo cen´ario devem ser informadas, como mostra a Figura 8(a). Essas informac¸˜oes s˜ao: o Nome do Cen´ario, Descric¸˜ao do cen´ario e Privacidade. Ap´os o preenchimento das informac¸˜oes, o professor ´e direcionado `a tela onde o script de criac¸˜ao de um cen´ario ser´a implementado, como mostra a Figura 8(b). Nessa tela, o professor pode inserir suas linhas de c´odigo no campo reservado para este fim.

(a) Tela de criac¸˜ao de cen´ario (b) Tela de implementac¸˜ao de script

Figura 8. Telas de configurac¸ ˜ao do cen ´ario

Durante a criac¸˜ao do cen´ario, o professor pode listar todos os contˆeineres exis-tentes no cen´ario. Por meio dessa funcionalidade, ele ter´a acesso a uma tabela com as seguintes informac¸˜oes: Nome (nome do contˆeiner); Imagem (nome da imagem que est´a

(8)

sendo utilizada por um determinado contˆeiner). Al´em disso, tamb´em ´e poss´ıvel visualizar as redes j´a existentes no cen´ario e adicionar novas redes.

Ap´os a configurac¸˜ao do cen´ario, o professor deve salvar o cen´ario. Durante essa etapa, ´e exibida um tela para a conferˆencia das informac¸˜oes. Ap´os salvar o cen´ario, o professor ´e direcionado para a tela de matr´ıculas, onde pode adicionar matr´ıculas e instanciar o cen´ario para os alunos.

4. Demonstrac¸˜ao

O c´odigo fonte e um guia de instalac¸˜ao da ferramenta est˜ao dispon´ıveis para a co-munidade no Github: https://github.com/Walafi02/DVL. Al´em disso, fo-ram preparados dois v´ıdeos: um com o guia de instalac¸˜ao (https://youtu.be/ eRcBf8hG98w) e outro para apresentar as funcionalidades da ferramenta (https: //youtu.be/um97ebPY8Io).

Durante o evento, ser´a feita uma demonstrac¸˜ao das funcionalidades da ferramenta, onde ser´a criado um cen´ario com trˆes contˆeineres: um Cliente, um Firewall e um Servi-dor Web. O objetivo do cen´ario ´e o aluno praticar a instalac¸˜ao de um serviServi-dor HTTP e configurac¸˜ao de um firewall Iptables, para que o Cliente possa acessar o Servidor Web.

5. Conclus˜ao

As pr´aticas de laborat´orio em disciplinas na ´area de TI s˜ao importantes para prover ex-periˆencia pr´atica aos alunos. Como nem sempre existem equipamentos reais dispon´ıveis para as pr´aticas did´aticas, este trabalho apresentou uma ferramenta para permitir a criac¸˜ao de ambientes de estudo virtuais utilizando a tecnologia de contˆeineres Docker.

A DVL gerencia a criac¸˜ao de cen´arios e automatiza a instanciac¸˜ao de contˆeineres para v´arios alunos, criando todos os recursos necess´arios para a execuc¸˜ao das atividades de estudo. Como trabalhos futuros, pretende-se fazer uma avaliac¸˜ao de usabilidade e melhorar a interface da ferramenta, principalmente para facilitar a criac¸˜ao de cen´arios mais complexos.

Referˆencias

Carissimi, A. (2008). Virtualizac¸˜ao: da teoria a soluc¸˜oes. Minicursos do Simp´osio Brasi-leiro de Redes de Computadores–SBRC, 2008:173–207.

Garcia, L., Antunes, F., Lara, D., and Ribeiro, C. P. (2016). Utilizac¸˜ao de ambientes virtu-alizados para ensino de servidores de redes de computadores. In Brazilian Symposium on Computers in Education (SBIE), volume 27, page 90.

Morabito, R., Kj¨allman, J., and Komu, M. (2015). Hypervisors vs. lightweight virtualiza-tion: a performance comparison. In Cloud Engineering (IC2E), 2015 IEEE Internati-onal Conference on, pages 386–393. IEEE.

Wannous, M. and Nakano, H. (2010). Nvlab, a networking virtual web-based labora-tory that implements virtualization and virtual network computing technologies. IEEE Transactions on Learning Technologies, 3(2):129–138.

Xu, L., Huang, D., and Tsai, W.-T. (2014). Cloud-based virtual laboratory for network security education. IEEE Transactions on Education, 57(3):145–150.

Referências

Documentos relacionados

Nessa situação temos claramente a relação de tecnovívio apresentado por Dubatti (2012) operando, visto que nessa experiência ambos os atores tra- çam um diálogo que não se dá

Field Studies on the Ecology of the Sand Fly Lutzomyia longipalpis (Diptera: Psychod- idae) at an Endemic Focus of American Visceral Leishmaniasis in Colombia. Bionomía de los

Esse trabalho, apresentado no contexto do Curso de Especialização de Educação na Cultura Digital da Universidade Federal de Santa Catarina, trata do processo de

O objetivo do curso foi oportunizar aos participantes, um contato direto com as plantas nativas do Cerrado para identificação de espécies com potencial

Para analisar as Componentes de Gestão foram utilizadas questões referentes à forma como o visitante considera as condições da ilha no momento da realização do

Marca Vendedor Veículo Ford João Carro Ford João Caminhão Ford Mário Caminhão Fiat Mário Carro Chevrolet Felipe Carro Chevrolet João Carro Chevrolet João

Membro_Faculdade (Matrícula: Inteiro, Nome: string[50], Carga: Inteiro, IniContrato: data, Curso: string[30], professor: booleano, aluno: booleano). Membro

Este presente artigo é o resultado de um estudo de caso que buscou apresentar o surgimento da atividade turística dentro da favela de Paraisópolis, uma