Você está na página 1de 18

TECHNOLOGY

RADAR NOV 15
Nossas ideias sobre
tecnologias e tendncias que
esto moldando o futuro

thoughtworks.com/radar
O QUE H DE NOVO?
Aqui esto os assuntos em destaque nessa edio:

DOCKER INCITA EXPLOSO DE ECOSSISTEMA DE CONTINERES


A conteinerizao, exemplificada pelo Docker, tem se tornado extremamente popular em um nmero crescente
de empresas. O interesse varia muito de empresa para empresa e dentro das prprias empresas. Nossas
recomendaes se estendem do Avalie at o Adote. O ecossistema (ferramentas, plataformas e tcnicas) est
crescendo e amadurecendo, aumentando ainda mais o interesse. Leitores atentos vo notar tpicos relacionados
em todo o radar, abrangendo desde o Docker como uma ferramenta de desenvolvimento para gerenciamento de
dependncias at grandes plataformas de nuvem como Mesos e AWS ECS, que usam contineres como sua unidade
de escalabilidade.

MICROSSERVIOS E FERRAMENTAS RELACIONADAS GANHAM


POPULARIDADE
O interesse em relao a esse estilo de arquitetura no tem diminudo e, consequentemente, vem impulsionando
o interesse em ferramentas de suporte e tcnicas, por exemplo, prticas de DevOps como a conteinerizao,
lies aprendidas como os riscos de programar em sua ferramenta de CI/CD, a maturidade das ferramentas de
descoberta de servios, e assim por diante. Esperamos ver ainda mais crescimento e maturidade nessa rea em
um futuro prximo.

FERRAMENTAS DE JAVASCRIPT CONVERGEM PARA MERAMENTE CATICAS


J destacamos a agitao no campo de ferramentas de JavaScript antes, mas a comunidade est gradualmente se
acalmando e aderindo a algumas prticas comuns. Times esto descobrindo as melhores combinaes (incluindo
nenhuma) para ferramentas de construo e gerenciamento de pacotes, e temos percebido menos divergncias em
relao a prticas efetivas.

SEGURANA UM PROBLEMA DE TODOS


Segurana uma questo que afeta de forma nica todos os papis dentro do ciclo de desenvolvimento de software.
Destacamos melhorias na rea de segurana no ltimo radar e estamos satisfeitos de ver times cultivando prticas
de segurana em seus ciclos de desenvolvimento. Nessa edio tambm destacamos abordagens inovadoras como
recompensas por bugs, modelagem de ameaas, HSTS, TOTP e Lets Encrypt.

COLABORADORES
O Technology Radar preparado pelo Conselho Consultivo de Tecnologia da ThoughtWorks, composto por:

Rebecca Parsons (CTO) Claudia Melo Ian Cartwright Rachel Laycock


Martin Fowler (Cientista Chefe) Dave Elliman James Lewis Sam Newman
Anne J Simmons Erik Doernenburg Jonny LeRoy Scott Shaw
Badri Janakiraman Evan Bottcher Mike Mason Srihari Srinivasan
Brain Leke Hao Xu Neal Ford Thiyagu Palanisamy

TRADUO E REVISO
Alexandre Barbosa, Alexey Boas, Gregrio Melo, Marco Valtas, Paula Ribas, Ricardo Cavalcanti e Ricardo Wendell.

Novembro 2015, ThoughtWorks, Inc. Todos os direitos reservados. TECHNOLOGY RADAR NOVEMBRO 2015 | 1
SOBRE O TECHNOLOGY RADAR
ThoughtWorkers so pessoas apaixonadas por tecnologia. Ns desenvolvemos, pesquisamos, testamos,
contribumos com cdigo livre, escrevemos e visamos a sua constante melhoria para todas as pessoas.
73 e promover a excelncia de software e revolucionar a indstria de TI. Ns criamos e
Nossa misso liderar
compartilhamos o Technology Radar da ThoughtWorks para apoiar essa misso. O Conselho Consultivo de
Tecnologia (Technology Advisory Board, ou TAB), um grupo de lderes experientes em tecnologia da ThoughtWorks,
72 por criar o radar. O grupo se rene regularmente para discutir a estratgia global de tecnologia para
responsvel
74tecnolgicas que impactam significativamente a nossa indstria.
a empresa e as tendncias
75
86
O radar captura o resultado das discusses do TAB em um formato que procura oferecer valor a uma ampla
76 que desenvolvem. O contedo concebido para ser um resumo
gama de pessoas interessadas, de CIOs a pessoas
59Ns encorajamos voc a explorar essas tecnologias para obter
conciso. 78 mais detalhes. O radar grfico por
60 77
natureza, agrupando os itens em tcnicas, ferramentas, plataformas e linguagens & frameworks. Quando itens do
17 radar puderem ser classificados em mais de um quadrante, escolhemos aquele que parece mais adequado. Alm
64 para refletir a nossa posio atual dentro deles:
disso, agrupamos esses itens em quatro anis
79
62
61 63 65
80
66 67 81

6 68 82
56
83
84
57 69

70
85
58
71

ADOTE EXPERIMENTE AVALIE EVITE

Acreditamos firmemente que a indstria Vale a pena ir atrs. importante Vale a pena explorar Prossiga com
deveria adotar esses itens. Ns os usamos entender como desenvolver essa com o objetivo de cautela.
quando so apropriados em nossos projetos. capacidade. As empresas devem compreender como isso
89 experimentar esta tecnologia em um afetar sua empresa.
projeto que possa lidar com o risco.
102
Itens novos ou que sofreram alteraes significativas desde o ltimo radar so representados como tringulos,
enquanto os itens que no mudaram so representados como crculos. 93 Os grficos detalhados de cada quadrante
88 pelos itens. Temos interesse em muito mais itens do que seria razovel adicionar em
mostram o movimento tomado
um documento deste tamanho, por isso removemos muitos itens do ltimo radar para abrir espao para novos itens.
Quando apagamos um item no significa que deixamos de nos preocupar com ele. 101
87 92
Para mais informaes sobre o radar, veja thoughtworks.com/radar/faq
100

91
Novembro 2015, ThoughtWorks, Inc. Todos os direitos reservados. 99 TECHNOLOGY RADAR NOVEMBRO 2015 | 2
O RADAR 30
29
TCNICAS
ADOTE
1. Testes de contrato guiados pelo consumidor 28
2. Desacoplando deployment e release novo 23
3. Diagrama automatizado de infraestrutura
4. NoPSD 22
5. Produtos acima de projetos 27
6. Modelagem de ameaas

EXPERIMENTE
21 15
7. BEM novo
8. Back-end para front-ends (BFF) novo
17
9. Docker para builds novo 26
10. Event Storming novo 20
11. Flux
12. Filtro de idempotncia novo 13
16
13. iFrames para sandboxing novo
14. NPM para tudo novo 14
15. Aplicaes web offline first 25 19
16. Ambientes Fnix 12
17. QA em produo novo 11
6
AVALIE
10
18. Dados exclusivamente acumulativos 5
19. Recompensas por bugs novo 24 9 3
20. Lago de Dados 18
21. IDEs hospedados novo
8 4
22. Monitoramento de invariantes novo 2
23. Arquiteturas reativas 7
1
EVITE
24. Gitflow novo EVITE AVALIE EXPERIMENTE ADOTE
25. Inveja da alta performance/inveja da escalabilidade web novo
26. Inveja de microsservios
27. Estratgia de desenvolvimento em camadas
28. Programar em sua ferramenta de 39
integrao contnua/Entrega Contnua 32
29. SAFe 31
30. DevOps como um time 40 33

PLATAFORMAS
41
ADOTE 52 34
31. TOTP Autenticao de duas etapas 35
42
EXPERIMENTE
32. Apache Mesos 43
33. Apache Spark
34. AWS Lambda novo
36
38
35. Cloudera Impala
44
36. Fastly novo
37. H2O
38. HSTS novo 53 45 37

