SlideShare a Scribd company logo
MicroServices & Friends
​Platmasphere Tech Stack
@YunZhiLin
1. Architecture1. Architecture
2. DevOps2. DevOps
3. Server Stack3. Server Stack
4. Client Stack4. Client Stack
5. Profit!5. Profit!
EnterpriseEnterprise ArchitectureArchitecture
Enterprise ArchitectEnterprise Architect
Don't have one - shared responsibility.
Self organising team
But we make decisions a lot faster.
We do have some insteadEnterprise Architect Jokes
Service EvolutionService Evolution
Sources: PWC research
Developer EvolutionDeveloper Evolution
We HadWe Had
Traditional layered
architecture:
Silo'ed teams of BA,
Designers and Dev
( ).
Delivery bottlenecks
Lack of collaboration
and re-use
Frustrating to
debug/support
Difficult to deploy
Conway's Law
We now have:We now have:
MicroServices based
architecture:
Cross functional
design/dev of
services
Parallel delivery
Re-usable
modules across
client and server
Easy monitoring
and diagnostics.
Continuous
Delivery
ArchitectureArchitecture
Communal DesignCommunal Design
DecisionsDecisions
KISSKISS
(Keep It Simple Stupid)(Keep It Simple Stupid)
No App Servers/WarNo App Servers/War
Bloated in size, hogs resources, memoryleak, restarts
Another layer of configuration and complexity
Run multiple apps 1 app per server, no isolation
Provide Infrastructure part of the app
Ops - provides own toolsets vs external choices.
EJB support - no need in this day and age
$$$ and require specialists
Sources: ,App Servers are Dead Stop wasting money on
Application Servers
Use Standalone AppsUse Standalone Apps
Self contained
Configure you app, not the app server
Resource isolation via docker containers
Java - Jetty; Netty, Undertow, or just Main()
Node.js - Harp, Express
Ruby - Rails, Sinatra
More on Framework later
Reference: Heroku for Java
Enterprise Service BusEnterprise Service Bus
solves all integration problems in a box
fail proof
ESB In RealityESB In Reality
One massive app server with all the same issues
MicroServicesMicroServices
Independently Scalable
Fault Tolerant
Free
Decentralised Governance
Decentralised Data
Smart endpoints
vs ESBvs ESB
Central orchestration.
Canonical Data Model
Middleware Bottleneck
Single point of failure
Smart Pipeline
$$$$$$
Need pub/sub or queuing: try light weight broker-less
messaging such as ZeroMQ.
JSON/RESTJSON/REST vs SOAP/WSDLvs SOAP/WSDL
{
"streetNumber": "80",
"streetName": "Clarence",
"suburb": "Sydney"
}
Text
<?xml version="1.0" encoding="UTF-8" ?>
<Property>
<streetNumber>80</streetNumber>
<streetName>Clarence</streetName>
<suburb>Sydney</suburb>
</Property
PUT /hostname/properties/ <service name="Properties">
<documentation>WSDL File for PropertyService</d
<port binding="tns:Properties" name="Properties
<soap:address location="http://hostname/pro
</port>
</service>
SwaggerSwagger
Who needs WSDL or JavaDoc when you have Swagger
#YoloSwag!#YoloSwag!
Dev OpsDev Ops
Who Does Dev OpsWho Does Dev Ops
No one does Dev Ops for the sake of Dev Ops
DevOps is a means to an end: build good software
Every good engineer should be Dev Ops minded
Continuous DeliveryContinuous Delivery
1. GitHub triggers artefact Snap-CI pipeline
2. Upload tested artefact to Bintray
Continuous DeliveryContinuous Delivery
3. Push to Quay.io to build Docker
4. Run Container on Tutum PaaS
Continuous DeliveryContinuous Delivery
5. Monitor Services using NewRelic
Why DockerWhy Docker
Resource Isolation
Immutable and Portable
Lightweight compared to VM
Small and Fast DockerSmall and Fast Docker
Take advantage of caching in Dockerfile
Use small base images such as BusyBox
CI friendly: fast build is a good build
Server StackServer Stack
Picking a FrameworkPicking a Framework
Use the right tool for the right job
Do prototype spikes that cover key requirements
Consider the learning curve and team skill set
Infrastructure are on-demand, don't feel restricted
Performance will matter eventually, but not day 1
Reference benchmarks, or roll your ownTechEmpower
TechEmpower BenchmarksTechEmpower Benchmarks
Don't always believe the hype!
Frameworks we useFrameworks we use
Rails - the original developer productivity framework
Dropwizard - Production ready out of box
Spring Boot - For when you really need Spring
RatPack - Not so easy to do the right thing
GradleGradle vs Mavenvs Maven
repositories {
jcenter()
maven { url "http://dl.bintray.com/trunkplatform/osworkflow" }
}
}
dependencies {
compile group: 'com.trunkplatform.opensymphony', name: 'osworkflow', version: '3.1.4'
}
<repositories>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>bintray-trunkplatform</id>
<name>bintray</name>
<url>http://dl.bintray.com/trunkplatform/osw
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.trunkplatform.opensymphony</gro
<artifactId>osworkflow</artifactId>
<version>3.1.4</version>
<scope>compile</scope>
</dependency>
</dependencies>
Postgres and MySqlPostgres and MySql
Trnk.io - MySQL via Google CloudSQL
Platmasphere - Postgres via Amazon RDS
Postgres offers multi-tenant functionality
Dependency InjectionDependency Injection
Inject dependencies as needed, rather than passing
through different constructors.
Swapping in stub implementations for tests
Spring and Guice equally good. Right tool for right job
PactPact
Consumer Driven Contracts
Client StackClient Stack
AngularJSAngularJS
MVC
Dependency Injection
Static pages
Made by Google (?)
GulpGulp
http://markdalgleish.github.io/presentation-build-
wars-gulp-vs-grunt/
Streaming Builds
gulp.task('package', function() {
return gulp.src([ 'app/**/*', 'gulp_tasks/*', 'newrelic.js', 'package.json' ], {"base":
.pipe(tar('platmasphere-client.tar'))
.pipe(gzip())
.pipe(gulp.dest('.'));
});
HarpHarp
Simple lightweight webserver
Precompiles CSS and HTML templates
No need to write any server app code
var express = require('express')
var app = express()
app.get('/', function (req, res) {
res.send('Hello World!')
})
var server = app.listen(9000, function () {
var host = server.address().address
var port = server.address().port
console.log('Example app listening at http://%s:
})
bash$ harp server .
------------
Harp v0.14.0 – Chloi Inc. 2012–2014
Your server is listening at
http://localhost:9000/
Press Ctl+C to stop the server
------------
Profit!Profit!
QuestionsQuestions

More Related Content

PDF
Microservices = Death of the Enterprise Service Bus (ESB)?
PDF
Systems Integration in the Cloud Era - API vs. Integration Framework vs. Ente...
PDF
Enterprise Integration Patterns Revisited (again) for the Era of Big Data, In...
PDF
Microservices - Death of the Enterprise Service Bus (ESB)? (Update 2016)
ODP
ESB vs API management
PDF
Microservices in the Enterprise: A Research Study and Reference Architecture
PDF
How to Choose the Right Technology, Framework or Tool to Build Microservices
PDF
Microservice Architecture
Microservices = Death of the Enterprise Service Bus (ESB)?
Systems Integration in the Cloud Era - API vs. Integration Framework vs. Ente...
Enterprise Integration Patterns Revisited (again) for the Era of Big Data, In...
Microservices - Death of the Enterprise Service Bus (ESB)? (Update 2016)
ESB vs API management
Microservices in the Enterprise: A Research Study and Reference Architecture
How to Choose the Right Technology, Framework or Tool to Build Microservices
Microservice Architecture

What's hot (20)

PPTX
Introduction to microservices
PDF
CamelOne 2012 - BPM beyond Web Services
PDF
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
PPTX
Vancouver Microservices Meetup - Kickoff Session
PDF
MicroServices, yet another architectural style?
PDF
Microservices in Practice
PPTX
Defining Microservices
PDF
Microservices Architecture (MSA) - Presentation made at The Open Group confer...
PPTX
The Role of Enterprise Integration in Digital Transformation
PDF
Where can you use serverless?  How does it relate to APIs, integration and mi...
PDF
CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?
PPTX
The Future of Application integration
PDF
MuCon 2015 - Microservices in Integration Architecture
PDF
Trends at JavaOne 2016: Microservices, Docker and Cloud-Native Middleware
PDF
Differentiating between web APIs, SOA, & integration …and why it matters
PDF
Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?
PPTX
Microservice Lifecycle Demo Presentation
PDF
Placement of BPM runtime components in an SOA environment
PDF
Microintegration
PDF
Microservices: Decomposing Applications for Deployability and Scalability (ja...
Introduction to microservices
CamelOne 2012 - BPM beyond Web Services
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Vancouver Microservices Meetup - Kickoff Session
MicroServices, yet another architectural style?
Microservices in Practice
Defining Microservices
Microservices Architecture (MSA) - Presentation made at The Open Group confer...
The Role of Enterprise Integration in Digital Transformation
Where can you use serverless?  How does it relate to APIs, integration and mi...
CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?
The Future of Application integration
MuCon 2015 - Microservices in Integration Architecture
Trends at JavaOne 2016: Microservices, Docker and Cloud-Native Middleware
Differentiating between web APIs, SOA, & integration …and why it matters
Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?
Microservice Lifecycle Demo Presentation
Placement of BPM runtime components in an SOA environment
Microintegration
Microservices: Decomposing Applications for Deployability and Scalability (ja...
Ad

Viewers also liked (20)

PDF
Salesforce einführen und mit SAP integrieren
PPTX
4 Success stories in 3 years - A Docker Production Journey
PDF
A Tale of Contemporary Software
PDF
Dropwizard with MongoDB and Google Cloud
PPTX
Nano Segmentation - A Docker Security Journey
PDF
Dropwizard and Friends
PPT
GSS Session III Add on Presentation Skilled Crafts - Frankfurt from Ms Heike ...
PPT
Business Model Pivot on Example Bike Storage to Self-Storage Boxes
PDF
Proyecto 5 Matemáticas
PPTX
Be The Match PR Research Project
PPTX
Que es un Monopolio
PDF
Copia de alergia tratamiento con productos naturales
DOCX
Midsummer night's dream+sun
PDF
Ulasan jurnal kpt6044 sem 2 20142015
PPS
Mayo el rosario de padre pio y papa francisco (1)
PDF
004b - POR QUÉ EL ORDEN JESÚS REDENTOR, OGR, HA SIDO CONSTITUIDO COMO UN SUJE...
PPTX
2016 AVT Services
PPT
WATER ANALYSIS OF TIGHRA RESERVOIR
PPTX
A1 at
PPTX
Siglo XXI: La Relación con el Cliente en Servicios Financieros
Salesforce einführen und mit SAP integrieren
4 Success stories in 3 years - A Docker Production Journey
A Tale of Contemporary Software
Dropwizard with MongoDB and Google Cloud
Nano Segmentation - A Docker Security Journey
Dropwizard and Friends
GSS Session III Add on Presentation Skilled Crafts - Frankfurt from Ms Heike ...
Business Model Pivot on Example Bike Storage to Self-Storage Boxes
Proyecto 5 Matemáticas
Be The Match PR Research Project
Que es un Monopolio
Copia de alergia tratamiento con productos naturales
Midsummer night's dream+sun
Ulasan jurnal kpt6044 sem 2 20142015
Mayo el rosario de padre pio y papa francisco (1)
004b - POR QUÉ EL ORDEN JESÚS REDENTOR, OGR, HA SIDO CONSTITUIDO COMO UN SUJE...
2016 AVT Services
WATER ANALYSIS OF TIGHRA RESERVOIR
A1 at
Siglo XXI: La Relación con el Cliente en Servicios Financieros
Ad

Similar to Microservices and Friends (20)

PDF
Microservices for java architects it-symposium-2015-09-15
PPTX
A Microservice Journey
PDF
Slaying Monoliths with Node and Docker
PDF
Stay productive while slicing up the monolith
PDF
Cloudify your applications: microservices and beyond
PPTX
Application design for the cloud using AWS
PDF
Stay productive while slicing up the monolith
PDF
Microservices Journey NYC
PDF
Java EE microservices architecture - evolving the monolith
PDF
µServices Architecture @ EPAM WOW 2015
PDF
Building a Modern Microservices Architecture at Gilt: The Essentials
PDF
How to grow your own Microservice?
PDF
Intro to Microservices
PDF
“Bootify your app - from zero to hero
PPTX
The Hardest Part of Microservices: Calling Your Services
PDF
“Startup - it’s not just an IT project” - a random sampling of problems we’ve...
PPTX
Understanding Microservices
PDF
Microservices for java architects coders-conf-2015-05-15
PDF
Microservices on a budget meetup
PDF
Changing application demands: What developers need to know
Microservices for java architects it-symposium-2015-09-15
A Microservice Journey
Slaying Monoliths with Node and Docker
Stay productive while slicing up the monolith
Cloudify your applications: microservices and beyond
Application design for the cloud using AWS
Stay productive while slicing up the monolith
Microservices Journey NYC
Java EE microservices architecture - evolving the monolith
µServices Architecture @ EPAM WOW 2015
Building a Modern Microservices Architecture at Gilt: The Essentials
How to grow your own Microservice?
Intro to Microservices
“Bootify your app - from zero to hero
The Hardest Part of Microservices: Calling Your Services
“Startup - it’s not just an IT project” - a random sampling of problems we’ve...
Understanding Microservices
Microservices for java architects coders-conf-2015-05-15
Microservices on a budget meetup
Changing application demands: What developers need to know

More from Yun Zhi Lin (7)

PDF
AWS Lambda Containers - bridging the gap between serverless and containers on...
PDF
Applied AI, Open Banking and Continuous Innovation the Easy Way - AI Days Mel...
PDF
Art of Serverless Business Value - Serverless Days Sydney 2019
PDF
Anticorrupting the Enterprise - Serverlessconf NYC 2017
PDF
Financial Forecasting using Recurrent Neural Network, Social Media and Cloud
PPTX
Amazingly Simple Serverless Go
PPTX
Easy Serverless Golang
AWS Lambda Containers - bridging the gap between serverless and containers on...
Applied AI, Open Banking and Continuous Innovation the Easy Way - AI Days Mel...
Art of Serverless Business Value - Serverless Days Sydney 2019
Anticorrupting the Enterprise - Serverlessconf NYC 2017
Financial Forecasting using Recurrent Neural Network, Social Media and Cloud
Amazingly Simple Serverless Go
Easy Serverless Golang

Recently uploaded (20)

PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Approach and Philosophy of On baking technology
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Machine learning based COVID-19 study performance prediction
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Empathic Computing: Creating Shared Understanding
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
KodekX | Application Modernization Development
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
sap open course for s4hana steps from ECC to s4
Building Integrated photovoltaic BIPV_UPV.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Approach and Philosophy of On baking technology
Unlocking AI with Model Context Protocol (MCP)
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Chapter 3 Spatial Domain Image Processing.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Machine learning based COVID-19 study performance prediction
The AUB Centre for AI in Media Proposal.docx
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Encapsulation_ Review paper, used for researhc scholars
Empathic Computing: Creating Shared Understanding
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
KodekX | Application Modernization Development
Diabetes mellitus diagnosis method based random forest with bat algorithm
sap open course for s4hana steps from ECC to s4

Microservices and Friends