SlideShare uma empresa Scribd logo
1 de 57
All Change!
https://www.flickr.com/photos/teegardin/
why the economics of Cloud will
make you think differently about Java
Important Disclaimers
THE INFORMATION CONTAINED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONALPURPOSES ONLY.
WHILST EFFORTS WERE MADETO VERIFYTHE COMPLETENESSANDACCURACYOF THE INFORMATION CONTAINED IN THIS PRESENTATION, IT IS PROVIDED “AS IS”, WITHOUT
WARRANTY OFANY KIND, EXPRESS OR IMPLIED.
ALLPERFORMANCE DATAINCLUDED IN THIS PRESENTATION HAVE BEEN GATHERED INACONTROLLED ENVIRONMENT. YOUR OWNTEST RESULTS MAYVARY BASED ON HARDWARE,
SOFTWARE OR INFRASTRUCTURE DIFFERENCES.
ALLDATAINCLUDED IN THIS PRESENTATIONARE MEANT TO BE USED ONLYASAGUIDE.
INADDITION, THE INFORMATION CONTAINED INTHIS PRESENTATION IS BASED ON IBM’S CURRENT PRODUCT PLANSAND STRATEGY, WHICHARE SUBJECT TO CHANGE BY IBM,
WITHOUT NOTICE.
IBMAND ITSAFFILIATED COMPANIES SHALLNOT BE RESPONSIBLE FORANY DAMAGESARISING OUT OFTHE USE OF, OR OTHERWISE RELATED TO, THIS PRESENTATION ORANY
OTHER DOCUMENTATION.
NOTHING CONTAINED IN THIS PRESENTATION IS INTENDED TO, OR SHALLHAVETHE EFFECT OF:
Steve Poole – IBM
Making Java Real Since
Version 0.9
DevOps Practitioner
@spoole167
Chris Bailey– IBM
Runtimes Technical Lead
Java, Node.js & Swift
@Chris__Bailey
This talk is about how this sort of measurement:
GB/hr
Is already changing your life & the direction of the Java
ecosystem
The ‘Cloud’ has a lot to answer for
Outline
• Part 1 – The economics of Cloud provisioning
• Part 2 – The API economy and Java
• Part 3 - How Java measures up
• Part 4 – What the future holds
• Wrap up & Q/A
Part 1 – The economics of Cloud provisioning
Why ‘Cloud’ ?
A local, hand-crafted, static environment which
requires in-house specialist support, doesn’t scale
well and requires long term investment and
commitment
tps://www.flickr.com/photos/sylvar/
What ‘Cloud’
promises
a virtual, dynamic environment
which maximizes use, is infinitely
scalable, always available and
needs minimal upfront
investment or commitment
Take your code – host it on someone else's
machine and pay only for the resource you use
for the time you use it
AND be able to do that very quickly and
repeatedly in parallel
How quickly do you need to get good code into
production?
• Would you believe < 1hr?
• Case Study: A fashion retailer can show measureable
increase in sales if a item similar to that seen in the media can
be placed on their on-line store landing page within 1 hr of it
appearing in public.
• Each product placement is different so they need a fast, agile,
approach that does not jeopardize their on-line stores
availability and quality.
• We know how to do this..
Cloud computing is real.
Major vendors are providing
substantial capacity and it’s
growing all the time
Businesses see the opportunities
Improved value for money,
decreased time-to-market, shorter
time to value
“I can now get my ideas into
production in hours,days or weeks.
I can get immediate feedback AND
then I can improve the idea and
repeat”
70% of IT Leaders are pursuing a hybrid cloud
strategy
http://www.fodey.com/generators/newspaper/snippet.asp
Hybrid Cloud is coming to a data centre near you
ps://www.flickr.com/photos/skohlmann/
The ability to have ‘cloud burst’
capacity is changing the way software
is being designed, developed and
supported
We’re moving to a more industrial scale
v1v1 v2v2 v3v3
time
compute
capacity
V1V1
V1.1V1.1
V1.2V1.2
V1.3V1.3
V1.4V1.4
V1.5V1.5
V1.6V1.6
V1.7V1.7
v1v1 v2v2
time
compute
capacity
We’re moving to a more industrial scale
v3v3
• Why buy one computer for a year when you
can hire 365 computers for a day..
(Or a hour or a minute or a millisecond)
https://www.flickr.com/photos/vuhung/
“Compute on demand” – it’s what we always wanted
Cloud Economics
We really are getting closer all the time to
‘Compute on Tap’
https://www.flickr.com/photos/leunix/
But with taps come meters…
https://www.flickr.com/photos/beigephotos/
Cloud Economics
Like all bills – it’s confusing
Offering RAM Cost (2015) CPUs
IBM Bluemix (CF) $24.15 GB/Month 4vCPUs per instance
IBM Bluemix (Containers) $ 9.94 GB/Month 4vCPUs per GB
run.pivotal.io $21.60 GB/Month 4vCPUs per instance
Heroku (Hobby) $14.00 GB/Month 1 "CPU share" per 512MB in an
instance
Heroku (Professional) $50.00 GB/Month 1 "CPU share" per 512MB in an
instance
Amazon EC2 (SLES) $16.56 GB/Month 1 vCPU per 4GB in an instance.
Cloud computing: compute == money
Money changes everything
With a measureable and direct relationship
between $£€¥ and CPU/RAM, disk etc the
financial success or failure of a project is even
easier to see
And that means…
Even more focus on value for money.
American Society of Civil Engineers
Someone
will be
looking at
your leaky
app
Someone
will be
looking at
your leaky
app
Part 2 – The API economy
And what that means for Java
The API economy
If your company has data it will eventually
be shared and monetized
Really.
Cloud APIs are one of the fastest growing areas in our industry.
Sharing data and services though APIs is enabling new
opportunities and solutions
Everyone is getting into the game.
What makes a good cloud api ?
roughly in selection order.
vailability 100% of course with performance SLAs
elievability – Are those published 100% metrics true?
ost – how much and what is the unit of measure?
iagnosability – can users debug problems without you?
xcitement – is there a vibrant community using the API?
unctionality – what else can the API do?
Where you code runs day-to-day and moment-to-
moment will be driven by economics, legal
requirements and how much risk your business
wants to take.
Your code has to scale better, be more efficient,
resilient, secure and work in constrained
environments
You will have to design, code, deliver, support and
debug code in new ways
It’s going to be scary
How scary?
design, coding, deployment ,
startup, execution, scaling
debugging, security, resilience …
Almost
everything about
your application
is effected
https://www.flickr.com/photos/mjtmail/
Resilient applications
Design for short term failure: something fails all the time. Expect data and
service outages regularly
Fail and recover: don’t diagnose problems in running systems. Kill it and
move on
Every IO operation you perform may fail – do as few as possible
Every IO operation may stall – costing you GB/hrs and resources– timeout
everything quickly
Every piece of data you receive may be badly formed – check everything
“Everything in the cloud fails
all the time” : Werner Vogels
Debugging
Remote support for your family?
Fancy having to do that for your own
apps?
You have to assume:
You will never be able to log into a
remote server.
You will never be able to attach a
remote debugger to a failing app
Ever.
All problems must be resolved by local
reproduction or logs and dumps
https://www.flickr.com/photos/carbonnyc/
Debugging
It gets more challenging.
Failures during deployment or initial startup can
be difficult or impossible to diagnose.
If your service instance didn’t start there is is little
chance of logs being kept!
Learn to love logs, dumps and traces.
Remote log stores and tools are going to be
your best friend
BTW: they’ll cost too
https://www.flickr.com/photos/hinkelstone/
Debugging
• Q: Why can’t you just keep the failed
instance around?
• A: You can – if you accept the $$$
consequences…
Hard metrics and limits keeping a failed app around
or having apps on standby
can be costly in multiple ways
Runtime costs and taking up
vital resource allocation
Part 3 - How Java measures up
Compute == money Easier than ever before
a business can rent a
machine
Just for how long they
need it.
No long term capital
investment.
Now an operational
expense
$ == GB/hr
-Xmx: $100
https://www.flickr.com/photos/isherwoodchris/
• Q: How much RAM does your
application use?
• A: Too much
Runtime costs
Most cloud providers will charge you for your RAM usage over time:
$GB/hr. (Sometimes the charge is $0)
Increasing –Xmx directly effects cost. Something businesses can understand
Net effect – you’ll be tuning your application
to fit into specific RAM sizes.
Smaller than you use today.
You need to measure where the storage goes.
You’ll be picking some components based on
memory usage
increasing the amount of memory for 1 service
increases the bill by the number of concurrent
instances
https://www.flickr.com/photos/erix/
Unnecessary baggage
(you have loads)
Java applications have to get lighter.
Java 9 modularity will help but you have to
consider footprint across the board.
Choose your dependencies wisely
Your choice of OS & distribution is
important.
The aim is ‘carry on only’
Your application isn’t going on a long
trip https://www.flickr.com/photos/armydre2008/
Analysing Your Memory Usage
A large percentage of the heap is used for collections and caches
Eclipse Memory Analyzer will help you analyze:
Easy to reduce memory usage without reducing cache sizes
https://www.flickr.com/photos/armydre2008/
Example costs (2015)
Bluemix (CF) Amazon (ECS)
Running a 512mb container
for a year
$289.80 for 4 cpus 198.72 for 1 cpu
Reducing memory footprint
by 10% saves
$28.98 $0
Running 100 containers in
parallel
$28,980.00 for 400
cpus
$19,872.00 for 100 cpus
Reducing memory footprint
by 10% saves
$2,898.00 $0
N-Body Memory Footprints (lower is better)
Modern Native Scripting JVMC
N-Body Completion Time (lower is
better):
Modern Native Scripting JVMC
N-Body Completion Time, normalized for
100MB of memory (lower is better):
Modern Native Scripting JVMC
Example costs (2015)
Bluemix (CF)
Running a 512mb container
for a year
$289.80 for 4 cpus
Reducing memory footprint
by using Swift saves 75%
$216.75
Running 100 containers in
parallel
$28,980.00 for 400
cpus
Reducing memory footprint
by using Swift saves
$21,675.00
Static Load Profile
Auto-Scaled Load Profile
Example costs (2015)
Bluemix (CF)
Running a 512mb container
for a year
$289.80 for 4 cpus
Using auto-Scaling reduces
container usage by 30%
Running 100 containers in
parallel
$28,980.00 for 400
cpus
Using auto-scaling saves $6,085.8
Java & fast startup time
Application developers can reduce service
startup time by deferring optional costs to
when its needed.
Maybe even create services with different
behaviors rather than one with optional
behavior
But it’s not enough
The JVM needs to revisit all the places
where startup time was traded for
throughput and turn them around.
Startup times
How long do you have to wait?
Limits ability to react to changes in workload
Will you need to preemptively start instances ‘just
in case’ due to start up time?
To bad – that costs
Also think about this:
Everything that happens at startup – happens
every time, all the time.
- Duplication is wasted effort
https://www.flickr.com/photos/91295117@N08/
Consequences
For container based services start up effort
happens multiple times during development
and production
And it’s always the same result.
AND you will pay $ for it every time
We don’t have a good way to capture all this
effort or formalise starting a JVM from a
precanned image. (Shared classes doesn’t hack
it)
Other languages have better / faster startup!
https://www.flickr.com/photos/dno1967b/https://www.flickr.com/photos/quinnanya/
https://www.flickr.com/photos/76657755@N04/
Part 4 – What the future
holds
Thoughts about the future
Applications are going to be increasingly micro-service and multi-language
Java frameworks are becoming smaller and more modular
Java itself is becoming modular
Ahead of Time (AOT) Compilation and “jimage” capabilities will become more important
Java needs to optimize for micro-services rather than monoliths
Wrap up
It’s all change
How you design, code, deploy, debug,
support etc will be effected by the
metrics and limits imposed on you.
Financial metrics and limits always
change behavior. It also creates
opportunity
You will have to learn new techniques
and tools
The JVM and Java applications have
to get leaner and meaner
https://www.flickr.com/photos/beigephotos/
Simply
Applications are going to be running in a remote,
constrained and metered environment
There will be precise limits on how much disk, CPU, RAM,
Bandwidth an application can use and for how long
Whether your application is large or small, granular or
monolithic. Someone will be paying for each unit used
That person will want to get the most out of that
investment
Your application is going on a radical diet
The runtime layer needs to change
https://www.flickr.com/photos/rvoegtli/
Summary
1. Your business will need to adapt to ‘cloud’
2. Your developers will need to adapt to ‘cloud’
3. Your application will need to adapt to ‘cloud’
4. Your competitors are already adapting
We don’t know all the answers (or even the questions) yet.
We do know the next and largest ever pain point for Java is ‘cloud’
Big changes are needed to keep Java successful and competitive
Your world is changing dramatically and all
because of …
GB/hr
Any Questions?

