63
TECHNOLOGY RADAR May 2015 — Our thoughts on the technology and trends that are shaping the future 1

ThoughtWorks Technology Radar Roadshow - Sydney

Embed Size (px)

Citation preview

Page 1: ThoughtWorks Technology Radar Roadshow - Sydney

TECHNOLOGYRADARMay 2015 — Our thoughts on the technology and trends that are shaping the future

1

Page 2: ThoughtWorks Technology Radar Roadshow - Sydney

2

Page 3: ThoughtWorks Technology Radar Roadshow - Sydney

3

TECHNOLOGY ADVISORY BOARD

Page 4: ThoughtWorks Technology Radar Roadshow - Sydney

4

Page 5: ThoughtWorks Technology Radar Roadshow - Sydney

5

Page 6: ThoughtWorks Technology Radar Roadshow - Sydney

6

Page 7: ThoughtWorks Technology Radar Roadshow - Sydney

THEMES FOR THIS ISSUE

7

Page 8: ThoughtWorks Technology Radar Roadshow - Sydney

TECHNIQUES8

Page 9: ThoughtWorks Technology Radar Roadshow - Sydney

TECHNIQUES8

Page 10: ThoughtWorks Technology Radar Roadshow - Sydney

9

ADOPT 1. Consumer-driven contract testing NEW

2. Focus on mean time to recovery 3. Generated infrastructure diagrams NEW 4. Structured logging

TRIAL 5. Canary builds 6. Datensparsamkeit 7. Local storage sync 8. NoPSD 9. Offline-first web applications NEW 10. Products over projects NEW 11. Threat Modelling NEW

ASSESS 12. Append-only data store 13. Blockchain beyond Bitcoin 14. Enterprise Data Lake 15. Flux NEW 16. “git-based CMS” NEW 17. Phoenix environments NEW 18. Reactive architectures NEW

HOLD 19. Long lived branches with Gitflow 20. Microservice envy 21. Programming in your CI/CD tool 22. SAFe™ 23. Security sandwich 24. Separate DevOps team

TECHNIQUES

Page 11: ThoughtWorks Technology Radar Roadshow - Sydney

10

TECHNIQUESArchitectures for the digital world (theme: innovations in architecture)

Page 12: ThoughtWorks Technology Radar Roadshow - Sydney

10

TECHNIQUES18

15

14

12

REACTIVE ARCHITECTURES

FLUX

ENTERPRISE DATA LAKE

APPEND-ONLY DATA STORE

Architectures for the digital world (theme: innovations in architecture)

Page 13: ThoughtWorks Technology Radar Roadshow - Sydney

Attrition

Acquisition

Retention

Activation

Referral

Ads

ARCHITECTURES FOR THE DIGITAL JOURNEY

11

Emails

Google

Page 14: ThoughtWorks Technology Radar Roadshow - Sydney

Legacy Systems

RIGHT DATA, RIGHT PLACE, RIGHT TIME

12

Legacy SystemsLegacy Systems Web Analytics Operational Metrics Insights

Page 15: ThoughtWorks Technology Radar Roadshow - Sydney

13

Business Logic

(functions)

Legacy Systems

Archivers

File Store (S3)

Insights Analytics

Reports, Model

Parameters

Spark, Hadoop

Microservices

Append-only

Database

Flux-based Web Application

User Actions

View Rendering

(react.js)

Transactions, Web Analytics,

Operational Logs

Subscribed Events Event Queue

(Time Series Database, Apache Kafka, AWS Kinesis,

Eventstore, …)

Page 16: ThoughtWorks Technology Radar Roadshow - Sydney

13

Business Logic

(functions)

Legacy Systems

Archivers

File Store (S3)

Insights Analytics

Reports, Model

Parameters

Spark, Hadoop

Microservices

Append-only

Database

Flux-based Web Application

User Actions

View Rendering

(react.js)

Transactions, Web Analytics,

Operational Logs

Subscribed Events

Event Queue (Time Series Database,

Apache Kafka, AWS Kinesis,

Eventstore, …)

