Você está na página 1de 19

TECHNOLOGY

RADAR ABRIL 16
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:

CDIGO ABERTO COMO UM SUBPRODUTO VIRTUOSO


Alguns dos softwares mais influentes que aparecem em nosso radar vm de empresas cuja misso primordial no criar ferramentas
de software. Vrias das nossas notas no radar vm do Facebook, que no considerada uma empresa tradicional de desenvolvimento
de ferramentas de software. Diferentemente do que acontecia antes, hoje muitas empresas abrem o cdigo de importantes
componentes de software para atrair as pessoas e para credenciar elas prprias. Isso cria um ciclo virtuoso: ferramentas inovadoras
de cdigo aberto atraem pessoas talentosas, que por sua vez so mais propcias a inovar. Como um efeito colateral, os frameworks
e bibliotecas dessas empresas esto entre os mais influentes da indstria. Isso representa uma grande mudana no ecossistema
de desenvolvimento de software e mais uma evidncia da eficcia do software de cdigo aberto no contexto adequado (nossa
recomendao sobre inveja de escalabilidade web ainda se aplica).

DECIFRANDO O ENIGMA DE PAAS


Muitas grandes organizaes vem a Nuvem e Plataforma como Servio (Platform as a Service ou PaaS) como um caminho bvio
para padronizar infraestruturas, facilitar implantaes e operaes e tornar pessoas desenvolvedoras mais produtivas. Mas ainda
cedo, a definio de PaaS continua sendo nebulosa e muitas abordagens de PaaS so incompletas ou prejudicadas pela imaturidade
de frameworks e ferramentas de suporte. Algumas solues de PaaS dificultam a execuo de tarefas que so mais facilmente
executadas com uma soluo simples de Infraestrutura como Servio (Infrastructure as a Service ou IaaS), como usar um Service
Locator personalizado ou uma topologia de rede complexa, e ainda no est claro se a abordagem de Contineres como servio
ser capaz de proporcionar valor semelhante com mais flexibilidade. Vemos muitas empresas implementando PaaS de prateleira
ou gradualmente construindo suas prprias solues, com nveis de sucesso variveis. Suspeitamos que qualquer PaaS construda
hoje no ser um produto final, mas parte de um caminho evolutivo. A migrao corporativa para a Nuvem e PaaS, embora traga
muitos benefcios, traz dificuldades e desafios, principalmente no que se refere a design de pipeline e ferramentas em geral. Quem
consome essas tecnologias deve buscar pelo momento decisivo em que a maturidade atingida no seu contexto, e evitar um
acoplamento muito alto aos detalhes de implementao da sua PaaS.

DOCKER, DOCKER, DOCKER!


A conteinerizao, Docker em particular, provou ser extremamente benfica como tcnica de gerenciamento de aplicaes,
racionalizando a implantao entre ambientes e simplificando problemas do tipo funciona aqui mas a no. Vemos uma quantidade
significativa de energia concentrada no uso de Docker e, particularmente, no ecossistema ao seu redor alm das etapas de
desenvolvimento/teste, indo at produo. Contineres Docker so usados como unidades de escalabilidade para muitas PaaS e
plataformas data center OS, dando ainda mais fora ferramenta. medida que amadurece como ambiente tanto de desenvolvimento
quanto de produo, as pessoas passam a dar mais ateno conteinerizao, seus efeitos colaterais e suas implicaes.

REATIVA DEMAIS?
A programao reativa na qual componentes reagem a mudanas nos dados que so transmitidos a eles ao invs de usar
formas imperativas tornou-se extremamente popular, com extenses reativas disponveis em quase todas as linguagens de
programao. Interfaces de usurio, em particular, so geralmente escritas em estilo reativo, e muitos ecossistemas esto se
definindo nesse paradigma. Apesar de gostarmos do padro, o uso exagerado de sistemas baseados em eventos complica a lgica
de programao, deixando-a difcil de entender. Esse estilo de programao deve ser usado de maneira sensata. Certamente
popular: inclumos um nmero significativo de frameworks reativos e ferramentas de suporte nessa edio do radar.

COLABORADORES

O Technology Radar preparado pelo Conselho Consultivo de Tecnologia da ThoughtWorks, composto por:
Rebecca Parsons (CTO)
Martin Fowler (Cientista-Chefe)
Anne J Simmons
Badri Janakiraman
Brain Leke

Dave Elliman
Erik Doernenburg
Evan Bottcher
Fausto de la Torre
Hao Xu

Ian Cartwright
James Lewis
Jonny LeRoy
Mike Mason
Neal Ford

Rachel Laycock
Sam Newman
Scott Shaw
Srihari Srinivasan
Thiyagu Palanisamy

TRADUO E REVISO

Alexandre Barbosa, Alexey Boas, Gregrio Melo, Guilherme Froes, Paula Ribas e Ricardo Cavalcanti.

Abril 2016, ThoughtWorks, Inc. Todos os direitos reservados

TECHNOLOGY RADAR ABRIL 2016 | 1

SOBRE O TECHNOLOGY RADAR


ThoughtWorkers so pessoas apaixonadas por tecnologia. Ns desenvolvemos, pesquisamos, testamos,
67
contribumos com cdigo livre, escrevemos e visamos a sua constante melhoria para todas as pessoas.
68
Nossa misso liderar e promover
a excelncia de software e revolucionar a indstria de TI. Ns criamos e
69
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,
responsvel por criar o radar. O grupo se rene regularmente para discutir a estratgia global de tecnologia para
70
a empresa e as tendncias tecnolgicas que impactam significativamente a nossa indstria.

81

71do TAB em um formato que procura oferecer valor a uma ampla


O radar captura o resultado das discusses
gama de pessoas interessadas, de CIOs a pessoas que desenvolvem. O contedo concebido para ser um resumo
conciso. Ns encorajamos voc a explorar essas tecnologias para obter mais detalhes. O radar grfico por
56
72
natureza,
plataformas e linguagens & frameworks. Quando itens do
55 agrupando os itens em tcnicas, ferramentas,
radar puderem ser57
classificados em mais de um quadrante, escolhemos aquele que parece mais adequado. Alm
73 a nossa posio atual dentro deles:
59anis para refletir
disso, agrupamos esses itens em quatro
74

58

75

14
61

76

60

77
62

78

63
64

79

65

54

80

66
ADOTE

85

Acreditamos firmemente que a indstria


deveria adotar esses itens. Ns os usamos
quando so apropriados em nossos projetos.

29

83

84

EXPERIMENTE
Vale a pena ir atrs. importante
entender como desenvolver essa
capacidade. As empresas devem
experimentar esta tecnologia em um
projeto que possa lidar com o risco.

95

AVALIE

EVITE

Vale a pena explorar


com o objetivo de
compreender como isso
afetar sua empresa.

Prossiga com
cautela.

105

94
93
Itens novos ou que sofreram alteraes significativas desde o ltimo radar so representados como tringulos,
104
enquanto os itens que no mudaram so representados como crculos. Os grficos detalhados de cada quadrante
92Temos interesse em muito mais itens do que seria razovel adicionar em
mostram o movimento tomado pelos itens.

um documento deste tamanho, por isso removemos muitos itens do ltimo radar para abrir espao para novos itens.
82
Quando
apagamos um item no significa que deixamos de nos preocupar com ele.

103

Para mais informaes sobre o radar, veja thoughtworks.com/radar/faq

91

89
Abril 2016, ThoughtWorks, Inc. Todos os direitos reservados

90

102
TECHNOLOGY RADAR ABRIL 2016 | 2

O RADAR

27

TCNICAS
ADOTE
1. Desacoplando deployment e release
2. Produtos acima de projetos
3. Modelagem de ameaas

EVITE
23. Instncia nica de CI para todos os times novo
24. Inveja de Big Data novo
25. Gitflow
26. Inveja da alta performance/inveja da escalabilidade web
27. SAFe

13

18
24

10

8
16

23

7
6

15

2
1

AVALIE

EXPERIMENTE

38

ADOTE

30
39

28

31

29

40
32
51

33

41

35

42

34
43
36
44

52

45

37

46
47

48

49
50

Novo ou sofreu alterao


Sem mudana

53