Mais conteúdo relacionado

Mais procurados

STO5475_Rasheed_Winter_FORMATTED3
STO5475_Rasheed_Winter_FORMATTED3STO5475_Rasheed_Winter_FORMATTED3
STO5475_Rasheed_Winter_FORMATTED3
Abdul Rasheed
 

Mais procurados (20)

Impact2014: Practical Performance Troubleshooting
Impact2014: Practical Performance TroubleshootingImpact2014: Practical Performance Troubleshooting
Impact2014: Practical Performance Troubleshooting
 
JavaOne2013: Build Your Own Runtime Monitoring for the IBM JDK with the Healt...
JavaOne2013: Build Your Own Runtime Monitoring for the IBM JDK with the Healt...JavaOne2013: Build Your Own Runtime Monitoring for the IBM JDK with the Healt...
JavaOne2013: Build Your Own Runtime Monitoring for the IBM JDK with the Healt...
 
IBM Monitoring and Diagnostics Tools - Health Center 3.0.2
IBM Monitoring and Diagnostics Tools - Health Center 3.0.2IBM Monitoring and Diagnostics Tools - Health Center 3.0.2
IBM Monitoring and Diagnostics Tools - Health Center 3.0.2
 
InterConnect2016: WebApp Architectures with Java and Node.js
InterConnect2016: WebApp Architectures with Java and Node.jsInterConnect2016: WebApp Architectures with Java and Node.js
InterConnect2016: WebApp Architectures with Java and Node.js
 