Page 17: ThoughtWorks Technology Radar Roadshow - Sydney

14

Insights Analytics

Reports, Model

Parameters

Spark, Hadoop

Event Queue (Time Series Database,

Apache Kafka, AWS Kinesis,

Eventstore, …)

Transactions, Web Analytics,

Operational Logs

Subscribed Events

Business Logic

(functions)

Legacy Systems

Archivers

File Store (S3)Microservices

Append-only

Database

Flux-based Web Application

User Actions

View Rendering

(react.js)

Page 18: ThoughtWorks Technology Radar Roadshow - Sydney

14

Insights Analytics

Reports, Model

Parameters

Spark, Hadoop

Transactions, Web Analytics,

Operational Logs

Subscribed Events

Business Logic

(functions)

Legacy Systems

Archivers

File Store (S3)Microservices

Append-only

Database

Flux-based Web Application

User Actions

View Rendering

(react.js)

Page 19: ThoughtWorks Technology Radar Roadshow - Sydney

15

Event Queue (Time Series Database,

Apache Kafka, AWS Kinesis,

Eventstore, …)

Insights Analytics

Reports, Model

Parameters

Spark, Hadoop

Append-only

Database

Flux-based Web Application

User Actions

View Rendering

(react.js)

Transactions, Web Analytics,

Operational Logs

Subscribed Events

Business Logic

(functions)

Legacy Systems

Archivers

File Store (S3)Microservices

Page 20: ThoughtWorks Technology Radar Roadshow - Sydney

15

Transactions, Web Analytics,

Operational Logs

Subscribed Events

Business Logic

(functions)

Legacy Systems

Archivers

File Store (S3)Microservices

Page 21: ThoughtWorks Technology Radar Roadshow - Sydney

16

Insights Analytics

Reports, Model

Parameters

Spark, Hadoop

File Store (S3)

Event Queue (Time Series Database,

Apache Kafka, AWS Kinesis,

Eventstore, …)

Microservices

Append-only

Database

Flux-based Web Application

User Actions

View Rendering

(react.js)

Transactions, Web Analytics,

Operational Logs

Subscribed Events

Business Logic

(functions)

Legacy Systems

Archivers

Page 22: ThoughtWorks Technology Radar Roadshow - Sydney

16

Insights Analytics

Reports, Model

Parameters

Spark, Hadoop

File Store (S3)

Event Queue (Time Series Database,

Apache Kafka, AWS Kinesis,

Eventstore, …)

Page 23: ThoughtWorks Technology Radar Roadshow - Sydney

16

Insights Analytics

Reports, Model

Parameters

Spark, Hadoop

File Store (S3)

Event Queue (Time Series Database,

Apache Kafka, AWS Kinesis,

Eventstore, …)

ALL DATA IN MOTION IS IMMUTABLE

Page 24: ThoughtWorks Technology Radar Roadshow - Sydney

16

Insights Analytics

Reports, Model

Parameters

Spark, Hadoop

File Store (S3)

Event Queue (Time Series Database,

Apache Kafka, AWS Kinesis,

Eventstore, …)

ALL DATA IN MOTION IS IMMUTABLE

FIT-FOR-PURPOSE “STATE” IS COMPUTED BY THE CONSUMER

Page 25: ThoughtWorks Technology Radar Roadshow - Sydney

16

Insights Analytics

Reports, Model

Parameters

Spark, Hadoop

File Store (S3)

Event Queue (Time Series Database,

Apache Kafka, AWS Kinesis,

Eventstore, …)

ALL DATA IN MOTION IS IMMUTABLE

FIT-FOR-PURPOSE “STATE” IS COMPUTED BY THE CONSUMER

MANAGING AND PUBLISHING EVENTS BRINGS COMPLEXITY

Page 26: ThoughtWorks Technology Radar Roadshow - Sydney

16

Insights Analytics

Reports, Model

Parameters

Spark, Hadoop

File Store (S3)

Event Queue (Time Series Database,

Apache Kafka, AWS Kinesis,

Eventstore, …)PUSHES RESPONSIBILITY FOR DATA QUALITY BACK ON THE SOURCE SYSTEMS