EVITE
51. Servidores de aplicao
52. API Gateways excessivamente ambiciosos
53. Nuvem privada superficial

Abril 2016, ThoughtWorks, Inc. Todos os direitos reservados

5
4

EVITE

14

12

11

17

ADOTE
28. Docker
29. TOTP Autenticao de duas etapas

AVALIE
38. Amazon API Gateway novo
39. AWS ECS
40. Bluetooth Mesh novo
41. Ceph
42. Deflect novo
43. ESP8266 novo
44. MemSQL novo
45. Mesosphere DCOS
46. Nomad novo
47. Presto
48. Realm novo
49. Sandstorm novo
50. TensorFlow novo

20

19

PLATAFORMAS

EXPERIMENTE
30. Apache Mesos
31. AWS Lambda
32. H2O
33. HSTS
34. Kubernetes
35. Mdulos de segurana Linux
36. Pivotal Cloud Foundry novo
37. Rancher

21

25

EXPERIMENTE
4. Back-end para front-ends (BFF)
5. Recompensas por bugs
6. Lago de Dados
7. Event Storming
8. Flux
9. Filtro de idempotncia
10. iFrames para sandboxing
11. NPM para tudo
12. Ambientes Fnix
13. QA em produo
14. Arquiteturas reativas
AVALIE
15. Polticas de Segurana de Contedo novo
16. IDEs hospedados
17. Hospedando dados PII na Unio Europeia novo
18. Monitoramento de invariantes
19. ASVS do OWASP novo
20. Arquitetura sem servidor novo
21. Unikernels novo
22. Realidade virtual alm dos jogos novo

22

26

TECHNOLOGY RADAR ABRIL 2016 | 3

O RADAR
FERRAMENTAS

67

68

ADOTE
54. Consul

69

EXPERIMENTE
55. Apache Kafka
56. Browsersync
57. Carthage
58. Gauge
59. GitUp
60. Lets Encrypt
61. Load Impact novo
62. OWASP Dependency-Check
63. Serverspec novo
64. SysDig
65. Webpack novo
66. Zipkin

70
81

71
56

55

72

57

73

59

74

58

75

61

76

60

77
62

78

63
64

79

65

54

80

66
ADOTE

EXPERIMENTE

85

EVITE

95
105

84

83

AVALIE

94

93

104

92
82

103
91

89

102

90
88

87

101

86

100
97

98

99

106

96

Novo ou sofreu alterao


Sem mudana

AVALIE
67. Apache Flink novo
68. Concourse CI
69. Gitrob
70. Grasp novo
71. HashiCorp Vault novo
72. ievms
73. Jepsen novo
74. LambdaCD novo
75. Pinpoint novo
76. Pitest novo
77. Prometheus
78. RAML
79. Repsheet novo
80. Sleepy Puppy
EVITE
81. Jenkins como uma pipeline de implantao

novo

LINGUAGENS E FRAMEWORKS
ADOTE
82. ES6
83. React.js
84. Spring Boot
85. Swift
EXPERIMENTE
86. Butterknife novo
87. Dagger novo
88. Dapper novo
89. Ember.js
90. Enlive
91. Fetch novo
92. React Native
93. Redux novo
94. Robolectric novo
95. SignalR
AVALIE
96. Alamofire novo
97. AngularJS
98. Aurelia novo
99. Cylon.js novo
100. Elixir
101. Elm
102. GraphQL novo
103. Immutable.js novo
104. OkHttp
105. Recharts novo
EVITE
106. JSPatch

Abril 2016, ThoughtWorks, Inc. Todos os direitos reservados

novo

novo

TECHNOLOGY RADAR ABRIL 2016 | 4

TCNICAS
Com o nmero de violaes graves de segurana nos
ltimos meses, os times de desenvolvimento de software
j esto convencidos da importncia de escrever
software seguro e lidar com dados de usurios de forma
responsvel. No entanto, os times enfrentam uma
curva de aprendizagem acentuada, e o vasto nmero de
potenciais ameaas que variam de crime organizado
e espionagem do governo a adolescentes que atacam
sistemas por diverso pode ser avassalador.
A modelagem de ameaas fornece uma srie de
tcnicas que te ajudam a identificar e a classificar
potenciais ameaas no incio do processo de
desenvolvimento. importante entender que
modelagem de ameaas apenas parte de uma
estratgia para se antecipar s ameaas. Quando usada
em conjunto com tcnicas como o estabelecimento de
requisitos de segurana multifuncionais para tratar de
riscos comuns nas tecnologias usadas em um projeto
e o uso de scanners de segurana automatizados, a
modelagem de ameaas pode ser um trunfo poderoso.

27

22

26

21

25

20

19

13

18
24

10
11

17
8
16

23

2
1

4
EXPERIMENTE

38

Observamos a adoo contnua e o sucesso das


arquiteturas reativas, com extenses de linguagem
reativas e frameworks reativos ganhando muita
popularidade (inclumos diversos blips relacionados
67
nessa
do radar). Interfaces de usurio, em
68 edio
69
particular, beneficiam-se muito de um estilo reativo
70
de programao.
Nossas ressalvas anteriores ainda
81 em passagem de
71
se aplicam: arquiteturas
baseadas
mensagem
assncrona introduzem complexidade
56
72
55
e tornam
o sistema
como
um todo mais difcil de
57
73
59
74 possvel simplesmente
entender no sendo mais
58
75
ler o cdigo do programa e entender o que o sistema
faz. Recomendamos avaliar as necessidades de
61
76
performance
e escalabilidade do seu sistema antes de se
60
77
comprometer a esse estilo de arquitetura.

ADOTE

85

31
ADOTE
1. Desacoplando deployment e release
40
2. Produtos acima de projetos
3. Modelagem de ameaas
32
41
42
43

44
52

45

28

29

EXPERIMENTE
4. Back-end para front-ends (BFF)
5. Recompensas por bugs
6. Lago de Dados
33
7. Event Storming
8. Flux
35
9. Filtro de idempotncia
10. iFrames
34 para sandboxing
11. NPM para tudo
12. Ambientes Fnix
13. QA em produo 36
14. Arquiteturas reativas

37

46

Abril 2016, ThoughtWorks, Inc. Todos os direitos reservados48


47

95
105

84

83

AVALIE
93
15. Polticas de Segurana de
92
Contedo
16. IDEs hospedados
82
17. Hospedando dados PII na Unio
Europeia
91
89
18. Monitoramento
de invariantes
19. ASVS do OWASP
20. Arquitetura sem servidor
90
21. Unikernels
88 virtual alm dos jogos
22. Realidade

87

86

94

EVITE
104
23. Instncia
nica de CI para todos os
times
24. Inveja de Big Data
103
25.
Gitflow
26. Inveja da alta performance/inveja da
escalabilidade web
102
27. SAFe

101

100
97

49
50

78

63

Temos considerado as Polticas de Segurana


79
64
de Contedo adies
teis
a nosso conjunto
de
65
ferramentas de segurana quando lidamos
54
80 com sites que
66
extraem assets de diversos
contextos. A poltica define
ADOTE
EXPERIMENTE
AVALIE
EVITE
um conjunto de regras
que estabelecem
de onde
assets

30
39

51

AVALIE

Um Lago de Dados um armazenamento de dados


imutveis, em grande parte brutos e no-processados,
que funciona como uma fonte para anlise de dados.
Embora a tcnica possa ser mal utilizada, temos a usado
com sucesso em clientes, o que justifica sua mudana
para Experimente. Continuamos recomendando outras
abordagens para colaboraes operacionais, limitando o
uso do lago de dados a produo de relatrios, anlise e
alimentao de repositrios de dados.

62

15

EVITE

14

12

A popularidade do uso de recompensas por bugs


continua a crescer entre muitas organizaes, incluindo
empresas e rgos governamentais de destaque.
Um programa de recompensas por bugs incentiva
participantes a identificar potenciais vulnerabilidades
em troca de prmios ou de reconhecimento. Empresas
como HackerOne e Bugcrowd oferecem servios para
ajudar organizaes a gerenciar esse processo com mais
facilidade, e estamos vendo esse tipo de servio ganhar
adoo.

96

98

99

106

TECHNOLOGY RADAR ABRIL 2016 | 5

