Cloud Native Java: criação de aplicações cloud em Java
Cloud Native Java: criação de aplicações cloud em Java
Resumo:
Introdução
O livro «Cloud Native Java» (autores — Josh Long e Kenny Bastani) foi lançado em 2017, mas continua sendo um dos guias práticos mais aprofundados para a criação de aplicações cloud na plataforma Java. Numa era em que microsserviços e conteinerização se tornaram o padrão de facto, este livro oferece não apenas um conjunto de receitas, mas uma metodologia completa, baseada na abordagem de 12 fatores e no ecossistema Spring.
Josh Long é um conhecido evangelista Spring da Pivotal (atualmente VMware), e Kenny Bastani é um especialista em microsserviços e arquiteturas cloud. O trabalho conjunto deles são 624 páginas de material denso, mas cativante, que será útil tanto para desenvolvedores Java experientes quanto para arquitetos em transição para a cloud.
Sobre o que é este livro?
«Cloud Native Java» não ensina os fundamentos da linguagem Java — ele ensina a pensar cloud. O foco principal está em:
- Arquitetura de microsserviços — como dividir um monólito em serviços fracamente acoplados usando Spring Boot e Spring Cloud.
- Metodologia de 12 fatores — base de código, dependências, configuração, logs, processos e outros princípios formulados pela Heroku.
- Plataforma Cloud Foundry — como implantar, escalar e gerenciar aplicações em ambiente cloud (embora os exemplos sejam facilmente adaptáveis ao Kubernetes).
- Programação reativa — introdução ao Spring WebFlux e fluxos reativos para sistemas de alta carga.
- Segurança e monitoramento — OAuth2, JWT, rastreamento distribuído (Spring Cloud Sleuth, Zipkin).
O livro é construído em torno de um exemplo abrangente — uma aplicação de gerenciamento de tarefas que gradualmente se transforma de um monólito simples em um sistema cloud completo.
Para quem é este livro?
O público-alvo são desenvolvedores já familiarizados com Java e Spring que desejam migrar para práticas cloud modernas. Se você:
- programa em Java há pelo menos um ano;
- conhece os fundamentos do Spring (DI, MVC, JPA);
- quer entender como construir microsserviços que sejam fáceis de escalar e atualizar sem downtime;
- tem interesse em DevOps e plataformas cloud (Cloud Foundry, Kubernetes, Docker);
— este livro é para você. Iniciantes em Java terão dificuldade: os autores não explicam construções básicas, mas vão direto para decisões arquiteturais.
O que o leitor aprenderá?
Após a leitura, você será capaz de:
- projetar microsserviços seguindo a metodologia de 12 fatores;
- usar Spring Boot para criar rapidamente serviços prontos para produção;
- configurar configuração externa através do Config Server;
- implementar service discovery (Eureka) e balanceamento de carga (Ribbon, Feign);
- adicionar resiliência com Hystrix (circuit breaker);
- organizar rastreamento distribuído e monitoramento;
- implantar aplicações no Cloud Foundry e gerenciar seu ciclo de vida;
- usar abordagens reativas (WebFlux) para I/O não bloqueante;
- integrar OAuth2 e JWT para interação segura entre serviços.
Cada capítulo contém exercícios práticos e links para o repositório GitHub com o código completo dos exemplos.
Pontos fortes
A primeira coisa que cativa é a profundidade e sistematização. O livro não apenas lista tecnologias, mas explica por que determinada decisão foi tomada. Por exemplo, os autores analisam detalhadamente por que uma aplicação de 12 fatores deve armazenar configuração em variáveis de ambiente, e não em arquivos, e como isso afeta a escalabilidade.
Segundo — a orientação prática. Cada conceito é apoiado por código que pode ser executado imediatamente. Os capítulos sobre Cloud Foundry são especialmente valiosos: mesmo que você não use esta plataforma, os princípios de implantação e gerenciamento de aplicações são universais.
Terceiro — a atualidade. Apesar de ser de 2017, 90% do material permanece relevante. Spring Cloud, Hystrix, Eureka