Vivendo no cloud: a infraestrutura externa da Caelum em 11 soluções

Há muito tempo que falamos de cloud computing na Caelum, para minimizar a necessidade de infraestrutura própria e especializada. Mas, mais que falar, a Caelum como empresa aprendeu ao longo dos últimos anos a usar serviços disponíveis na nuvem para as mais diversas tarefas. Somos clientes de diversas soluções SaaS, PaaS e IaaS. Muitos nos perguntam que serviços utilizamos e com que finalidade. Esse post é um guia rápido com 11 soluções de cloud computing que usamos na Caelum.

1 ♦ Google AppEngine: rodar aplicações Java e Python na infra do Google

O site da Caelum roda na plataforma do Google desde Setembro de 2009. Hoje temos outras iniciativas por lá inclusive em outras linguagens. Já publicamos um passo-a-passo sobre o GAE, como usar Ruby no AppEngine, e até uma palestra no QConSP sobre essa nossa experiência, com pontos positivos, negativos e as dificuldades que passamos dada as restrições do ambiente.

2 ♦ Amazon EC2: infra elástica com virtualização

Rodamos o TeamCity e o Hudson para integração contínua de um projeto interno grande que executa testes em paralelo em diversas instâncias do EC2. Atualmente, estamos estudando usar a Amazon para eliminar um repositório local dos nossos pacotes deb customizados. Colocar nossos sites e aplicações aqui seria uma outra opção (e de facílima migração, diferente de portar uma aplicação para o GAE que exige bastante esforço), mas sendo infraestrutura como serviço, ficaríamos responsáveis por toda a configuração e manipulação de máquinas, não oferecendo a mesma facilidade do GAE.

3 ♦ Heroku: PaaS para rodar aplicações Ruby

Construído em cima do Amazon EC2, o Heroku é considerado o “AppEngine do Ruby”. Rodamos uma aplicação interna de controle de turmas desenvolvida pela Caelum Rio.

4 ♦ GitHub: repositórios de código em Git

Antigamente, tínhamos um servidor SVN interno na Caelum (e, antes, um CVS). Em 2009, começamos a migrar para Git quando conhecemos o GitHub. Desde maio de 2009 somos clientes do GitHub tanto em projetos opensource com 57 repositórios públicos, tais como os do VRaptor ou do Restfulie, quanto em todos os projetos internos da empresa em mais de 40 respositórios privados.

5 ♦ Pivotal Tracker: gerenciamento de backlog para projetos ágeis

Que a Caelum é forte adepta de Metodologias Ágeis não é novidade. Mas para gerenciar as dezenas de projetos ágeis da empresa, precisamos de uma ferramente simples e poderosa. O Pivotal nos permite gerenciar backlogs, sprints, estimativas, gerar gráficos, simular o kanban e muito mais. O serviço se tornará pago.

6 ♦ Mailchimp: gerenciamento e envio de Newsletters

A Caelum envia periodicamente uma newsletter com notícias de Java, Ruby, Arquitetura e Agile para milhares de interessados que se cadastraram. Usando o Mailchimp desde Abril de 2009, ganhamos agilidade no envio dos e-mails, sem preocupação com bloqueio de provedores, sobrecarga da máquina, gerenciamento de unsubscribes, e-mails que voltam e ainda obter estatísticas detalhadas.

7 ♦ Dropbox: compartilhamento e backup de arquivos

Nos permite a sincronização de arquivos e documentos de forma simples entre as unidades da Caelum em SP, Rio e Brasília, nosso designer em Goiânia e a qualquer momento em todos os lugares. Substituiu um antigo compartilhamento de rede local Samba/Windows, inviável para controlar arquivos e documentos dos mais de 80 colaboradores nas 3 unidades.

8 ♦ Google Apps (GMail, Docs): suíte de aplicativos Google para seu domínio

Todos os nossos e-mails @caelum.com.br estão no Gmail corporativo oferecido pelo Google Apps for Business. Usamos ainda Google Docs para diversos documentos da empresa e Google Talk para comunicação interna.

9 ♦ Vimeo: publicação de vídeos

Divulgamos palestras, screencasts e outros vídeos pela conta oficial da Caelum no Vimeo. Vários posts aqui do blog usam o Vimeo como host dos vídeos, como o recente Screencast da migração de Rails 2 para 3.

10 ♦ SlideShare: publicação de slides

Embora diversos instutores usassem há bastante tempo o SlideShare para compartilhar suas apresentações, a Caelum começou em setembro a divulgar em uma conta própria e centralizada as palestras que dá nos diversos eventos que participa.

