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
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:
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.
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.
Tela de início da Máquina Virtual OpenShift |
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.
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..
ResponderExcluirApplication migration to cloud