Tecnologia e Conhecimento

tecnologia, esporte, computação, livros, pensamentos, opiniões... 
« Back to blog

Menos é Mais - Hospedagem de Aplicações

Dando continuidade ao post anterior, vou falar um pouco sobre escalabilidade de aplicações, cloud computing, Rails, SaaS e a tendência minimalista dos novos tempos.

Até dois anos atrás ninguém discordaria de que um projeto de software que tivesse a expectativa de um alto volume de acessos ao mês (e aí estou me referindo aos milhões) deveria ser construído numa arquitetura de software robusta, distribuída, obedecendo a padrões bem estabelecidos. Na verdade, acho que hoje ainda todos concordam com isso. Mas uma coisa parece estar mudando fundamentalmente. 

Onde antes havia uma grande preocupação com a plataforma de desenvolvimento, framework de persistência, inversão de controle, distribuição de transações e dados, especificações de arquitetura, serviços e infinitos padrões de projetoagora vemos investimentos para garantir disponibilidade e tempo de resposta direcionados para o software básico, ou seja, sistemas operacionais, bancos de dados, balanceamento de carga, virtualização. As aplicações começam a ser desenvolvidas com foco apenas na aplicação em si (uau!), com o mínimo de camadas, o mínimo de código ortogonal.

O mesmo acontece no mundo do Ruby. O Rails, o framework MVC mais conhecido na plataforma Ruby, não tem NADA que faça alusão a distribuição de objetos da aplicação, padrões de projeto complexos, especificações rígidas. Ao contrário, é tudo muito simples, minimalista, baseado em convenções. Construa sua aplicação como se fosse executá-la apenas para você. Depois, se precisar escalar, basta fazer o deploy num ambiente com estrutura mais robusta em termos de hardware ou cluster e até mesmo nuvem. Há uma série de 13 screencasts produzida pela New Relic tratando somente sobre escalabilidade de aplicações em Rails. Veja por si só o que estou dizendo.

O Google App Engine é o ambiente de computação em nuvem do Google, lançado para concorrer com o Amazon Web Services. O App Engine tem um SDK (Software Development Kit) baseado em Python com o qual se pode desenvolver as aplicações e hospedá-las na infra-estrutura oferecida pelo serviço. O SDK fornece algumas classes básicas para persistência com tratamento de transações. A persistência é feita num datastore do próprio Google. O importante é que quem desenvolve a aplicação não precisa se preocupar com interfaces remotas, filtros, múltiplas camadas de negócio, etc. Apenas codifique sua aplicação como se fosse standalone. Quando fizer o deploy, poderá escalar conforme a necessidade, sem precisar mexer na aplicação.

Parece que o ciclo de gato e rato da corrida entre software e hardware está na fase do hardware na frente, onde o agrupamento de processadores está dando o tom da música do processamento corporativo de alto desempenho. Obviamente, hardware sem software é apenas silício e cobre, então o suporte a vitualização e clustering em sistemas operacionais e servidores de aplicação, além da combinação de estratégias de cache e balanceamento de carga, tem tornado possível o acesso de pequenas empresas a uma estrutura robusta e barata sem a necessidade de grandes conhecimentos técnicos por parte da equipe de desenvolvimento. Menos custo, menos tempo, menos código, menos treinamento, menos manutenção...

Loading mentions Retweet

Comments (1)

Leave a comment...

 
Got an account with one of these? Login here, or just enter your comment below.
Posterous-login    Connect    twitter