O OpenStack está entre o sistema operacional em nuvem que mais cresce. No entanto, a palavra é extremamente confusa e muitas pessoas não entendem a verdadeira idéia.

Neste artigo, tentamos dissecar a tecnologia por trás do OpenStack e como ela surgiu. Mas antes de nos aprofundarmos no OpenStack, precisamos entender profundamente alguns aspectos sobre a tecnologia por trás do OpenStack, chamada Virtualização.

Fonte da imagem: pixabay.com

O que é virtualização?

A virtualização é uma tecnologia que nos permite criar instâncias virtuais de contrapartida do mundo real. Por exemplo, uma máquina física real seria criada em máquinas virtuais. Máquinas virtuais são apenas uma implementação virtual de suas máquinas reais.

Uma analogia pode ser desenhada para os emuladores. As máquinas virtuais agem mais do mesmo tipo; apenas, em vez de emular jogos, elas imitam uma máquina inteira.

A tecnologia que atua por trás da virtualização e permite a criação de instâncias virtuais é chamada hypervisor. Agora todas as máquinas virtuais são executadas em uma máquina física.

As máquinas virtuais, por si só, podem ser de qualquer tipo de máquina com qualquer configuração, no entanto, devem ser menores do que as da máquina na qual estão gerando. O que o hipervisor faz é preencher a lacuna entre o kernel da máquina física e o kernel da máquina virtual.

Ele captura as chamadas do sistema, converte o código de operação da linguagem no nível da máquina, processa-a e depois a transforma no código de operação que seria posteriormente entendido pela máquina virtual.

A máquina na qual uma máquina virtual é "gerada" ou criada é chamada de máquina host. A máquina virtual gerada ou criada pelo hipervisor na máquina host é chamada de máquina Convidada.

Da mesma forma, o sistema operacional executado na máquina host é chamado sistema operacional host, e o sistema operacional executado na máquina convidada é chamado sistema operacional convidado.

A máquina host e os sistemas operacionais host são sempre significativamente poderosos que a máquina convidada e os sistemas operacionais convidados. Isso ocorre porque o hardware real que fornece a capacidade de processamento reside apenas na máquina host.

O hipervisor também é instalado na máquina host em que realiza a maior parte de sua operação, usando o poder do próprio sistema operacional do host. A máquina virtual usa o hypervisor para obter acesso a alguns dos hardwares da máquina host real.

É papel do hypervisor fornecer à máquina virtual o hardware virtual necessário. As máquinas virtuais geradas pelo hipervisor geralmente não fazem ideia de que são virtuais.

O hardware necessário é fornecido ao gerar a máquina virtual. Uma vez gerada, em uma rede real, a máquina virtual seria tratada como um único nó.

Tipos de hipervisores

Os hipervisores são divididos principalmente em dois tipos:

Tipo 1: hipervisor nativo ou bare metal:

Esses hipervisores são executados diretamente no hardware do host e têm forte integração com o kernel do host. Eles gerenciam sistemas operacionais convidados diretamente e as máquinas virtuais geradas aparecem como um processo. Eles também são chamados de hypervisor bare metal. Exemplos incluem Citrix, XenServer e VMW são ESX / ESXi.

Tipo 2: hipervisores hospedados:

Esses hypervis0ors são executados como um programa normalmente instalado nos sistemas operacionais host. Eles geram uma máquina virtual e os abstraem do sistema operacional host. Uma analogia pode ser desenhada para emuladores de jogos. Exemplos incluem QEMU, VirtualBox e VMWare Workstation.

Há também um terceiro tipo de hipervisor híbrido, como a Máquina Virtual Baseada em Kernel (KVM) que, embora seja executado como um programa típico, mas em execução, se integra fortemente ao kernel e, posteriormente, ao hardware da máquina host.

O KVM é talvez o hipervisor de código aberto mais famoso e, para o OpenStack, o KVM é usado extensivamente. Todos esses hipervisores operam criando algo chamado imagens.

Essas imagens são uma cópia de réplica de um sistema operacional instalado ou de um sistema operacional customizado com requisitos especiais de kernel. Posteriormente, quando o usuário usa a imagem, ela modifica a imagem de acordo com os dados armazenados pelo cliente.

Esse espaço de armazenamento é novamente gerenciado pelo hypervisor, que vê que os dados do cliente são preservados e estão presentes exatamente no mesmo estado em que estavam antes de o usuário os deixar.

A virtualização era necessária para permitir o uso eficiente do hardware. Especialmente para os operadores de data center em nuvem, a virtualização foi um benefício. Usando diferentes tipos de hipervisores, os fornecedores de nuvem usaram rapidamente a virtualização para gerar máquinas virtuais, comutadores virtuais, roteadores virtuais e outras instâncias virtuais de hardware.

