javaone 2015: 14 key lessons, you should learn
TRANSCRIPT
Jigsaw is getting ready for prime time
The ultimate modularity framework supports strong encapsulation enforced by the JDK module system augmented with the service discovery mechanism of OSGi. Let’s hope both
communities can figure this out together.1ACA IT-SOLUTIONS | © 2015
2 Performance problems are not always in your house, you need insight in the complete neighbourhood to get it right.
Flame graphs to the rescue - Brendan Gregg
The messy house fallacy
ACA IT-SOLUTIONS | © 2015
3Software is a craft, creating value through software is an
Bots can help you to focus on the things that matter and automate all the rest. Sven Peters - Rise of the Machines
Art.ACA IT-SOLUTIONS | © 2015
Containers as the lingua francaBuild time: Containerisation results in more isolated and repeatable builds and remote integration testing here.
Deployment time: Dev and Ops speak containersOperations: cluster abstractions allow for scale-out. (Kubernetes, Swarm, Mesos).
With the release of Docker 1.9 network support becomes a core feature. A cluster of virtual docker hosts in which containers can form a logical network.
Containers are like diapers, once they are full of shit, throw them away and put on a new one - Arun Gupta.
4
A monolithic java app is a bottleneck for innovation. Microservices owned by autonomous teams result
in many parallel initiatives - Gilt
Disclaimer - MicroServices tend to be deceptively simple to understand; complexity is in the interactions between services now.
5ACA IT-SOLUTIONS | © 2015
‘We are not all or ; when you pretend to be by copying their architecture, you get all their problems for free but need to
solve them at a high cost.’ - Bert Ertman
Microservices have a lot of benefits, but you’re aiming for a mature software engineering practice.6
ACA IT-SOLUTIONS | © 2015
Anti pattern : you think it is big data but it is not!
Alex Holmes - Avoiding Big Data Antipatterns7 ACA IT-SOLUTIONS | © 2015
Design your build to validate your design
Build driven architecture takes into account the structure of the build to validate the architecture.
A build framework allowing to write your build in a real programming language, allows to design your build to be
clean and powerful. Gradle can help here.
8
ACA IT-SOLUTIONS | © 2015
A microservice architecture requires even more metrics
Collect metrics for micro services not only in production but also when automated acceptance tests are running!
Monitoring should not only aggregate metrics cross containers but also collect individual container metrics. Individual problems
are not always visible in the aggregated metrics. 9ACA IT-SOLUTIONS | © 2015
strangulate bad parts; the recommended approach to evolve towards a microservice architecture
1. identify the parts the need improvement (e.g. pain of maintaining)
2. start replacement projects10 ACA IT-SOLUTIONS | © 2015
Say Microservices, Say Security JBoss Keycloak is an option worth considering; seamless authentication
for all your microservices by passing authentication tokens. Multiple login mechanisms available out of the box:
Twitter, Facebook, LDAP / AD, OpenId, SAML, Kerberos, RDBMS.11ACA IT-SOLUTIONS | © 2015
Communication is what drives your design
BDD is all about collaboration & communication, automated tests are just a side-effect.
‘Should the software actually do this?’: is an extremely powerful question to drive your application & design12 ACA IT-SOLUTIONS | © 2015
‘An interface tells you what to do, but does nothing itself.
Kinda like your boss’Venkat Subramaniam on the changes in interfaces,
i.e. static & default methods
13
ACA IT-SOLUTIONS | © 2015
Time to update our design patterns; some will disappear by using lambda’s
Design patterns will become more fluent, lightweight and easily executable. They will become easier to implement and can be
added indirectly into the code14 ACA IT-SOLUTIONS | © 2015
@tmetten@tomdw @thomasborghs @koenolaerts
@stieno
ACA IT-SOLUTIONS | © 2015