FrenchKit: End to End Application Development with Swift
FrenchKit: End to End Application Development with SwiftFrenchKit: End to End Application Development with Swift
FrenchKit: End to End Application Development with Swift
 
How to secure your web applications with NGINX
How to secure your web applications with NGINXHow to secure your web applications with NGINX
How to secure your web applications with NGINX
 
JavaOne 2013: Garbage Collection Unleashed - Demystifying the Wizardry
JavaOne 2013: Garbage Collection Unleashed - Demystifying the WizardryJavaOne 2013: Garbage Collection Unleashed - Demystifying the Wizardry
JavaOne 2013: Garbage Collection Unleashed - Demystifying the Wizardry
 
Cloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and CloudCloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and Cloud
 
Integrating Veeam Backup with NimbleStorage
Integrating Veeam Backup with NimbleStorageIntegrating Veeam Backup with NimbleStorage
Integrating Veeam Backup with NimbleStorage
 
Performance Testing in the Cloud
Performance Testing in the CloudPerformance Testing in the Cloud
Performance Testing in the Cloud
 
Stating the obvious - All Day DevOps 2017
Stating the obvious  - All Day DevOps 2017Stating the obvious  - All Day DevOps 2017
Stating the obvious - All Day DevOps 2017
 
VMware 2V0-21.20 Practice Test
VMware 2V0-21.20 Practice Test VMware 2V0-21.20 Practice Test
VMware 2V0-21.20 Practice Test
 
