terça-feira, 15 de outubro de 2013

Openshift origin: sua nuvem privada

Como todos já sabem, o OpenShift têm evoluído cada vez mais e mais pessoas estão utilizando o serviço para desenvolvimento de aplicações na nuvem. Inclusive há histórias bem interessantes sobre aplicações e startups sobre OpenShift. Caso queiram conhecer alguns cases de sucesso, vocês podem  algumas delas através da página:

Mas para algumas startups, o maior caso de sucesso não é a aplicação hospedada no OpenShift e sim a infraestrutura da nuvem! Sim amigos, há startups que oferecem o serviço na nuvem assim como a Red Hat e a Google: trata-se de uma startup brasileira chamada getup (http://www.getupcloud.com). A startup oferece um serviço de hospedagem e PaaS exatamente como o OpenShift faz, porém com algumas vantagens para os desenvolvedores brazucas, como:
  • Infraestrutura totalmente feita no Brasil (seu ambiente foi construído no ambiente AWS assim como o OpenShift Online mas usando o datacenter de São Paulo)
  • O suporte é em Português (assim como no OpenShift Online, porém o plano pago do OpenShift ainda será lançado)
  • Acompanha todas as atualizações do OpenShift
Portanto, como devem ter percebido, o OpenShift é um projeto Open Source assim como todos os outros projetos que a Red Hat mantém. Por isso, é possível ter acesso ao código dele bem como é possível configurar uma nuvem privada dentro de sua própria empresa/startup/casa.
Tentarei nas próximas seções explicar as formas de como ter um ambiente OpenShift rodando em seu ambiente particular. Nota: Caso queira conhecer um pouco sobre a arquitetura interna do Openshift, basta ler essa página: http://aprendendo-cloud-computing.blogspot.com.br/p/aqruitetura-do-openshift.html

Antes, um aviso...

Após a Red Hat anunciar a sua versão On-Premise (ou seja, OpenShift rodando em redes privadas corporativas), houve a necessidade de separar as diferentes áreas para dar foco total aos engenheiros na inovação e produtização do OpenShift. Temos o OpenShift Online que é o serviço de hospedagem da comunidade acessível pelo endereço http://openshift.com e também com uma conta paga você terá acesso a mais recursos computacionais, o OpenShift Origin é o projeto Open Source da Red Hat e por fim temos o produto da Red Hat para empresas que é o OpenShift Enterprise. Abaixo você pode observar melhor a relação entre esses projetos:
Projetos OpenShift

Configurando o ambiente OpenShift

Esse é o jeito mais complexo de se construir  um ambiente pois você irá configurar cada componente em questão e portanto leva-se muito tempo para isso. No entanto, é a melhor forma de estudar a arquitetura do OpenShift e isso será fundamental para caso você tenha problemas com o ambiente que está configurando.
Para isso, siga o Deployment Guide na página do OpenShift: http://openshift.github.io/documentation/oo_deployment_guide_comprehensive.html

Automatizando a configuração com Puppet

Claro que é muito bacana seguir os passos para fazer o deployment para compreender como cada componente se encaixa (acredito, eu acho isso melhor que quebra-cabeças), mas em um ambiente como o próprio OpenShift Online (o serviço PaaS público da Red Hat), torna-se inviável provisionar servidores para comportar a carga sem ao menos ter uma forma de automatizar a instalação/configuração. Pensando nisso, a equipe da comunidade criou alguns scripts em puppet para provisionar de forma automatizada. Inclusive, é possível provisionar um ambiente completo OpenShift em um servidor (o famoso all-in-one) ou configurar alguns componentes somente no servidor. O site do OpenShift tem um Puppet Deployment Guide para isso e caso queira é só seguir: http://openshift.github.io/documentation/oo_deployment_guide_puppet.html
Abaixo uma classe Puppet para provisionamento do OpenShift all-in-one:
  class { 'openshift_origin' :
      #The DNS resolvable hostname of this host
      node_fqdn                  => "broker.example.com",

      #The domain under which application should be created. Eg: <app>-<namespace>.example.com
      cloud_domain               => 'example.com',

      #Upstream DNS server.
      dns_servers                => ['8.8.8.8'],

      enable_network_services    => true,
      configure_firewall         => true,
      configure_ntp              => true,

      #Configure the required services
      configure_activemq         => true,
      configure_mongodb          => true,
      configure_named            => true,
      configure_avahi            => false,
      configure_broker           => true,
      configure_node             => true,

      #Enable development mode for more verbose logs
      development_mode           => true,

      #Update the nameserver on this host to point at Bind server
      update_network_dns_servers => true,

      #Use the nsupdate broker plugin to register application
      broker_dns_plugin          => 'nsupdate',

      #If installing from a local build, specify the path for Origin RPMs
      #install_repo               => 'file:///root/origin-rpms',

      #If using BIND, let the broker know what TSIG key to use
      named_tsig_priv_key         => '<tsig key>',

      #If using an external ethernet device other than eth0
      #eth_device                 => '<ethernet device name, eg: enp0s5>',

      #If using with GDM, or have users with UID 500 or greater, add to this list
      #os_unmanaged_users         => ['gdm'],

      #If using the stable version instead of the nightly
      #install_repo               => 'release',
      #dependencies_repo          => 'release',
    }

Download das Máquinas Virtuais (o famoso Lazy Mode)

Se vocês forem como eu, então procurarão pela maneira mais fácil. =D Trata-se simplemente se um repositório onde há diversos arquivos de Máquinas Virtuais já instalados e configurados com OpenShift e é só importar para o Hypervisor de sua preferência. Assim, você terá o mínimo de esforço necessário para rodar o OpenShift localmente em sua máquina/servidor.
Tela de início da Máquina Virtual OpenShift
Você pode encontrar mais informações no Virtual Machine Deployment Guide: http://openshift.github.io/documentation/oo_deployment_guide_vm.html
Bom, por ora é isso. Quem tiver dúvidas ou teve problemas com alguns dos métodos para provisionar seu próprio ambiente OpenShift, podem postar um comentário. Até a próxima.

Um comentário:

  1. Somebody necessarily help to make severely posts I might state. This is the first time I frequented your website page and to this point? I surprised with the research you made to create this particular post extraordinary. Well done admin..

    Application migration to cloud

    ResponderExcluir