ALL DATA IN MOTION IS IMMUTABLE

FIT-FOR-PURPOSE “STATE” IS COMPUTED BY THE CONSUMER

MANAGING AND PUBLISHING EVENTS BRINGS COMPLEXITY

Page 27: ThoughtWorks Technology Radar Roadshow - Sydney

17

ADOPT 1. Consumer-driven contract testing NEW

2. Focus on mean time to recovery 3. Generated infrastructure diagrams NEW 4. Structured logging

TRIAL 5. Canary builds 6. Datensparsamkeit 7. Local storage sync 8. NoPSD 9. Offline-first web applications NEW 10. Products over projects NEW 11. Threat Modelling NEW

ASSESS 12. Append-only data store 13. Blockchain beyond Bitcoin 14. Enterprise Data Lake 15. Flux NEW 16. “git-based CMS” NEW 17. Phoenix environments NEW 18. Reactive architectures NEW

HOLD 19. Long lived branches with Gitflow 20. Microservice envy 21. Programming in your CI/CD tool 22. SAFe™ 23. Security sandwich 24. Separate DevOps team

TECHNIQUES

Page 28: ThoughtWorks Technology Radar Roadshow - Sydney

TOOLS18

Page 29: ThoughtWorks Technology Radar Roadshow - Sydney

TOOLS18

Page 30: ThoughtWorks Technology Radar Roadshow - Sydney

19

TOOLSADOPT 48. Composer 49. Go CD 50. Mountebank 51. Postman

TRIAL 52. Boot2docker 53. Brighter NEW 54. Consul

55. Cursive 56. Gitlab 57. Hamms NEW

58. IndexedDB 59. POLLY NEW 60. Rest-assured NEW 61. Swagger 62. Xamarin 63. ZAP NEW

ASSESS 64. Apache Kafka NEW 65. Blackbox 66. Bokeh/Vega NEW 67. Gor NEW 68. NaCL NEW 69. Origami NEW 70. Packet beat 71. pdfmake NEW 72. PlantUML NEW 73. Prometheus NEW 74. Quick NEW 75. Security Monkey NEW

HOLD 76. Citrix for development

Page 31: ThoughtWorks Technology Radar Roadshow - Sydney

20

TOOLS

Page 32: ThoughtWorks Technology Radar Roadshow - Sydney

20

TOOLS

7563

65

68

BLACKBOX

ZED ATTACK PROXYSECURITY MONKEY

NACL

Page 33: ThoughtWorks Technology Radar Roadshow - Sydney

SECURITY AWARENESS AMONG SENIOR DEVELOPERS*

21*Source: http://jemurai.com/developer-survey-1-results-part-2.html

37% think security isa small concern

8% think it is a top concern

67%

haver never heard of OWASP, OWASP top 10, or

CWE top 25

25%

of projects reported had security training, pen test or security embedded in

development

Overwhelmingly, the only security practices in place are manual code and design reviews.

Page 34: ThoughtWorks Technology Radar Roadshow - Sydney

OWASP ZED ATTACK PROXY

22

The Main Features

All the essentials for web application testing

■ Intercepting Proxy

■ Active and Passive Scanners

■ Traditional and Ajax Spiders

■ WebSockets support

■ Forced Browsing (using OWASP DirBuster code)

■ Fuzzing (using fuzzdb & OWASP JBroFuzz)

■ Online Add-ons Marketplace

Browser configured to use proxy

Browser

Primary OS

Web Proxy

Your Computer

VM

Web Server

Browser Web Proxy

Web Server

http://www.slideshare.net/dgsweigert/using-the http://www.slideshare.net/tabaradetestare/owasp-2013-zapquickintro

Page 35: ThoughtWorks Technology Radar Roadshow - Sydney

ARE YOUR REPOS AND BUILD SERVERS SECURE?

23

http://www.wired.com/2012/09/adobe-digital-cert-hacked/

Page 36: ThoughtWorks Technology Radar Roadshow - Sydney

ARE YOUR REPOS AND BUILD SERVERS SECURE?

