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

Com mais tempo, você pode ler o nosso artigo, que mostra ponto a ponto todos as questões do “Guia de Referência“.
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

Virtualização de Ambientes – Vagrant em ação – Parte 2

Como visto no artigo Virtualização de Ambientes – Uma introdução ao conceito e Vagrant – Parte 1, enfrentamos diversos problemas com processos repetíveis, problemas com os quais podemos resolver ao automatizamos de maneira que tudo aconteça de forma natural e controlada. Essa deve ser a busca de times que buscam ser o mais produtivo possível e utilizar seu tempo com atividades que realmente demande.

Leia mais

Metodologia

Management 3.0: entrevista com Jurgen Appelo na USI 2015

Jurgen Appelo no evento da OCTO USI 2015O Management 3.0 é o assunto mais falado este ano. Os participantes da conferência de 2015 tiveram a grande sorte de aprender diretamente com o autor: Jurgen Appelo.

Além de realizar sua apresentação na USI Jurgen Appelo gentilmente concedeu uma entrevista à OCTO.

OCTO : O que você considera particularmente novo e disruptivo no Management 3.0?

Jurgen Apelo : A inovação é focar na gestão do sistema ao invés de pessoas. Por exemplo, nosso sistema de gestão de bônus. Não sou eu quem decido como ele funciona. Eu considero que não é parte do meu trabalho. Acredito que os empregados sabem melhor que eu qual deve ser o nível de performance deles. Por isso deixo que eles decidam entre eles. Eu apenas garanto que o processo funcione da melhor maneira possível. Essa é minha responsabilidade já que fui eu que introduzi essa ideia.  Funciona da mesma maneira que nos modelos tradicionais de supervisor e colaboradores. Eu considero que minha responsabilidade não é motivar as pessoas a melhorarem seu desempenho usando mecanismos de recompensa e punição. Meu trabalho é implantar um sistema que faça com que as pessoas gostem de melhorar o seu próprio desempenho.

Leia mais

Arqui e tecno

Virtualização de Ambientes – Uma introdução ao Vagrant – Parte 1

Atualmente no processo de desenvolvimento de software existem atividades que podem se tornar complexas ou mesmo serem complexas por natureza, e no meio dessas atividades temos a configuração de ambientes em um time de TI, essa é uma das tarefas em que mais perdemos tempo e esforço. Montar um ambiente de trabalho ou ambientes para desenvolvimento, QA ou produção é um processo repetível, propenso a erros e consequentemente mais tempo e esforço para consertar. Com isso em mente, precisamos entender quais os problemas isso acarreta mais a fundo.

Leia mais

Arqui e tecno

Gradle – Build feliz

 

Durante anos utilizamos o Maven para cuidar da automação do processo de build. Essa ferramenta se tornou um padrão de mercado e ajudou inúmeros times. Porém, não podemos negar que ela também tem suas deficiências. A escolha de XML para o descritor de projeto tem seus problemas. Quantas vezes perdemos horas olhando para um XML, só para tentar descobrir como funciona o build? Além disso é difícil adicionar alguma lógica no build. O Maven é construído com a idéia de convention-over-configuration. O que por si só é muito bom. Porém, quando tentamos configurar projetos de maneira diferente do padrão enfrentamos muitos problemas. Isso pode ser bem doloroso.

Se você já enfrentou problemas utilizando o Maven com certeza deve ter se perguntado se não existia uma maneira melhor de se trabalhar. Acreditamos que existe sim, uma forma simples e sustentável de se automatizar builds. Nossa recomendação é a utilização do Gradle.

Leia mais

Arqui e tecno

Melhorando o Desempenho dos Jobs Hadoop no HDInsight

 

HMelhorando o desempenho dos Jobs Hadoop no HDInsightá algum tempo ando experimentando alguns “macetes” para lidar com os dados de forma eficiente dentro do HDInsight, e como tenho obtido resultados conclusivos, fiz esse artigo para compartilhar com vocês essa experiência.

Importante esclarecer que este artigo não se trata especificamente de uma comparação de desempenho e sim de uma experiência empírica, deliberadamente subjetiva, explicando a minha visão e as soluções que encontrei para otimizar o desempenho dos Jobs na plataforma BigData da Microsoft.

Meu caso de uso é simples: uma POC com um cluster Hadoop instanciado no Azure, consistindo basicamente em filtrar informações de uma base de informações com um volume estimado em 1.3 TB ao ano.

Se você ainda não está familiarizado com o ecossistema de processamento paralelizado Hadoop, mas quer saber mais sobre o assunto, basta escolher a pílula vermelha, mas eu devo te advertir: esse é um caminho sem volta…

Leia mais

Arqui e tecno

HDInsight: Big Data de acordo com a Microsoft

A Microsoft apresentou em 2012 sua iniciativa BigData para o Azure: O HDInsight.

O Azure HDInsight implanta e provisiona clusters do Apache Hadoop na nuvem, fornecendo uma estrutura de software criada para gerenciar, analisar e relatar Big Data. O núcleo do Hadoop fornece armazenamento de dados com o HDFS (Sistema de Arquivos Distribuído Hadoop) e um modelo de programação MapReduce para processar e analisar, paralelamente, os dados armazenados nesse sistema distribuído. Leia mais

Agilidade

Feature team: Além do buzzword

FT-kesako

A organização dos times é uma questão central quando se expande a adoção de metodologias ágeis em escala organizacional. É muito comum que se faça menção a “feature teams”, mas com frequência se esquece do verdadeiro significado dessas duas palavras.

Você está disposto a mudar a organização dos seus times e a entender a diferença entre times cross-funcionais e feature teams? Este artigo propõe algumas abordagens para entender esses modelos de organização, e mais importante: saber qual deve-se adotar.

Leia mais

Arqui e tecno

Medindo a performance do seu cluster Hadoop

O Hadoop não é uma aplicação web, um banco de dados e tampouco um webservice, você não conseguiria estressar um cluster Hadoop com teste de carga tradicional (afinal ele é feito pra suportar grandes volumes de dados).

Realizar um teste de estresse no cluster é um passo geralmente esquecido, porém muito importante quando você monta o seu ambiente hadoop, afinal, é importante ter um benchmark do cluster, ou seja, avaliar seu desempenho, executando uma variedade de tipos de jobs cada uma focado em um campo específico (indexação, consulta estatísticas preditivas, aprendizado de máquina, …).

Bons testes de stresse nos ajudam a:

  • Assegurar que o software atende suas exigências de performances.
  • Garantir que o serviço vai entregar um tempo de resposta rápido, mesmo sob uma alta demanda de serviço.
  • Alcançar os limites de escalabilidade, que por sua vez é útil para planejar os próximos passos do desenvolvimento.

A Intel lançou o HiBench, uma ferramenta dedicada para executar esse tipo de teste. Neste artigo, vamos falar sobre essa ferramenta.

Leia mais