TCNICAS continuao
podem ser extrados (e permitem ou no tags de script
embutidas). O navegador ento se recusa a carregar ou
executar JavaScript, CSS ou imagens que violam essas
regras. Quando usadas em conjunto com boas prticas
como codificao de sada, elas minimizam ataques
XSS satisfatoriamente. Curiosamente, foi por meio do
endpoint opcional para publicar relatrios JSON sobre
violaes que o Twitter descobriu que ISPs estavam
injetando HTML ou JavaScrpit em suas pginas.
Em vrios pases do mundo, vemos agncias
governamentais buscando amplo acesso a informaes
de identificao pessoal (personally identifiable
information ou PII) privadas. Na Unio Europeia, a
corte suprema invalidou o framework Safe Harbor, e
o Privacy Shield, seu sucessor, deve ser contestado
tambm. Ao mesmo tempo, o uso da computao em
nuvem est crescendo, e todos os principais provedores
Amazon, Google e Microsoft oferecem mltiplos
centros de processamento de dados e regies na Unio
Europeia. Portanto, recomendamos que as empresas,
principalmente as que tm bases de usurios globais,
avaliem a viabilidade de um refgio seguro para
os dados de seus usurios, protegido pelas leis de
privacidade mais progressistas, hospedando dados PII
na Unio Europeia.
medida que os times de desenvolvimento incorporam
a segurana mais cedo no ciclo de desenvolvimento,
determinar requisitos para limitar riscos de segurana
pode parecer uma tarefa complicada. Poucas pessoas
tm o extenso conhecimento tcnico necessrio para
identificar todos os riscos que uma aplicao pode
enfrentar, e os times podem ter dificuldades para decidir
por onde comear. Apoiar-se em frameworks como o
ASVS Application Security Verification Standard (padro
de verificao de segurana de aplicaes) do OWASP
pode facilitar esse processo. Embora seja um pouco
extenso, ele contm uma lista completa de requisitos
categorizados por funes como autenticao, controle
de acesso e tratamento e registro de erros, o que pode
ser revisto conforme a necessidade. Tambm til como
um recurso para analistas de testes quando chega o
momento de verificar software.

Abril 2016, ThoughtWorks, Inc. Todos os direitos reservados

A arquitetura sem servidor substitui mquinas virtuais


de longa durao por poder computacional efmero,
que passa a existir sob solicitao e desaparece
imediatamente apos o uso. Firebase e AWS Lambda
so alguns exemplos. O uso dessa arquitetura pode
minimizar algumas preocupaes com segurana,
como atualizaes de segurana e controle de acesso
SSH, e pode tornar muito mais eficiente o uso de
recursos computacionais. Esses sistemas tm custos
de operao muito baixos e podem ter funcionalidades
de escalabilidade integradas (isso vale principalmente
para AWS Lambda). Um exemplo de arquitetura
poderia ser um aplicativo JavaScript com assets
estticos servido por uma CDN ou um S3 acoplado com
chamadas AJAX servidas pelo API Gateway e Lambda.
Embora arquiteturas sem servidor tenham benefcios
significativos, h duas desvantagens tambm: implantar,
gerenciar e compartilhar cdigo entre servios mais
complexo, e testes locais ou offline so mais difceis, se
no impossveis.
Com a contnua asceno do modelo de continer
liderada pela adoo a Docker, acreditamos que
seja vlido chamar ateno para o rpido e contnuo
desenvolvimento na rea de Unikernel. Unikernels so
sistemas operacionais biblioteca de propsito nico,
que podem ser compilados a partir de linguagens de
alto nvel para serem executados diretamente nos
hipervisores usados por plataformas commodity de
nuvem. Eles prometem diversas vantagens em relao
aos contineres, alm de seu tempo extremamente
rpido de inicializao e sua reduzida exposio a
ataques. Muitos ainda esto na fase de pesquisa/
projeto Drawbridge da Microsoft Research, MirageOS
e HaLVM, entre outros mas achamos que as ideias so
muito interessantes e combinam bem com a tcnica de
arquitetura sem servidor.
A ideia de realidade virtual tem se feito presente
por mais de 50 anos, e com sucessivas melhorias da
tecnologia computacional, muitas ideias vm sendo
promovidas e exploradas. Acreditamos que estamos
chegando a um momento decisivo agora. Placas de
vdeo modernas fornecem poder computacional

TECHNOLOGY RADAR ABRIL 2016 | 6

TCNICAS continuao
suficiente para renderizar cenas detalhadas e realistas
em altas resolues e, ao mesmo tempo, pelo menos
dois headsets de realidade virtual orientados ao
consumidor (o HTC Vive e o Oculus Rift do Facebook)
esto chegando ao mercado. Esses headsets tm
preos acessveis, displays de alta resoluo e eliminam
o atraso perceptvel na captura de movimentos, que
vinha provocando problemas como dores de cabea e
nuseas. Os headsets so direcionados principalmente a
entusiastas de jogos eletrnicos, mas temos convico de
que eles abriro muitas oportunidades para a realidade
virtual alm dos jogos, principalmente medida que
as abordagens low-fi, como Google Cardboard, esto
contribuindo para um maior conhecimento em torno do
tema.
Pode haver a impresso de que mais fcil gerenciar
uma instncia nica de Integrao Contnua
(Continuous Integration ou CI) para todos os times,
porque ela d a eles um ponto nico de configurao
e monitoramento. Mas uma instncia sobrecarregada
compartilhada por todos os times de uma organizao
pode causar grande prejuzo. Encontramos problemas
como build timeouts, conflitos de configurao e filas
de build extensas aparecendo com maior frequncia.
Um nico ponto de falha pode interromper o trabalho

Abril 2016, ThoughtWorks, Inc. Todos os direitos reservados

de vrios times. Considere com cuidado as implicaes


desse tipo de armadilha e de ter um nico ponto de
configurao. Em organizaes com mltiplos times,
recomendamos instncias de CI distribudas por times,
com decises corporativas baseadas no em uma
instalao nica de CI, mas na definio de orientaes
sobre seleo e configurao de instncias.
Embora tenhamos compreendido bem o valor
de Big Data para melhor entendermos como as
pessoas interagem conosco, notamos uma tendncia
alarmante de inveja de Big Data: organizaes usando
ferramentas complexas para lidar com volumes no to
grandes de dados. Algoritmos MapReduce distribudos
so uma tcnica eficiente para grandes conjuntos de
dados, mas muitos conjuntos que observamos poderiam
facilmente se encaixar em um banco de dados relacional
ou grfico com um n nico. Mesmo que voc tenha
uma quantidade maior de dados, em geral o melhor a se
fazer primeiro escolher os dados que voc precisa, que
frequentemente podem ser processados nesse n nico.
Por isso, insistimos que antes de iniciar seus clusters
voc faa uma avaliao realista daquilo que voc precisa
processar e, se for possvel talvez na memria RAM ,
use a opo simples.

TECHNOLOGY RADAR ABRIL 2016 | 7

PLATAFORMAS
Continuamos animados com Docker, dada27a sua
evoluo de uma ferramenta para uma plataforma
complexa de tecnologias. Times de desenvolvimento
22
26
adoram Docker, j que seu formato
de imagem torna
21
mais fcil alcanar a paridade entre desenvolvimento e
produo, contribuindo
para implantaes confiveis.
25
20
Funciona bem em aplicaes estilo microsservios
como mecanismo de empacotamento para servios
19
independentes. Do ponto de vista operacional, o13
18 ferramentas de monitoramento
suporte de Docker para
24
(Sensu, Prometheus,
cAdvisor, etc.), ferramentas
de
10
14
12
orquestrao (Kubernetes, Marathon, etc.) e11ferramentas
17
de automao de implantao reflete a crescente
9
8
maturidade da plataforma e sua prontido
para uso
7
23
em produo.
Um16alerta, no entanto:
existe uma viso
predominante de contineres 6Docker e Linux em
geral
2
3
15
como virtualizao
leve, mas
no recomendamos
5
1

4
EVITE

AVALIE

EXPERIMENTE

38

ADOTE

30
39

28

31

29

40
32
51

33

41

35

42
43

36

52

45

37

46
47

48

49
50

53