23

http://www.wired.com/2012/09/adobe-digital-cert-hacked/

Page 37: ThoughtWorks Technology Radar Roadshow - Sydney

PROTECTING DEV SECRETS WITH BLACKBOX

Git Repo

Keys

Shhhh

secret

ShhhhBlackbox

Repo seen by all

Secrets readable by few

Page 38: ThoughtWorks Technology Radar Roadshow - Sydney

25

TOOLSADOPT 48. Composer 49. Go CD 50. Mountebank 51. Postman

TRIAL 52. Boot2docker 53. Brighter NEW 54. Consul

55. Cursive 56. Gitlab 57. HAMMS NEW

58. IndexedDB 59. POLLY NEW 60. Rest-assured NEW 61. Swagger 62. Xamarin 63. ZAP NEW

ASSESS 64. Apache Kafka NEW 65. Blackbox 66. Bokeh/Vega NEW 67. Gor NEW 68. NaCL NEW 69. Origami NEW 70. Packet beat 71. pdfmake NEW 72. PlantUML NEW 73. Prometheus NEW 74. Quick NEW 75. Security Monkey NEW

HOLD 76. Citrix for development

Page 39: ThoughtWorks Technology Radar Roadshow - Sydney

LANGUAGES & FRAMEWORKS

26

Page 40: ThoughtWorks Technology Radar Roadshow - Sydney

LANGUAGES & FRAMEWORKS

26

Page 41: ThoughtWorks Technology Radar Roadshow - Sydney

27

LANGUAGES & FRAMEWORKS

ADOPT 77. Nancy

TRIAL 78. Dashing 79. Django Rest 80. Ionic Framework 81. Nashorn 82. Om 83. React.js 84. Retrofit 85. Spring Boot

ASSESS 86. Ember.js NEW 87. Flight.js 88. Haskell Hadoop library 89. Lotus 90. Reagent 91. Swift

HOLD 92. JSF

Page 42: ThoughtWorks Technology Radar Roadshow - Sydney

28

LANGUAGES & FRAMEWORKS

Page 43: ThoughtWorks Technology Radar Roadshow - Sydney

28

LANGUAGES & FRAMEWORKS

85 SPRING BOOT

NANCY77

Page 44: ThoughtWorks Technology Radar Roadshow - Sydney

A TALE OF TWO WEB FRAMEWORKS

29

Java/Spring C#/.NET

Lightweight ✓ ✓

Low-ceremony ✓ ✓

Self-hosted ✓ ✓

Opinionated ✓ ✓

boot

Page 45: ThoughtWorks Technology Radar Roadshow - Sydney

ON THE SURFACE, VERY SIMILAR

30

Page 46: ThoughtWorks Technology Radar Roadshow - Sydney

ON THE SURFACE, VERY SIMILAR

30

Page 47: ThoughtWorks Technology Radar Roadshow - Sydney

BUT WHAT’S UNDER THE COVERS?

31

Spring Boot’s pom.xml

1847 lines in total!

Page 48: ThoughtWorks Technology Radar Roadshow - Sydney

BUT WHAT’S UNDER THE COVERS?

31

Nancy’s Nuget page

Page 49: ThoughtWorks Technology Radar Roadshow - Sydney

BUT WHAT’S UNDER THE COVERS?

31

Nancy’s Nuget page

Page 50: ThoughtWorks Technology Radar Roadshow - Sydney

FRAMEWORKS VS. COMPOSITION

32

Spring Framework

Your Spring Boot App

JettyYour App

Code

Owin

Nancy.Owin

Nancy

Composes

Calls higher-order functions

Page 51: ThoughtWorks Technology Radar Roadshow - Sydney

33

LANGUAGES & FRAMEWORKS

ADOPT 77. Nancy

TRIAL 78. Dashing 79. Django Rest 80. Ionic Framework 81. Nashorn 82. Om 83. React.js 84. Retrofit 85. Spring Boot

ASSESS 86. Ember.js NEW 87. Flight.js 88. Haskell Hadoop library 89. Lotus 90. Reagent 91. Swift

