Eu não vou escrever mais um post dizendo que o OpenStack é uma plataforma de computação em nuvem Open Source, que é utilizada para criar nuvens públicas e privadas e sobre todos os seus componentes, pois já está na hora de avançar nesse assunto.
Vou procurar aqui, dar uma visão mais prática para que você entenda o que realmente essa incrível plataforma pode fazer pela sua empresa, tanto para a rede privada quanto para a construção de uma nuvem pública, caso sua empresa seja um provedor.
Resumindo isso tudo, o OpenStack é um software Open Source que você pode instalar em vários servidores e serve para agregar uma camada de orquestração (uma camada de gerenciamento através de interface web, API ou CLI).
Cada um desses servidores será responsável por um ou mais serviços do OpenStack, já que o mesmo é totalmente modular. Por exemplo:
Você pode fazer uma arquitetura com um controller, um network node e 1 ou mais compute nodes, nesse caso cada um desses servidores ficaria responsável por um ou mais serviços.
CONTROLLER
Serviço de mensageria: (ex: RabbitMq) que é responsável por administrar as filas de mensagens trocadas entre todos os serviços do OpenStack.
Banco de dados: (ex: MariaDB) onde estarão todas as bases de dados dos serviços do OpenStack (serviço de rede, imagens, computação, armazenamento de objetos, armazenamento de blocos, etc). Para cada um dos serviços que serão utilizados na sua nuvem precisará existir uma base de dados no serviço de DB do controller.
Você também pode instalar no controller alguns serviços que não requerem um node dedicado, como glance (serviço de imagens), Cinder (block storage), Ceilometer (telemetria), Heat (orquestração), etc. Mas você também pode instalar esses serviços em nodes dedicados, pois o OpenStack é como se fosse um quebra-cabeças, você instala os serviços e conecta um com o outro.
NETWORK NODE
Serviço de Rede: Neutron – Esse serviço pode ser instalado em um servidor separado (ou mais de um servidor configurados em HA), ele é responsável por fornecer os recursos de rede para a nuvem (interfaces, firewall, load balance, vpn, portas L2, etc).
COMPUTE NODES
Esses nodes são responsáveis por toda a parte de computação, ou seja, por hospedar as instâncias (máquinas virtuais). O serviço que gerencia as instâncias e interage com o hypervisor (que podem ser vários: KVM, XEN, VMWARE, HYPER-V, QEMU, etc…) é o Nova Compute.
Esses nodes podem ser adicionados à nuvem conforme a necessidade de recursos, assim sua nuvem se torna verticalmente escalável.
Vou dar um exemplo para tentar esclarecer melhor:
Digamos que você tenha uma nuvem com 2 compute nodes e cada um deles tem 128 MB de memória e 8 vcpu’s.
Se você criar 8 VM’s com 1 vcpu e 16MB de memória cada, você não terá mais recursos para criar outras máquinas virtuais, nesse caso basta você instalar o Linux em mais uma máquina física, instalar os pacotes do Nova Compute e configurá-lo para ser um compute node da sua nuvem. No momento que você inclui mais um compute node, os recursos dessa máquina ficam disponíveis para a nuvem criar outras VM’s que ficarão hospedadas nela.
Mas tem uma notícia boa, você pode instalar uma nuvem OpenStack em um Virtual Box para testar. Se quiser se aprofundar no assunto, eu criei um artigo explicando NESSE LINK.
Muitas pessoas pensam que por estarmos instalando uma nuvem em um pull de servidores, todos os recursos de memória e processamento serão somados transformando isso tudo em um grande computador com super recursos, mas não é bem assim que funciona.
Cada VM precisa ser criada em um determinado compute node, apesar de ser possível mapear a unidade de armazenamento para um storage onde podemos fazer backup.
Daí surge aquela pergunta: Então qual a vantagem de ter uma nuvem se cada instância vai ficar em apenas um compute node? Então basta eu instalar um hypervisor e criar a VM, certo?
Errado! O OpenStack dá a possibilidade de criar um load balance entre as instâncias, onde cada uma delas pode estar em um compute node diferente ou até em zonas de disponibilidades diferentes (outro rack, outro datacenter). E esse recurso de balanceamento é muito rápido de fazer pela interface web ou cli.
Também é possível integrar com o sistema de telemetria (Ceilometer) que identifica quando uma instância está com problema ou quando a demanda está maior do que os recursos disponíveis, então o Ceilometer envia um comando para que o Heat (orquestração) crie outra instância abaixo daquele load balance, que passa a responder por aquele serviço juntamente com as outras. Esse processo é chamado de Auto Scaling e pode ser repetido automaticamente, várias vezes, conforme a necessidade e configuração do usuário.
Além de tudo isso, o OpenStack oferece muitos outros serviços que podem ser ativados rapidamente através da Interface web, CLI ou API, como Firewall, VPN, Container, Object Storage, Block storage, DNS, Banco de dados, Big Data e muitos outros.
E COMO ISSO PODE AJUDAR A SUA EMPRESA?
Imagine que uma equipe de desenvolvimento precisa testar o software que está desenvolvendo. Em uma infraestrutura tradicional eles precisariam abrir um chamado para a equipe de infra, que, por sua vez, precisaria designar uma ou mais pessoas para instalar um servidor, disponibilizar os recursos e alinhar tudo isso com a equipe solicitante. Esse é um processo demorado, pois envolve muita burocracia, testes, homologação e outros processos que podem ser muito complexos.
No caso de uma estrutura em nuvem, toda essa criação de recursos pode ser feita pela própria equipe de desenvolvimento, já que terá a sua disposição uma interface web, que permite essa configuração com poucos cliques, ou eles ainda podem desenvolver uma ferramenta que conecte à API do OpenStack e crie um ambiente inteiro com VM’s, roteadores, redes, firewalls, bancos de dados com apenas 1 clique, reduzindo drasticamente o tempo e também o envolvimento de pessoal, o que torna o processo muito mais rápido e absurdamente mais barato.
E COMO ISSO PODE AJUDAR VOCÊ?
Com a necessidade cada vez maior das empresas em diminuírem seus custos e aumentarem sua produtividade, ferramentas como o OpenStack, container e Devops estão caindo como uma luva, pois proporcionam fazer muito mais e mais rápido com muito menos recursos.
Por esse motivo, as empresas menores estão migrando seus serviços para nuvens públicas, como AWS, Azure, Google Cloud e outras construídas com OpenStack. Já as empresas maiores, que preferem deixar seus dados “em casa”, estão construindo suas próprias nuvens. Da mesma forma, o OpenStack está possibilitando uma prestação de serviço de computação muito melhor e mais barata para os provedores do Brasil e do mundo.
Porém, as empresas do mundo inteiro reclamam da grande dificuldade em encontrar profissionais que as ajudem a dar esse passo rumo à infraestrutura ágil.
Eu percebi isso com mais clareza em algumas entrevistas realizadas com líderes do mercado brasileiro no OpenStack Day São Paulo 2016, onde todos foram unânimes em afirmar que existem oportunidades abertas para profissionais na área e a dificuldade em encontrá-los está travando muitos projetos de nuvens públicas e privadas.
Veja o que eles disseram:
Antônio Navarro – IBM: “A gente vê padrões como OpenStack, por exemplo, como um elemento chave para a TI do futuro. A IBM hoje, ela abraça de forma muito forte padrões abertos, padrões como OpenStack para cloud. A IBM hoje é um dos maiores contribuidores para o OpenStack. A adoção de cloud híbrida e de padrões para que você implemente uma cloud dentro da sua casa é realidade total para Brasil e para o Mundo.”
Roosevelt Nascimento Junior – UOL: “O principal desafio na adoção da nuvem OpenStack foi encontrar pessoas qualificadas no mercado. Nós tivemos a sorte de encontrar a Dualtec que nos apoiou nessa jornada para o OpenStack”.
Richard Hager – Nubeliu: “A gente sabe que existe uma carência muito grande de profissionais com esses conhecimentos no mercado”.
José valente – Agility: “Estamos buscando profissionais, então estamos abertos, se alguém quiser indicar ou enviar currículo, estamos à disposição.”
Enfim, o OpenStack é considerado um sistema operacional da nuvem e está tendo um crescimento exponencial, podendo ser comparado com o crescimento da comunidade Linux logo após o seu surgimento.
Mas assim como aconteceu com o Linux, os profissionais que se capacitaram no início tiveram grandes oportunidades e assumiram grandes projetos com aquela tecnologia inovadora que tirava os ambientes de tecnologia das limitações do Windows e hoje, saber Linux é uma exigência básica de qualquer oportunidade ou vaga de trabalho.
Da mesma forma, o profissional que se capacitar em OpenStack agora no início terá oportunidades nas maiores empresas do Brasil e isso pode representar um salto quântico na sua carreira.
Se você quiser se aprofundar mais no assunto e entender melhor os benefícios e funcionamento do OpenStack eu ministro, uma ou duas vezes no ano, um Workshop Online de OpenStack. As inscrições são gratuitas e você pode se inscrever CLICANDO AQUI.
6 Comentários
Deixar a Infraestrutura na mão de qualquer área, sem uma sistema de rateio do custo, é jogar dinheiro no lixo. Ainda mais perigoso é criar ambientes sem os devidos testes e homologação. As áreas tem que seguir cronogramas de projetos bem desenhados e alinhados com a TI, pois assim tanto a TI se prepara pra entregar os recursos, como as áreas usarão os recursos com segurança, pois foram homologados. Isso não significa que 10 analistas vão passar dias trabalhando, a liberação do ambiente pode ser feita num clique seja lá qual for a solução, mas precisa de controle e formalização de custo por demanda.
É isso aí Jensen. Obrigado pela contribuição.
Essa é uma questão muito importante, e para isso o OpenStack tem o projeto Ceilometer que faz a telemetria da plataforma e também esse rateio de custos entre as áreas.
Parabens Sandro, otimo artigo e salvou minha vida!
Vou começar a estudar agora o OpenStack.
Forte abraço
Boa tarde Sandro.
Fiquei muito interessado no OpenStack e surgiu uma duvida se conseguiria somar esses recursos computacionais gerenciados por ele e criar uma VM.
Por exemplo, tenho 6 nodes com 4vcpu cada e 4gb de RAM cada, e, a partir disso, criar 02 VM com 12vcpu cada, no conceito de cluster hpc.
Mas como voce falou acima nao teria como.
Apos pesquisar no site da comunidade OpenStack e encontrei uma ferramenta desenvolvida pela comunidade que a principio conseguiria criar clusters a partir dos recursos existentes no Openstack. Vc conhece essa ferramenta?
Olá Sandro,
Parabens pelo post e achei super interessante.
Para quem quer entrar no mundo openstack quais certificações você aconselha tirar?
Cptos,
AC
Eu preciso fazer um pool para computação HPC, quero ligar vários computadores num pool para usar os recursos de todos numa única VM, somando todos os processadores, memórias, etc… Tem algum recurso que possibilite fazer isso?