ADOTE
28. Docker
29. TOTP Autenticao de duas
etapas

EXPERIMENTE
30. Apache Mesos
31. AWS Lambda
32. H2O
33. HSTS
34. Kubernetes
35. Mdulos de segurana Linux
36. Pivotal Cloud Foundry
37. Rancher

Abril 2016, ThoughtWorks, Inc. Todos os direitos reservados

55

70 continuam gostando de usar AWS Lambda


Nossos times
81
71
e esto comeando
a usar o servio
para experimeno
com
sem servidor, combinando Lambda
56 arquiteturas 72
com 57
o API Gateway
para
73 produzir sistemas altamente
59
74
escalveis com infraestrutura
invisvel. Encontramos
58
75
problemas significativos usando Java para funes
Lambda, com latncias
irregulares
durando vrios
61
76
segundos 60
quando o continer Lambda iniciado.
Recomendamos continuar com 77
JavaScript ou Python por
62
78
ora.
63
79

64
Kubernetes a resposta
65 do Google para o problema
54
de implantar contineres em um cluster 80
de mquinas, o
que tem se tornado66um cenrio comum. No a soluo
ADOTE
EXPERIMENTE
AVALIE
EVITE
usada
pelo Google internamente,
mas
um projeto
de
85
95
cdigo aberto que se originou
no Google e tem recebido
105
um bom
nmero de contribuies externas.
Desde que
84
83
94
mencionamos Kubernetes
na
ltima
edio
do
radar,
93
104
nossas impresses
iniciais
positivas
se
confirmaram,
92
e temos visto uso bem sucedido de Kubernetes em
82
produo em nossos clientes. 103
89

34

44

usar Docker como um mecanismo de isolamento de


processos seguro, embora estejamos prestando ateno
introduo de namespaces de usurio e perfis seccomp
67
68
na verso
69 1.10 nesse sentido.

91

102
Em verses anteriores do radar,
destacamos o valor
90
dos mdulos de segurana do Linux, descrevendo
88 habilitam as pessoas
101 a pensar sobre
como eles
87
enrijecimento de servidores como parte de seus
86
100
fluxos de desenvolvimento.
Mais recentemente, com
106 suporte a perfis
99
contineres
LXC
e
Docker
trazendo
97
98
AppArmor, padro em determinadas distribuies
Linux, muitos times foram obrigados a entender como
96
essas ferramentas funcionam. No caso de times que
usam imagens de contineres para executar qualquer
processo que no tenha sido criado por eles mesmos,
essas ferramentas os ajudam a avaliar questes como,

AVALIE
38. Amazon API Gateway
39. AWS ECS
40. Bluetooth Mesh
41. Ceph
42. Deflect
43. ESP8266
44. MemSQL
45. Mesosphere DCOS
46. Nomad
47. Presto
48. Realm
49. Sandstorm
50. TensorFlow

EVITE
51. Servidores de aplicao
52. API Gateways excessivamente
ambiciosos
53. Nuvem privada superficial

TECHNOLOGY RADAR ABRIL 2016 | 8

PLATAFORMAS continuao
por exemplo, quem tem acesso a quais recursos no
servidor compartilhado e as capacidades que esses
servios contidos possuem, adotando uma postura mais
conservadora ao gerenciar nveis de acesso
A rea de PaaS passou por muitas mudanas desde a
ltima vez em que mencionamos Cloud Foundry, em
2012. Embora existam vrias distribuies do ncleo
de cdigo aberto, tm nos impressionado a oferta e o
ecossistema montados como Pivotal Cloud Foundry.
Ainda que esperemos convergncia contnua entre a
abordagem no-estruturada (Docker, Mesos, Kubernetes,
etc.) e o estilo mais estruturado e assertivo de buildpack
oferecido por Cloud Foundry e outras plataformas,
vemos benefcios reais para organizaes dispostas a
aceitar as limitaes e o ritmo de evoluo para adotar
uma PaaS. particularmente interessante a velocidade
de desenvolvimento que resulta da simplificao
e da padronizao da interao entre times de
desenvolvimento e operaes de plataforma.
A emergente rea de Contineres como Servio
(Containers as a Service ou CaaS) tem passado por
muitas mudanas e oferece uma opo til entre IaaS
(Infraestrutura como Servio) bsica e PaaS (Plataforma
como Servio) mais assertiva. Embora Rancher chame
menos ateno que outros servios similares, tem nos
agradado a simplicidade proporcionada pela ferramenta
para executar contineres Docker> em produo.
Pode ser executada de forma independente como uma
soluo completa ou em conjunto com ferramentas
como Kubernetes .
Amazon API Gateway a oferta da Amazon que
permite a pessoas desenvolvedoras disponibilizar
servios de API para clientes da Internet, oferecendo as
usuais funcionalidades de API Gateway como gesto de
trfego, monitoramento, autenticao e autorizao.
Nossos times tm usado esse servio como frente para
outras capacidades da AWS, por exemplo AWS Lambda,
como parte de arquiteturas sem servidor. Continuamos
monitorando os desafios apresentados por API Gateways
excessivamente ambiciosos, mas nesse momento a
oferta da Amazon parece ser leve o suficiente para evitar
esses problemas.
Embora muitas implantaes de dispositivos inteligentes
dependam de conectividade Wi-Fi, temos visto sucesso
em redes Bluetooth Mesh que no precisam de hub
ou gateway. Com melhor uso de energia que Wi-Fi e

Abril 2016, ThoughtWorks, Inc. Todos os direitos reservados

adoo de smartphones superior a ZigBee, Bluetooth


LE implantada como uma rede auto-reparadora
proporciona novas abordagens interessantes para
conectar redes de dispositivos de rea locais. Ainda
estamos esperando pelo surgimento de uma abordagem
formal de Bluetooth SIG, mas j tivemos implantaes
bem sucedidas. Ns particularmente gostamos da
ausncia de infraestrutura necessria para erguer uma
rede descentralizada, mas ainda mantendo a opo de
melhorar progressivamente o sistema com a adio de
um gateway e de servios de nuvem.
Deflect um servio de cdigo aberto para proteger
ONGs, ativistas e empresas de mdia independente
de ataques DDoS. Similar a uma CDN comercial, ele
usa caching de proxy reverso distribudo, oculta seus
endereos IP do servidor e bloqueia o acesso pblico
a URLs de admin. Um esforo particular dedicado a
combater botnets tipicamente usadas para censura
extrajudicial de vozes independentes.
Nossos crescentes escales de hackers de hardware tm
se mostrado animados com o microcontrolador Wi-Fi
ESP8266. No foi uma inovao tecnolgica especfica,
mas a combinao de preo baixo e SFF que provocou
uma mudana de pensamento nas pessoas em relao
ao que possvel alcanar agora com dispositivos de
hardware personalizados. Suas principais caractersticas
so: capacidades Wi-Fi (pode funcionar como estao,
ponto de acesso ou uma combinao dos dois), baixa
energia, hardware aberto, programabilidade Arduino
SDK, programabilidade Lua, imenso suporte da
comunidade e baixo custo comparado a outros mdulos
de IoT.
Como prev a Lei de Moore, continuamos a aumentar
a capacidade de sistemas computacionais e a reduzir
seu custo e, assim, novas tcnicas de processamento
que alguns anos atrs pareciam fora de alcance tornamse possveis. Uma dessas tcnicas o banco de dados
in-memory: ao invs de usar discos lentos ou SSDs
relativamente lentos para armazenar dados, podemos
mant-los na memria para obter alta performance. Um
desses bancos de dados in-memory, o MemSQL est
ganhando ateno por ser horizontalmente escalvel
atravs de um cluster e por oferecer uma linguagem de
consulta familiar baseada em SQL. MemSQL tambm se
conecta a Spark para anlise de dados em tempo real,
diferentemente de dados obsoletos em um depsito de
dados.

TECHNOLOGY RADAR ABRIL 2016 | 9

