Escolar Documentos
Profissional Documentos
Cultura Documentos
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:
COLABORADORES
O Technology Radar preparado pelo Conselho Consultivo de Tecnologia da ThoughtWorks, composto por:
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
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.
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
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
dos frameworks
EVITE na compilao
AVALIE do projeto para ADOTE
EXPERIMENTE o ADOTE EXPERIMENTE AVALIE EVITE
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
8 4 70
2 85
7 58
1 71
Por muitos
EVITEanos,AVALIE
o JavaScriptEXPERIMENTE
cresceu para se tornarADOTE ADOTE EXPERIMENTE AVALIE EVITE
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