SlideShare a Scribd company logo
The Bleeding Edge
Richard Warburton and Martijn Verburg
http://www.jclarity.com
"Toto, I’ve a feeling we’re
not in Kansas anymore"
- Dorothy, Wizard of Oz
Who are we?
● jClarity - We solve performance problems
● Richard - Engineer, Author, Speaker
● Martijn - CEO, Author, Speaker, Cat Herder
The Status Quo
What is jClarity building?
How we pick Technology
Technology Scorecard
A Brave New World
We have a lot of Java EE Experience
● LJC is on the JCP Executive Committee
● Martijn is a CERTIFIED BEA Weblogic
○ Something, something, something Darkside

● Lots of experience and deep community
But what if you don’t use that?...

… we don’t!
The Status Quo
What is jClarity building?
How we picked Technology
Technology Scorecard
A Brave New World
The Answer
..to your performance problems

Easy Access, Lightweight and Low Impact
Daemon, Aggregator & UI
● Daemon
○ Needs to be Low Impact, Low Traffic, Self-Updating

● Aggregator
○ Non-blocking I/O, Sockets > HTTP, High Availability

● UI
○ Rich Browser App, Accepts server-push events
Doesn’t really fit the Java EE World
● Daemon: Java EE is not low impact
● Server: Java EE is mainly about req/resp
● UI: Java EE lacks support for push events
○ Java EE 7 has Websockets now
The Status Quo
What is jClarity building?
How we picked Technology
Technology Scorecard
A Brave New World
Our Methodology
Stolen ‘Adopted’ from Matt Raible
1.
2.
3.
4.
5.

Identify Ranking Criteria
Weight each criteria
Score each solution
Multiply and add
Prototype top two choices
Observations
● Cons
○ Still Subjective
○ No guarantees

● Pros
○ Incorporates diverse feedback
○ Avoids bike-shedding
○ Avoids Technology Dictatorship
The Status Quo
What is jClarity building?
How we picked Technology
Technology Scorecard
A Brave New World
What Tech Stack did we pick?
AngularJS
● Client-side Javascript framework
● Model-View-Whatever (MVC or MVVM)
● Two-Way Data Binding
● Directives used to encapsulate components
AngularJS - Positives
● Html5 concepts without adoption issues
● Declarative - easy to understand and read
● Simple code structure
● Client side templating
AngularJS - Negatives
● Karma Framework doesn’t integrate well
● Use of $scope.$apply
● People are familiar with jQuery
○ Declarative learning curve.
● Javascript tooling still kinda sucks
AngularJS - Scorecard

"Real win over hand rolled Javascript"
MongoDB
● NoSQL Document Store
● “Scalable” - easy sharding
● “Fault Tolerant” - easy data replication
● The new DB sexy!
MongoDB - Positives
● Document Modelling
● Nice API
● Easy to adopt and get started
● Easy Replication and Sharding
● Can be Fast*
MongoDB - Negatives (1)
● Security
○ we compiled an SSL-enabled mongo
○ pwning folks? Find out if they use Mongo!
○ tool support
● Data Integrity Concerns
● Split Brain - election algorithm failures
MongoDB - Negatives (2)
● Difficult to automatically sysadmin
● Immaturity of Drivers/Connectors (PHP)
● Document model is limited
● New query language to learn
● Poor timezone support
MongoDB - Scorecard

"Consider your security strategy well."
"Is a document store what you really need?"
Vert.x
● Polyglot Reactive Programming Framework
● Message Passing Oriented
○ Lightweight Eventbus
○ No Shared Mutable State

● Non-blocking I/O
● Websocket Support
Vert.x
● Polyglot Reactive Programming Framework
● Message Passing Oriented
○ Lightweight Eventbus
○ No Shared Mutable State

