Cloud

Cloud Native ou Cloudable — Quais as orientações para minha aplicação ?

Compartilhe:

Olá Leitores,

Há uma crescente natural no uso de Cloud Computing para os próximos anos e as empresas estão se questionando sobre o nível de preparação que suas aplicações devem estar para serem rotuladas como Cloud Native ou Cloudable.

Vamos aos conceitos:

Screen Shot 2019-03-05 at 17.26.35

IaaS (ou Infraestrutura como Serviço):  Aqui você utilizará das vantagens e automações de infraestrutura e terá facilidade de realizar praticamente um AS-IS encontrando possibilidade de migrar aplicações sem grandes impactos, uma vez que podemos realizar a reprodução natural dos ambientes. Trata-se basicamente de um modelo que tem foco em redução de custo, flexibilidade e escalabilidade em recursos computacionais que tocam a infraestrutura.

Quando falamos de PaaS (Plataforma como Serviço), esqueçam o “manuseio” de infraestrutura, o cliente terá apenas a gestão do código de sua aplicação e seus dados. Sendo assim, não é possível se apoiar em funcionalidades de IaaS (como redução ou aumento de recursos computacionais, cluster de banco de dados) para que a aplicação tenha sua operação básica garantida e o princípio básico da escalabilidade é o horizontal.

E como aproveitar o melhor de cada modelo ? E como saber onde devo direcionar meu foco CLOUD NATIVE ou CLOUDABLE ?

O “X” da questão é que as aplicações em sua ampla maioria foram escritas com foco em escalabilidade horizontal, ou seja, fomos treinados a resolver problemas de instabilidade e performance focando sempre na infraestrutura, não é mesmo ?Adicione processadores, dobro o uso da memória, altere o número de IOPs e performance dos discos…

Mas será que é dessa maneira que devemos resolver os problemas atuais ?

Pensando hoje em uma transformação digital onde seu app, seu SW, sua aplicação poderá sair de 100 para 1.000.000.000 de usuários simultâneos, o jeito é tocar na arquitetura da aplicação.

Mas quais são as implicações? Já ouviram falar de Micro Serviços ?

microservicos_nutshell_126263a3524c13ca2476c08a14af4943

Aqui temos características e práticas que cercam esse estilo arquitetural, como: Aplicações devem ser capazes de fazer scale up(escalar verticalmente) e scale out(escalar horizontalmente), deployment automatizado, armazenamento de maneira a incentivar a flexibilidade, independência de linguagens de programação, etc.

Sendo assim, uma aplicação Cloudable / Cloud Native deve ser constituída como um conjunto de micro-serviços, com escalabilidade, ciclo de vida e métricas de performance independentes.

Um grande orientador deste modelo é o The Twelve Factor App, o qual traz recomendações para a atribuição de uma aplicação Cloud Native / Cloudable.

I. Base de Código
Uma base de código com rastreamento utilizando controle de revisão, muitos deploys

II. Dependências
Declare e isole as dependências

III. Configurações
Armazene as configurações no ambiente

IV. Serviços de Apoio
Trate os serviços de apoio, como recursos ligados

V. Build, release, run
Separe estritamente os builds e execute em estágios

VI. Processos
Execute a aplicação como um ou mais processos que não armazenam estado

VII. Vínculo de porta
Exporte serviços por ligação de porta

VIII. Concorrência
Dimensione por um modelo de processo

IX. Descartabilidade
Maximizar a robustez com inicialização e desligamento rápido

X. Dev/prod semelhantes
Mantenha o desenvolvimento, teste, produção o mais semelhante possível

XI. Logs
Trate logs como fluxo de eventos

XII. Processos de Admin
Executar tarefas de administração/gerenciamento como processos pontuais.

Para maiores detalhes sobre Making Architecture Matter
Martin Fowler Keynote
https://www.youtube.com/watch?v=DngAZyWMGR0

Obrigado e abraços,

 

Fonte: https://thiagoviola.wordpress.com/2019/03/15/cloud-native-ou-cloudable-quais-as-orientacoes-para-minha-aplicacao/

Head of Cloud Platform Enterprise Business

Leia mais sobre Cloud

Bee Smart – RAG demo com watsonx.ai e watson.data

Esta demonstração usa a API (application programming interface) de serviços de embeddings watsonx disponível para implementar um fluxo de RAG. Os modelos de embeddings disponíveis em watsonx.ai (veja mais sobre watsonx.ai aqui) criam embeddings de texto que capturam o significado de frases ou passagens para uso em seus aplicativos de IA generativa. A conversão de […]

Como o Autoscaling do IBM Kubernetes Pode Impedir a Interrupções das suas Aplicações.

Confrontados com o desafio de aplicações sendo encerradas inesperadamente, muitas organizações se deparam com a realidade de que seus ambientes de Kubernetes não estão preparados para lidar eficazmente com uma demanda inesperada. A causa raiz frequentemente aponta para uma falta crítica de recursos, onde nós (worker nodes) trabalhadores físicos ou virtuais estão sobrecarregados ou subutilizados, […]

Do Ataque à Recuperação de Grandes Incidentes

Replay de nosso evento online para você que não teve a oportunidade de acompanhar ao vivo e agora pode assistir o que rolou sobre Disaster Recovery e Backup em Nuvem – Descubra como as soluções IBM Cloud podem te ajudar a enfrentar os desafios da segurança cibernética e garantir a recuperação rápida após incidentes. Caso […]