Fernando Correia

Desenvolver para a nuvem é diferente

In Conceitos on 12 fev 2013 at 16:46

Ao longo das últimas décadas, milhões de profissionais adquiriram os conhecimentos e competências necessários para desenvolver produtos de software para uso interno em empresas e outras organizações.

Tecnologias como bancos de dados relacionais, arquitetura em camadas, servidores de aplicativo e servidores web têm sido aplicadas. Processos de desenvolvimento foram concebidos e aperfeiçoados para diminuir riscos e facilitar o atendimento dos requisitos dentro de custos e prazos aceitáveis.

Desenvolver novos produtos de software nunca é simples, mas os desafios deste tipo de desenvolvimento para uso interno são conhecidos pelos profissionais, bem como as técnicas necessárias para atingir o objetivo.

Estamos agora passando por uma fase de transição, em que cada vez mais empresas de software enxergam oportunidades de desenvolver software não mais para ser instalado internamente, mas na nuvem. Estas empresas estão criando uma nova categoria de aplicações – o software como serviço – que tira proveito dos benefícios econômicos do uso sob demanda de recursos de computação oferecidos em grande escala.

Esta nova categoria de aplicações apresenta requisitos como:

  • Escalar para atender dezenas de milhares, ou até milhões, de usuários.
  • Usar recursos de forma elástica, aumentando o consumo de recursos em momentos de pico de demanda, e diminuindo este consumo em momentos de menor demanda, para otimizar o custo operacional.
  • Operar com alta disponibilidade, quase sem paradas.
  • Compartilhar recursos de computação, sem comprometer o isolamento entre os diversos clientes.
  • Ser tolerante a falhas temporárias de serviços utilizados pela aplicação.

O atendimento destes novos requisitos desafia os profissionais de desenvolvimento de software a abordar o problema de uma forma diferente, empregando novos conhecimentos, novas técnicas, novas ferramentas, novos processos.

Para migrar com sucesso para o modelo de software como serviço, os ISVs tradicionais precisam mudar fundamentalmente a sua maneira de desenvolver, vender e entregar soluções de software.

Para explorar com sucesso as novas oportunidades da nuvem, precisamos aprender a desenvolver software mais confiável, mais escalável, mais seguro, mais eficiente, melhor monitorável. Antigos princípios de boa engenharia, como alta coesão e baixo acoplamento, se tornam ainda mais importantes.

Desenvolver esta nova categoria de aplicações é o desafio atualmente à frente dos ISVs. Alguns já começaram, acumulando aprendizado como fruto de erros e acertos. Muitos estão fazendo suas primeiras experiências. Outros não estão conseguindo avançar com a velocidade necessária, presos à roda viva do “dilema do inovador”.

Para os profissionais de desenvolvimento de software dispostos a encarar esta transição de plataforma e de conceitos, temos muito aprendizado pela frente!

Referências: