ESTE ARTIGO EM 5 SEGUNDOS:
- Uma estratégia de API-First tende a fomentar o desenvolvimento de um produto com maior valor;
- Já uma estratégia Cloud-First ajuda a simplificar a sua operacionalização na realidade da organização e do seu negócio.
Nos dias de hoje dificilmente alguém não conhecerá o termo API, acrónimo para Application Programming Interface. Toda a interação entre software é mediada por estes elementos atómicos, fundamentais para a promoção de valor nas organizações.
No entanto, o conceito API tem-se mutado ao longo do tempo, contemplando hoje um conjunto de diferentes pressupostos inerentes ao contexto tecnológico do presente:
- Surge inicialmente como um meio de abstrair complexidade no acesso a dados;
- Ajuda a promover a adoção de boas práticas e reutilização no desenho de software;
- Favorece a comunicação entre sistemas distribuídos e através da internet;
- Simplifica o desafio com uma abordagem descomplicada e de alta performance.
Apesar de toda esta evolução temporal do termo API, a sua maior força continua a residir na origem.
API-First
Tradicionalmente, a abordagem à implementação de software tem nascido numa visão bottom-up, onde se definem requisitos e necessidades técnicas e se tenta responder aos mesmos por meio de uma interface a disponibilizar para o consumo de terceiros. Embora não esteja necessariamente errada, uma abordagem deste tipo tende a focar o desenho de software mais na solução técnica implementada do que no negócio das organizações.
A estratégia API-First surge da necessidade de melhor responder ao negócio. Ao tornarmos a API – leia-se, a interface – a unidade fundamental do desenvolvimento (cidadão de primeira classe) o desenho de software passa a estar intimamente ligado com as necessidades do negócio, focando-se na resposta que a mesma dá ao verdadeiro problema que se pretende resolver e abrindo a porta para que outros stakeholders (analistas e utilizadores do negócio) interajam de forma mais ativa e consciente neste processo.
Ao centrarmo-nos na API, e no seu propósito fundamental de abstrair as idiossincrasias técnicas dos prestadores para o consumidor, obtemos múltiplos benefícios:
- Foco no negócio – ao “quebrarmos” a preocupação com os detalhes de implementação, estamos a mudar o foco da solução tecnológica para a função de negócio.
- Reutilização – reutilizando as funções mais simples fomenta-se a composição e orquestração de funções de negócio mais complexas.
- Escalabilidade – a implementação de funções bem delineadas facilita a escalabilidade da solução e uma maior permeabilidade às alterações de contexto.
- Maior qualidade com menor esforço – através da reutilização aumenta-se a qualidade das entregas e reduz-se o esforço de implementação.
- Time-to-Market – maior rapidez e melhor qualidade significam reações mais rápidas e assertivas a oportunidades e ameaças do negócio das organizações.
Do resultado desta abordagem tende-se a definir produtos digitais mais equilibrados para os objetivos da organização, extraindo-se maior valor e benefício das soluções tecnológicas implementadas.
Cloud-First
Todas as organizações têm realidades, necessidades, obrigações e requisitos diferentes, que exigem arquiteturas continuamente escaláveis e adaptáveis. Num cenário perfeito as organizações teriam sempre a ganhar com uma transição completa para a cloud, mas a realidade é que nem sempre uma visão cloud pura consegue responder da melhor forma às exigências e constrangimentos de cada organização. No entanto, é relevante perceber o papel e importância da cloud na resposta a muitos dos desafios, e por isso é que uma abordagem cloud-first – a de considerar a cloud como primeira opção de desenvolvimento – deve ser adotada.
Alguns dos benefícios da adoção de um modelo cloud são:
- Resiliência e Elasticidade – ao tirar proveito das novas tecnologias e arquiteturas de sistemas, os serviços cloud oferecem diversos mecanismos de redundância e elasticidade conforme a necessidade das organizações, removendo as gorduras de custo de infraestrutura desaproveitada e as dores de cabeça na manutenção de infraestrutura durante períodos de maior atividade (seja ela prevista ou não).
- Custo justo – numa arquitetura cloud não existe investimento adiantado e são cobrados apenas os serviços efetivamente consumidos (modelo pay-per-use).
- Menor responsabilidade e esforço de manutenção – a gestão e manutenção da infraestrutura deixa de ser uma responsabilidade da organização, ficando a cargo do cloud vendor updates e upgrades a sistemas operativos, serviços e aplicações (dependendo do modelo cloud adotado).
- Menor esforço de manutenção – a infraestrutura cloud é pensada para a simplificação da gestão, promovendo a automação e disponibilizando diversas funcionalidades out-of-the-box para controlo e monitorização dos recursos e serviços.
- Maior segurança – embora muitas organizações confundam controlo com segurança, a verdade é que os cloud vendors têm uma operação muito focada na segurança. Dada a criticidade e abrangência dos seus serviços, têm processos internos assentes em princípios de security-by-design certificados por diversas entidades globais. É importante ressalvar, no entanto, que a segurança é sempre uma responsabilidade partilhada, porque são sempre as organizações que determinam as regras de quem e como se acede à informação (de pouco serve ter uma porta blindada se a deixarmos destrancada).
- Maior performance – os recursos e serviços disponibilizados em cloud estão otimizados para as funções e tarefas a que se destinam, por isso é expectável que tendencialmente apresentem melhor performance de uma forma geral. Este é, porém, um benefício potencial na medida em que dependerá sempre da localização física dos recursos envolvidos, larguras de banda dos circuitos de rede, e do desenho e constrangimentos da própria solução.
Ao definirmos uma estratégia cloud-first estamos, assim, a considerar o caminho mais rápido e eficiente para a entrega de soluções digitais para o negócio das organizações. É neste meio cloud, tirando partido de todas as capacidades e potencialidades oferecidas nativamente, que as APIs – e a gestão completa do seu ciclo de vida – melhor prosperam.
APIs e Cloud: da teoria à prática
Como vimos, as abordagens API-First e Cloud-First não são mais do que formas de maximizar o binómio custo-benefício na implementação de soluções de software. Uma estratégia API-First tende a fomentar o desenvolvimento de um produto com maior valor e uma estratégia Cloud-First ajuda a simplificar a sua operacionalização na realidade da organização e do seu negócio.
É importante abraçarmos estas visões como uma forma intrínseca de pensar, desenhar e gerir software, tendo sempre presente que cada iniciativa ou linha de desenvolvimento pode apresentar limitações ou constrangimentos específicos para os quais têm de ser definidas outras abordagens. Uma solução global híbrida será, quase sempre, a solução ideal, por isso em vez de se considerar abordagens puras é mais relevante inverter a percepção de híbrido de uma visão “as-is com extras cloud” para uma visão “cloud com excepções legacy”. É neste mindset organizacional que reside a chave para o sucesso.
Enterprise Solutions Manager