Eles os integraram ainda mais para criar qualquer tipo de rede ou máquina, conforme exigido pelos clientes. Usando a virtualização, um operador de data center poderia estabelecer várias máquinas em vez de apenas uma.

E como a nuvem aluga seu poder de computação, o modelo de receita aumentou substancialmente alugando várias máquinas virtuais em vez de apenas uma única máquina física.

Também aumentou a capacidade de reutilização, pois a máquina virtual que não está sendo usada pode ser alugada a outros clientes. Portanto, a virtualização estava dominando e alterando as regras do data center.

Em vez de comprar um hardware inteiro por um custo substancial, os usuários corporativos estavam emprestando instâncias virtualizadas do hardware, reduzindo o custo de sua infraestrutura de TI.

Portanto, a virtualização estava dando todos os trancos e barrancos, no entanto, os operadores de data center enfrentaram um grande problema que interrompeu seu progresso significativamente e até reduziu sua receita a ponto de enfrentar perdas.

O grande problema que os operadores de data center não conseguiam visualizar era o gerenciamento! À medida que a virtualização evoluía e fornecia instâncias virtualizadas de praticamente qualquer hardware possível, surgia a dificuldade no processo de gerenciar essas multidões de hardware virtual.

Imagine como chefe de sua empresa, você desejaria 10 máquinas diferentes em diferentes locais e diferentes fusos horários. Você gostaria que cada um deles tivesse requisitos de hardware e software separados e também gostaria de acompanhar a quantidade de dados que entra e sai dela.

Como operador de data center, você respeita as demandas dos clientes e cria essas 10 máquinas virtuais. No entanto, imagine que, além de criar essas máquinas virtuais, você continua recebendo novas demandas por mais máquinas virtuais, cada uma com requisitos ainda mais complexos.

Como você gerenciaria tantas máquinas virtuais, cada uma com seu próprio conjunto complexo de requisitos e configurações? Além disso, você precisaria cobrar com precisão cada uma das máquinas virtuais alugadas. Suponha que o cliente tenha diferentes demandas de cobrança.

Para uma máquina que está sendo usada como servidor, o faturamento dependeria da quantidade de dados que estão sendo recebidos pela máquina. Para outra máquina, que atua como cliente, o faturamento seria feito na quantidade de tempo em que a máquina do cliente virtual é ligada.

E esses requisitos são para apenas uma pessoa. Como operador de data center, é necessário operar milhares e milhares de hardware virtual, cada um com suas próprias demandas de rede, hardware e software.

Uma interface de gerenciamento adequada era essencial para colocar a organização na confusão que estava se tornando o data center virtualizado. Em vez de usar linhas de comando e scripts extensivamente, era necessário um "sistema operacional de nuvem" bem construído para fornecer manutenção adequada ao data center. E é aí que o OpenStack entra em cena.

Cursos recomendados

  • Curso on-line sobre AJAX
  • Pacote de treinamento profissional de teste rápido
  • Curso Online sobre ExtJS
  • Pacote de treinamento CISSP

O que é o OpenStack?

Como mencionado no começo, o OpenStack é essencialmente um sistema operacional na nuvem. Por sistema operacional, entendemos uma plataforma de software livre e de código aberto para computação em nuvem. Começou em 2010 como um projeto conjunto da Rackspace Hosting e da NASA.

Inicialmente, foi iniciado o tratamento desse problema específico do data center, que era como gerenciar muitas máquinas virtuais. A partir daí, cresceu rapidamente para uma comunidade completa, com compromisso tecnológico e suporte de algumas das marcas mais famosas em Tecnologia da Informação, como Oracle, VMWare, Yahoo Inc. etc.

Atualmente, o OpenStack é apoiado pela OpenStack Foundation, uma entidade corporativa sem fins lucrativos criada em 2012. A sempre florescente comunidade OpenStack conseguiu lançar uma versão melhor do seu software OpenStack a cada seis meses em um ciclo de lançamento baseado em tempo, com marcos de desenvolvimento claros em cada de seus lançamentos.

Cada versão acrescentava mais costumes, passando de um simples software de gerenciamento de data center para uma sofisticada plataforma de software em nuvem.

Ele forneceu uma interface para gerenciar quase todos os aspectos de uma máquina virtual, desde a criação de máquinas virtuais sob demanda com o clique de um botão até a coleta de dados da rede, o OpenStack se ramificou extensivamente.

A cada ano, a cada dois anos, a comunidade se reúne para planejar novos recursos e suporte no OpenStack Design Summit, onde os planos de design da extensa comunidade OpenStack são revisados ​​e montados.

O OpenStack permite que os usuários montem e implantem máquinas virtuais com eficiência. Ele fornece algo chamado "interface gráfica do usuário" para acessar quase todas as funções exigidas pelo usuário final.