● Non-blocking I/O
● Websocket Support
Vert.x - Positives
● No shared state, easy concurrency
● Eventbus to the browser!
● Community++
● Polyglot
○ We used Groovy and Java
Vert.x - Negatives
● Immaturity:
○ Released 2.0 without supporting 1.3
○ Testing Framework not quite there
● NIH Logging
● Inter Machine Eventbus Security
○ Not originally designed for the open internet
Vert.x - Scorecard

"It's perfect…. for the RIGHT use case."
Chef
● Automates server configuration
○ Centralised repo of pre-built recipes
○ Ruby based DSL

● Can also automate application deployment
○ Run update to deploy config/binaries
Chef - Positives
● Lots of Java/JVM recipes
● Ability to set roles and override properties
● Centrally controlled configuration
● Provides structure and deployment model
Chef - Inconsistent
knife cookbook upload apache2

knife role from file roles/foo/bar.rb

knife data bag from file users john.json
Chef - Negatives
● Managing dependencies is difficult
○ Use Librarian to help

● Not Declarative
○ e.g: doesn’t remove old config

● Still very complex
○ Steep learning curve
Chef - Scorecard

"Chef, it's way better than shell scripts"
Common Bleeding Edge Themes
1. Immaturity
2. Lack of tooling
3. Problems at the boundary
The Status Quo
What is jClarity building?
How we picked Technology
Technology Scorecard
A Brave New World
Technology ←→ $$$$$$$
What are you paying for?
● What does your support contract get you?
● Who does it get you?
● What’s the lock-in?
A La Carte Open Source
● Popular with $0 budget startups
● Commercially funded tech
● Strong Community Support
● Benefits elsewhere
The 'A La Carte' Relationship
● Be part of the community
○ We participated in Vertx IRC/London meetings

● Don’t diverge - upstream Patches
○ Vert.x, mod-mongo, Jacoco

● Open Source your plumbing
○

https://github.com/johnoliver/release-version-plugin
How do I do this?
● Low risk project
○ 20% time?

● Ask for forgiveness,
not permission!
● Don’t fear “them”
Q&A
Get your Free Trials at: http://www.jclarity.
com

@jclarity

More Related Content

What's hot

Dal deck
Dal deckDal deck
Dal deck
Caroline_Rose
 
Hard Coding as a design approach
Hard Coding as a design approachHard Coding as a design approach
Hard Coding as a design approach
Oren Eini
 
Super Sizing Youtube with Python
Super Sizing Youtube with PythonSuper Sizing Youtube with Python
Super Sizing Youtube with Python
didip
 
Performance tuning Grails applications
Performance tuning Grails applicationsPerformance tuning Grails applications
Performance tuning Grails applications
Lari Hotari
 
Introduction to Prometheus and Cortex (WOUG)
Introduction to Prometheus and Cortex (WOUG)Introduction to Prometheus and Cortex (WOUG)
Introduction to Prometheus and Cortex (WOUG)
Weaveworks
 
Владимир Бронников (Senior .NET Developer, Perfectial) “Performance optimizat...
Владимир Бронников (Senior .NET Developer, Perfectial) “Performance optimizat...Владимир Бронников (Senior .NET Developer, Perfectial) “Performance optimizat...
Владимир Бронников (Senior .NET Developer, Perfectial) “Performance optimizat...
DataArt
 
GR8Conf 2011: Tuning Grails Applications by Peter Ledbrook
GR8Conf 2011: Tuning Grails Applications by Peter LedbrookGR8Conf 2011: Tuning Grails Applications by Peter Ledbrook
GR8Conf 2011: Tuning Grails Applications by Peter LedbrookGR8Conf
 
London JBUG April 2015 - Performance Tuning Apps with WildFly Application Server
London JBUG April 2015 - Performance Tuning Apps with WildFly Application ServerLondon JBUG April 2015 - Performance Tuning Apps with WildFly Application Server
London JBUG April 2015 - Performance Tuning Apps with WildFly Application Server
JBUG London
 