Puppet devops wdec
Puppet devops wdecPuppet devops wdec
Puppet devops wdec
 
V fabric overview
V fabric overviewV fabric overview
V fabric overview
 
STO5475_Rasheed_Winter_FORMATTED3
STO5475_Rasheed_Winter_FORMATTED3STO5475_Rasheed_Winter_FORMATTED3
STO5475_Rasheed_Winter_FORMATTED3
 
Web sphere application server performance tuning workshop
Web sphere application server performance tuning workshopWeb sphere application server performance tuning workshop
Web sphere application server performance tuning workshop
 
Cloud based Performance Testing
Cloud based Performance TestingCloud based Performance Testing
Cloud based Performance Testing
 
VMworld 2013: Part 2: How to Build a Self-Healing Data Center with vCenter Or...
VMworld 2013: Part 2: How to Build a Self-Healing Data Center with vCenter Or...VMworld 2013: Part 2: How to Build a Self-Healing Data Center with vCenter Or...
VMworld 2013: Part 2: How to Build a Self-Healing Data Center with vCenter Or...
 
Veeam Agent for Linux - Webinar 20171130
Veeam Agent for Linux - Webinar 20171130Veeam Agent for Linux - Webinar 20171130
Veeam Agent for Linux - Webinar 20171130
 
Vmware Certified Professional 6 2V0-621 Dumps
Vmware Certified Professional 6 2V0-621 DumpsVmware Certified Professional 6 2V0-621 Dumps
Vmware Certified Professional 6 2V0-621 Dumps
 

Destaque

Destaque (10)

IBM Monitoring and Diagnostic Tools - GCMV 2.8
IBM Monitoring and Diagnostic Tools - GCMV 2.8IBM Monitoring and Diagnostic Tools - GCMV 2.8
IBM Monitoring and Diagnostic Tools - GCMV 2.8
 
JavaOne 2015: From Java Code to Machine Code
JavaOne 2015: From Java Code to Machine CodeJavaOne 2015: From Java Code to Machine Code
JavaOne 2015: From Java Code to Machine Code
 
Debugging Java from Dumps
Debugging Java from DumpsDebugging Java from Dumps
Debugging Java from Dumps
 
From Java code to Java heap: Understanding and optimizing your application's ...
From Java code to Java heap: Understanding and optimizing your application's ...From Java code to Java heap: Understanding and optimizing your application's ...
From Java code to Java heap: Understanding and optimizing your application's ...
 
Efficient Memory and Thread Management in Highly Parallel Java Applications
Efficient Memory and Thread Management in Highly Parallel Java ApplicationsEfficient Memory and Thread Management in Highly Parallel Java Applications
Efficient Memory and Thread Management in Highly Parallel Java Applications
 
WebSphere Technical University: Top WebSphere Problem Determination Features
WebSphere Technical University: Top WebSphere Problem Determination FeaturesWebSphere Technical University: Top WebSphere Problem Determination Features
WebSphere Technical University: Top WebSphere Problem Determination Features
 
Node Summit 2016: Web App Architectures
Node Summit 2016:  Web App ArchitecturesNode Summit 2016:  Web App Architectures
Node Summit 2016: Web App Architectures
 
Swift Summit: Pushing the boundaries of Swift to the Server
Swift Summit: Pushing the boundaries of Swift to the ServerSwift Summit: Pushing the boundaries of Swift to the Server
Swift Summit: Pushing the boundaries of Swift to the Server
 
From Java Code to Java Heap: Understanding the Memory Usage of Your App - Ch...
From Java Code to Java Heap: Understanding the Memory Usage of Your App  - Ch...From Java Code to Java Heap: Understanding the Memory Usage of Your App  - Ch...
From Java Code to Java Heap: Understanding the Memory Usage of Your App - Ch...
 
Hp java heap dump analysis Workshop
Hp java heap dump analysis WorkshopHp java heap dump analysis Workshop
Hp java heap dump analysis Workshop
 

Semelhante a Cloud Economics

All change! How the new Economics of Cloud will make you think differently ab...
All change! How the new Economics of Cloud will make you think differently ab...All change! How the new Economics of Cloud will make you think differently ab...
All change! How the new Economics of Cloud will make you think differently ab...
JAXLondon_Conference
 
Azul yandexjune010
Azul yandexjune010Azul yandexjune010
Azul yandexjune010
yaevents
 

Semelhante a Cloud Economics (20)