PLATAFORMAS continuao
A HashiCorp continua a produzir software interessante.
O ltimo a chamar nossa ateno o Nomad, que
est competindo no cada vez mais disputado campo
de agendadores. Entre suas maiores vantagens esto
o fato de no se limitar apenas a cargas de trabalho
conteinerizadas e operar em centros multidados /
implantaes multi-regies.
Realm um banco de dados projetado para uso em
dispositivos mveis, com seu prprio mecanismo de
persistncia para alcanar alta performance. Realm
vendido como um substituto para SQLite e Core Data, e
nossos times tm gostado de us-lo. Vale notar que as
migraes no so to fceis quanto a documentao do
Realm faz parecerem. Ainda assim, Realm nos animou, e
sugerimos que voc d uma olhada.
Para quem quer o benefcio das ferramentas
colaborativas baseadas em nuvem mas no quer
inadvertidamente se tornar o produto de um grande
provedor de nuvem, Sandstorm oferece uma alternativa
de cdigo aberto interessante, com potencial para
hospedagem local. Particularmente interessante a

Abril 2016, ThoughtWorks, Inc. Todos os direitos reservados

abordagem de isolamento, pela qual a conteinerizao


aplicada por documento e no por aplicao, e syscall
whitelisting adicionado para dar maior segurana ao
sandbox.
TensorFlow do Google uma plataforma de cdigo
aberto para aprendizagem de mquina que pode ser
usada para qualquer coisa, de pesquisa a produo,
e pode ser executada em hardware desde uma CPU
mvel at um grande cluster de GPUs. uma plataforma
importante porque torna a implementao de algoritmos
de aprendizagem profunda muito mais acessveis e
convenientes. Apesar do entusiasmo, TensorFlow no
algo realmente novo em termos de algoritmo: todas
essas tcnicas esto disponveis no domnio pblico por
meio de acervos acadmicos h algum tempo. Tambm
importante compreender que a maioria das empresas
ainda no est fazendo anlises preditivas nem mesmo
bsicas, e que saltar para aprendizagem profunda
provavelmente no vai ajudar a dar sentido maioria dos
conjuntos de dados. Entretanto, para quem de fato tem o
problema e o conjunto de dados certos, TensorFlow um
conjunto de ferramentas til.

TECHNOLOGY RADAR ABRIL 2016 | 10

FERRAMENTAS
Movemos Consul, a ferramenta de descoberta de
27
servios que suporta mecanismos de descoberta
baseados tanto em DNS quanto em HTTP, para Adote.
Ela vai alm de outras ferramentas de descoberta
22
26
21
ao fornecer verificaes personalizadas da sade
dos servios registrados, garantindo que instncias
25
no-saudveis sejam corretamente
marcadas.
Mais
20
ferramentas surgiram para trabalhar junto com
Consul, tornando-o ainda mais poderoso.
Consul
19
13
Template permite que arquivos de configurao sejam
18
preenchidos com
informaes do Consul, tornando
24
10
14
coisas como balanceamento de carga do lado
do cliente
12
11 do
usando mod_proxy muito17mais fceis. No universo
Docker, o registrador pode automaticamente
9 registrar
8
contineres Docker ao16Consul medida
que
aparecem
7
23
com pouqussimo esforo, tornando muito mais fcil
6
2
gerenciar configuraes baseadas em
continer. Voc
3
15
5
ainda deve pensar muito e com cuidado se voc precisa
1
de uma ferramenta como essa ou se algo
mais simples
vai
4
EVITE
AVALIEvoc decida
EXPERIMENTE
ADOTE
resolver,
mas caso
que precisa de descoberta
de servios, voc no vai errar escolhendo Consul.
38

30

28
Muitas organizaes
39 esto olhando mais de perto
29
31
agora para novas arquiteturas de dados que capturam
40
informaes na forma
de sequncias imutveis de
32
33
eventos em escala. O Apache Kafka
continua
a ganhar
41
51
fora como um framework de mensagens de cdigo
35
aberto que fornece uma 42
soluo para publicao
de
34
feeds de eventos ordenados
para grandes quantidades
43
de consumidores leves e independentes. Configurar
36 o
Kafka no simples, mas nossos times tm relatado
44
experincias positivas com o framework.
37
45
46
52

Gauge uma ferramenta de automao de


48
47 testes
49
multiplataforma. As especificaes so escritas em
Markdown de formato livre para que casos de teste
50
possam ser escritos na linguagem de negcios,
ao invs
53
do formato mais comum, porm restritivo, dado-quandoento. Suporte a linguagens e a IDEs so implementados
como plugins, permitindo que analistas de teste usem as

ADOTE
54. Consul

EXPERIMENTE
55. Apache Kafka
56. Browsersync
57. Carthage
58. Gauge
59. GitUp
60. Lets Encrypt
61. Load Impact
62. OWASP Dependency-Check
63. Serverspec
64. SysDig
65. Webpack
66. Zipkin

Abril 2016, ThoughtWorks, Inc. Todos os direitos reservados

67

68

69
70
81

71
56

55

72

57

73

59

74

58
61

75
76

60

77
62

78

63
64

79

65

54

80

66
ADOTE

EXPERIMENTE

85

AVALIE

EVITE

95
105

84
mesmas
IDEs
que o restante do time, com capacidades
83
94
93
poderosas como autocompletar
e refatorao.
Essa
104
92
ferramenta, desenvolvida
com cdigo aberto pela
82
ThoughtWorks,
tambm traz nativamente
a execuo
103
paralela para todas as plataformas suportadas.
89

91

102

Lets Encrypt apareceu pela primeira vez na ltima


90
edio do radar, e desde dezembro de 2015 esse projeto
88
101
modificou
87 o status de sua verso beta de privado para
pblico,
o que significa que 100
usurios no precisam mais
86
de um convite para test-lo. Lets Encrypt permite acesso
106
99
a um mecanismo
97
98mais simples para obter e gerenciar
certificados para um grupo maior de usurios que
buscam
formas para proteger seus websites. Tambm
96
promove um grande avano em termos de segurana e
privacidade. Essa tendncia j comeou a ser adotada
dentro da ThoughtWorks, e muitos dos nossos projetos
agora tm certificados verificados pelo Lets Encrypt.

AVALIE
67. Apache Flink
68. Concourse CI
69. Gitrob
70. Grasp
71. HashiCorp Vault
72. ievms
73. Jepsen
74. LambdaCD
75. Pinpoint
76. Pitest
77. Prometheus
78. RAML
79. Repsheet
80. Sleepy Puppy

EVITE
81. Jenkins como uma pipeline de
implantao

TECHNOLOGY RADAR ABRIL 2016 | 11

FERRAMENTAS continuao
Load Impact uma ferramenta SaaS de testes de carga
que pode gerar cargas altamente realistas de at 1,2
milho de usurios simultneos. Gravao e reproduo
de interaes web usando um plugin para Chrome
simulam conexes de rede para usurios mveis ou
desktop e geram carga de at 10 locais diferentes ao
redor do mundo. Embora no seja a nica ferramenta
de testes de carga sob demanda que usamos tambm
gostamos de BlazeMeter , nossos times ficaram
bastante entusiasmados com Load Impact.
Em um universo repleto de bibliotecas e ferramentas que
simplificam a vida de muitas pessoas desenvolvedoras
de software, deficincias na segurana se tornaram
visveis e aumentaram a superfcie de vulnerabilidade nas
aplicaes que fazem uso delas. OWASP DependencyCheck identifica automaticamente potenciais problemas
de segurana no cdigo, verificando se existem quaisquer
vulnerabilidades reveladas publicamente, e usando
mtodos para atualizar constantemente o banco de
dados de vulnerabilidades pblicas. Dependency-Check
possui algumas interfaces e plugins para automatizar essa
verificao em Java e .NET (os quais usamos com sucesso),
bem como em Ruby, Node.js e Python.
Em edies passadas, inclumos Testes de
Provisionamento automatizados como uma tcnica
recomendada, e nesta edio destacamos Serverspec
como uma ferramenta popular para implementar esses
testes. Embora essa ferramenta no seja nova, temos
observado seu uso se tornar mais comum medida
que mais times multifuncionais de entrega assumem a
responsabilidade pelo provisionamento de infraestrutura.
Serverspec baseado na biblioteca Ruby RSpec e possui
um extenso conjunto de utilitrios para garantir que a
configurao do servidor esteja correta.
Webpack se solidificou como nosso empacotador de
mdulos JavaScript de confiana. Com sua sempre
crescente lista de carregadores, ele fornece uma nica
rvore de dependncias para todos os seus assets
estticos, permitindo manipulao flexvel de JavaScript,
CSS, etc., e reduzindo o que precisa ser enviado ao
navegador e a frequncia. Particularmente relevante a
integrao harmoniosa entre mdulos AMD, CommonJS
e ES6, e como ela habilitou times a trabalhar no ES6 e
transpilar com perfeio (usando Babel) para verses
anteriores para compatibilidade de navegador. Muitos
dos nossos times tambm apreciam o Browserify, que
cumpre um papel semelhante, mas tem como objetivo
maior disponibilizar mdulos Node.js para uso do lado do
cliente.