Sneaking Scala through the Back Door
Sneaking Scala through the Back DoorSneaking Scala through the Back Door
Sneaking Scala through the Back Door
Dianne Marsh
 
Techzim Surge: Important Considerations for Hosting Web or Mobile Apps
Techzim Surge: Important Considerations for Hosting Web or Mobile AppsTechzim Surge: Important Considerations for Hosting Web or Mobile Apps
Techzim Surge: Important Considerations for Hosting Web or Mobile AppsAnthony Somerset
 
Entity framework advanced
Entity framework advancedEntity framework advanced
Entity framework advanced
Usama Nada
 
Prometheus @ Proteus Operations
Prometheus @ Proteus OperationsPrometheus @ Proteus Operations
Prometheus @ Proteus Operations
Kittipun Khantitrirat
 
Prometheus lightning talk (Devops Dublin March 2015)
Prometheus lightning talk (Devops Dublin March 2015)Prometheus lightning talk (Devops Dublin March 2015)
Prometheus lightning talk (Devops Dublin March 2015)
Brian Brazil
 
Nfr testing(performance)
Nfr testing(performance)Nfr testing(performance)
Nfr testing(performance)
Dilip Sharma
 
Just In Time Scalability Agile Methods To Support Massive Growth Presentation
Just In Time Scalability  Agile Methods To Support Massive Growth PresentationJust In Time Scalability  Agile Methods To Support Massive Growth Presentation
Just In Time Scalability Agile Methods To Support Massive Growth PresentationEric Ries
 
Voxxed Athens 2018 - Methods and Practices for Guaranteed Failure in Big Data
Voxxed Athens 2018 - Methods and Practices for Guaranteed Failure in Big DataVoxxed Athens 2018 - Methods and Practices for Guaranteed Failure in Big Data
Voxxed Athens 2018 - Methods and Practices for Guaranteed Failure in Big Data
Voxxed Athens
 
Space-Based Architecture
Space-Based ArchitectureSpace-Based Architecture
Space-Based Architecture
Suresh Patidar
 
Home Lab Fundamentals - The Why's and How's
Home Lab Fundamentals - The Why's and How'sHome Lab Fundamentals - The Why's and How's
Home Lab Fundamentals - The Why's and How's
Sean Massey
 
Microservices patterns in Serverless
Microservices patterns in ServerlessMicroservices patterns in Serverless
Microservices patterns in Serverless
Prashanth HN
 

What's hot (19)

Dal deck
Dal deckDal deck
Dal deck
 
Hard Coding as a design approach
Hard Coding as a design approachHard Coding as a design approach
Hard Coding as a design approach
 
Super Sizing Youtube with Python
Super Sizing Youtube with PythonSuper Sizing Youtube with Python
Super Sizing Youtube with Python
 
Performance tuning Grails applications
Performance tuning Grails applicationsPerformance tuning Grails applications
Performance tuning Grails applications
 
Introduction to Prometheus and Cortex (WOUG)
Introduction to Prometheus and Cortex (WOUG)Introduction to Prometheus and Cortex (WOUG)
Introduction to Prometheus and Cortex (WOUG)
 
Владимир Бронников (Senior .NET Developer, Perfectial) “Performance optimizat...
Владимир Бронников (Senior .NET Developer, Perfectial) “Performance optimizat...Владимир Бронников (Senior .NET Developer, Perfectial) “Performance optimizat...
Владимир Бронников (Senior .NET Developer, Perfectial) “Performance optimizat...
 
GR8Conf 2011: Tuning Grails Applications by Peter Ledbrook
GR8Conf 2011: Tuning Grails Applications by Peter LedbrookGR8Conf 2011: Tuning Grails Applications by Peter Ledbrook
GR8Conf 2011: Tuning Grails Applications by Peter Ledbrook
 
London JBUG April 2015 - Performance Tuning Apps with WildFly Application Server
London JBUG April 2015 - Performance Tuning Apps with WildFly Application ServerLondon JBUG April 2015 - Performance Tuning Apps with WildFly Application Server
London JBUG April 2015 - Performance Tuning Apps with WildFly Application Server
 