All Change how the economics of Cloud will make you think differently about Java
All Change how the economics of Cloud will make you think differently about JavaAll Change how the economics of Cloud will make you think differently about Java
All Change how the economics of Cloud will make you think differently about Java
 
All change! How the new Economics of Cloud will make you think differently ab...
All change! How the new Economics of Cloud will make you think differently ab...All change! How the new Economics of Cloud will make you think differently ab...
All change! How the new Economics of Cloud will make you think differently ab...
 
Cloud Economics for Java at Java2Days
Cloud Economics for Java at Java2DaysCloud Economics for Java at Java2Days
Cloud Economics for Java at Java2Days
 
JavaOne 2015 Devops and the Darkside CON6447
JavaOne 2015 Devops and the Darkside CON6447JavaOne 2015 Devops and the Darkside CON6447
JavaOne 2015 Devops and the Darkside CON6447
 
JVM Support for Multitenant Applications - Steve Poole (IBM)
JVM Support for Multitenant Applications - Steve Poole (IBM)JVM Support for Multitenant Applications - Steve Poole (IBM)
JVM Support for Multitenant Applications - Steve Poole (IBM)
 
JavaOne 2016 "Java, Microservices, Cloud and Containers"
JavaOne 2016 "Java, Microservices, Cloud and Containers"JavaOne 2016 "Java, Microservices, Cloud and Containers"
JavaOne 2016 "Java, Microservices, Cloud and Containers"
 
Online productivity tools - SILS20090
Online productivity tools - SILS20090Online productivity tools - SILS20090
Online productivity tools - SILS20090
 
Moving To SaaS
Moving To SaaSMoving To SaaS
Moving To SaaS
 
Top 30 Scalability Mistakes
Top 30 Scalability MistakesTop 30 Scalability Mistakes
Top 30 Scalability Mistakes
 
Web Speed And Scalability
Web Speed And ScalabilityWeb Speed And Scalability
Web Speed And Scalability
 
Availability in a cloud native world v1.6 (Feb 2019)
Availability in a cloud native world v1.6 (Feb 2019)Availability in a cloud native world v1.6 (Feb 2019)
Availability in a cloud native world v1.6 (Feb 2019)
 
2019 StartIT - Boosting your performance with Blackfire
2019 StartIT - Boosting your performance with Blackfire2019 StartIT - Boosting your performance with Blackfire
2019 StartIT - Boosting your performance with Blackfire
 
Product! - The road to production deployment
Product! - The road to production deploymentProduct! - The road to production deployment
Product! - The road to production deployment
 
Azul yandexjune010
Azul yandexjune010Azul yandexjune010
Azul yandexjune010
 
Enterprise Testing in The Cloud
Enterprise Testing in The CloudEnterprise Testing in The Cloud
Enterprise Testing in The Cloud
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 
Dictionary Within the Cloud
Dictionary Within the CloudDictionary Within the Cloud
Dictionary Within the Cloud
 
Building a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one weekBuilding a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one week
 
Ready to go Mobile? Today's Mobile Landscape: Responsive, Adaptive, Hybrid, a...
Ready to go Mobile? Today's Mobile Landscape: Responsive, Adaptive, Hybrid, a...Ready to go Mobile? Today's Mobile Landscape: Responsive, Adaptive, Hybrid, a...
Ready to go Mobile? Today's Mobile Landscape: Responsive, Adaptive, Hybrid, a...
 

Mais de Chris Bailey

Mais de Chris Bailey (20)

NodeJS Interactive 2019: FaaS meets Frameworks
NodeJS Interactive 2019:  FaaS meets FrameworksNodeJS Interactive 2019:  FaaS meets Frameworks
NodeJS Interactive 2019: FaaS meets Frameworks
 
Voxxed Micro-services: Serverless JakartaEE - JAX-RS comes to FaaS
Voxxed Micro-services: Serverless JakartaEE - JAX-RS comes to FaaSVoxxed Micro-services: Serverless JakartaEE - JAX-RS comes to FaaS
Voxxed Micro-services: Serverless JakartaEE - JAX-RS comes to FaaS
 
Silicon Valley Code Camp 2019 - Reaching the Cloud Native World
Silicon Valley Code Camp 2019 - Reaching the Cloud Native WorldSilicon Valley Code Camp 2019 - Reaching the Cloud Native World
Silicon Valley Code Camp 2019 - Reaching the Cloud Native World
 
FaaS Meets Java EE: Developing Cloud Native Applications at Speed
FaaS Meets Java EE: Developing Cloud Native Applications at SpeedFaaS Meets Java EE: Developing Cloud Native Applications at Speed
FaaS Meets Java EE: Developing Cloud Native Applications at Speed
 
AltConf 2019: Server-Side Swift State of the Union
AltConf 2019:  Server-Side Swift State of the UnionAltConf 2019:  Server-Side Swift State of the Union
AltConf 2019: Server-Side Swift State of the Union
 
Server-side Swift with Swagger
Server-side Swift with SwaggerServer-side Swift with Swagger
Server-side Swift with Swagger
 
Node Summit 2018: Cloud Native Node.js
Node Summit 2018: Cloud Native Node.jsNode Summit 2018: Cloud Native Node.js
Node Summit 2018: Cloud Native Node.js
 
