quinta-feira, 27 de fevereiro de 2014

Tendências para ficar de olho!

Depois de ler o relatório "The 10 Most Important Technology Trends In Business Application Architecture Today", emitido pela empresa Forresterlistamos as principais tecnologias e ferramentas que você deveria "ficar de olho" em 2014.






Ao invés de repetir o que diz o referido relatório, selecionei os três principais pontos, nos quais vejo uma grande convergência de opiniões, para os quais vou mostrar as principais tecnologias e ferramentas que você deveria dar uma olhada.

Cloud deployments, PaaS e SaaS

Conforme já mencionamos aqui, a distribuição de aplicações em ambientes de nuvem e o Software As A Service são duas tendências muito fortes. Os principais motivos são:

  • O custo de manter uma aplicação constantemente atualizada em ambientes tradicionais;
  • O tempo de espera para entrega de solicitações de mudanças;
  • A flexibilidade de um ambiente baseado em CD (entrega contínua) / SaaS aumentam a competitividade das empresas.
O que você deveria olhar: 


  • OpenStack: um sistema operacional em nuvem que controla grandes pools de computação, armazenamento e recursos de rede ao longo de um datacenter, tudo gerenciado através de um painel que dá aos administradores o controle, enquanto permite aos seus usuários provisionar recursos através de uma interface web;
  • Provedores de PaaS e SaaS para nuvel: Rackspace, Heroku e AWS;
  • DevStack: um suíte para começar a desenvolver para nuvem, usando o OpenStack, que pode ser baixado e instalado em ambiente de desenvolvimento;
  • Cloudify: permite que as organizações implementem rapidamente, gerenciem e escalem aplicativos de nível empresarial existentes e novos em qualquer nuvem, sem alterações no código ou na arquitetura;

Mobile enabling services

As aplicações estão cada vez mais integrando o ambiente móvel à sua plataforma. É cada vez mais comum que os executivos e profissionais participem de reuniões, munidos de tablets, de onde podem consumir diversas informações. A ubiquidade dos dados corporativos vai se tornar uma realidade. E alguns obstáculos devem ser superados: 
  • As idiossincrasias das diversas plataformas móveis (iOS, Android, Windows Phone);
  • A falta de flexibilidade das plataformas corporativas, que "encapsulam" e modificam as tecnologias padrões, criando problemas para integrações de baixo acoplamento;
O que você deveria "introjectar": 

Elastic Computing e Bigdata

Elasic computing pode ser definida comoo grau em que um sistema é capaz de adaptar-se a carga de trabalho, através de mudanças de provisionamento e desprovisionamento de recursos, de forma autônoma, de modo que em cada ponto no tempo os recursos disponíveis correspondem a demanda atual, tanto quanto possível. Isto está relacionado com o conceito de "Cloud computing", sendo um dos seus fatores habilitadores.

Bigdata é definida como uma coleção de dados tão grande e com tantas diferenças de estrutura, que as plataformas convencionais, baseadas em clusters de bancos de dados, não conseguem lidar com eles. É preciso uma nova maneira de coletar, agregar ou consolidar, analisar e distribuir este tipo de dado.

As empresas, cada vez mais, querem saber e utilizar Bigdata em seus produtos e serviços, e, para isto, dependem da remoção de alguns obstáculos, como: 
  • Plataformas corporativas conservadoras;
  • Infraestrutura de TI própria e "amarrada";
  • Serviços de dados tradicionais;
O que você deveria "respirar": 
  • Sem dúvida, plataformas de EC, como o OpenStack;
  • Apache Hadoop: é um framework que permite a processamento distribuído de grandes conjuntos de dados através de clusters de computadores usando modelos de programação simples;
  • Ferramentas de virtualização e provisionamento automáticas: Jenkins (permite invocar sob demanda a criação de ambientes), Vagrant e Chef (implementam IaC - Infrastructure as Code);

O ambiente dos próximos anos

Sem dúvida será elástico e flexível. Mudanças de requisitos deverão ser implementadas em pouco tempo, o que pode ser feito através de extrema componentização, baseada em SaaS (componentes de negócio em nuvem). 

Modelos tradicionais de desenvolvimento, com ciclos de mais de 30 dias, estão fadados ao fracasso, e, para isso, é necessário ter uma infra de desenvolvimento integrada, usando Entrega Contínua, DevOps e arquitetura desacoplada

Plataformas tradicionais de desenvolvimento, com alta concentração tecnológica, como os ambientes Java EE  - "Container Centric", amarram as empresas, exigindo ciclos de desenvolvimento de meses e até anos, para implementar novos requisitos. 

Aproveite o carnaval para dar uma lida nessas coisas que eu recomendei. Acho que, entre uma cerveja e outra, você pode ter epifanias (não é vômito) e entender o que precisa mudar. A mudança sempre começa em você, e não no seu Diretor!