AVALIE
46
39. Apache Kylin
40. AWS ECS novo 47
41. Ceph novo
42. CoreCLR e CoreFX
43. Deis 54 48 49
44. Kubernetes novo 50
45. Mdulos de segurana do Linux
51
46. Mesosphere DCOS novo
47. Microsoft Nano Server novo Novo ou sofreu alterao
48. Particle Photon/Particle Electron Sem mudana 55
49. Presto novo
50. Rancher novo
51. Banco de dados de sries temporais

EVITE
52. Servidores de aplicao
53. API Gateways excessivamente ambiciosos novo
54. SPDY
55. Nuvem privada superficial novo

Novembro 2015, ThoughtWorks, Inc. Todos os direitos reservados. TECHNOLOGY RADAR NOVEMBRO 2015 | 3
O RADAR
FERRAMENTAS
73 ADOTE
56. Composer
57. Mountebank
72 58. Postman
74 75
86 EXPERIMENTE
59. Browsersync novo
76 60. Carthage novo
59 78 61. Consul
60 77 62. Docker Toolbox novo
63. Gitrob novo
64 79 64. GitUp novo
62 65. Hamms
61 63 66. IndexedDB
65
67. Polly
80 68. REST-assured
69. Sensu
66 67 81 70. SysDig novo
71. ZAP
68 82
AVALIE
56 72. Apache Kafka
83 73. Concourse CI novo
84 74. Espresso novo
57 69
75. Gauge novo
76. Gor
70
85 77. ievms novo
58 78. Lets Encrypt novo
71 79. Pageify novo
80. Prometheus
ADOTE EXPERIMENTE AVALIE EVITE 81. Quick
82. RAML novo
83. Security Monkey
84. Sleepy Puppy novo
89 85. Visual Studio Code novo

102 EVITE
86. Citrix para desenvolvimento
93
88
LINGUAGENS & FRAMEWORKS
101
87 92 ADOTE
87. ECMAScript 6 novo
100 88. Nancy
89. Swift

91 EXPERIMENTE
99 90. Enlive novo
91. React.js
92. SignalR novo
93. Spring Boot
98
90 AVALIE
94. Axon novo
95. Ember.js
97 96. Frege novo
97. HyperResource novo
94 95 98. Material UI novo
96
99. OkHttp novo
100. React Native novo
101. TLA+ novo
102. Traveling Ruby novo
Novo ou sofreu alterao
Sem mudana EVITE

Novembro 2015, ThoughtWorks, Inc. Todos os direitos reservados. TECHNOLOGY RADAR NOVEMBRO 2015 | 4
TCNICAS
Implementar a Entrega Contnua permanece um desafio O design Just In Time um conceito importante e til
para muitas empresas, e continua sendo importante para o design visual, que o movimento NoPSD tenta
destacar tcnicas teis como o desacoplamento entre capturar. No necessrio fazer o design da aplicao
deployment (implantao) e release (liberao). inteira ou de cada elemento de UI com antecedncia.
Recomendamos usar o termo deployment estritamente Trabalhe no design de cada coisa medida que
para se referir ao ato de implantar uma alterao aos voc precisar, usando as ferramentas mais leves
componentes ou infraestrutura de uma aplicao. O possveis. Temos observado um crescimento no uso de
termo release deve ser usado quando uma alterao ferramentas mais simples com curvas de aprendizagem
de funcionalidade liberada para os usurios finais, mais rpidas, como Sketch, bem como um retorno
causando impacto no negcio. Usando tcnicas como crescente ao papel e caneta (principalmente quando
feature toggles e dark deployments, podemos implantar combinados a um atual e robusto guia de estilo
alteraes em sistemas de produo com mais digital). Devido s limitaes dos mock-ups planos
frequncia, sem liberar funcionalidades. Deployments em designs para telas, criar prottipos de fidelidade
mais frequentes reduzem o risco associado s varivel com ferramentas como Invision, FramerJS e
alteraes, enquanto os stakeholders do negcio Origami ou simplesmente HTML/CSS e um pouco de
mantm o controle sobre quando funcionalidades JavaScript tambm se tornou cada vez mais comum e
devem ser liberadas para usurios finais. valioso para comunicar o objetivo do design.

Temos defendido h bastante tempo a ideia de que


pensar o desenvolvimento de software como um projeto
30 algo orado e entregue durante um intervalo de tempo
29
limitado no atende s necessidades do mercado
moderno. Esforos significativos para desenvolvimento
73
28
23 de software precisam funcionar como um produto
22
72contnuo, que apoia e repensa o processo do negcio
74 75
27 sustentado por ele. Esses esforos 86 no estaro
76
59completos at que o processo 78 do negcio e o seu
21 15
17 software
60 deixem de77ser teis. Nossa observao desta
64
26 abordagem
62 de produtos acima79 de projetos, tanto em
20 61
13 relao aos nossos
63 65 projetos quanto externamente, leva-
16
nos a determinar que essa 80a abordagem a ser usada
14
25 19 em praticamente 66 todos
67 os casos.81
12
11
6 68 82
10 Com
56
o nmero de violaes graves de segurana nos
5 83
24 9 3 ltimos meses, times de69desenvolvimento84 de software
18 57
4
j esto convencidos da importncia de escrever
8 70
85
2 cdigo
58 seguro e lidar com dados de usurios de forma
7 71
1 responsvel. No entanto, os times se deparam com
EVITE AVALIE EXPERIMENTE ADOTE umaADOTE
perigosa curva EXPERIMENTE
de aprendizagem, e o grande
AVALIE EVITE