Abril 2016, ThoughtWorks, Inc. Todos os direitos reservados

O desenvolvimento do Zipkin continua em ritmo


acelerado, e desde a metade de 2015 a ferramenta foi
movida para a organizao openzipkin/zipkin no GitHub.
Existem agora bibliotecas para Python, Go, Java, Ruby,
Scala e C#, alm de imagens Docker disponveis para
quem quer comear rapidamente. Ainda gostamos dessa
ferramenta. H uma comunidade ativa e crescente em
torno de seu uso, e sua implementao tem se tornado
mais simples. Se voc precisa de uma forma de medir a
latncia de ponta-a-ponta de muitas solicitaes lgicas,
Zipkin continua a ser uma escolha slida.
Apache Flink uma plataforma de nova gerao
para processamento distribudo e escalvel de lotes e
fluxos de dados. Em seu ncleo est um mecanismo
de transmisso de fluxo de dados. Tambm suporta
operaes tabulares (como SQL), de processamento
de grafos e aprendizagem de mquina. Apache Flink se
destaca por funcionalidades ricas para processamento
de fluxos de dados: horrio de evento, operaes ricas
de janela de transmisso, tolerncia a erros e semntica
exatamente uma vez. Embora ainda no esteja em sua
verso 1.0, a ferramenta conquistou interesse significativo
da comunidade devido a inovaes no processamento
de fluxos de dados, manipulao de memria,
gerenciamento de estado e simplicidade de configurao.
Invasores continuam usando software automatizado
para acessar repositrios pblicos do GitHub, encontrar
credenciais AWS e iniciar instncias EC2 para minerar
Bitcoins ou para outros propsitos nocivos. Embora
a adoo de ferramentas como git-crypt e Blackbox
para armazenar com segurana segredos como
senhas e tokens de acesso em repositrios de cdigo
esteja crescendo, ainda muito comum que segredos
sejam armazenados sem segurana. No incomum
tambm que informaes confidenciais de projetos
sejam colocadas em repositrios pessoais. Gitrob pode
ajudar a minimizar o prejuzo de expor segredos. A
ferramenta verifica os repositrios de uma organizao
no GitHub, sinalizando todos os arquivos que possam
conter informao sigilosa que no deveria estar em um
repositrio. A atual verso tem algumas limitaes: pode
ser usada apenas para verificar organizaes pblicas
no GitHub e seus membros, no inspeciona o contedo
de arquivos, no revisa o histrico de commits e faz uma
verificao completa toda vez que executada. Apesar
dessas limitaes, pode ser uma ferramenta reativa til
para ajudar a alertar times antes que seja tarde demais.
Deve ser considerada uma abordagem complementar a
uma ferramenta proativa, como Talisman.

TECHNOLOGY RADAR ABRIL 2016 | 12

FERRAMENTAS continuao
Muito nos impressionou uma pequena ferramenta de
refatorao de linha de comando JavaScript chamada
Grasp. Oferecendo um rico conjunto de seletores e
atuando contra a rvore sinttica abstrata, a ferramenta
vai muito alm de sed e grep. Uma adio til ao conjunto
de ferramentas na nossa busca contnua para que
JavaScript seja tratada como uma linguagem de primeira
classe
Ter uma forma de armazenar segredos com segurana
tem se tornado uma questo cada vez mais importante
para projetos. A velha ideia de ter apenas um arquivo
com segredos ou variveis de ambiente est se tornando
difcil de administrar, principalmente em ambientes com
mltiplas aplicaes como microsservios ou ambientes
de microcontiner, nos quais as aplicaes precisam
acessar uma variedade de segredos. HashiCorp Vault
uma ferramenta promissora que tenta resolver o
problema fornecendo mecanismos para acessar segredos
com segurana, por meio de uma interface unificada.
Possui algumas funcionalidades que facilitam a vida,
como criptografia e gerao automtica de segredos para
ferramentas conhecidas, entre outras.
Com o crescimento do uso de bancos de dados NoSQL
e com o aumento da popularidade de abordagens
poliglotas para persistncia, os times agora tm muitas
opes no que se refere ao armazenamento dos seus
dados. Embora isso tenha trazido muitas vantagens, o
comportamento do produto com redes instveis pode
frequentemente provocar problemas sutis (e no to
sutis) que com frequncia no so bem compreendidos,
em alguns casos at mesmo por quem desenvolveu o
produto. O conjunto de ferramentas Jepsen e o blog
que o acompanha se tornaram de fato referncias
para qualquer pessoa que busque entender como

Abril 2016, ThoughtWorks, Inc. Todos os direitos reservados

diferentes bancos de dados e tecnologias de fila reagem


em circustncias adversas. Crucialmente, a abordagem
de testes, que inclui clientes nas transaes, evidencia
possveis modos de falha para muitos times construindo
microsservios.
LambdaCD oferece aos times uma forma de definir
pipelines de Entrega Contnua em Clojure. Isso leva os
benefcios da Infraestrutura como cdigo configurao
de servidores de CD: gerenciamento do controle de
verso, testes de unidade, refatorao e reutilizao de
cdigo. Na rea de pipeline como cdigo, LambdaCD
se destaca por ser leve, independente e completamente
programvel, permitindo que times trabalhem com
suas pipelines da mesma forma que trabalham com seu
cdigo.
Times usando Servidor Fnix ou tcnicas de Ambiente
Fnix tm encontrado poucas opes de suporte de
ferramentas de Gerenciamento de Performance de
Aplicaes (Application Performance Management ou APM).
Seus modelos de licena, baseados em hardware de longa
durao e em quantidades limitadas, e sua dificuldade
em lidar com hardware efmero, frequentemente as
tornam mais problemas do que solues. Entretanto,
sistemas distribudos precisam de monitoramento, e em
algum ponto muitos times identificam a necessidade de
uma ferramenta de APM. Acreditamos que Pinpoint,
uma ferramenta de cdigo aberto nessa rea, merea
ser investigada como uma alterativa a AppDynamics
e Dynatrace. Pinpoint escrita em Java, com plugins
disponveis para muitos servidores, bancos de dados e
frameworks. Apesar de acharmos que voc pode fazer
muito usando uma combinao de outras ferramentas
leves de cdigo aberto Zipkin, por exemplo , se voc
est procurando por APM, vale a pena considerar Pinpoint.

TECHNOLOGY RADAR ABRIL 2016 | 13

FERRAMENTAS continuao
Pitest uma ferramenta de anlise de testes de
cobertura para Java que usa uma tcnica de teste de
mutao. A anlise de teste de cobertura tradicional
tende a medir o nmero de linhas executadas por seus
testes. , portanto, capaz apenas de identificar cdigo
definitivamente no testado. O teste de mutao, por
outro lado, procura testar a qualidade das linhas que
so executadas pelo seu cdigo de teste e podem
ainda conter erros gerais. Vrios problemas podem ser
identificados dessa forma, ajudando o time a medir e a
desenvolver uma sute de testes saudvel. A maioria das
ferramentas tende a ser lenta e difcil de usar, mas Pitest
provou ter melhor performance, fcil de configurar e
tem suporte ativo.
Ataques em propriedades web usando bots esto se
tornando mais sofisticados. Identificar esses agentes
mal-intencionados e seus comportamentos o objetivo
do projeto Repsheet. um plugin para Apache ou NGINX
que registra a atividade dos usurios, identifica agentes
usando regras definidas previamente e por usurio,
permitindo ento que aes sejam tomadas, incluindo
a possibilidade de bloquear agentes ofensores. Inclui
uma utilidade para visualizao de agentes atuais, o
que permite que membros do time gerenciem ameaas
baseadas em bots, aumentando a conscincia dos times

