The Bleeding Edge
-
Upload
jclarity -
Category
Technology
-
view
111 -
download
3
description
Transcript of The Bleeding Edge
![Page 1: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/1.jpg)
The Bleeding EdgeRichard Warburton and Martijn Verburg
http://www.jclarity.com
![Page 2: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/2.jpg)
- Dorothy, Wizard of Oz
"Toto, I’ve a feeling we’re not in Kansas anymore"
![Page 3: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/3.jpg)
● jClarity - We solve performance problems
● Richard - Engineer, Author, Speaker
● Martijn - CEO, Author, Speaker, Cat Herder
Who are we?
![Page 4: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/4.jpg)
The Status Quo
What is jClarity building?
How we pick Technology
Technology Scorecard
A Brave New World
![Page 5: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/5.jpg)
![Page 6: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/6.jpg)
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
![Page 7: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/7.jpg)
But what if you don’t use that?...
… we don’t!
![Page 8: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/8.jpg)
The Status Quo
What is jClarity building?
How we picked Technology
Technology Scorecard
A Brave New World
![Page 9: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/9.jpg)
The Answer..to your performance problems
Easy Access, Lightweight and Low Impact
![Page 10: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/10.jpg)
![Page 11: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/11.jpg)
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
![Page 12: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/12.jpg)
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
![Page 13: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/13.jpg)
The Status Quo
What is jClarity building?
How we picked Technology
Technology Scorecard
A Brave New World
![Page 14: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/14.jpg)
![Page 15: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/15.jpg)
Our Methodology
Stolen ‘Adopted’ from Matt Raible
1. Identify Ranking Criteria2. Weight each criteria3. Score each solution4. Multiply and add5. Prototype top two choices
![Page 16: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/16.jpg)
![Page 17: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/17.jpg)
Observations
● Cons○ Still Subjective○ No guarantees
● Pros○ Incorporates diverse feedback○ Avoids bike-shedding○ Avoids Technology Dictatorship
![Page 18: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/18.jpg)
The Status Quo
What is jClarity building?
How we picked Technology
Technology Scorecard
A Brave New World
![Page 19: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/19.jpg)
What Tech Stack did we pick?
![Page 20: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/20.jpg)
![Page 21: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/21.jpg)
AngularJS
● Client-side Javascript framework
● Model-View-Whatever (MVC or MVVM)
● Two-Way Data Binding
● Directives used to encapsulate components
![Page 22: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/22.jpg)
AngularJS - Positives● Html5 concepts without adoption issues
● Declarative - easy to understand and read
● Simple code structure
● Client side templating
![Page 23: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/23.jpg)
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
![Page 24: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/24.jpg)
AngularJS - Scorecard
"Real win over hand rolled Javascript"
![Page 25: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/25.jpg)
MongoDB
● NoSQL Document Store
● “Scalable” - easy sharding
● “Fault Tolerant” - easy data replication
● The new DB sexy!
![Page 26: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/26.jpg)
![Page 27: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/27.jpg)
MongoDB - Positives
● Document Modelling
● Nice API
● Easy to adopt and get started
● Easy Replication and Sharding
● Can be Fast*
![Page 28: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/28.jpg)
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
![Page 29: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/29.jpg)
MongoDB - Negatives (2)● Difficult to automatically sysadmin
● Immaturity of Drivers/Connectors (PHP)
● Document model is limited
● New query language to learn
● Poor timezone support
![Page 30: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/30.jpg)
MongoDB - Scorecard
"Consider your security strategy well.""Is a document store what you really need?"
![Page 31: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/31.jpg)
Vert.x
● Polyglot Reactive Programming Framework
● Message Passing Oriented○ Lightweight Eventbus
○ No Shared Mutable State
● Non-blocking I/O
● Websocket Support
![Page 32: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/32.jpg)
Vert.x
● Polyglot Reactive Programming Framework
● Message Passing Oriented○ Lightweight Eventbus
○ No Shared Mutable State
● Non-blocking I/O
● Websocket Support
![Page 33: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/33.jpg)
![Page 34: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/34.jpg)
● No shared state, easy concurrency
● Eventbus to the browser!
● Community++
● Polyglot
○ We used Groovy and Java
Vert.x - Positives
![Page 35: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/35.jpg)
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
![Page 36: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/36.jpg)
Vert.x - Scorecard
"It's perfect…. for the RIGHT use case."
![Page 37: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/37.jpg)
Chef
● Automates server configuration○ Centralised repo of pre-built recipes
○ Ruby based DSL
● Can also automate application deployment○ Run update to deploy config/binaries
![Page 38: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/38.jpg)
Chef - Positives
● Lots of Java/JVM recipes
● Ability to set roles and override properties
● Centrally controlled configuration
● Provides structure and deployment model
![Page 39: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/39.jpg)
Chef - Inconsistentknife cookbook upload apache2
knife role from file roles/foo/bar.rb
knife data bag from file users john.json
![Page 40: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/40.jpg)
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
![Page 41: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/41.jpg)
Chef - Scorecard
"Chef, it's way better than shell scripts"
![Page 42: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/42.jpg)
Common Bleeding Edge Themes1. Immaturity
2. Lack of tooling
3. Problems at the boundary
![Page 43: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/43.jpg)
The Status Quo
What is jClarity building?
How we picked Technology
Technology Scorecard
A Brave New World
![Page 44: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/44.jpg)
![Page 45: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/45.jpg)
Technology ←→ $$$$$$$
![Page 46: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/46.jpg)
What are you paying for?
● What does your support contract get you?
● Who does it get you?
● What’s the lock-in?
![Page 47: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/47.jpg)
A La Carte Open Source
● Popular with $0 budget startups
● Commercially funded tech
● Strong Community Support
● Benefits elsewhere
![Page 48: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/48.jpg)
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
![Page 49: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/49.jpg)
How do I do this?
● Low risk project○ 20% time?
● Ask for forgiveness, not permission!
● Don’t fear “them”
![Page 50: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/50.jpg)
![Page 51: The Bleeding Edge](https://reader034.fdocuments.in/reader034/viewer/2022042613/54c6420c4a79596b248b459a/html5/thumbnails/51.jpg)
Q&AGet your Free Trials at: http://www.jclarity.
com
@jclarity