39 89
32
31 102
40 33
93
88
41 101
52 34 87 92
ADOTE EXPERIMENTE
35 AVALIE EVITE
1. Testes de contrato42
guiados pelo 7. BEM 18. Dados exclusivamente 24. Gitflow
100
consumidor 8. Back-end para front-ends (BFF) acumulativos 25. Inveja da alta performance/inveja da
2. Desacoplando deployment43 e release 9. Docker para builds 19. Recompensas 91por bugs escalabilidade web
3. Diagrama automatizado de 36
10. Event Storming 20. Lago de Dados 99 26. Inveja de microsservios
infraestrutura 11. Flux
38 21. IDEs hospedados 27. Estratgia de desenvolvimento em
44
4. NoPSD 12. Filtro de idempotncia 22. Monitoramento de invariantes camadas
5. Produtos acima53de projetos 45 13. iFrames para37sandboxing 23. Arquiteturas reativas 28. Programar em sua ferramenta de
6. Modelagem de ameaas 14. NPM para tudo 98 integrao contnua/Entrega Contnua
90
46 15. Aplicaes web offline first 29. SAFe
16. Ambientes Fnix 30. DevOps como um time
47 97
17. QA em produo
94 95
48 96
54 49
50
51
Novembro 2015, ThoughtWorks, Inc. Todos os direitos reservados. TECHNOLOGY RADAR NOVEMBRO 2015 | 5
55
TCNICAS continuao
nmero de potenciais ameaas que variam de crime executar a etapa da compilao em um ambiente
organizado e espionagem do governo a adolescentes que isolado completo com dependncias, sem contaminar
atacam sistemas por diverso pode ser avassalador. o agente de build. Essa tcnica de uso do Docker para
A modelagem de ameaas fornece uma srie de build se provou particularmente til para compilar
tcnicas, em geral de uma perpectiva defensiva, binrios Golang, e o continer golang-builder est
que ajudam a entender e a classificar potenciais disponvel exatamente para esse propsito.
ameaas. Transformados em estrias de usurios
mal-intencionados, modelos de ameaas podem Event Storming uma maneira til de fazer modelagem
proporcionar ao time uma abordagem gerencivel e de domnio veloz de fora para dentro: comeando
efetiva para tornar seus sistemas mais seguros. com os eventos que ocorrem no domnio em vez de
um modelo de dados esttico. Funcionando como um
Encontrar problemas em CSS pode ser difcil. Quantas workshop facilitado, o Event Storming tem como foco
vezes voc j teve que vasculhar milhares de estilos descobrir eventos-chave de domnio, posicionando-os
sobrescritos para chegar fonte do seu problema? Isso em uma linha do tempo, identificando seus gatilhos
levou muitos dos nossos times a introduzir diversas e ento explorando suas relaes. Essa abordagem
diretrizes, como evitar o efeito cascata, fazer estilos opt-in particularmente til para quem est adotando CQRS
e enfatizar a ateno aos nomes. BEM uma conveno ou Event Sourcing. Reunir as pessoas certas na sala
simples de nomes (a sigla representa Bloco, Elemento, importante uma mistura de perfis tcnicos e de
Modificador) que ajuda a proporcionar clareza semntica negcios que traro tanto as perguntas quanto as
e estrutura ao seu CSS. Usar BEM facilita a comprenso respostas. Assegurar que h espao suficiente na parede
de quais regras de CSS esto influenciando a aparncia para modelar a segunda chave para o sucesso. Procure
de um elemento e, mais importante, o objetivo dessas entender o todo, tendo como objetivo a compreenso
regras. Essa abordagem pode ser vista como uma forma coletiva do domnio em toda sua complexidade, antes de
de transportar a lio de OO de favorecer a composio partir para as solues.
em relao herana para o mundo do CSS.
Flux uma arquitetura de aplicao apresentada
Servios valiosos do suporte a diversas variaes de pelo Facebook. Geralmente mencionado em conjunto
clientes, como mobile versus web e diferentes formas com React.js, Flux baseia-se em um fluxo de dados
de interface web. tentador projetar um back-end nico unidirecional na pipeline de renderizao. Flux adota
para dar suporte a todos os clientes atravs de uma API a viso da web moderna de aplicaes JavaScript lado
reutilizvel. Mas as necessidades dos clientes variam, do cliente, de modo a evitar os venerveis clichs MV*.
como tambm variam as restries, por exemplo, Os times da ThoughtWorks esto comeando a ganhar
largura de banda para dispositivos mveis versus o experincia com esse estilo de arquitetura e a descobrir
desejo por grandes quantidades de dados em conexes que ele funciona bem com orientao a servios e
web velozes. Consequentemente, muitas vezes melhor soluciona alguns dos problemas inerentes s ligaes de
definir diferentes servios de back-end para cada dados de mo dupla.
tipo de cliente front-end. Esses back-ends devem ser
desenvolvidos por times alinhados com cada tipo de Muitos servios, principalmente servios legados, so
front-end, para assegurar que cada back-end se adeque escritos sob a suposio de que qualquer requisio vai
s necessidades dos respectivos clientes. ocorrer uma nica vez. Sendo as redes da forma que
so, isso pode ser difcil de se garantir. Um filtro de
Um dos muitos usos inovadores do Docker que temos idempotncia um componente simples que apenas
visto em nossos projetos consiste em uma tcnica checa se existem requisies duplicadas e assegura
para gerenciar dependncias de tempo do build. que elas sejam enviadas ao fornecedor de servios uma
Antigamente, era comum executar agentes de build em nica vez. Esse filtro deve realizar apenas essa tarefa
um sistema operacional ampliado com dependncias e ser usado como um Decorator acima de chamadas a
necessrias para o build. Mas com o Docker possvel servios existentes.

Novembro 2015, ThoughtWorks, Inc. Todos os direitos reservados. TECHNOLOGY RADAR NOVEMBRO 2015 | 6
TCNICAS continuao
Pginas web modernas tendem a conter uma variedade urgentes, determinar problemas de qualidade em
de widgets e snippets JavaScript de diversas fontes de curso e descobrir quais medidas podem ser usadas no
terceiros. Isso pode provocar um impacto negativo tanto ambiente de produo para que isso funcione. Embora
na segurana quanto na performance. Enquanto ainda exista um risco de que algumas empresas possam ir
estamos esperando por um isolamento mais completo longe demais e negligenciar QA na pr-produo, nossa
do JavaScript com componentes web, nossos times experincia demonstra que QA em produo uma
tm se beneficiado do uso de iFrames HTML5 para ferramenta valiosa para empresas que j atingiram um
sandboxing de JavaScript no confivel. grau razovel de Entrega Contnua.

O mundo do JavaScript tem uma diversidade de Estruturas de dados imutveis esto se tornando
ferramentas para gerenciamento de dependncias cada vez mais populares, com linguagens funcionais
e pacotes, todas as quais dependem do Node como Clojure e Scala fornecendo imutabilidade
Package Manager (NPM). Times esto comeando a por padro. Imutabilidade permite que o cdigo
ver essas ferramentas extras como redundantes e seja mais facilmente escrito, lido e pensado. Usar
recomendando usar, quando possvel, somente NPM um armazenamento de dados exclusivamente
para gerenciamento de pacotes e dependncias. acumulativos pode conferir alguns desses benefcios
A simplificao do uso de NPM para tudo ajuda a camada de banco de dados, bem como simplificar
reduzir parte da agitao no campo de ferramentas de a auditoria e a consulta de histrico. As opes
JavaScript. de implementao variam de solues especficas
de armazenamento de dados acumulativos como
O tempo gasto com o provisionamento e atualizao Datomic ao simples uso de uma abordagem adicione-
de ambientes continua sendo um gargalo significativo no-atualize com um banco de dados tradicional.
em muitos projetos de desenvolvimento de software. Exclusivamente acumulativo uma estratgia
Ambientes Fnix podem ajudar a reduzir esse atraso de design atravs da qual dados so removidos por
estendendo a ideia dos Servidores Fnix a ambientes retratao ao invs de atualizao; Exclusivamente
inteiros. Julgamos essa uma tcnica to valiosa e aditivo uma tcnica de implementao.
eficaz para poupar tempo que voc deve considerar
testar essa abordagem. Usando automao, podemos Um nmero crescente de empresas est comeando
criar ambientes inteiros incluindo configurao a distribuir recompensas por bugs para incentivar
de rede, balanceamento de carga e portas de que bugs frequentemente relacionados a segurana
firewall por exemplo usando CloudFormation sejam reportados, e para ajudar a melhorar a
em AWS. Podemos assim provar que o processo qualidade dos softwares de forma geral. Para dar
funciona ao destruir ambientes e recri-los do zero suporte a esses programas, empresas como HackerOne
regularmente. Ambientes Fnix podem dar suporte e BugCrowd oferecem solues para gerenciar
ao provisionamento de novos ambientes para testes, este processo de forma mais simples. Ns mesmos
desenvolvimento, UAT e recuperao de desastres. temos pouca experincia com esse tipo de oferta,
Assim como nos Servidores Fnix, esse padro nem mas gostamos da ideia de incentivar que pessoas se
sempre aplicvel e precisamos pensar com cuidado apresentem e apontem algo que pode facilmente ser
sobre condies como estado e dependncias. Tratar uma vulnerabilidade prejudicial, de uma forma aberta
o ambiente inteiro como uma implantao azul/verde e transparente. Vale observar que pode haver alguns
pode ser uma opo quando a reconfigurao de problemas legais em incentivar usurios a achar
ambiente necessria. vulnerabilidades no seu software, ento, por favor,
cheque isso primeiro.
Tradicionalmente, QAs tm se concentrado em avaliar a
qualidade de um produto de software em um ambiente Lago de Dados um armazenamento de dados
de pr-produo. Com a ascenso da Entrega Contnua, imutveis, em grande parte brutos e no-processados,
o papel de QA tem mudado para incluir a anlise que funciona como uma fonte para anlise de dados.
de qualidade do produto de software em produo. Enquanto os armazns de dados mais comuns filtram
Isso envolve monitorar os sistemas de produo, e processam os dados antes de armazen-los, o lago
criando condies de alerta para detectar falhas apenas captura dados brutos, deixando que os usurios