Sneaking Scala through the Back Door
Sneaking Scala through the Back DoorSneaking Scala through the Back Door
Sneaking Scala through the Back Door
 
Techzim Surge: Important Considerations for Hosting Web or Mobile Apps
Techzim Surge: Important Considerations for Hosting Web or Mobile AppsTechzim Surge: Important Considerations for Hosting Web or Mobile Apps
Techzim Surge: Important Considerations for Hosting Web or Mobile Apps
 
Entity framework advanced
Entity framework advancedEntity framework advanced
Entity framework advanced
 
Prometheus @ Proteus Operations
Prometheus @ Proteus OperationsPrometheus @ Proteus Operations
Prometheus @ Proteus Operations
 
Prometheus lightning talk (Devops Dublin March 2015)
Prometheus lightning talk (Devops Dublin March 2015)Prometheus lightning talk (Devops Dublin March 2015)
Prometheus lightning talk (Devops Dublin March 2015)
 
Nfr testing(performance)
Nfr testing(performance)Nfr testing(performance)
Nfr testing(performance)
 
Just In Time Scalability Agile Methods To Support Massive Growth Presentation
Just In Time Scalability  Agile Methods To Support Massive Growth PresentationJust In Time Scalability  Agile Methods To Support Massive Growth Presentation
Just In Time Scalability Agile Methods To Support Massive Growth Presentation
 
Voxxed Athens 2018 - Methods and Practices for Guaranteed Failure in Big Data
Voxxed Athens 2018 - Methods and Practices for Guaranteed Failure in Big DataVoxxed Athens 2018 - Methods and Practices for Guaranteed Failure in Big Data
Voxxed Athens 2018 - Methods and Practices for Guaranteed Failure in Big Data
 
Space-Based Architecture
Space-Based ArchitectureSpace-Based Architecture
Space-Based Architecture
 
Home Lab Fundamentals - The Why's and How's
Home Lab Fundamentals - The Why's and How'sHome Lab Fundamentals - The Why's and How's
Home Lab Fundamentals - The Why's and How's
 
Microservices patterns in Serverless
Microservices patterns in ServerlessMicroservices patterns in Serverless
Microservices patterns in Serverless
 

Similar to The Bleeding Edge

kranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High loadkranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High loadKrivoy Rog IT Community
 
Path Dependent Development (PyCon AU)
Path Dependent Development (PyCon AU)Path Dependent Development (PyCon AU)
Path Dependent Development (PyCon AU)
ncoghlan_dev
 
JavascriptMVC: Another choice of web framework
JavascriptMVC: Another choice of web frameworkJavascriptMVC: Another choice of web framework
JavascriptMVC: Another choice of web framework
Alive Kuo
 
Path dependent-development (PyCon India)
Path dependent-development (PyCon India)Path dependent-development (PyCon India)
Path dependent-development (PyCon India)
ncoghlan_dev
 
Ratpack the story so far
Ratpack the story so farRatpack the story so far
Ratpack the story so far
Phill Barber
 
IntoWebGL - Unite Melbourne 2015
IntoWebGL - Unite Melbourne 2015IntoWebGL - Unite Melbourne 2015
IntoWebGL - Unite Melbourne 2015
Ryan Alcock
 
React native - under the bridge - react week NYC
React native - under the bridge - react week NYCReact native - under the bridge - react week NYC
React native - under the bridge - react week NYC
Chen Feldman
 
Globant Week Cali - Entendiendo el desarrollo Front-end del mundo moderno.
Globant Week Cali - Entendiendo el desarrollo Front-end del mundo moderno.Globant Week Cali - Entendiendo el desarrollo Front-end del mundo moderno.
Globant Week Cali - Entendiendo el desarrollo Front-end del mundo moderno.
Globant
 
