Autor: Sergio Fernandes

Arqui e tecno

Projetando uma API REST

Bom, se você está na correria, use logo o nosso “Quick Reference Card“, um resumo das boas práticas para APIs REST.

➡ Faça o download do API Design – Cartão de Referência Rápida

OCTO – API Design – Cartão de Referência Rápida

Com mais tempo, você pode ler o nosso artigo, que mostra ponto a ponto todos as questões do “Guia de Referência“.        INTERESSADO NO ASSUNTO? CONTACTA-NOS!

Leia mais

Arqui e tecno

Maturidade da Integração Contínua

Há 15 anos Martin Fowler publicou Continuous Integration, artigo seminal da Integração Contínua. Alguns meses depois, foi lançado o CruiseControl, primeiro servidor de Integração Contínua. Hoje no mundo, apenas 50% das empresas possuem Integração Contínua, número baixo levando-se em conta a redução de custos que toda automação traz.

Talvez as empresas estejam pensando apenas no investimento, sem uma visão muito clara do ROI. O esforço de implementação da automação pode ser recuperado nas atividades de build/deploy/teste em dois à quatro sprints. O retorno é especialmente grande em projetos longos.

Além da baixa adoção, a baixa maturidade também impede a completa capitalização das vantagens da Integração Contínua.

E ainda vem por aí Entrega Contínua, Deploy Contínuo e DevOps, práticas que se apoiam e vão além da Integração Contínua, mas para isso a fundação precisa estar firme…

Maturidade DevOps

Mas como se avalia a maturidade de um ambiente de Integração Contínua?

Leia mais

Arqui e tecno

Até onde podemos ir com um desktop comum e uma aplicação Java reativa para web?

Programação reativaA tendência atual é que cada vez mais usuários fiquem conectados em todos os lugares e o tempo todo, muitas vezes em várias máquinas simultaneamente (desktop, tablet, celular). A promessa da programação reativa é prover recursos para suportar na mesma máquina muito mais conexões paralelas, e lidar com mais requisições por segundo, com menos threads e com muito menos memória e CPU do que os modos convencionais de programação. Para esse estudo nós criamos três versões de uma aplicação de teste:

  • versão servlet tradicional: uma servlet e chamada para um web service com Apache HttpClient
  • versão servlet assíncrona 3.0: uma servlet assíncrona e chamada para um web service com Apache HttpAsyncClient
  • versão 100% reativa: servidor HttpCore NIO e chamada de um web service com ApacheAsyncClient

Em seguida colocamos essas três versões sob testes de carga bastante agressivos para ver o que elas poderiam suportar. Leia mais

Agilidade

Os Padrões dos Gigantes da Web – DevOps

O movimento DevOps põe em cheque a fronteira entre as equipes de desenvolvimento e de operações. Não que essa discussão seja nova, mas a reestruturação proposta pelo DevOps é mais profunda, e bastante coerente com as metodologias ágeis, já presentes em boa parte das equipes de desenvolvimento, mas ainda distantes das equipes de operações.

O DevOps inclui muitas lições aprendidas dos Gigantes da Web (Amazon, Facebook, LinkedIn, etc.), que perceberam que não adianta fazer o desenvolvimento ágil, e parar nos processos lentos das equipes tradicionais de operações. O Time to Market (TTM) é um conceito chave para o sucesso dessas empresas, e para melhorá-lo é preciso rapidez não só no desenvolvimento, mas em toda a cadeia do produto.

Há outras vantagens no DevOps, mas o ponto central é realmente o TTM.

 

Leia mais

Agilidade

Os Padrões dos Gigantes da Web – Lean Startup

Inovar, criar produtos e fundar uma empresa é o sonho de muitas pessoas, que admiram os grandes empreendedores e suas histórias de sucesso. Estamos vivendo o boom das startups de tecnologia, empresas como Google, Facebook e LinkedIn inovaram, criaram produtos de sucesso e ganharam milhões de dólares.

Mas infelizmente as pesquisas mostram que muito poucas startups de tecnologia sobrevivem: mais de 90% falham. É comum atribuir as falhas à má qualidade do produto, à incompetência no planejamento ou à má execução dos projetos, mas a triste realidade é que a perseverança e o trabalho duro não levam necessariamente ao sucesso. A causa mais comum das falhas é não encontrar os clientes.

Este artigo é uma introdução ao Lean Startup, e mostra como este método propõe reduzir os riscos na criação de novos produtos.

Leia mais

Arqui e tecno

Os Padrões dos Gigantes da Web – Deploy Contínuo

Sabemos que os Gigantes da Web (Google, Amazon, Netflix, Yahoo, etc.) costumam melhorar os seus produtos de maneira permanente respeitando assim a máxima “Release early, release often”. Como é possível que eles entreguem melhorias tão rapidamente, se em algumas equipes de desenvolvimento qualquer mudança pode demorar semanas para chegar à produção?

Na maior parte das vezes, eles têm um processo de Deploy Contínuo (“Continuous Deploy”) que segue uma dessas duas possibilidades:

  • totalmente automatizado: uma mudança no código é automaticamente verificada e, se tudo estiver certo, a aplicação vai para produção;

  • semi-automatizado: a ideia é ser capaz de empurrar para produção a última versão estável do aplicativo em qualquer momento apenas apertando um botão. Nesse caso, chamamos de “one-click-deployment”.

Obviamente, a aplicação desses padrões tem alguns requisitos, mas antes de chegar lá vamos explicitar as vantagens do Deploy Contínuo.

Leia mais