Novembro 2015, ThoughtWorks, Inc. Todos os direitos reservados. TECHNOLOGY RADAR NOVEMBRO 2015 | 7
TCNICAS continuao
desses dados faam a anlise especfica que eles Observamos muitos times que se deparam com
precisam. Alguns exemplos so HDFS e HBase com problemas porque escolheram ferramentas, frameworks
Hadoop, Spark ou Storm. Em geral, apenas um grupo ou arquiteturas complexos, sob a justificativa de uma
pequeno de cientistas de dados trabalha com dados possvel necessidade de escalar. Empresas como
brutos, desenvolvendo fluxos de dados processados Twitter e Netflix tm que ser capazes de suportar
que so armazenados em repositrios perifricos para cargas extremas, por isso elas precisam dessas
usurios consultarem. Um Lago de Dados deve ser arquiteturas. Mas elas tambm contam com times de
usado apenas para anlise e gerao de relatrios. Para desenvolvimento extremamente habilidosos, capazes de
colaborao entre sistemas preferimos usar servios lidar com essa complexidade. A maioria das situaes
designados para esse propsito. no requer esse tipo de faanha de engenharia. Times
deveriam controlar sua inveja da escalabilidade web
Muitas empresas querem alavancar o desenvolvimento e priorizar solues mais simples, mas que ainda assim
distribudo ou offshore, mas se preocupam com a atendem suas necessidades.
segurana de seus cdigos e outras propriedades
intelectuais que podem acabar saindo do seu controle. A abordagem da estratgia de desenvolvimento em
Como consequncia disso, comum o uso de solues de camadas do Gartner (Pace-layered Application
desktop remoto de alta latncia para o desenvolvimento, Strategy) parece estar gerando um foco desnecessrio
que agregam benefcios ao controle de segurana de na ideia de camadas em arquiteturas. Consideramos
uma empresa, mas prejudicam a produtividade de quem a reflexo sobre o ritmo de alterao para diferentes
desenvolve. Uma alternativa usar um IDE hospedado competncias do negcio (que podem ser compostas
ligado a um navegador via VPN. IDE, cdigo e ambiente por diversas camadas de arquitetura) um conceito muito
de compilao ficam hospedados na nuvem privada da mais til. O risco de focar em camadas que muitos
empresa, amenizando as preocupaes com segurana tipos de alterao interferem em mltiplas camadas.
e melhorando a experincia de quem desenvolve de Por exemplo, a possibilidade de adicionar uma nova
maneira significativa. Alguns exemplos de ferramentas classe de aes a um website no depende apenas de
nessa rea so Orion e Che, da Eclipse Foundation, ter um CMS fcil de alterar. Tambm preciso atualizar
Cloud9 e Code Envy. banco de dados, pontos de integrao, sistemas de
armazenamento, etc. O reconhecimento de que algumas
Em monitoramento, a abordagem mais comum partes de uma arquitetura precisam ser mais maleveis
antecipar condies de erro e definir alertas para quando que outras til. Entretanto, o foco em camadas est se
elas acontecerem. Porm, normalmente difcil enumerar revelando desnecessrio.
a grande quantidade de modos de falha em um sistema
de software. Monitoramento de invariantes uma Scaled Agile Framework ou SAFe continua
abordagem complementar para estabelecer margens ganhando progressiva repercusso em muitas
esperadas, geralmente atravs da anlise de histrico de empresas. Alm disso, ferramentas e certificaes
comportamento, e alertar quando um sistema extrapola esto se tornando aspectos significativos na adoo
esses limites. do SAFe. Continuamos receosos de que as adoes
de fato estejam propensas padronizao em excesso
Acreditamos veementemente que branches de controle e tendendo a prticas de grandes releases, o que
de verso de vida longa prejudicam prticas valiosas dificulta a adoo da metodologia gil. Nas situaes
de engenharia, como integrao contnua, e essa apropriadas, continuamos a recomendar abordagens
crena sustenta nossa averso pelo Gitflow. Adoramos lean que incluem experimentao e incorporam prticas
a flexibilidade do Git por trs, mas abominamos de melhoria contnua, como Katas de Melhoria que
ferramentas que incentivam prticas ruins de oferecem s empresas modelos melhores para escalar
engenharia. Branches de vida muito curta prejudicam gil.
menos, mas a maioria dos times que vemos usando
Gitflow se sente empoderada para abusar de seu fluxo Scaled Agile Framework e SAFe so marcas da Scaled
de trabalho carregado de branches, que incentiva Agile, Inc.
a integrao tardia (inibindo assim uma integrao
verdadeiramente contnua).

Novembro 2015, ThoughtWorks, Inc. Todos os direitos reservados. TECHNOLOGY RADAR NOVEMBRO 2015 | 8
PLATAFORMAS
Segurana de senha ainda um tpico discutido escalveis. Pode ser usada para fornecer uma camada
30
acaloradamente, com o governo do 29
Reino Unido de agendamento para o Docker ou atuar como uma
advogando em favor de controles tcnicos que camada de abstrao para coisas como AWS. O Twitter
permitam aos usurios lembrar senhas mais simples a utilizou
73 com grande sucesso para ajudar a escalar
28
e o conselho de Edward Snowden sobre senhas 23 sendo sua infraestrutura. Ferramentas construdas a partir do
72
classificado apenas como segurana22superficial. Senhas Mesos j74comeam
75 a aparecer, como o Chronos, que
27 86
so geralmente um dos elos mais fracos na cadeia um substituto distribudo e tolerante a falhas para
76
de segurana, por isso recomendamos a 15 aplicao da 59o cron. Histrias de sucesso78proeminentes tambm
21 60 77
autenticao de duas etapas, que pode melhorar 17 comeam a surgir,64
como o Siri da Apple, rearquitetado
26 79
a segurana significantemente.
20 Senha temporria de para61
usar
62 Mesos.
63 65
acesso nico (TOTP) o algoritmo padro
13 nesse16campo,
com implementaes simples no lado do servidor
14 e A AWS libera uma enorme quantidade 80 de novas
19 66
25
aplicativos gratuitos de autenticao12para smartphones funcionalidades mensalmente, por
67 81 isso s vezes
11
do Google e da Microsoft. 6 pode ser difcil para qualquer
68 nova oferta
82 de servio
10
56 destacar. Mas o Lambda definitivamente tem
se
5 83
3
Mesos
24 uma18plataforma que9 abstrai recursos conseguido
57 atrair atenes.
69 Inicialmente 84 suportando

computacionais de camadas subjacentes,


8 facilitando
4 o apenas JavaScript, mas 70 agora tambm adicionando
2 85
desenvolvimento de sistemas
7 distribudos altamente suporte
58 a aplicaes 71
baseadas na JVM (e certamente
1
com mais por vir), o Lambda permite iniciar processos
EVITE AVALIE EXPERIMENTE ADOTE ADOTE EXPERIMENTE AVALIE EVITE
de vida muito curta, ou por reao a um evento ou
atravs de uma chamada da API Gateway relacionada.
39 89
32 Para servios sem estado, isso significa que no
31 102
40 33 preciso se preocupar com quaisquer mquinas de vida
93
longa, potencialmente
88 reduzindo custos e melhorando
41 a segurana. Apesar de outras incurses 101 ao campo do
52 34 87 92
42
35 PaaS pela AWS, o Lambda parece ser o mais prximo de
100
acertar.
43 91
36 99
38 Fastly, uma das vrias CDNs no mercado, tem
44
uma grande e crescente adeso entre os projetos
53 45 37
da ThoughtWorks, e usado98 por muitos nomes
90
46 importantes da web em escala, como GitHub e Twitter.
47 Seu conjunto de funcionalidades,
97 velocidade e preo
48
combinados
94 95 a tornam
96 uma opo muito atrativa quando
54 49
50 se est procurando por uma soluo de cache de borda.
51
Temos observado tambm redues significativas de
55 custo em projetos que migraram de outra CDN para
essa plataforma. Se voc est procurando por uma CDN,
no deixe de pesquisar sobre esta.

ADOTE 32. EXPERIMENTE 40. AVALIE 54. EVITE