Dust.js
Dust.jsDust.js
SELF - Becoming a Rails Developer - The Rest of the Story
SELF - Becoming a Rails Developer - The Rest of the StorySELF - Becoming a Rails Developer - The Rest of the Story
SELF - Becoming a Rails Developer - The Rest of the Story
Nathanial McConnell
 
JSFest 2019: Technology agnostic microservices at SPA frontend
JSFest 2019: Technology agnostic microservices at SPA frontendJSFest 2019: Technology agnostic microservices at SPA frontend
JSFest 2019: Technology agnostic microservices at SPA frontend
Vlad Fedosov
 
JS Fest 2019/Autumn. Влад Федосов. Technology agnostic microservices at SPA f...
JS Fest 2019/Autumn. Влад Федосов. Technology agnostic microservices at SPA f...JS Fest 2019/Autumn. Влад Федосов. Technology agnostic microservices at SPA f...
JS Fest 2019/Autumn. Влад Федосов. Technology agnostic microservices at SPA f...
JSFestUA
 
Front-End Developer's Career Roadmap
Front-End Developer's Career RoadmapFront-End Developer's Career Roadmap
Front-End Developer's Career Roadmap
WebStackAcademy
 
Moving From Angular to React
Moving From Angular to ReactMoving From Angular to React
Moving From Angular to React
Ilya Gurevich
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
Izzet Mustafaiev
 
µServices Architecture @ EPAM WOW 2015
µServices Architecture @ EPAM WOW 2015µServices Architecture @ EPAM WOW 2015
µServices Architecture @ EPAM WOW 2015
Izzet Mustafaiev
 
Frontend architecture design for large(r) team final
Frontend architecture design for large(r) team   finalFrontend architecture design for large(r) team   final
Frontend architecture design for large(r) team final
Chadchapol Vittavutkarnvej
 
Thinking DevOps in the Era of the Cloud - Demi Ben-Ari
Thinking DevOps in the Era of the Cloud - Demi Ben-AriThinking DevOps in the Era of the Cloud - Demi Ben-Ari
Thinking DevOps in the Era of the Cloud - Demi Ben-Ari
Demi Ben-Ari
 
Concurrency - Why it's hard ?
Concurrency - Why it's hard ?Concurrency - Why it's hard ?
Concurrency - Why it's hard ?
Ramith Jayasinghe
 
Software architecture, Patterns for Scale
Software architecture, Patterns for ScaleSoftware architecture, Patterns for Scale
Software architecture, Patterns for Scale
iGbanam
 

Similar to The Bleeding Edge (20)

kranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High loadkranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High load
 
Path Dependent Development (PyCon AU)
Path Dependent Development (PyCon AU)Path Dependent Development (PyCon AU)
Path Dependent Development (PyCon AU)
 
JavascriptMVC: Another choice of web framework
JavascriptMVC: Another choice of web frameworkJavascriptMVC: Another choice of web framework
JavascriptMVC: Another choice of web framework
 
Path dependent-development (PyCon India)
Path dependent-development (PyCon India)Path dependent-development (PyCon India)
Path dependent-development (PyCon India)
 
Ratpack the story so far
Ratpack the story so farRatpack the story so far
Ratpack the story so far
 
IntoWebGL - Unite Melbourne 2015
IntoWebGL - Unite Melbourne 2015IntoWebGL - Unite Melbourne 2015
IntoWebGL - Unite Melbourne 2015
 
React native - under the bridge - react week NYC
React native - under the bridge - react week NYCReact native - under the bridge - react week NYC
React native - under the bridge - react week NYC
 
Globant Week Cali - Entendiendo el desarrollo Front-end del mundo moderno.
Globant Week Cali - Entendiendo el desarrollo Front-end del mundo moderno.Globant Week Cali - Entendiendo el desarrollo Front-end del mundo moderno.
Globant Week Cali - Entendiendo el desarrollo Front-end del mundo moderno.
 
