javacro 2016 - how to pick a future proof java architecture for the next 10+ years
TRANSCRIPT
![Page 1: Javacro 2016 - How to pick a future proof Java architecture for the next 10+ years](https://reader035.vdocument.in/reader035/viewer/2022062904/587e34fa1a28ab9f5d8b4771/html5/thumbnails/1.jpg)
HOW TO PICK A FUTURE PROOF JAVA
ARCHITECTURE FOR THE NEXT 10+ YEARS?
![Page 2: Javacro 2016 - How to pick a future proof Java architecture for the next 10+ years](https://reader035.vdocument.in/reader035/viewer/2022062904/587e34fa1a28ab9f5d8b4771/html5/thumbnails/2.jpg)
Roko Roić
Advisor @ King ICT
Matija Capan
Chief architect @ King ICT
![Page 3: Javacro 2016 - How to pick a future proof Java architecture for the next 10+ years](https://reader035.vdocument.in/reader035/viewer/2022062904/587e34fa1a28ab9f5d8b4771/html5/thumbnails/3.jpg)
„People who live in the present often wind up exploiting the present to an extent that it starts removing the possibility of having a future.” [Alan Kay, UCLA/MIT/Atari/Turing award]
![Page 4: Javacro 2016 - How to pick a future proof Java architecture for the next 10+ years](https://reader035.vdocument.in/reader035/viewer/2022062904/587e34fa1a28ab9f5d8b4771/html5/thumbnails/4.jpg)
THE PROBLEM? THINGS CHANGE MAKING IT HARD TO STAY ON TARGET WITHIN 10+ YEARS. EVEN IN AGILE PROMOTED EVOLVING ARCHITECTURES. EVEN IF YOU DECIDE „AS LATE AS POSSIBLE”.
![Page 5: Javacro 2016 - How to pick a future proof Java architecture for the next 10+ years](https://reader035.vdocument.in/reader035/viewer/2022062904/587e34fa1a28ab9f5d8b4771/html5/thumbnails/5.jpg)
Goals of this talk
Define sustainability and reasons for even proposing this approach
View the problem from multiple angles and put it in plain sight
Propose an approach for long term Java architectures
![Page 6: Javacro 2016 - How to pick a future proof Java architecture for the next 10+ years](https://reader035.vdocument.in/reader035/viewer/2022062904/587e34fa1a28ab9f5d8b4771/html5/thumbnails/6.jpg)
What requires long term sustainability?
NEEDS TO RUN FOR
DECADE(S)
NEEDS FUNCTIONAL UPGRADES FOR THE ENTIRE
LIFESPAN
NEEDS GROWING
SCALABILITY FOR THE ENTIRE
LIFESPAN
NEEDS TO WORK IN A CHANGING
ENVIRONMENT
![Page 7: Javacro 2016 - How to pick a future proof Java architecture for the next 10+ years](https://reader035.vdocument.in/reader035/viewer/2022062904/587e34fa1a28ab9f5d8b4771/html5/thumbnails/7.jpg)
Changing environment Client operating systems change
Application runtimes change (e.g. browser)
Systems you integrated to also change
JVMs change
Server infrastructure changes
Security standards change
Application servers change
Problem areas
Maintaining knowledge
Building scalability in
![Page 8: Javacro 2016 - How to pick a future proof Java architecture for the next 10+ years](https://reader035.vdocument.in/reader035/viewer/2022062904/587e34fa1a28ab9f5d8b4771/html5/thumbnails/8.jpg)
Changing environment Young guns know only the lastest thing
Seniors are hard to find
…especially for non standard architectures
…especially for middleware-heavy architectures
People (and knowledge) leave the company
Problem areas
Maintaining knowledge
Building scalability in
![Page 9: Javacro 2016 - How to pick a future proof Java architecture for the next 10+ years](https://reader035.vdocument.in/reader035/viewer/2022062904/587e34fa1a28ab9f5d8b4771/html5/thumbnails/9.jpg)
Changing environment Allowing functional growth over time
Allowing capacity growth over time
Allowing easy deployment and easy rollback
Allowing partial or full refactoring (coverage is king)
Problem areas
Maintaining knowledge
Building scalability in
![Page 10: Javacro 2016 - How to pick a future proof Java architecture for the next 10+ years](https://reader035.vdocument.in/reader035/viewer/2022062904/587e34fa1a28ab9f5d8b4771/html5/thumbnails/10.jpg)
THE SOLUTION, PLEASE? JUST THE APPROACH TODAY,
BUILD YOUR OWN SOLUTION
![Page 11: Javacro 2016 - How to pick a future proof Java architecture for the next 10+ years](https://reader035.vdocument.in/reader035/viewer/2022062904/587e34fa1a28ab9f5d8b4771/html5/thumbnails/11.jpg)
WE ARE GOING TO DO THIS BOTTOM UP SO PLEASE BEAR
WITH US
![Page 12: Javacro 2016 - How to pick a future proof Java architecture for the next 10+ years](https://reader035.vdocument.in/reader035/viewer/2022062904/587e34fa1a28ab9f5d8b4771/html5/thumbnails/12.jpg)
“Software architecture is the collection of decisions affecting the system’s quality attributes; which have global effects and are hardest to change. Software architecture provides the frame within which the design (code) is built.”
Arnon Rotem-Gal-Oz in Agile Architecture
![Page 13: Javacro 2016 - How to pick a future proof Java architecture for the next 10+ years](https://reader035.vdocument.in/reader035/viewer/2022062904/587e34fa1a28ab9f5d8b4771/html5/thumbnails/13.jpg)
FACT: JAVA 7 WAS MADE AVAILABLE IN JULY 2011. AND MADE DEAD IN APRIL 2015.
LET’S START WITH THE RUNTIME. JVM? WHICH
VERSION?
![Page 14: Javacro 2016 - How to pick a future proof Java architecture for the next 10+ years](https://reader035.vdocument.in/reader035/viewer/2022062904/587e34fa1a28ab9f5d8b4771/html5/thumbnails/14.jpg)
FACT: JAVA IS THE NEW COBOL. IT WILL STICK LIKE SOMETHING YOU PICKED UP ON A BACHELOR’S PARTY
UP THE LADDER IS THE LANGUAGE. THERE’S MORE
THAN 50 ON THE JVM.
FACT: TIOBE INDEX, JOB MARKET INDEX, COLLEGE EDUCATION – ALL PREFER JAVA TO OTHER JVM
LANGUAGES
![Page 15: Javacro 2016 - How to pick a future proof Java architecture for the next 10+ years](https://reader035.vdocument.in/reader035/viewer/2022062904/587e34fa1a28ab9f5d8b4771/html5/thumbnails/15.jpg)
FACT: THERE IS THE EE AND THE SE APPROACH. EACH WILL LIVE TO TELL,
BUT WHAT ABOUT THE IMPLICATIONS TO THE OVERALL SOLUTION?
WHICH JAVA EDITION WILL HELP ME STAY ON TARGET FOR
THE NEXT 10+ YEARS?
![Page 16: Javacro 2016 - How to pick a future proof Java architecture for the next 10+ years](https://reader035.vdocument.in/reader035/viewer/2022062904/587e34fa1a28ab9f5d8b4771/html5/thumbnails/16.jpg)
FACT: THERE’S THOUSANDS OF FRAMEWORKS AND MODULES AROUND, WE’LL TRY TO GIVE SOME GUIDANCE ON
PICKING THE SUSTAINABLE ONES.
LET’S BE HONEST, DEVELOPERS DO NOT DEVELOP REALLY THAT
MUCH. THEY USE FRAMEWORKS AND MODULES.
![Page 17: Javacro 2016 - How to pick a future proof Java architecture for the next 10+ years](https://reader035.vdocument.in/reader035/viewer/2022062904/587e34fa1a28ab9f5d8b4771/html5/thumbnails/17.jpg)
IS THERE AN
ESCAPE HATCH?
TRACK RECORD OF BACKWARD COMPATIBLI
TY
IS THERE AN ECOSYSTEM AROUND IT?
IS IT EASY FOR A
JUNIOR TO LEARN?
COMMUNITY SIZE &
ENGAGEMENT
DO I REALLY
NEED IT?
![Page 18: Javacro 2016 - How to pick a future proof Java architecture for the next 10+ years](https://reader035.vdocument.in/reader035/viewer/2022062904/587e34fa1a28ab9f5d8b4771/html5/thumbnails/18.jpg)
FACT: WEB IS THE STANDARD, BUT WITHOUT STANDARDISATION. KEEP IT
SIMPLE, BOOTSTRAP SHOULD BE ENOUGH.
USER INTERFACE APPROACH? WEB, NATIVE DESKTOP,
MOBILE, HYBRID DESKTOP, HYBRID MOBILE, … IT USED TO
BE SO SIMPLE
![Page 19: Javacro 2016 - How to pick a future proof Java architecture for the next 10+ years](https://reader035.vdocument.in/reader035/viewer/2022062904/587e34fa1a28ab9f5d8b4771/html5/thumbnails/19.jpg)
NO SOFTWARE ARCHITECTURE IS AN
ISLAND. IT SHARES SPACES WITH ITS SYSTEM
ARCHITECTURE
![Page 20: Javacro 2016 - How to pick a future proof Java architecture for the next 10+ years](https://reader035.vdocument.in/reader035/viewer/2022062904/587e34fa1a28ab9f5d8b4771/html5/thumbnails/20.jpg)
APPLICATION MIDDLEWARE
Embedded HTTP server
Microservices based arachitecture is possible
Low impact on knowledge transfer
Architecture based on BPM or similar
Can you afford the knowledge transfer?
Architecture based on the app server over JVM
Do you NEED to use the features of the app server?
Can you afford scaling the server up?
Can you afford the operations cost?
JUST THE APP SERVER ADVANCED MIDDLEWARE NO MIDDLEWARE
Can you afford scaling the server up?
Can you afford the operations cost? Easy migration and upgrade, cheap scalability
![Page 21: Javacro 2016 - How to pick a future proof Java architecture for the next 10+ years](https://reader035.vdocument.in/reader035/viewer/2022062904/587e34fa1a28ab9f5d8b4771/html5/thumbnails/21.jpg)
INTEGRATION MIDDLEWARE
Higher operating cost
Scalability built in
Future proof
Smaller operating cost
Difficult to manage
DIRECT INTEGRATION ESB APPROACH
Difficult to upgrade
Difficult to scale Manageable
![Page 22: Javacro 2016 - How to pick a future proof Java architecture for the next 10+ years](https://reader035.vdocument.in/reader035/viewer/2022062904/587e34fa1a28ab9f5d8b4771/html5/thumbnails/22.jpg)
FINAL WORDS…
![Page 23: Javacro 2016 - How to pick a future proof Java architecture for the next 10+ years](https://reader035.vdocument.in/reader035/viewer/2022062904/587e34fa1a28ab9f5d8b4771/html5/thumbnails/23.jpg)
TAKEWAYS BY PROBLEM AREA
Use the Microservices architecture (where applicable)
Use TDD or other approach to enlarge coverage
Use Continuous deployment,especially with Microservices
Use Java as the default language
Use as few frameworks as possible
Use the latest JVM
Go light on the APP middleware
Be wary of frontend frameworks
Plan an escape hatch
CHANGING ENVIRONMENTS
MAINTAINING KNOWLEDGE
BUILDING SCALABILITY IN
Do not build your own frameworks,
unless you are Google
![Page 24: Javacro 2016 - How to pick a future proof Java architecture for the next 10+ years](https://reader035.vdocument.in/reader035/viewer/2022062904/587e34fa1a28ab9f5d8b4771/html5/thumbnails/24.jpg)
AND ONE MORE THING…
![Page 25: Javacro 2016 - How to pick a future proof Java architecture for the next 10+ years](https://reader035.vdocument.in/reader035/viewer/2022062904/587e34fa1a28ab9f5d8b4771/html5/thumbnails/25.jpg)
STAY CONSERVATIV
E!