31. TOTP Autenticao de duas 33. Apache Mesos 41. Apache Kylin 55. Servidores de aplicao
etapas 34. Apache Spark 42. AWS ECS 56. API Gateways excessivamente
35. AWS Lambda 43. Ceph ambiciosos
36. Cloudera Impala 44. CoreCLR e CoreFX 57. SPDY
37. Fastly 45. Deis 58. Nuvem privada superficial
38. H2O 46. Kubernetes
39. HSTS 47. Mdulos de segurana do Linux
48. Mesosphere DCOS
49. Microsoft Nano Server
50. Particle Photon/Particle Electron
51. Presto
52. Rancher
53. Banco de dados de sries
temporais

Novembro 2015, ThoughtWorks, Inc. Todos os direitos reservados. TECHNOLOGY RADAR NOVEMBRO 2015 | 9
PLATAFORMAS continuao
Anlise preditiva vem sendo usada cada vez mais em Kubernetes a reposta do Google para o problema de
produtos, muitas vezes diretamente em funcionalidades implantar contineres em um cluster de mquinas, o
para o usurio final. H2O um pacote interessante que tem se tornado um cenrio cada vez mais comum.
de cdigo aberto (suportado por uma startup) que No a soluo usada pelo Google internamente, mas
faz anlises preditivas acessveis para times de um projeto de cdigo aberto que se originou no Google
desenvolvimento, oferecendo uma grande variedade e tem recebido um bom nmero de contribuies
de anlises, excelente performance e fcil integrao externas. Docker e Rocket so suportados como
em plataformas baseadas na JVM. Ao mesmo tempo, formatos de continer e os servios oferecidos incluem
integra-se com as ferramentas favoritas dos cientistas de gerenciamento de sade, replicao e descoberta.
dados, R e Python, bem como Hadoop e Spark. Uma alternativa similar nesse campo o Rancher,
uma soluo de cdigo aberto que tambm permite
Segurana de transporte HTTP estrito (HSTS) implantao de contineres em um cluster de mquinas
atualmente uma poltica amplamente suportada, e fornece solues como gerenciamento de ciclo de
que permite que websites se protejam de ataques vida, monitoramento, checagens de sade e descoberta.
downgrade. Um ataque downgrade, no contexto do Tambm inclui um sistema operacional completamente
HTTPS, aquele que pode direcionar usurios do seu conteinerizado baseado no Docker. O foco amplo em
site para o HTTP ao invs de HTTPS, permitindo outros conteinerizao e um footprint muito pequeno so
ataques, como ataques man-in-the-middle. Usando o vantagens chave do Rancher.
cabealho do servidor, voc informa aos navegadores
que eles devem usar apenas HTTPS para acessar seu Mesosphere DCOS uma plataforma construda
site, e devem ignorar tentativas de downgrade para a partir do Mesos. Fornece uma abstrao sobre
contactar o site via HTTP. O suporte dos navegadores mquinas subjacentes, proporcionando um pool de
hoje difundido o suficiente para que essa funcionalidade armazenamento e computao que permite que servios
simples de implementar seja considerada por qualquer construdos para DCOS operem em grande escala (j
site usando HTTPS. existe suporte para Hadoop, Spark e Cassandra, entre
outros). No momento, provavelmente exagero para
Elastic Container Service (ECS) a entrada da AWS cargas de trabalho mais modestas (nesses casos, o bom
no campo do Docker multihost. Embora exista muita e velho Mesos ainda pode ser uma boa opo), mas
competio nessa rea, no h muitas solues ser interessante observar se o Mesosphere vai tentar
gerenciadas fora de instalaes internas. Ainda que o posicionar o DCOS como um sistema de propsito mais
ECS parea um bom comeo, estamos receosos de que geral.
seja exageradamente complicado no momento, e carea
de uma boa camada de abstrao. Caso voc queira Em contraste com a nuvem moderna e solues de
executar Docker na AWS, no entanto, essa ferramenta continer baseadas em Linux, at mesmo o Windows
certamente deve estar no topo de sua lista. Apenas no Server Core grande e pesado. A Microsoft est
espere que ela seja fcil de usar no incio. reagindo e liberou os primeiros previews do Nano
Server, uma verso mais simples do Windows Server
Ceph uma plataforma de armazenamento que que oferece GUI stack, suporte para Win32 32-bit,
pode ser usada como armazenamento de objetos, logins locais e suporte a desktop remoto, tendo como
armazenamento de blocos e como um sistema de resultado tamanho em disco aproximado de 400MB.
arquivos, em geral executando em um cluster de Os primeiros previews so difceis de trabalhar e a
servidores commodity. Tendo seu primeiro grande soluo final ser restrita ao uso do CoreCLR, mas para
release acontecido em julho de 2012, o Ceph certamente empresas interessadas em executar solues baseadas
no um produto novo. Queremos destac-lo no em .NET, o Nano Server definitivamente merece ser
radar como um importante bloco de construo para examinado nesse estgio.
nuvens privadas. Ele particularmente atrativo porque
seu componente RADOS Gateway capaz de expor o Presto um mecanismo de consulta SQL distribudo
armazenamento de objetos atravs de uma interface de cdigo aberto projetado e otimizado para executar
RESTful que compatvel com Amazon S3 e as APIs cargas de trabalho de anlise interativa. A arquitetura
OpenStack Swift. de processamento massivamente paralela do Presto

Novembro 2015, ThoughtWorks, Inc. Todos os direitos reservados. TECHNOLOGY RADAR NOVEMBRO 2015 | 10
PLATAFORMAS continuao
combinada com tcnicas avanadas de gerao de Temos observado ganhos de produtividade
cdigo e pipelines de processamento na memria o incontestveis vindos da implantao de aplicaes
torna altamente escalvel. Ele suporta um grande e servios em provedores de nuvem maduros. Muito
subconjunto de ANSI SQL, incluindo consultas desse ganho se d pela capacidade de times de
complexas, junes, agregaes e funes de janela. implantar e operar seus prprios servios com um
O Presto oferece suporte para uma grande gama de alto grau de autonomia e responsabilidade. Estamos
fontes de dados, incluindo Hive, Cassandra, MySQL hoje nos deparando regularmente com ofertas de
e PostgreSQL, unindo assim a interface de anlise nuvens privadas superficiais em empresas nas quais
interativa aos armazenamentos de dados de uma plataformas bsicas de virtualizao esto sendo
empresa. Aplicaes podem se conectar ao Presto rotuladas como nuvens. comum que times consigam
usando sua interface JDBC. auto-fornecer um conjunto restrito de tipos de servio
fixos, com acesso limitado e capacidade reduzida de
Uma das nossas reclamaes comuns colocar personalizar as convenes corporativas gerenciadas de
inteligncia de negcio em middleware, o que resulta forma central, o que resulta em solues improvisadas.
em servidores de aplicaes e barramentos de servios O andamento da implantao frequentemente fica
corporativos que ambicionam executar uma lgica de limitado por infraestruturas manualmente gerenciadas,
aplicao crtica. Isso requer programao complexa como rede, firewall e armazenamento. Encorajamos
em ambientes que no atendem bem a esse objetivo. empresas a considerar com mais consistncia os custos
Temos observado um preocupante reaparecimento do uso de uma oferta inadequada de nuvem privada.
dessa condio com produtos de API Gateways
excessivamente ambiciosos. API Gateways podem ser
teis para lidar com algumas preocupaes genricas
por exemplo, autenticao e limitao de variao mas
quaisquer inteligncia de domnio como transformao
de dados ou processamento de regras devem residir
em aplicaes ou servios nos quais eles possam ser
controlados por times de produto trabalhando prximos
aos domnios que eles suportam.

Novembro 2015, ThoughtWorks, Inc. Todos os direitos reservados. TECHNOLOGY RADAR NOVEMBRO 2015 | 11
FERRAMENTAS
Temos recebido elogios de vrios times de
ThoughtWorkers que esto usando o Browsersync. 30 Se
o nmero de dispositivos para os quais 29 desenvolvemos

aplicaes web cresce, cresce tambm o nvel de