Voltando ao nosso exemplo anterior, você desejaria 10 máquinas, cada uma com seu próprio conjunto de requisitos. Com a interface de linha de comando anterior, teria sido muito complicado gerenciar tudo sozinho.

Com o OpenStack, tudo o que você precisa fazer é clicar em alguns botões e configurar sua máquina virtual de acordo. Portanto, suponha que se você deseja uma rede extensa e bem construída adequada, você pode gerenciar e ver sua rede de computadores em gráficos e estatísticas em tempo real.

Se você deseja recursos avançados, como análise de dados e suporte ao cluster HADOOP, pode até facilitar isso facilmente em sua máquina virtual. Outros recursos padrão, como armazenamento, CPU, memória e uso do núcleo, também podem ser facilmente configurados na interface gráfica do usuário apresentada pelo OpenStack.

Também é fornecido com o OpenStack o suporte à cobrança em tempo real, com o qual você pode acompanhar as estatísticas de todas as máquinas virtuais geradas usando o software. Inclui estatísticas em tempo real, como uso de memória, uso de disco, uso principal, etc.

Além disso, como o OpenStack é escrito principalmente na linguagem Python, ele também se beneficia dos scripts. Portanto, a automação do gerenciamento de milhares de máquinas virtuais também é resolvida. Você pode escrever um script para dizer, agendar a automação da máquina virtual quando ela deve ser ativada e quando ela deve ser desativada.

Ao automatizar dessa maneira, você pode criar uma plataforma de computação em nuvem muito bem construída e abrangente. E como o OpenStack é totalmente gratuito, qualquer pessoa pode usar o código-fonte para desenvolver e adicionar seus próprios recursos, completamente personalizados para atender às suas necessidades organizacionais ou pessoais. A HP fez isso lançando suas próprias versões da nuvem, chamadas HP Helion.

O OpenStack, sob a terminologia da nuvem, se enquadra na categoria Infraestrutura como um Serviço (IaaS), que significa o principal usado para ajudar a construir a infraestrutura na qual as máquinas virtuais seriam implantadas.

Essencialmente, facilita a geração de máquinas virtuais. É nessas máquinas virtuais ou "plataformas" que os clientes alugam, dependendo de seus requisitos.

Componentes básicos do OpenStack

O OpenStack se ramificou para ter muitos componentes diferentes, como sendo de código aberto, vários componentes podem ser adicionados e integrados ao software.

No entanto, no coração do software, existem apenas três componentes básicos do openstack:

  1. Componente de armazenamento:

O componente de armazenamento OpenStack consiste em Cinder e Swift. O objetivo principal do componente é armazenar os dados das máquinas virtuais geradas e operacionais.

  1. Componente de infraestrutura:

Caso contrário, chamado Nova Compute, esse componente é responsável por gerenciar todos os aspectos do gerenciamento e criação de uma máquina virtual. Isso inclui alocar o hardware necessário, interagir com os hipervisores e atuar como um nó central na interação com todos os outros componentes necessários para gerar máquinas virtuais.

  1. Serviços de imagem:

Também chamado de Glance, fornece serviços de busca e recuperação de imagens. O que basicamente faz é fornecer suporte para armazenar e gerenciar diferentes réplicas ou imagens de máquinas virtuais. Portanto, com base nos requisitos, qualquer tipo de imagem pode ser recuperada para o cliente.

Conclusão

O OpenStack, desde seu humilde começo como um software de código aberto para administração em nuvem, rapidamente se tornou uma grande comunidade de entusiastas da nuvem que fizeram o OpenStack se ramificar em diferentes áreas da nuvem.

No coração do OpenStack está a virtualização e os hipervisores, o que garante que o OpenStack como plataforma de gerenciamento possa utilizar o poder das máquinas virtuais.

Geralmente implantado como um sistema operacional para infraestrutura como serviço (IaaS), oferece uma opção mais fácil de gerenciar milhares de instâncias virtualizadas.

O futuro do OpenStack parece brilhante, agora com big data e outros aspectos mais recentes da tecnologia em nuvem integrados perfeitamente a ele. E com a comunidade cada vez maior, o Open Stack está pronto para crescer a uma taxa significativa.

Artigos recomendados

Aqui estão alguns artigos que ajudarão você a obter mais detalhes sobre o Open Stack vs Virtualization. Basta acessar o link.

  1. Melhor coisa para aprender Azure Paas vs Iaas
  2. Deseja saber sobre as perguntas da entrevista AJAX?
  3. Guia completo para Android e Open Source Security (SO)
  4. Mitos e conceitos errados sobre o software de código aberto
  5. Qual a melhor tecnologia? Computação em nuvem ou virtualização
  6. As 10 principais comparações úteis entre computação em nuvem e virtualização