Dust.js
Dust.jsDust.js
Dust.js
 
SELF - Becoming a Rails Developer - The Rest of the Story
SELF - Becoming a Rails Developer - The Rest of the StorySELF - Becoming a Rails Developer - The Rest of the Story
SELF - Becoming a Rails Developer - The Rest of the Story
 
JSFest 2019: Technology agnostic microservices at SPA frontend
JSFest 2019: Technology agnostic microservices at SPA frontendJSFest 2019: Technology agnostic microservices at SPA frontend
JSFest 2019: Technology agnostic microservices at SPA frontend
 
JS Fest 2019/Autumn. Влад Федосов. Technology agnostic microservices at SPA f...
JS Fest 2019/Autumn. Влад Федосов. Technology agnostic microservices at SPA f...JS Fest 2019/Autumn. Влад Федосов. Technology agnostic microservices at SPA f...
JS Fest 2019/Autumn. Влад Федосов. Technology agnostic microservices at SPA f...
 
Front-End Developer's Career Roadmap
Front-End Developer's Career RoadmapFront-End Developer's Career Roadmap
Front-End Developer's Career Roadmap
 
Moving From Angular to React
Moving From Angular to ReactMoving From Angular to React
Moving From Angular to React
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
µServices Architecture @ EPAM WOW 2015
µServices Architecture @ EPAM WOW 2015µServices Architecture @ EPAM WOW 2015
µServices Architecture @ EPAM WOW 2015
 
Frontend architecture design for large(r) team final
Frontend architecture design for large(r) team   finalFrontend architecture design for large(r) team   final
Frontend architecture design for large(r) team final
 
Thinking DevOps in the Era of the Cloud - Demi Ben-Ari
Thinking DevOps in the Era of the Cloud - Demi Ben-AriThinking DevOps in the Era of the Cloud - Demi Ben-Ari
Thinking DevOps in the Era of the Cloud - Demi Ben-Ari
 
Concurrency - Why it's hard ?
Concurrency - Why it's hard ?Concurrency - Why it's hard ?
Concurrency - Why it's hard ?
 
Software architecture, Patterns for Scale
Software architecture, Patterns for ScaleSoftware architecture, Patterns for Scale
Software architecture, Patterns for Scale
 

More from jClarity

The Diabolical Developers Guide to Performance Tuning
The Diabolical Developers Guide to Performance TuningThe Diabolical Developers Guide to Performance Tuning
The Diabolical Developers Guide to Performance Tuning
jClarity
 
The Diabolical Developer's Guide to Surviving Java 9
The Diabolical Developer's Guide to Surviving Java 9The Diabolical Developer's Guide to Surviving Java 9
The Diabolical Developer's Guide to Surviving Java 9
jClarity
 
Low pause GC in HotSpot
Low pause GC in HotSpotLow pause GC in HotSpot
Low pause GC in HotSpot
jClarity
 
Censum - Garbage Collection Log Analyser
Censum - Garbage Collection Log AnalyserCensum - Garbage Collection Log Analyser
Censum - Garbage Collection Log Analyser
jClarity
 
Habits of Highly Effective Teams
Habits of Highly Effective TeamsHabits of Highly Effective Teams
Habits of Highly Effective Teams
jClarity
 
Raising The Bar
Raising The BarRaising The Bar
Raising The Bar
jClarity
 
Hotspot Garbage Collection - Tuning Guide
Hotspot Garbage Collection - Tuning GuideHotspot Garbage Collection - Tuning Guide
Hotspot Garbage Collection - Tuning Guide
jClarity
 
Hotspot Garbage Collection - The Useful Parts
Hotspot Garbage Collection - The Useful PartsHotspot Garbage Collection - The Useful Parts
Hotspot Garbage Collection - The Useful Parts
jClarity
 

More from jClarity (8)