73
esforo que deve ser despendido28 aos testes para
23
esses diferentes dispositivos. Browsersync uma 72
22 74
ferramenta gratuita de27cdigo aberto que pode 75
86
reduzir drasticamente esse esforo ao sincronizar 59
76
78
testes manuais em mltiplos navegadores
21 mobile
15 ou 17 60 77
desktop. Oferecendo
26 opes tanto CLI quando UI, essa 64 79
20 62
ferramenta amigvel a build pipelines e automatiza 61 63 65
13
tarefas repetitivas como preenchimento de formulrios. 16
80
14
25 19 66 67 81
O gerenciamento de dependncias em 11 projetos
12
6 68 82
iOS e OS X costumava ser inteiramente 10 manual ou
56
interamente
24
automtico, quando 9usado o CocoaPods.3
5 83
84
57 69
Com Carthage, abriu-se a possibilidade de um meio-
18

termo. Carthage gerencia dependncias 8


baixa, 2 4 70
85
7 58
constri e atualiza frameworks mas deixa a integrao1 71

dos frameworks
EVITE na compilao
AVALIE do projeto para ADOTE
EXPERIMENTE o ADOTE EXPERIMENTE AVALIE EVITE

projeto. Isso em comparao com o CocoaPods, que


basicamente assume39 o controle da estrutura do projeto 89
32
e da configurao da compilao. Deve-se observar31que ferramentas, por exemplo git-crypt e Blackbox, 102 as quais
40 33
o Carthage pode ser usado apenas com frameworks mencionamos na edio anterior do Radar. Apesar da
93
dinmicos, que no esto disponveis no iOS 7 e verses disponibilidade
88 dessas ferramentas, infelizmente ainda
anteriores.52
41
34
muito
87
comum que segredos
92
sejam armazenados
101 de
35
42 forma desprotegida. Na verdade, to comum, que
100
Anteriormente, recomendamos boot2docker como softwares maliciosos automatizados so usados para
43
uma forma de executar facilmente o Docker 36 em sua encontrar credenciais
91 AWS e iniciar
99 instncias EC2 para
38
mquina Windows ou OS44X. Docker Toolbox substitui minerar Bitcoins, deixando as Bitcoins para o invasor
boot2docker, adicionando
53 ainda
45 algumas ferramentas.
37
e a conta a pagar para o usurio. Gitrob usa uma
98
Includos agora, o Kitematic gerencia contineres e o abordagem 90 semelhante e escaneia os reporsitrios
46
Docker Compose gerencia configuraes multi-Docker GitHub de uma empresa, sinalizando todos os arquivos
47 97
(apenas para Mac). Pode ser usado com segurana como que podem conter informaes delicadas que no
94 95 96
um substituto imediato para54 o boot2docker,
48 49e ir at deveriam ter sido colocadas no repositrio. Esta
50
mesmo conduzir a atualizao para voc. 51
obviamente uma abordagem de resposta. Gitrob pode
apenas alertar times quando j (quase) tarde demais.
Armazenar segredos como senhas e tokens
55 de
Por esse motivo, Gitrob deve ser vista apenas como uma
acesso com segurana em repositrios de cdigo ferramenta complementar, com intuito de minimizar
atualmente suportado por um nmero crescente de estragos.

59. ADOTE EXPERIMENTE AVALIE EVITE


60. Composer 63. Browsersync 76. Apache Kafka 90. Citrix para desenvolvimento
61. Mountebank 64. Carthage 77. Concourse CI
62. Postman 65. Consul 78. Espresso
66. Docker Toolbox 79. Gauge
67. Gitrob 80. Gor
68. GitUp 81. ievms
69. Hamms 82. Lets Encrypt
70. IndexedDB 83. Pageify
71. Polly 84. Prometheus
72. REST-assured 85. Quick
73. Sensu 86. RAML
74. SysDig 87. Security Monkey
75. ZAP 88. Sleepy Puppy
89. Visual Studio Code

Novembro 2015, ThoughtWorks, Inc. Todos os direitos reservados. TECHNOLOGY RADAR NOVEMBRO 2015 | 12
FERRAMENTAS continuao
O Git pode ser confuso. Muito confuso. E at mesmo um CLI plugvel de cdigo aberto para rastrear e
quando usado em um simples processo de resolver problemas em sistemas Linux, o SysDig possui
desenvolvimento realizado no tronco do projeto, ainda algumas funcionalidades poderosas. Uma das principais
h tantas nuances sobre seu funcionamento que fcil caractersticas de que gostamos a capacidade de gerar
se perder s vezes. Quando isso acontece, ter uma dados de rastreamento do sistema em uma mquina
boa compreenso de como o Git funciona debaixo dos que est enfrentando dificuldades, que podem ser
panos muito til. GitUp uma ferramenta para Macs investigados posteriormente para que se descubra
que proporciona exatamente isso. O GitUp fornece o que estava acontecendo. SysDig tambm oferece
uma representao grfica do que est acontecendo suporte para trabalhar com contineres, o que torna
medida que voc digita comandos normais do Git no a ferramenta j til em uma ferramenta ainda mais
terminal. Voc pode aprender os diversos comandos poderosa.
do Git e ao mesmo tempo entender o que cada um faz
conforme voc usa. GitUp uma ferramenta til tanto Muitos times de desenvolvimento esto migrando
para novos usurios de Git quando para usurios mais de servidores simples de integrao contnua para
experientes. pipelines de Entrega Contnua, normalmente abrangendo
mltiplos ambientes e alcanando a produo. Para
Vrios dos nossos times que trabalham em projetos implementar tal pipeline com sucesso e oper-la de
.NET recomendaram Polly como uma ferramenta forma sustentvel necessria uma ferramenta de CI/CD
til para a construo de sistemas baseados em que trata build pipelines e artefatos como cidados de
microsservios. Polly encoraja a expresso fluente de primeira classe, e infelizmente no h muitas. Concourse
polticas transitrias de tratamento de exceo e do CI um estreante promissor nesse campo e nossos times
padro Circuit Breaker, incluindo polticas como Retry, que o testaram esto animados com sua configurao,
Retry Forever e Wait and Retry. Bibliotecas similares que permite builds que executam em contineres, possui
j existem em outras linguagens (Hystrix para Java, uma interface limpa e usvel e desencoraja servidores de
por exemplo) e Polly uma adio bem-vinda para a compilao no reproduzveis.
comunidade .NET. Apresentando boa integrao com
Polly h o Brighter. Brighter outra pequena biblioteca Espresso uma ferramenta de testes funcionais para
.NET de cdigo aberto que fornece recursos bsicos Android. Sua API principal sucinta esconde os confusos
para implementar chamadas de comando. Combinar as detalhes de implementao e ajuda a escrever testes
duas bibliotecas proporciona uma funcionalidade til concisos, com execuo mais rpida e confivel.
de quebra de circuito, principalmente no contexto do
padro Ports and Adaptors e CQRS. Embora possam ser Gauge uma ferramenta leve de automao de testes
usados separadamente, no cenrio atual nossos times multiplataforma. As especificaes so escritas em
acreditam que eles funcionem bem juntos. Markdown, para que casos de teste possam ser escritos
na linguagem de negcio e possam ser incorporados a
Muitas ferramentas de monitoramento so construdas um formato existente de documentao. As linguagens
em torno do conceito de mquina ou instncia. O suportadas so implementadas como plugins a um
crescente uso de padres como Servidor Fnix e ncleo nico, o que assegura consistncia entre
ferramentas como Docker mostra que esta uma forma implementaes de linguagem. Essa ferramenta, com
cada vez menos til de modelar infraestruras: instncias o cdigo aberto pela ThoughtWorks, tambm suporta
esto se tornando transientes enquanto servios so execuo paralela para todas as plataformas suportadas.
persistentes. Sensu permite que uma instncia se
registre para desempenhar uma funo especfica e o Apesar do uso decrescente do Internet Explorer, para
Sensu ento a monitora nessa condio. Ao longo do muitos produtos, a base de usurios do IE no uma
tempo, diferentes instncias desempenhando aquela parcela insignificante do mercado, e a compatibilidade
funo podem ir e vir. Dados esses fatores e a crescente do navegador precisa ser testada. Isso particularmente
maturidade da ferramenta, sentimos que era hora de problemtico caso voc prefira as vantagens de um
trazer o Sensu de volta ao Radar. sistema para desenvolvimento baseado em UNIX.
Para contornar esse dilema, o ievms oferece um script
Embora o SysDig no seja uma novidade no Radar, utilitrio que une imagens VM distribudas pelo Windows
ainda estamos surpresos com a quantidade de pessoas e VirtualBox para automatizar a configurao e a
que no conhece a ferramenta. Funcionando como testabilidade de vrias verses do IE, do 6 ao Edge.