Abril 2016, ThoughtWorks, Inc. Todos os direitos reservados

em relao segurana. Gostamos disso por ser um


exemplo de uma ferramenta simples resolvendo um
problema muito real mas frequentemente invisvel
ataques realizados por bots.
Sabemos que estamos em um territrio perigoso aqui, j
que desenvolvemos uma ferramenta concorrente, mas
achamos que devemos abordar um problema persistente.
Ferramentas de Integrao Contnua como CruiseControl
e Jenkins so valiosas para desenvolvimento de software,
mas medida que seu processo fica mais complexo,
ele requer algo alm de apenas Integrao Contnua:
requer uma pipeline de implantao. Frequentemente
vemos pessoas tentando usar Jenkins como uma
pipeline de implantao com ajuda de plugins, mas
nossa experincia que isso rapidamente se torna
confuso. Jenkins 2.0 introduz Pipeline como cdigo
mas continua modelando pipelines usando plugins e
no altera o produto principal do Jenkins para modelar
pipelines diretamente. Em nossa experincia, ferramentas
que foram desenvolvidas com uma representao de
primeira classe de pipelines de implantao so muitos
mais convenientes, e isso foi o que nos levou a substituir
CruiseControl por GoCD. Atualmente vemos vrios
produtos que adotam pipelines de implantao, incluindo
ConcourseCI, LambdaCD, Spinnaker, Drone e GoCD.

TECHNOLOGY RADAR ABRIL 2016 | 14

58

24

10
11

17
8
16

23

75

14

12

61

77
62

7
6

ADOTE

Swift atualmente nossa escolha padro para


desenvolvimento no ecossistema Apple. Com o
lanamento da verso Swift 2, a linguagem se
aproximou de um nvel de maturidade que proporciona
a estabilidade e a performance necessrias para a
maioria dos projetos. Um nmero considervel de
bibliotecas que suportam desenvolvimento iOS
SwiftyJSON, Quick, etc. est migrando para Swift, que
o caminho que as demais aplicaes devem seguir.
Swift teve seu cdigo aberto agora, e temos visto uma
comunidade de pessoas desenvolvedoras dedicada a
continuamente melhorar o desenvolvimento em iOS.

EXPERIMENTE
86. Butterknife
87. Dagger
88. Dapper
89. Ember.js
90. Enlive
91. Fetch
92. React Native
93. Redux
94. Robolectric
95. SignalR

Abril 2016, ThoughtWorks, Inc. Todos os direitos reservados

EVITE

105

84

83

AVALIE

95
94

93

104

92
82

103
91

89

102

90
88

87

101

86

100
97

50

EXPERIMENTE

85

52

ADOTE
82. ES6
83. React.js
84. Spring Boot
85. Swift

80

66

EVITE
AVALIE
EXPERIMENTE
ADOTE
Na avalanche
de
frameworks
de front-end JavaScript,
React.js se destaca
devido
a
seu
design
em
torno
de
38
30
um fluxo de dados reativo. O fato de permitir apenas
39 sentido nico simplifica28bastante 29
ligaes de dados em
31
a lgica de renderizao e evita muitos dos problemas
40
que geralmente atingem aplicaes escritas com
32
outros frameworks. 41
Estamos observando33os benefcios
51
de React.js em um nmero crescente de projetos,35
42
grandes e pequenos. Ao mesmo tempo, continuamos
34
preocupados com o estado43e com o futuro de outros
frameworks populares como AngularJS. Isso levou36
React.js a se tornar nossa escolha
padro para
44
37
45
frameworks JavaScript.
46

Butterknife uma biblioteca de injeo de ligao


entre visualizao e campo ou mtodo. Ela permite a
injeo de objetos arbitrrios, visualizaes e listeners,
garantindo assim cdigo mais limpo com menos
cdigo de ligao para desenvolvimento Android.
Com Butterknife, mltiplas visualizaes podem ser
agrupadas em uma lista ou array com aes comuns
aplicadas s visualizaes simultaneamente, sem

79

65

54

Bastante esforo foi dedicado ao Spring 47


Boot48para 49
reduzir complexidade e dependncias, o que alivia
bastante nossas ressalvas anteriores. Se voc se
53 mudando
encontra em um ecossistema Spring e est
para microsservios, Spring Boot agora a escolha
bvia. Para quem no est no mundo do Spring,
Dropwizard tambm vale muito considerar.

64

78

63

LINGUAGENS E FRAMEWORKS
15

76

60

98

99

106

96

grande dependncia de configuraes XML. Nossos


times de projeto tm usado essa biblioteca e se
beneficiado de sua simplicidade e facilidade de uso.
Com o aumento da necessidade de aplicaes
baseadas em Android, Dagger oferece um framework
de injeo de dependncias de tempo de compilao
completamente esttico. Sua implementao
estritamente gerada e no-dependente de solues
baseadas em reflexo lida com muitos dos problemas
de performance e desenvolvimento, tornando-a assim
adequada para desenvolvimento Android. Com Dagger,
h uma rastreabilidade completa com fcil depurao,
j que toda a pilha de chamadas para provisionamento
e criao disponibilizada.
Dapper um ORM minimalista e leve para .NET.
Ao invs de tentar escrever consultas SQL para
voc, Dapper mapeia consultas SQL para objetos
dinmicos. Embora no seja to recente, Dapper
tem consistentemente conquistado a aceitao de

AVALIE
96. Alamofire
97. AngularJS
98. Aurelia
99. Cylon.js
100. Elixir
101. Elm
102. GraphQL
103. Immutable.js
104. OkHttp
105. Recharts

EVITE
106. JSPatch

TECHNOLOGY RADAR ABRIL 2016 | 15

LINGUAGENS E FRAMEWORKS continuao


times da ThoughtWorks trabalhando em .NET. Para
quem programa em C#, Dapper elimina uma parte do
trabalho massante de mapear consultas relacionais
para objetos, ao mesmo tempo possibilitando controle
completo sobre o SQL ou stored procedures.
Ember.js desenvolveu um suporte adicional baseado
em experincias de projetos e claramente um
concorrente forte no campo de frameworks de
aplicaes JavaScript. Ember tem recebido elogios
pela experincia proporcionada a quem desenvolve,
com muito menos surpresas que outros frameworks,
como AngularJS. O conjunto de ferramentas de
compilao CLI Ember, a abordagem conveno acima
de configurao e o suporte para ES6 tambm tm
recebido retorno positivo.
Nossos times esto se afastando de JQuery e XHR bruto
para ligaes JavaScript remotas, e usando em seu
lugar a nova API Fetch, e Fetch polyfill em particular. A
semntica permanece similar, mas com suporte mais
limpo a promises e CORS. Estamos vendo isso como a
nova abordagem de fato.
Temos visto sucesso contnuo com React Native para
desenvolvimento multiplataforma acelerado. Apesar
de perder alguma adeso medida que submetido
a desenvolvimento contnuo, as vantagens da
integrao trivial entre cdigos e visualizaes nativos
e no-nativos, o acelerado ciclo de desenvolvimento
(recarregamento instantneo, depurao em chrome,
layout Flexbox) e o crescimento geral do estilo reativo
tm nos conquistado. Como acontece com muitos
frameworks, preciso tomar cuidado para manter seu
cdigo bem estruturado, mas o uso assduo de uma
ferramenta como Redux ajuda nesse sentido.
Redux uma ferramenta tima e madura que tem
ajudado muitos dos nossos times a reformular a forma
que pensam o gerenciamento de estado em apps
lado do cliente. Usando uma abordagem estilo Flux,
proporciona uma arquitetura de mquina de estados
com acoplamento fraco que facilita o raciocnio.
Consideramos uma boa companhia para nossos
frameworks JavaScript favoritos, como Ember e React.
No universo de desenvolvimento de aplicaes
Android, Roboeletric um framework de testes
de unidade que tem sido usado por diversos times
em nossa comunidade tcnica. a melhor opo
entre as disponveis para escrever testes de unidade
reais que se estendem ou interagem diretamente