The Diabolical Developers Guide to Performance Tuning
The Diabolical Developers Guide to Performance TuningThe Diabolical Developers Guide to Performance Tuning
The Diabolical Developers Guide to Performance Tuning
 
The Diabolical Developer's Guide to Surviving Java 9
The Diabolical Developer's Guide to Surviving Java 9The Diabolical Developer's Guide to Surviving Java 9
The Diabolical Developer's Guide to Surviving Java 9
 
Low pause GC in HotSpot
Low pause GC in HotSpotLow pause GC in HotSpot
Low pause GC in HotSpot
 
Censum - Garbage Collection Log Analyser
Censum - Garbage Collection Log AnalyserCensum - Garbage Collection Log Analyser
Censum - Garbage Collection Log Analyser
 
Habits of Highly Effective Teams
Habits of Highly Effective TeamsHabits of Highly Effective Teams
Habits of Highly Effective Teams
 
Raising The Bar
Raising The BarRaising The Bar
Raising The Bar
 
Hotspot Garbage Collection - Tuning Guide
Hotspot Garbage Collection - Tuning GuideHotspot Garbage Collection - Tuning Guide
Hotspot Garbage Collection - Tuning Guide
 
Hotspot Garbage Collection - The Useful Parts
Hotspot Garbage Collection - The Useful PartsHotspot Garbage Collection - The Useful Parts
Hotspot Garbage Collection - The Useful Parts
 

Recently uploaded

みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 

Recently uploaded (20)

みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 