Novembro 2015, ThoughtWorks, Inc. Todos os direitos reservados. TECHNOLOGY RADAR NOVEMBRO 2015 | 13
FERRAMENTAS continuao
Embora um nmero crescente de sites esteja Swagger, e nesta edio do Radar gostaramos de
implementando HTTPS para auxiliar na proteo de destacar a linguagem de modelagem de APIs RESTful
seus usurios e melhorar a integridade da web como (RAML). Nossos times acreditam que, em comparao
um todo, existem muitos outros sites ainda por adotar. com Swagger, ela seja mais leve e mude o foco de
Somando-se a isso, vemos mais e mais pessoas usando adicionar documentao a APIs existentes para projetar
HTTPS em suas empresas para proporcionar garantias APIs.
de segurana adicionais. Um dos principais obstculos
para uma adoo mais ampla tem sido o processo de Sleepy Puppy um framework de gesto de delayed
obteno do certificado. Alm do custo, o processo em cross-site scripting (XSS) payload cujo cdigo foi
si est longe de ser simples. Lets Encrypt, uma nova recentemente aberto pelo Netflix. Permite testar
Autoridade de Certificao, busca resolver essa questo. vulnerabilidades para XSS que vo alm da aplicao
Primeiro, fornecendo certificados gratuitos. Segundo, destino, quando o invasor pretende atacar um sistema
e indiscutivelmente mais importante, fornecendo uma subjacente secundrio. Sendo o XSS um dos top 10
API de linha de comando extremamente fcil de usar, do OWSAP, vemos esse framework como um auxiliar
facilitando a automao do processo de emisso, para verificaes de segurana automatizadas em
atualizao e instalao de certificados. Acreditamos que vrias aplicaes. Simplifica a captura, gesto e rastreio
o Lets Encrypt, em verso beta no momento, pode ser da propagao do XSS durante longos perodos de
revolucionrio no sentido de ajudar uma poro maior tempo, com corpos de dados personalizveis. Sleepy
da web a adotar HTTPS, ao mesmo tempo mostrando Puppy tambm exibe uma API que pode ser integrada
como devem ser boas ferramentas automatizveis para com ferramentas de vulnerabilidade como ZAP, para
quem se preocupa com segurana. checagens de segurana automatizadas.

Pageify uma biblioteca Ruby para construo de Page Visual Studio Code o editor/IDE gratuito da
Objects para testes de automao de UI, tendo como Microsoft, disponvel para vrias plataformas.
foco execues de testes mais rpidas e legibilidade do Achamos a integrao de controle de verso com Git
cdigo. Ela oferece APIs simples para definir, operar e muito positiva para promover prticas de integrao
declarar Page Objects de forma dinmica, permitindo contnua. O Visual Studio Code tambm fornece um
cdigos legveis mesmo ao lidar com elementos com meio de integrao com ferramentas externas atravs
hierarquias complexas no DOM. Permite integrao com de tarefas, com autodeteco de tarefas grunt/gulp,
WebDriver e Capybara. eliminando a necessidade de executar tarefas grunt/
gulp via terminais, simplesmente usando o editor. Com o
O SoundCloud recentemente abriu o cdigo de crescimento do ecossistema do Docker, esse IDE oferece
seu conjunto de ferramentas de monitoramento e suporte para o dockerfile com snippets e definies de
alerta, o Prometheus. Desenvolvido como resposta comandos vlidos.
s dificuldades com Graphite em seus sistemas em
produo, o Prometheus essencialmente suporta um Muitas empresas ainda esto insistindo para que times
modelo HTTP baseado em pull (embora modelos push de desenvolvimento usem Citrix desktop remoto
no estilo do Graphite tambm sejam suportados). para desenvolvimento. Embora isso proporcione um
Prometheus tambm vai alm ao dar suporte a alertas, modelo de segurana simples ativos teoricamente
tornando-se parte ativa do seu conjunto de ferramentas nunca deixam os servidores da empresa usar desktops
operacionais. At a data dessa publicao, o Prometheus remotos para desenvolvimento prejudica imensamente
estava apenas no release 0.15.1, mas evoluindo muito a produtividade de quem desenvolve. No h muito
rpido. Estamos satisfeitos de ver o recente foco do sentido em pagar um valor-hora mais barato para
produto em bancos de dados de sries temporais e profissionais de desenvolvimento se voc pretende
recursos de indexao multidimensionais, tambm impor os fardos da distribuio e do desktop remoto,
permitindo a exportao para uma maior variedade de e esperamos que fornecedores offshore admitam
ferramentas grficas de front-end. essas desvantagens a seus clientes. muito melhor
usar um ambiente offshore limpo e seguro, no qual
Com um crescente panorama de servios oferecendo desenvolvimento local possa ser realizado, ou um IDE
APIs RESTful, est se tornando cada vez mais importante hospedado, por exemplo ievms.
document-las. J mencionamos anteriormente o

Novembro 2015, ThoughtWorks, Inc. Todos os direitos reservados. TECHNOLOGY RADAR NOVEMBRO 2015 | 14
20 62
61 63
13 65
16
80
14
25 19 66 67 81
12
11
6 68 82
10
56
5 83
24 9 3 84

LINGUAGENS & FRAMEWORKS


18 57 69

8 4 70
2 85
7 58
1 71

Por muitos
EVITEanos,AVALIE
o JavaScriptEXPERIMENTE
cresceu para se tornarADOTE ADOTE EXPERIMENTE AVALIE EVITE

provavelmente a linguagem de programao mais usada no