Abril 2016, ThoughtWorks, Inc. Todos os direitos reservados

com componentes Android, e suporta testes JUnit.


Alertamos, entretanto, que pelo fato de ser uma
implementao do Android SDK, pode haver problemas
especficos de dispositivos para alguns testes que
passam no Roboeletric. Simular manualmente todas as
dependncias do Android, garantindo apenas testes do
sistema-em-teste requer muito cdigo complexo, e esse
framework lida com isso de forma eficaz.
Trabalhar com redes e decodificao em aplicaes iOS
tem sido um grande esforo para muitos times. Foram
muitas as bibliotecas e as tentativas de solucionar
esse problema constante. Parece que Alamofire
a biblioteca mais robusta e acessvel para lidar com
decodificao JSON. Foi escrita pela mesma criadora
da contrapartida Objective-C (AFNetworking), que foi
bastante utilizada durante a poca de Objective-C.
Embora tenhamos entregado muitos projetos bem
sucedidos usando AngularJS e estejamos vendo uma
acelerao na adoo de configuraes corporativas,
decidimos mover Angular de volta a Avalie nessa
edio do radar. Essa mudana tem como objetivo ser
um alerta: React.js e Ember so alternativas slidas, o
caminho para migrao da primeira verso de Angular
para a segunda tem provocado incerteza e temos visto
algumas organizaes adotando o framework sem
realmente avaliar se uma aplicao de pgina nica
atende suas necessidades. Temos debates internos
intensos sobre esse tpico, mas certamente temos
visto bases de cdigo se tornarem excessivamente
complexas devido a uma combinao entre ligaes de
duas vias e padres inconsistentes de gerenciamento
de estado. Acreditamos que ao invs de exigir que um
framework slido seja abandonado, esses problemas
podem ser resolvidos com design cuidadoso e uso de
Redux ou Flux desde o princpio.
Aurelia considerado o framework JavaScript de
cliente da prxima gerao, e foi escrito usando uma
verso moderna de JavaScript: ECMAScript 2016. Aurelia
foi criado por Rob Eisenberg, o criador do Durandal. Ele
deixou o time principal do Angular 2.0 para se dedicar
a esse projeto. O grande diferencial do Aurelia que
ele altamente modular, contm bibliotecas simples
e pequenas e projetado para ser personalizado com
facilidade. Aurelia segue o padro conveno em vez
de configurao, que permite produo e consumo de
mdulos com mais facilidade, mas sem convenes
slidas que voc tenha que aderir. Aurelia possui uma
grande comunidade, e pelo site do projeto voc pode
aprender mais usando os tutoriais.

TECHNOLOGY RADAR ABRIL 2016 | 16

LINGUAGENS E FRAMEWORKS continuao


A interceo entre dispositivos IoT e o ecossistema
JavaScript oferece possibilidades interessantes.
Cylon.js uma biblioteca JavaScript para construir
interfaces para robtica e Internet das Coisas que
entusiasmou nossa comunidade tcnica. Ela oferece
suporte para mais de 50 plataformas de dispositivos,
bem como suporte para entrada e sada em geral,
com um conjunto compartilhado de drivers fornecidos
pelo mdulo cylon-gpio. O controle dos dispositivos
possibilitado dessa forma pela interface de um
navegador web.
Continuamos a ver bastante entusiasmo entre pessoas
usando a linguagem de programao Elixir. Elixir, que
desenvolvida com base na mquina virtual Erlang, tem
mostrado potencial na criao de sistemas altamente
concorrentes e tolerantes a falhas. Elixir possui
funcionalidades caractersticas como o operador Pipe,
que permite construir uma pipeline de funes como
no shell do UNIX. O bytecode compartilhado permite
ao Elixir interoperar com Erlang e alavancar bibliotecas
existentes, ao mesmo tempo suportando ferramentas
como Mix, para builds, a shell interativa Iex e o
framework de testes de unidade ExUnit.
Tivemos que reconsiderar Elm devido rpida adoo
do framework Redux. Elm a inspirao original para
Redux permite a criao de componentes de viso e
a reatividade do React.js, somadas ao estado previsvel
do Redux em uma linguagem funcional, compilada e
fortemente tipada. Elm escrita em Haskell e possui
uma sintaxe similar a Haskell, mas compila para
HTML, CSS e JavaScript para o navegador. Pessoas que
programam em JavaScript ansiosas em adotar React.
js e Redux podem tambm considerar Elm como uma
alternativa de tipagem forte para algumas aplicaes.
Quando observamos implementaes REST no
mundo real, frequentemente vemos REST utilizado
incorretamente para, de forma ingnua, recuperar
grafos de objeto por meio de uma srie de interaes
entre cliente e servidor. GraphQL do Facebook
uma alternativa interessante a REST, que pode ser
uma melhor abordagem para esse caso de uso
muito comum. Como um protocolo para recuperar
grafos de objetos remotamente, GraphQL tem
recebido muita ateno ultimamente. Uma de suas

Abril 2016, ThoughtWorks, Inc. Todos os direitos reservados

funcionalidades mais interessantes sua natureza


orientada ao consumidor: a estrutura de uma
resposta inteiramente definida pelo cliente, no pelo
servidor. Implementaes de cliente esto disponveis
atualmente em muitas linguagens de programao,
mas temos visto uma onda de interesse no Relay do
Facebook, um framework JavaScript desenhado para
suportar o modelo de componente sem estado do
React.js.
A imutabilidade frequentemente enfatizada no
paradigma de programao funcional, e a maioria das
linguagens capaz de criar objetos imutveis, que no
podem ser alterados depois de criados.
Immutable.js uma biblioteca para JavaScript
que fornece muitas estruturas de dados imutveis
persistentes, altamente eficientes em mquinas
virtuais JavaScript modernas. Os objetos de Immutable.
js, entretanto, no so objetos JavaScript normais,
portanto, referncias a objetos JavaScript a partir de
objetos imutveis devem ser evitadas. Nossos times
tiveram bons resultados usando essa biblioteca para
monitorar mutaes e manter estados, e uma
biblioteca que incentivamos pessoas desenvolvedoras
a investigar, principalmente quando combinada com o
restante do pacote do Facebook.
Temos gostado de como Recharts integra grficos D3
em React.js de maneira limpa e declarativa.
Muitas pessoas que desenvolvem em iOS esto usando
JSPatch para corrigir dinamicamente seus apps.
Quando um app JSPatch executado, ele carrega
um pedao de JavaScript (potencialmente por meio
de uma conexo HTTP insegura) e ento se conecta
ao cdigo Objective-C da aplicao para alterar
comportamento, reparar erros, e assim por diante.
Embora seja conveniente, achamos que monkeypatching uma ideia ruim e deve ser evitada. Ao
fazer reparos incrementais de qualquer tamanho,
muito importante que seu processo de testes
corresponda experincia que usurios finais tero,
para assim validar corretamente a funcionalidade. Uma
abordagem alternativa usar React Native para o app
e AppHub e CodePush para pequenas atualizaes e
novas funcionalidades.

TECHNOLOGY RADAR ABRIL 2016 | 17

A ThoughtWorks uma empresa de software e uma


comunidade de pessoas apaixonadas e guiadas por
propsitos, especialistas em consultoria, entrega e
produtos de software. Pensamos de forma disruptiva
para entregar tecnologia que atenda aos maiores
desafios de clientes, ao mesmo tempo que buscamos
revolucionar a indstria de TI e promover mudanas
sociais positivas. Criamos ferramentas pioneiras para
times de desenvolvimento que aspiram a ser grandiosos.

Abril 2016, ThoughtWorks, Inc. Todos os direitos reservados

Nossos produtos ajudam organizaes a melhorar


constantemente e a entregar software de qualidade
para suas necessidades mais crticas. Fundada h mais
de 20 anos, a ThoughtWorks cresceu de um pequeno
grupo em Chicago para uma empresa de mais de 3500
pessoas, espalhadas em 35 escritrios e em 12 pases:
Austrlia, Brasil, Canad, China, Equador, Alemanha,
ndia, Singapura, frica do Sul, Turquia, Reino Unido e
Estados Unidos.

TECHNOLOGY RADAR ABRIL 2016 | 18

Você também pode gostar