The Bleeding Edge

  • 1. The Bleeding Edge Richard Warburton and Martijn Verburg http://www.jclarity.com
  • 2. "Toto, I’ve a feeling we’re not in Kansas anymore" - Dorothy, Wizard of Oz
  • 3. Who are we? ● jClarity - We solve performance problems ● Richard - Engineer, Author, Speaker ● Martijn - CEO, Author, Speaker, Cat Herder
  • 4. The Status Quo What is jClarity building? How we pick Technology Technology Scorecard A Brave New World
  • 5.
  • 6. We have a lot of Java EE Experience ● LJC is on the JCP Executive Committee ● Martijn is a CERTIFIED BEA Weblogic ○ Something, something, something Darkside ● Lots of experience and deep community
  • 7. But what if you don’t use that?... … we don’t!
  • 8. The Status Quo What is jClarity building? How we picked Technology Technology Scorecard A Brave New World
  • 9. The Answer ..to your performance problems Easy Access, Lightweight and Low Impact
  • 10.
  • 11. Daemon, Aggregator & UI ● Daemon ○ Needs to be Low Impact, Low Traffic, Self-Updating ● Aggregator ○ Non-blocking I/O, Sockets > HTTP, High Availability ● UI ○ Rich Browser App, Accepts server-push events
  • 12. Doesn’t really fit the Java EE World ● Daemon: Java EE is not low impact ● Server: Java EE is mainly about req/resp ● UI: Java EE lacks support for push events ○ Java EE 7 has Websockets now
  • 13. The Status Quo What is jClarity building? How we picked Technology Technology Scorecard A Brave New World
  • 14.
  • 15. Our Methodology Stolen ‘Adopted’ from Matt Raible 1. 2. 3. 4. 5. Identify Ranking Criteria Weight each criteria Score each solution Multiply and add Prototype top two choices
  • 16.
  • 17. Observations ● Cons ○ Still Subjective ○ No guarantees ● Pros ○ Incorporates diverse feedback ○ Avoids bike-shedding ○ Avoids Technology Dictatorship
  • 18. The Status Quo What is jClarity building? How we picked Technology Technology Scorecard A Brave New World
  • 19. What Tech Stack did we pick?
  • 20.
  • 21. AngularJS ● Client-side Javascript framework ● Model-View-Whatever (MVC or MVVM) ● Two-Way Data Binding ● Directives used to encapsulate components
  • 22. AngularJS - Positives ● Html5 concepts without adoption issues ● Declarative - easy to understand and read ● Simple code structure ● Client side templating
  • 23. AngularJS - Negatives ● Karma Framework doesn’t integrate well ● Use of $scope.$apply ● People are familiar with jQuery ○ Declarative learning curve. ● Javascript tooling still kinda sucks
  • 24. AngularJS - Scorecard "Real win over hand rolled Javascript"
  • 25. MongoDB ● NoSQL Document Store ● “Scalable” - easy sharding ● “Fault Tolerant” - easy data replication ● The new DB sexy!
  • 26.
  • 27. MongoDB - Positives ● Document Modelling ● Nice API ● Easy to adopt and get started ● Easy Replication and Sharding ● Can be Fast*
  • 28. MongoDB - Negatives (1) ● Security ○ we compiled an SSL-enabled mongo ○ pwning folks? Find out if they use Mongo! ○ tool support ● Data Integrity Concerns ● Split Brain - election algorithm failures
  • 29. MongoDB - Negatives (2) ● Difficult to automatically sysadmin ● Immaturity of Drivers/Connectors (PHP) ● Document model is limited ● New query language to learn ● Poor timezone support
  • 30. MongoDB - Scorecard "Consider your security strategy well." "Is a document store what you really need?"
  • 31. Vert.x ● Polyglot Reactive Programming Framework ● Message Passing Oriented ○ Lightweight Eventbus ○ No Shared Mutable State ● Non-blocking I/O ● Websocket Support
  • 32. Vert.x ● Polyglot Reactive Programming Framework ● Message Passing Oriented ○ Lightweight Eventbus ○ No Shared Mutable State ● Non-blocking I/O ● Websocket Support
  • 33.
  • 34. Vert.x - Positives ● No shared state, easy concurrency ● Eventbus to the browser! ● Community++ ● Polyglot ○ We used Groovy and Java
  • 35. Vert.x - Negatives ● Immaturity: ○ Released 2.0 without supporting 1.3 ○ Testing Framework not quite there ● NIH Logging ● Inter Machine Eventbus Security ○ Not originally designed for the open internet
  • 36. Vert.x - Scorecard "It's perfect…. for the RIGHT use case."
  • 37. Chef ● Automates server configuration ○ Centralised repo of pre-built recipes ○ Ruby based DSL ● Can also automate application deployment ○ Run update to deploy config/binaries
  • 38. Chef - Positives ● Lots of Java/JVM recipes ● Ability to set roles and override properties ● Centrally controlled configuration ● Provides structure and deployment model
  • 39. Chef - Inconsistent knife cookbook upload apache2 knife role from file roles/foo/bar.rb knife data bag from file users john.json
  • 40. Chef - Negatives ● Managing dependencies is difficult ○ Use Librarian to help ● Not Declarative ○ e.g: doesn’t remove old config ● Still very complex ○ Steep learning curve
  • 41. Chef - Scorecard "Chef, it's way better than shell scripts"
  • 42. Common Bleeding Edge Themes 1. Immaturity 2. Lack of tooling 3. Problems at the boundary
  • 43. The Status Quo What is jClarity building? How we picked Technology Technology Scorecard A Brave New World
  • 44.
  • 46. What are you paying for? ● What does your support contract get you? ● Who does it get you? ● What’s the lock-in?
  • 47. A La Carte Open Source ● Popular with $0 budget startups ● Commercially funded tech ● Strong Community Support ● Benefits elsewhere
  • 48. The 'A La Carte' Relationship ● Be part of the community ○ We participated in Vertx IRC/London meetings ● Don’t diverge - upstream Patches ○ Vert.x, mod-mongo, Jacoco ● Open Source your plumbing ○ https://github.com/johnoliver/release-version-plugin
  • 49. How do I do this? ● Low risk project ○ 20% time? ● Ask for forgiveness, not permission! ● Don’t fear “them”
  • 50.
  • 51. Q&A Get your Free Trials at: http://www.jclarity. com @jclarity