mundo. Todavia, a linguagem
39 em si tem alguns problemas 89
32
que muitas pessoas j tentaram resolver33usando bibliotecas 31 102
40
ou at mesmo implementando suas prprias linguagens 93
88
executadas a partir 41 do JavaScript (das quais mencionamos 101
CoffeeScript52e ClojureScript. ECMAScript 34 6, a nova verso
35
87 92

do JavaScript, resolve 42 muitos dos problemas das verses 100


anteriores atualmente em43uso. Embora o suporte a 91
36 99
navegadores deixe a desejar, o suporte de transpilers 38
44
maduros como Babel permite programar no ECMAScript
6 e viabilizar seu suporte
53 em navegadores
45 mais antigos.
37
98
90
Para novos projetos, sugerimos veementemente
46 usar
ECMAScript 6 desde o incio. 47 97
94 95 96
Um ano depois de seu lanamento 54 para o48 49 Swift
pblico, 50
agora nossa escolha padro para desenvolvimento no 51
ecossistema Apple. Com a recente liberao do Swift 2, a
55
linguagem se aproxima de um nvel de maturidade que
proporciona a estabilidade e a performance necessrias
para a maior parte dos projetos. O Swift ainda tem
problemas, principalmente em relao a suporte de
ferramentas, refatorao e testes. Entretanto, acreditamos simples e combinveis atuando em uma abstrao comum.
que estes no sejam significativos o suficiente para evit- Nossos times trabalhando com Clojure o tm achado uma
lo. Ao mesmo tempo, portar grandes bases de cdigo ferramenta muito til e objetiva.
Objective-C existentes dificilmente vale a pena. O anncio
de que o Swift vai ser tornar um software de cdigo aberto Temos vrias ressalvas em relao ao uso de WebSockets
outro sinal positivo. Esperamos que isso no seja apenas HTML5. Permitindo que o servidor inicie aes no
mais um despejo de cdigo internamente desenvolvido em navegador, WebSockets se afasta do modelo requisio/
um repositrio pblico, j que a Apple afirmou claramente resposta com conexes transientes que sustenta a World
que contribuies da comunidade so incentivadas e sero Wide Web hoje. Segurana outro grande risco associado
aceitas. com WebSockets. Por exemplo, o padro no impe
nenhuma poltica de requisies de origem cruzada (cross-
A maioria dos frameworks de template como Mustache ou origin). Entretanto, reconhecemos que em determinadas
FreeMarker mistura cdigo com marcao em um nico aplicaes de monitoramento ou alerta, WebSockets pode
arquivo para implementar contedo complexo e dinmico. ser muito til. Caso voc precise construir um servidor de
Enlive um framework de template baseado em Clojure WebSockets .NET, SignalR convenientemente implementa
que separa completamente linguagem de programao boa parte do cdigo adicional que voc precisa para
de marcao HTML e usa seletores de CSS para localizar uma aplicao de produo robusta. Isso inclui algumas
e substituir partes do documento. O Enlive demonstra prticas de segurana recomendadas, como validao
a fora da programao funcional para implementar de tokens de conexo e ativao SSL quando criptografia
comportamento complexo atravs de uma srie de funes necessria. Embora os times da ThoughtWorks

ADOTE EXPERIMENTE AVALIE EVITE


91. ECMAScript 6 94. Enlive 98. Axon
92. Nancy 95. React.js 99. Ember.js
93. Swift 96. SignalR 100. Frege
97. Spring Boot 101. HyperResource
102. Material UI
103. OkHttp
104. React Native
105. TLA+
106. Traveling Ruby

Novembro 2015, ThoughtWorks, Inc. Todos os direitos reservados. TECHNOLOGY RADAR NOVEMBRO 2015 | 15
LINGUAGENS & FRAMEWORKS continuao
estejam muito satisfeitos com SignalR, ainda existem OkHttp uma biblioteca em Java para comunicao via
problemas fundamentais com WebSockets que devem ser HTTP do Square que fornece uma interface fluente para
considerados antes de abraar completamente a ideia. criar conexes, bem como suporte para o protocolo
HTTP/2, mais rpido. Mesmo usando HTTP/1.1, OkHttp
Spring Boot permite uma configurao simples de pode proporcionar melhorias de desempenho atravs
aplicaes independentes baseadas em Spring. ideal de pooling de conexo e compresso gzip transparente.
para erguer novos microsservios e fcil de implementar. Suportanto tanto chamadas sncronas bloqueantes quanto
Tambm torna o acesso a dados menos penoso, graas aos assncronas no-bloqueantes, tambm pode ser usado
mapeamentos Hibernate com menos cdigo duplicado. como um substituto imediato para o amplamente usado
Gostamos do fato de que o Spring Boot simplifica servios HttpClient da Apache.
Java construdos com Spring, mas aprendemos a ser
cautelosos com as muitas dependncias. O Spring ainda Mais um estreante no mundo do desenvolvimento mobile
est por debaixo dos panos. Caso esteja escrevendo multiplataforma, o React Native do Facebook leva o
microsservios com Java, voc tambm pode considerar modelo de programao React.js a quem desenvolve
usar DropWizard ou um microframework como Spark para para iOS e Android. Programas React Native so escrito
obter os benefcios do Spring Boot sem o enorme peso do em JavaScript, mas ao contrrio de um framework hbrido
Spring. como Ionic, React Native proporciona a quem desenvolve
acesso a componentes nativos de UI na plataforma
Embora ainda tenhamos algumas reservas em relao ao de destino. Esta uma abordagem que j vimos antes
CQRS como um padro geral, a abordagem pode funcionar (Calatrava, por exemplo), mas React Native j inspirou uma
muito bem em lugares especficos. Nessas situaes poro significativa da comunidade de desenvolvimento, e
especficas, no entanto, sobra muito trabalho para quem se apoia no mpeto gerado pelo React.js. Esse framework
desenvolve executar o CQRS corretamente. Axon um pode assumir um papel importante no futuro do
framework que pode ajudar com isso na JVM e j obtivemos desenvolvimento de aplicativos mveis.
algum sucesso utilizando-o. Ainda que certamente no
possa ser considerado uma soluo perfeita atualmente, Construir sistemas usando microsservios requer que
Axon continua a evoluir e pode fazer muito mais sentido pensemos mais profundamente sobre isolamento de falhas
que tentar escrever tudo do zero. e testes. TLA+ uma linguagem de especificao formal que
pode ser til em ambos esses cenrios. Para isolamento
Seguindo o caminho de muitas outras linguagens de de falhas, TLA+ pode ser usada para identificar invariantes
programao, uma das favoritas absolutas dos geeks, em seu sistema, que podem ser monitoradas diretamente.
Haskell, agora est disponvel tambm na JVM, atravs Uma invariante pode ser a razo entre o nmero de
do Frege. Isso adiciona uma linguagem de programao requisies para um servio e o nmero de requisies
puramente funcional plataforma, permitindo fcil para um segundo servio, por exemplo. Qualquer alterao
interoperabilidade com outras linguagens e bibliotecas JVM. nessa razo provocaria um alerta. TLA+ tambm tem sido
usada para identificar falhas de design sutis em sistemas
HyperResource um framework Ruby para construo distribudos. A Amazon, por exemplo, usava checagem de
de clientes de APIs RESTful. O framework aceita JSON em modelo baseada em uma especificao formal escrita em
formato HAL e gera de forma dinmica um objeto modelo TLA+ para identificar bugs sutis no Dynamo DB antes de seu
completo com links hipermdia. Embora o framework ainda lanamento para o pblico. Para a maioria dos sistemas, o
seja muito novo, gostamos do fato de ele adotar REST nvel investimento necessrio para criar a especificao formal e
3 no modelo de maturidade de Richardson para maior depois executar a checagem de modelo provavelmente
visibilidade do servio e protocolos autodocumentados. muito alto. Entretanto, para sistemas crticos complexos ou
com muitos usurios , acreditamos que seja muito vlido
Material UI oferece componentes reutilizveis para uso
ter outra ferramenta em seu conjunto.
em aplicaes React que implementam a linguagem
Material Design do Google. Ocupando um espao similar Traveling Ruby possibilita a distribuio de binrios Ruby
ao do Twitter Bootstrap, ele facilita um rpido incio de forma porttil, pronta para execuo e independente
de funcionamento, mas no apresenta os mesmos de plataforma, sem a necessidade de instalao de um
inconvenientes medida que a aplicao cresce. Elemental interpretador, pacotes ou gems adicionais. Dissocia
UI uma alternativa que vale uma investigao. ainda a execuo de aplicaes Ruby do ambiente de
desenvolvimento no qual elas so executadas.

Novembro 2015, ThoughtWorks, Inc. Todos os direitos reservados. TECHNOLOGY RADAR NOVEMBRO 2015 | 16
A ThoughtWorks uma empresa de software e uma de 20 anos, a ThoughtWorks cresceu de um pequeno
comunidade de pessoas apaixonadas e guiadas por grupo em Chicago para uma empresa de mais de 3500
propsitos, especialstas em consultoria, entrega e pessoas, espalhadas em 35 escritrios e em 12 pases:
produtos de software. Pensamos de forma disruptiva Austrlia, Brasil, Canad, China, Equador, Alemanha,
para entregar tecnologia que atenda aos maiores ndia, Singapura, frica do Sul, Turquia, Reino Unido e
desafios de clientes, ao mesmo tempo que buscamos Estados Unidos.
revolucionar a indstria de TI e promover mudanas
sociais positivas. Criamos ferramentas pioneiras para
times de desenvolvimento que aspiram a ser grandiosos.
Nossos produtos ajudam organizaes a melhorar
constantemente e a entregar software de qualidade
para suas necessidades mais crticas. Fundada h mais

Novembro 2015, ThoughtWorks, Inc. Todos os direitos reservados. TECHNOLOGY RADAR NOVEMBRO 2015 | 17

Você também pode gostar