Pico Services

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 28

Micro|Pico|Femto|Atto (MPFA)

Services with Java EE 7


on Java 8 and Docker

@AdamBien / adam-bien.com

This talk is also fully


compatible with micro, femto
and atto services :-)
adam-bien.com

Im working as Java EE/SE developer, consultant, sometimes author,


speaker and trainer with Java since 1995...
...and still really enjoying it!
Java Programming Language rocks!
workshops.adam-bien.com

adam-bien.com

blog.adam-bien.com
twitter.com/AdamBien
airhacks.com
airhacks.io
airhacks.tv
adam-bien.com

Adam Bien,
press.adam-bien.com

adam-bien.com

realworldpatterns.com

adam-bien.com

adam-bien.com

Definition
In short, the microservice architectural style is an approach to
developing a single application as a suite of small services, each running
in its own process and communicating with lightweight mechanisms,
often an HTTP resource API. These services are built around business
capabilities and independently deployable by fully automated
deployment machinery. There is a bare minimum of centralized
management of these services, which may be written in different
programming languages and use different data storage technologies.
http://martinfowler.com/articles/microservices.html

adam-bien.com

Definition

Microservices is a software architecture design pattern, in which


complex applications are composed of small, independent processes
communicating with each other using language-agnostic APIs.These
services are small, highly decoupled and focus on doing a small task.

http://en.wikipedia.org/wiki/Microservices

adam-bien.com

What would be the


opposite?

adam-bien.com

The Default Java EE


Architecture
Dont make me think
BCE / ECB
Conventions are paramount, configuration is optional

adam-bien.com

Business Component
Boundary

Control

Entity

Subsystem / Microservice / WARs

The Default Java EE Deployment


Self-contained WARs
One Server, One Domain, One War
No Dependencies
No JARs
adam-bien.com

Default Java EE Design


No Interfaces
95% Business Code
Few annotations
Just POJOs
Straightforward testing
adam-bien.com

Installation
Download size: ~100MB
Installation: unzip
Start: Shell script execution
Start time: 1s - 3secs
Pure Java is default.
adam-bien.com

Overhead: GlassFish v4

adam-bien.com

Overhead: TomEE 1.7.1

adam-bien.com

Overhead: Wildfly 8.1

adam-bien.com

Overhead: WSL12.1.3.0.0

adam-bien.com

Overhead Summary

An idle browser consumes more memory, than an


idle application server.

adam-bien.com

Empty Chrome

adam-bien.com

WAR Packaging
unzip xyz.war 0,02s user 0,02s system 64% cpu 0,072 total
jar -xvf zyz.war 0,17s user 0,05s system 114% cpu 0,191 total

adam-bien.com

Maven Build
24 lines of pom.xml and:
[INFO] -----------------------------------------------------------------------[INFO] BUILD SUCCESS
[INFO] -----------------------------------------------------------------------[INFO] Total time: 3.913 s

adam-bien.com

Some code.

Thank You!
and see you at

workshops.adam-bien.com
adam-bien.com

You might also like