Index - BFFs vs GraphQL
Index - BFFs vs GraphQLIndex - BFFs vs GraphQL
Index - BFFs vs GraphQL
 
Swift Cloud Workshop - Swift Microservices
Swift Cloud Workshop - Swift MicroservicesSwift Cloud Workshop - Swift Microservices
Swift Cloud Workshop - Swift Microservices
 
Swift Cloud Workshop - Codable, the key to Fullstack Swift
Swift Cloud Workshop - Codable, the key to Fullstack SwiftSwift Cloud Workshop - Codable, the key to Fullstack Swift
Swift Cloud Workshop - Codable, the key to Fullstack Swift
 
Try!Swift India 2017: All you need is Swift
Try!Swift India 2017: All you need is SwiftTry!Swift India 2017: All you need is Swift
Try!Swift India 2017: All you need is Swift
 
Swift Summit 2017: Server Swift State of the Union
Swift Summit 2017: Server Swift State of the UnionSwift Summit 2017: Server Swift State of the Union
Swift Summit 2017: Server Swift State of the Union
 
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js MicroservicesIBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
 
IBM Cloud University: Java, Node.js and Swift
IBM Cloud University: Java, Node.js and SwiftIBM Cloud University: Java, Node.js and Swift
IBM Cloud University: Java, Node.js and Swift
 
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-ServicesNode Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
 
FrenchKit 2017: Server(less) Swift
FrenchKit 2017: Server(less) SwiftFrenchKit 2017: Server(less) Swift
FrenchKit 2017: Server(less) Swift
 
AltConf 2017: Full Stack Swift in 30 Minutes
AltConf 2017: Full Stack Swift in 30 MinutesAltConf 2017: Full Stack Swift in 30 Minutes
AltConf 2017: Full Stack Swift in 30 Minutes
 
InterConnect: Server Side Swift for Java Developers
InterConnect:  Server Side Swift for Java DevelopersInterConnect:  Server Side Swift for Java Developers
InterConnect: Server Side Swift for Java Developers
 
InterConnect: Java, Node.js and Swift - Which, Why and When
InterConnect: Java, Node.js and Swift - Which, Why and WhenInterConnect: Java, Node.js and Swift - Which, Why and When
InterConnect: Java, Node.js and Swift - Which, Why and When
 
Playgrounds: Mobile + Swift = BFF
Playgrounds: Mobile + Swift = BFFPlaygrounds: Mobile + Swift = BFF
Playgrounds: Mobile + Swift = BFF
 

Último

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 

Último (20)

%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
 
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions Presentation
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 