HOLD 92. JSF

Page 52: ThoughtWorks Technology Radar Roadshow - Sydney

PLATFORMS34

Page 53: ThoughtWorks Technology Radar Roadshow - Sydney

PLATFORMS34

Page 54: ThoughtWorks Technology Radar Roadshow - Sydney

35

PLATFORMSADOPT TRIAL 25. Apache Spark NEW 26. Cloudera Impala NEW 27. DigitalOcean 28. TOTP Two-Factor Authentication

HOLD 45. Application Servers NEW 46. OSGi 47. SPDY NEW

ASSESS 29. Apache Kylin NEW 30. Apache Mesos 31. CoreCLR and CoreFX NEW 32. CoreOS 33. Deis NEW 34. H2O NEW 35. Jackrabbit Oak 36. Linux security modules 37. MariaDB 38. Netflix OSS Full stack 39. OpenAM 40. SDN 41. Spark.io 42. Text it as a service / Rapidpro.io 43. Time-series Databases NEW 44. U2F

Page 55: ThoughtWorks Technology Radar Roadshow - Sydney

36

PLATFORMSDeployment architectures keep evolving.

Page 56: ThoughtWorks Technology Radar Roadshow - Sydney

36

PLATFORMS

33 DEIS

30 APACHE MESOS

32 COREOS45APPLICATION SERVERS

Deployment architectures keep evolving.

Page 57: ThoughtWorks Technology Radar Roadshow - Sydney

THE RISE OF DOCKER

37

http://blog.docker.com/2014/11/docker-governance-advisory-board-output-of-first-meeting/

GitHub Starts by Date and Project Config Management GitHub Totals

Page 58: ThoughtWorks Technology Radar Roadshow - Sydney

EXPLOSION OF TOOLS AND PLATFORMS

38

CoreOS Fleet

Docker Swarm

Page 59: ThoughtWorks Technology Radar Roadshow - Sydney

DEIS: DOCKER-BASED PAAS — ANYWHERE

39http://docs.deis.io/en/v0.9.0/gettingstarted/architecture/

Developer Application Consumers

Load Balancer

Controller Load Balancer

Cluster (Test)

ContainersScheduler Router

Cluster (Dev)

ContainersScheduler Router

Cluster (Prod)

ContainersScheduler Router

Monitoring Logging Backing Services

Containers

Containers

Containers

Containers

Containers

Containers

Router

Router

Router

Page 60: ThoughtWorks Technology Radar Roadshow - Sydney

APACHE MESOS

40http://abhishek-tiwari.com/post/building-distributed-systems-with-mesos

batch services Workloads

Apps

Frameworks

Kernel

DFS

Cluster

C++ BASH Python

Scalding Impala Shark MySQL Kafka JBoss Django Rails

MPI Hadoop Spark Storm

Marathon

Chronos

RubyPythonJVMC++

distributed file system

distributed resources: CPU, RAM, I/O, FS, rack locality, etc.

Page 61: ThoughtWorks Technology Radar Roadshow - Sydney

WHERE DOES THIS LEAVE APPLICATION SERVERS?

41

Page 62: ThoughtWorks Technology Radar Roadshow - Sydney

42

PLATFORMSADOPT TRIAL 25. Apache Spark NEW 26. Cloudera Impala NEW 27. DigitalOcean 28. TOTP Two-Factor Authentication

HOLD 45. Application Servers NEW 46. OSGi 47. SPDY NEW

ASSESS 29. Apache Kylin NEW 30. Apache Mesos 31. CoreCLR and CoreFX NEW 32. CoreOS 33. Deis NEW 34. H2O NEW 35. Jackrabbit Oak 36. Linux security modules 37. MariaDB 38. Netflix OSS Full stack 39. OpenAM 40. SDN 41. Spark.io 42. Text it as a service / Rapidpro.io 43. Time-series Databases NEW 44. U2F

Page 63: ThoughtWorks Technology Radar Roadshow - Sydney

43

Scott Shaw

@scottwshaw

Evan Bottcher

@evanbottcher

thoughtworks.com/radar