Cloud Computing

Ξ 2 comentários

Ruby, a linguagem do mundo Cloud

publicado por Fabio Akita
Ruby, a linguagem do mundo CloudRuby on Rails é definitivamente o primeiro motivo para qualquer novo programador se interessar por Ruby. É um framework muito estável que conquistou uma posição de destaque. Atualmente criou-se um ecossistema que expandiu além do framework e gerou uma coleção de bibliotecas, ferramentas e serviços. O pacote básico oferece muito: desde um excelente suporte a MVC-Web. O sistema de roteamento ainda é excepcional mesmo comparado a outros frameworks. Apesar de controverso o ORM ActiveRecord evoluiu e se tornou muito estável. Novos patterns de organização como PresentersService Objects,Concerns surgiram para facilitar aplicativos maiores. Pacotes como MinitestRSpecFactory GirlFabricator e outros continuam a tornar os testes mais e mais completos. Também controverso o Asset Pipeline faz o que todo framework deveria fazer como básico: minificar e otimizar assets.O mundo front-end evoluiu além do JQuery. É trivial integrar os novos frameworks como BackboneAngularEmber. O mundo de CSS também evoluiu além do Sass, temos facilmente integrado Twitter Bootstrap, Foundation e outros. E o mundo de templates evoluiu além do ERB e HAML com exemplos como Slim. Enfim, existem opções simples para todos os gostos.

E para facilitar a vida durante o desenvolvimento temos servicos como CodeClimate para análise estática de código, Travis-CI para integração contínua. New Relic continua sendo uma opções completa e robusta de monitoramento em produção e melhoria contínua.E se quisermos explorar além do básico ainda temos o mundo de NoSQL, Mongoid é a melhor opção para MongoDB. O melhor sistema de execução de tarefas assíncronas é o Sidekiq, que usa Redis. Integrar cache com Memcached chega a ser trivial. E tudo isso numa arquitetura que continua se mantendo “shared nothing”, garantindo nossa opções de escalabilidade horizontal.

E se o Ruby MRI não é mais suficiente, sempre temos a opção de usar JRuby e ganhar alta performance com poucas (ou às vezes nenhuma) mudança de código. E com isso temos diversas opções de servidores de aplicação com UnicornPassenger e Puma.

Mais do que isso, depois que o tema “assíncrono” ficou na moda por causa de node.js, surgiram diversos serviços que solucionam todos os use cases. Não há mais necessidade de se preocupar com comunicação assíncrona com serviços como PusherPubNub e diversos outros.

O stack está bastante completo, é uma combinação muito difícil de equiparar. E além disso o mundo Ruby está evoluindo para outras direções. Uma constatação importante: hoje o mundo está se movendo para a virtualização de servidores e automação de infraestrutura. O primeiro grande exemplo e ainda a melhor opção da categoria que ficou conhecida como IaaS (Infrastructure as a Service) é Amazon Web Services (AWS) EC2. Temos outros como Rackspace Cloud, Digital Ocean e no mundo não-open source temos Microsoft Azure.

Mas nós do mundo Ruby usamos uma categoria acima faz alguns anos: o chamado PaaS (Platform as a Service). A opção mais conhecida é sem dúvida o Heroku onde com um mero “git push” fazemos deployment em quantos servidores quisermos. Além dele ainda temos o Engine Yard Cloud. Agora outra coisa interessante, dentre as maiores opções temos ainda os recém-chegados RedHat OpenShiftVMWare Cloud Foundry, até certo ponto também o Microsoft Azure, a própria Amazon com o AWS Elastic BeanstalkAWS Opsworks, e o Google com uma opção mais restrita que é o Google App Engine. Existem outros mas vamos ficar com esses mais conhecidos, 7 opções e delas 5 utilizam ferramental e tecnologias Ruby.

O mundo Ruby está evoluindo isso faz algum tempo, começando com ferramentas de automação de infraestrutura que tentam tratar o mundo de hardware como se fosse software e nessa categoria temos PuppetChef. Sobre esse ferramental, novas tecnologias como Bosh foram criadas. Essas tecnologias permitiram Heroku, Engine Yard, OpenShift, Cloud Foundry, e o próprio AWS OpsWorks (que é uma interface Web sobre Chef).

Essa evolução no mundo de ferramental de Cloud retorna ao mundo de desenvolvimento mesmo no desktop com ferramentas como Vagrant, que automatiza a montagem do seu ambiente de desenvolvimento. Integrado com ferramentas como o Chef e facilitadores como Berkshelf, temos uma enorme biblioteca para montar ambiente complicados, podemos inclusive configurar rapidamente um ambiente inteiro Cloud Foundry sobre Vagrant.

O que quero dizer com isso? O mundo Cloud não está chegando: ele já está aqui. O ecossistema Ruby colaborou muito no bootstrap do novo mundo Front-end, influenciando práticas, tecnologias e agora faz o mesmo no mundo Back-end, diretamente no motor do Cloud. Além disso o ecossistema permeia hoje todas as etapas de uma solução completa: front-end, back-end, infraestrutura, além de Java, poucos ecossistemas são tão verticais.

Dicas? Comece a estudar ecossistemas como Chef e evoluções de ferramentas como Vagrant. Saber Rails, saber fazer testes automatizados, saber fazer front-end com pipeline automatizado, já pode ser considerado o básico.

[Crédito da Imagem: Cloud – ShutterStock]

Autor

Codeminer 42 co-founder Brazilian Ruby Activist RubyConf Brazil Program Chairman Software Craftsmanship Evangelist Tech Speaker in many conferences LinkedIn: br.linkedin.com/in/akitaonrails

Fabio Akita

Comentários

2 Comments

  • Este artigo veio para nós deixar por dentro de tudo é demais. OK?

  • Gostei do artigo e da parte que me toca, as empresas de PaaS.
    Minha contribuição é informar a existência da Getup Cloud, uma PaaS brasileira baseada em OpenShift.
    Ainda pequena, mas sua relevância está em termos uma empresa nacional entrando neste mercado e sendo uma opção por essas bandas, afinal todas as citadas estão lá fora.
    Abraço

You must be logged in to post a comment.

Busca

Patrocínio

Publicidade



Siga-nos!

Newsletter: Inscreva-se

Para se inscrever em nossa newsletter preencha o formulário.

Artigos Recentes