Cloud Economics

  • 1. All Change! https://www.flickr.com/photos/teegardin/ why the economics of Cloud will make you think differently about Java
  • 2. Important Disclaimers THE INFORMATION CONTAINED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONALPURPOSES ONLY. WHILST EFFORTS WERE MADETO VERIFYTHE COMPLETENESSANDACCURACYOF THE INFORMATION CONTAINED IN THIS PRESENTATION, IT IS PROVIDED “AS IS”, WITHOUT WARRANTY OFANY KIND, EXPRESS OR IMPLIED. ALLPERFORMANCE DATAINCLUDED IN THIS PRESENTATION HAVE BEEN GATHERED INACONTROLLED ENVIRONMENT. YOUR OWNTEST RESULTS MAYVARY BASED ON HARDWARE, SOFTWARE OR INFRASTRUCTURE DIFFERENCES. ALLDATAINCLUDED IN THIS PRESENTATIONARE MEANT TO BE USED ONLYASAGUIDE. INADDITION, THE INFORMATION CONTAINED INTHIS PRESENTATION IS BASED ON IBM’S CURRENT PRODUCT PLANSAND STRATEGY, WHICHARE SUBJECT TO CHANGE BY IBM, WITHOUT NOTICE. IBMAND ITSAFFILIATED COMPANIES SHALLNOT BE RESPONSIBLE FORANY DAMAGESARISING OUT OFTHE USE OF, OR OTHERWISE RELATED TO, THIS PRESENTATION ORANY OTHER DOCUMENTATION. NOTHING CONTAINED IN THIS PRESENTATION IS INTENDED TO, OR SHALLHAVETHE EFFECT OF:
  • 3. Steve Poole – IBM Making Java Real Since Version 0.9 DevOps Practitioner @spoole167 Chris Bailey– IBM Runtimes Technical Lead Java, Node.js & Swift @Chris__Bailey
  • 4. This talk is about how this sort of measurement: GB/hr Is already changing your life & the direction of the Java ecosystem The ‘Cloud’ has a lot to answer for
  • 5. Outline • Part 1 – The economics of Cloud provisioning • Part 2 – The API economy and Java • Part 3 - How Java measures up • Part 4 – What the future holds • Wrap up & Q/A
  • 6. Part 1 – The economics of Cloud provisioning
  • 7. Why ‘Cloud’ ? A local, hand-crafted, static environment which requires in-house specialist support, doesn’t scale well and requires long term investment and commitment tps://www.flickr.com/photos/sylvar/
  • 8. What ‘Cloud’ promises a virtual, dynamic environment which maximizes use, is infinitely scalable, always available and needs minimal upfront investment or commitment Take your code – host it on someone else's machine and pay only for the resource you use for the time you use it AND be able to do that very quickly and repeatedly in parallel
  • 9. How quickly do you need to get good code into production? • Would you believe < 1hr? • Case Study: A fashion retailer can show measureable increase in sales if a item similar to that seen in the media can be placed on their on-line store landing page within 1 hr of it appearing in public. • Each product placement is different so they need a fast, agile, approach that does not jeopardize their on-line stores availability and quality. • We know how to do this..
  • 10. Cloud computing is real. Major vendors are providing substantial capacity and it’s growing all the time Businesses see the opportunities Improved value for money, decreased time-to-market, shorter time to value “I can now get my ideas into production in hours,days or weeks. I can get immediate feedback AND then I can improve the idea and repeat”
  • 11. 70% of IT Leaders are pursuing a hybrid cloud strategy http://www.fodey.com/generators/newspaper/snippet.asp Hybrid Cloud is coming to a data centre near you
  • 12. ps://www.flickr.com/photos/skohlmann/ The ability to have ‘cloud burst’ capacity is changing the way software is being designed, developed and supported
  • 13. We’re moving to a more industrial scale v1v1 v2v2 v3v3 time compute capacity
  • 15. • Why buy one computer for a year when you can hire 365 computers for a day.. (Or a hour or a minute or a millisecond)
  • 17. Cloud Economics We really are getting closer all the time to ‘Compute on Tap’ https://www.flickr.com/photos/leunix/
  • 18. But with taps come meters… https://www.flickr.com/photos/beigephotos/ Cloud Economics
  • 19. Like all bills – it’s confusing Offering RAM Cost (2015) CPUs IBM Bluemix (CF) $24.15 GB/Month 4vCPUs per instance IBM Bluemix (Containers) $ 9.94 GB/Month 4vCPUs per GB run.pivotal.io $21.60 GB/Month 4vCPUs per instance Heroku (Hobby) $14.00 GB/Month 1 "CPU share" per 512MB in an instance Heroku (Professional) $50.00 GB/Month 1 "CPU share" per 512MB in an instance Amazon EC2 (SLES) $16.56 GB/Month 1 vCPU per 4GB in an instance.
  • 20. Cloud computing: compute == money Money changes everything With a measureable and direct relationship between $£€¥ and CPU/RAM, disk etc the financial success or failure of a project is even easier to see And that means… Even more focus on value for money.
  • 21. American Society of Civil Engineers Someone will be looking at your leaky app Someone will be looking at your leaky app
  • 22. Part 2 – The API economy And what that means for Java
  • 23. The API economy If your company has data it will eventually be shared and monetized Really. Cloud APIs are one of the fastest growing areas in our industry. Sharing data and services though APIs is enabling new opportunities and solutions Everyone is getting into the game.
  • 24. What makes a good cloud api ? roughly in selection order. vailability 100% of course with performance SLAs elievability – Are those published 100% metrics true? ost – how much and what is the unit of measure? iagnosability – can users debug problems without you? xcitement – is there a vibrant community using the API? unctionality – what else can the API do?
  • 25. Where you code runs day-to-day and moment-to- moment will be driven by economics, legal requirements and how much risk your business wants to take. Your code has to scale better, be more efficient, resilient, secure and work in constrained environments You will have to design, code, deliver, support and debug code in new ways It’s going to be scary
  • 26. How scary? design, coding, deployment , startup, execution, scaling debugging, security, resilience … Almost everything about your application is effected https://www.flickr.com/photos/mjtmail/
  • 27. Resilient applications Design for short term failure: something fails all the time. Expect data and service outages regularly Fail and recover: don’t diagnose problems in running systems. Kill it and move on Every IO operation you perform may fail – do as few as possible Every IO operation may stall – costing you GB/hrs and resources– timeout everything quickly Every piece of data you receive may be badly formed – check everything “Everything in the cloud fails all the time” : Werner Vogels
  • 28. Debugging Remote support for your family? Fancy having to do that for your own apps? You have to assume: You will never be able to log into a remote server. You will never be able to attach a remote debugger to a failing app Ever. All problems must be resolved by local reproduction or logs and dumps https://www.flickr.com/photos/carbonnyc/
  • 29. Debugging It gets more challenging. Failures during deployment or initial startup can be difficult or impossible to diagnose. If your service instance didn’t start there is is little chance of logs being kept! Learn to love logs, dumps and traces. Remote log stores and tools are going to be your best friend BTW: they’ll cost too https://www.flickr.com/photos/hinkelstone/
  • 30. Debugging • Q: Why can’t you just keep the failed instance around? • A: You can – if you accept the $$$ consequences…
  • 31. Hard metrics and limits keeping a failed app around or having apps on standby can be costly in multiple ways Runtime costs and taking up vital resource allocation
  • 32. Part 3 - How Java measures up
  • 33. Compute == money Easier than ever before a business can rent a machine Just for how long they need it. No long term capital investment. Now an operational expense $ == GB/hr -Xmx: $100
  • 34. https://www.flickr.com/photos/isherwoodchris/ • Q: How much RAM does your application use? • A: Too much
  • 35. Runtime costs Most cloud providers will charge you for your RAM usage over time: $GB/hr. (Sometimes the charge is $0) Increasing –Xmx directly effects cost. Something businesses can understand Net effect – you’ll be tuning your application to fit into specific RAM sizes. Smaller than you use today. You need to measure where the storage goes. You’ll be picking some components based on memory usage increasing the amount of memory for 1 service increases the bill by the number of concurrent instances https://www.flickr.com/photos/erix/
  • 36. Unnecessary baggage (you have loads) Java applications have to get lighter. Java 9 modularity will help but you have to consider footprint across the board. Choose your dependencies wisely Your choice of OS & distribution is important. The aim is ‘carry on only’ Your application isn’t going on a long trip https://www.flickr.com/photos/armydre2008/
  • 37. Analysing Your Memory Usage A large percentage of the heap is used for collections and caches Eclipse Memory Analyzer will help you analyze: Easy to reduce memory usage without reducing cache sizes https://www.flickr.com/photos/armydre2008/
  • 38. Example costs (2015) Bluemix (CF) Amazon (ECS) Running a 512mb container for a year $289.80 for 4 cpus 198.72 for 1 cpu Reducing memory footprint by 10% saves $28.98 $0 Running 100 containers in parallel $28,980.00 for 400 cpus $19,872.00 for 100 cpus Reducing memory footprint by 10% saves $2,898.00 $0
  • 39. N-Body Memory Footprints (lower is better) Modern Native Scripting JVMC
  • 40. N-Body Completion Time (lower is better): Modern Native Scripting JVMC
  • 41. N-Body Completion Time, normalized for 100MB of memory (lower is better): Modern Native Scripting JVMC
  • 42. Example costs (2015) Bluemix (CF) Running a 512mb container for a year $289.80 for 4 cpus Reducing memory footprint by using Swift saves 75% $216.75 Running 100 containers in parallel $28,980.00 for 400 cpus Reducing memory footprint by using Swift saves $21,675.00
  • 45. Example costs (2015) Bluemix (CF) Running a 512mb container for a year $289.80 for 4 cpus Using auto-Scaling reduces container usage by 30% Running 100 containers in parallel $28,980.00 for 400 cpus Using auto-scaling saves $6,085.8
  • 46. Java & fast startup time Application developers can reduce service startup time by deferring optional costs to when its needed. Maybe even create services with different behaviors rather than one with optional behavior But it’s not enough The JVM needs to revisit all the places where startup time was traded for throughput and turn them around.
  • 47. Startup times How long do you have to wait? Limits ability to react to changes in workload Will you need to preemptively start instances ‘just in case’ due to start up time? To bad – that costs Also think about this: Everything that happens at startup – happens every time, all the time. - Duplication is wasted effort https://www.flickr.com/photos/91295117@N08/
  • 48. Consequences For container based services start up effort happens multiple times during development and production And it’s always the same result. AND you will pay $ for it every time We don’t have a good way to capture all this effort or formalise starting a JVM from a precanned image. (Shared classes doesn’t hack it) Other languages have better / faster startup! https://www.flickr.com/photos/dno1967b/https://www.flickr.com/photos/quinnanya/ https://www.flickr.com/photos/76657755@N04/
  • 49. Part 4 – What the future holds
  • 50. Thoughts about the future Applications are going to be increasingly micro-service and multi-language Java frameworks are becoming smaller and more modular Java itself is becoming modular Ahead of Time (AOT) Compilation and “jimage” capabilities will become more important Java needs to optimize for micro-services rather than monoliths
  • 52. It’s all change How you design, code, deploy, debug, support etc will be effected by the metrics and limits imposed on you. Financial metrics and limits always change behavior. It also creates opportunity You will have to learn new techniques and tools The JVM and Java applications have to get leaner and meaner https://www.flickr.com/photos/beigephotos/
  • 53. Simply Applications are going to be running in a remote, constrained and metered environment There will be precise limits on how much disk, CPU, RAM, Bandwidth an application can use and for how long Whether your application is large or small, granular or monolithic. Someone will be paying for each unit used That person will want to get the most out of that investment Your application is going on a radical diet The runtime layer needs to change https://www.flickr.com/photos/rvoegtli/
  • 54. Summary 1. Your business will need to adapt to ‘cloud’ 2. Your developers will need to adapt to ‘cloud’ 3. Your application will need to adapt to ‘cloud’ 4. Your competitors are already adapting We don’t know all the answers (or even the questions) yet. We do know the next and largest ever pain point for Java is ‘cloud’ Big changes are needed to keep Java successful and competitive
  • 55. Your world is changing dramatically and all because of …
  • 56. GB/hr

Notas do Editor

  1. You today
  2. What your competion is doing
  3. Lets pick two
  4. How much memory used to run the benchmark
  5. How long to run the benchmark
  6. Normalised for 100 MB of memory
  7. The biggest ever pain point