11 ♦ WPEngine: hospedagem segura e escalável de WordPress

Mantemos o blog desde 2006, mas sempre com problemas em gerenciar a máquina, updates manuais e, pior, momentos de instabilidade em picos de acesso (em especial quando enviamos nossa newsletter). Último serviço contratado pela Caelum, o WPEngine trouxe escalabilidade e tranquilidade para o gerencimento do Blog da Caelum.

Conclusão

Usar soluções de cloud computing é, além de um bonito buzzword de marketing, essencial para a Caelum: a tranquilidade, facilidade e economia de custos que essas soluções trazem são uma grande vantagem, além de eliminar a necessidade de pequenos servidores internos.

O uptime de nosso site melhorou bastante desde o AppEngine, os problemas de infra (hd queimados, atualização de software, mudança de permissões, criação de usuários, etc) se tornaram irrelevantes desde o EC2, Dropbox e Github, a escalabilidade do nosso blog vai ser resolvida com o WPEngine, e não precisamos gastar tempo (e dinheiro) desenvolvendo soluções que Mailchimp, Pivotal e outros nos trazem.

E você, quais serviços de cloud usa em sua empresa? Que parte ainda não está no cloud que gostaria de colocar?

19 Comentários

  1. Bruno Laturner 03/02/2011 at 11:30 #

    Ótimo artigo Sérgio!

    Dá até para tirar uma palestra ou lightning talk contando mais sobre as suas experiências, ganhos e dificuldades, mas não indo tão em específico quanto a palestra do AppEngine.

  2. Bruno Laturner 03/02/2011 at 11:35 #

    Só uma pergunta, com o Pìvotal se tornando pago em julho, e com os planos propostos por eles, ainda vale a pena?

  3. Bruno Alvares da Costa 03/02/2011 at 11:58 #

    Aqui na Cocento utilizamos no cloud o
    GitHub repositórios privados e publicos
    Google Apps (GMail, Docs)
    Vimeo
    Flickr para fotos e eventos da empresa

    não cloud mas pretendemos colocar no futuro
    Servidor de Integração contínua Hudson
    Servidor de testes integrados

  4. Sérgio Lopes 03/02/2011 at 13:29 #

    Com o Pivotal gratuito, a gente acabou abusando e criando zilhões de projects lá pra um monte de coisas. Certamente não vale a pena agora pagar para tudo, mas talvez sim para projetos mais importantes e complicados.

    Mas estamos observando outras alternativas. Alguns projetos nossos aqui que não tem o conceito de Sprint muito bem definido foram migrados pros Issues do GitHub mesmo (só precisamos de um backlog central, com priorização e controle de pronto).

    Para os demais, estamos vendo outras alternativas. Temos o Calopsita também que é uma alternativa bastante viável.

  5. Diego Oliveira 03/02/2011 at 13:59 #

    Gostaria de saber como vocês lidam com a questão da segurança da informação. Porque veja bem, uma das questões primordiais que fazem com que a empresa aonde eu trabalho evite a nuvem é a segurança. A empresa chega a ser paranoica com segurança (muitas vezes sem necessidade).

    Queria ver um post sobre segurança na nuvem.

  6. Sérgio Lopes 03/02/2011 at 15:00 #

    Oi Diego, imagino que há dois aspectos principais relacionados à segurança: 1) deixar suas informações na mão de terceiros; 2) impedir que hackers acessem suas informações. Em ambos os casos, vejo o cloud como a melhor solução possível.

    1) Escolhendo provedores de cloud confiáveis com políticas de privacidade claras e eficazes, você estará certo que seus dados estarão em boas mãos. Se duvidar, até mais que ter dentro da empresa :)

    2) Com sua infra na mão dos provedores de cloud, com equipes especializadas em segurança, redes, com atualizações constantes etc, a chance de você ser atacado por hackers é infinitamente menor que em soluções caseiras.

    Por fim, para nós, na maioria dos cenários, a segurança no cloud é maior. Se levar em conta até coisas como política de backups e restauração, o cloud então é imbatível.

  7. Lucas Teixeira 24/02/2011 at 10:59 #

    Oi Sérgio, tudo certo?

    Escalar no EC2 é muito fácil sim! Com uma imagem de máquina personalizada pela Caelum (ou até com uma das muitas disponíveis), dá pra escalar baseado em dezenas e dezenas de condições.

    Dá pra triggar um evento de “opa, sobe mais uma máquina!” baseado no tempo de resposta dos servidores (latência), no uso de CPU, no uso de IO, entrada e saida de dados das máquinas, etc.

    Enfim, basta que sua instância seja adicionada em um grupo do AutoScaling, depois disso é só alegria :)

    Parabéns pelo post!

    Abraço!

  8. Kan Ishigami 24/02/2011 at 11:09 #

    Muito obrigado por compartilhar estas informações. Por coincidência estava pesquisando uma solução mais “parruda” para hospedar um site desenvolvido em WP e com picos de alta visitação.

    Vou experimentar esse WPEngine.

    Mais uma vez obrigado pelas dicas e parabéns pela Newsletter, tá bem bacana.

  9. Rodrigo Aguas 24/02/2011 at 11:17 #

    Olá Sérgio, parabéns pelo artigo, ótimas dicas!

    Uma opção ao Pivotal é uma iniciativa recente de uma empresa brasileira, o ScrumHalf, na nossa equipe ele é utilizado e funciona muito bem, fora ver constante aprimoramento.

    Abraços.

  10. Raphael 24/02/2011 at 11:22 #

    e as soluções brasileiras de cloud computing: locaweb, tecla internet e uol host, nãu usam nenhuma?

  11. Sérgio Lopes 24/02/2011 at 13:06 #

    @lucastex

    Pois é, colocaram isso na revisão do post hahaha. A gente tava até discutindo o AutoScalling lá no GUJ sobre o BeanStalk né! Corrigi o post, valeu

    @Kan

    Estamos bem satisfeitos com o WPEngine viu. Já está no ar há algum tempo e só temos o que elogiar! Recomendo.

    @Rodrigo

    Valeu pela indicação! Outra opção (bem mais simples) que temos usado em alguns projetos aqui são as Issues no GitHub mesmo. Até tem funcionado bem…

    @Raphael

    Fomos um dos primeiros a usar a nova plataforma de cloud da Locaweb, ao desenvolver o projeto WebChat em parceria com eles. Excelente plataforma! Mas como não usamos na infra da Caelum, não citei. Aliás, ultimamente temos privilegiado soluções PaaS e SaaS por ser mais fácil de gerenciar.

  12. Paulo Silveira 24/02/2011 at 15:40 #

    oi @sergio e @lucastex, fui eu que tinha colocado aquela frase sobre o EC2. o que queria dizer é que seria um pouco mais trabalhoso do que qualquer PaaS como o GAE, que ja esta redondo e voce nem tem que chamar api nenhuma para subir outra maquina, mas obviamente é muito mais facil do que voce tentar escalar na sua propria infra de servidores dedicados.

  13. moacir 01/03/2011 at 19:37 #

    Muito legal
    Na empresa onde trabalho estamos migrando um projeto java para o Cloud da Locaweb.

    Até porque estamos com problemas sérios de estouro de memoria no plano java básico deles.

    O que mais gostei foi a liberdade de configurar, como você quiser os servidores. Na realidades eles nos deram um Ubuntu Server 0 Km e “vai garoto..configura!”.

    Logo o Cliente ja começa a usar e eu posto aqui o resultado.

    Valeu!

  14. Osni Oliveira 06/04/2011 at 16:52 #

    Como vocês tratam a questão do backup dos serviços? Não estou falando de backup de arquivos, mas questões como indisponibilidade dos serviços ou de conexão Internet e as contingências necessárias nesses casos. Grande parte dos serviços citados não funciona de maneira offline com sincronismo posterior, e a colaboração em tempo real pode ficar comprometida em alguma eventualidade, não?

  15. Sérgio Lopes 06/04/2011 at 18:42 #

    Oi Osni!

    Realmente você fica dependente da disponibilidade do seu provedor de cloud. Mas é justo aí que está a vantagem. Esses caras (Google, Amazon etc) são provavelmente bem melhores que a gente em gerenciar infraestrutura e disponibilidade. No AppEngine, por exemplo, com certeza temos hoje um uptime maior do que quando gerenciávamos a nossa própria infra.

    Então, respondendo mais diretamente a sua pergunta, nossa estratégia é confiar no provedor e não ter redundância ou contingência para quando ele estiver fora. Na nossa experiência, isso é mais raro do que quando gerenciávamos toda a infra. Mas, claro, nada tem 100% de uptime.

    Abraços

  16. Oziel Alves Cavalcante 17/06/2011 at 11:18 #

    Mal comecei a me divertir com o Pivotal e ele vira pago. Me indicaram o Redmine. Alguém aí sabe se ele é de fato equivalente?
    Vou também dar uma olhada nesse ScrumHalf que o Rodrigo Aguas indicou.

Deixe uma resposta