Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
All Change – why the economics of
Cloud will make you think differently
about Java
OR
-Xmx: £100
https://www.flickr.com/ph...
2
Important Disclaimers
THE INFORMATION CONTAINED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY.
WHILST...
Your Guides for Today’s Journey
Steve Poole – IBM
Making Java Real Since Version 0.9
DevOps Practitioner (whatever that me...
This talk is intended to make you
• Think about how you use compute resource today
• Think about how that use may need to ...
This talk is about how this sort of measurement:
GB/hr
Is already changing your life & the direction of the
Java ecosystem...
Outline
• Part 1 – The economics of Cloud provisioning
• Part 2 - How Java measures up
• Part 3 – The API economy and what...
Part 1 – The economics of Cloud provisioning
Why ‘Cloud’ ?
https://www.flickr.com/photos/sylvar/
A local, hand-crafted, static
environment which requires in-house
spec...
What ‘Cloud’
promises
a virtual, dynamic
environment which
maximizes use, is infinitely
scalable, always available
and nee...
How quickly do you need to get good code into
production?
• Would you believe < 1hr?
• Case Study: A fashion retailer can ...
Cloud computing is real.
Major vendors are providing
substantial capacity and it’s
growing all the time
Businesses see the...
70% of IT Leaders are pursuing a hybrid cloud
strategy
http://www.fodey.com/generators/newspaper/snippet.asp
Hybrid Cloud ...
https://www.flickr.com/photos/skohlmann/
The ability to have ‘cloud
burst’ capacity is changing
the way software is being
...
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
Cloud computing: compute == money
Money changes everything
With a measureable and direct
relationship between $£€¥ and
CPU...
American Society of Civil Engineers
Someone
will be
looking at
your leaky
app
Someone
will be
looking at
your leaky
app
Part 2 - How Java measures up
Compute == money
Easier than ever
before
a business can buy a
CPU
Just for how long they
need it.
No long term capital
inv...
Real costs – it’s confusing
Offering RAM Cost CPUs
IBM Bluemix (CF) $24.15 GB/Month 4vCPUs per instance
IBM Bluemix (Conta...
Example costs
Bluemix (CF) Amazon (ECS)
Running a 512mb
container for a year
$289.80 for 4
cpus
198.72 for 1 cpu
Reducing ...
N-Body Memory Footprints (lower is better)
N-Body Completion Time (lower is
better):
N-Body Completion Time, normalized for
100MB of memory (lower is better):
Unnecessary baggage
(you have loads)
Java applications have to get lighter.
Java 9 modularity will help but you
have to co...
Startup times
How long do you want to wait?
How long do you have to wait?
Do you need to preemptively start
instances ‘jus...
Java & fast startup time – It’s known for it!
Application developers can reduce service
startup time by deferring optional...
The rub
For container based services – all this
start up effort happens multiple times
during development and testing (let...
https://www.flickr.com/photos/isherwoodchris/
Runtime
costs
• 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)
Incr...
Multiple languages on the JVM.
What’s the benefit of running
them on the JVM vs having a
native service?
They can take mor...
Simply
Java applications are going to be
running in a remote, constrained and
metered environment
There will be precise li...
Part 3 – The API economy
And what that means for Java
The API economy
If your company has data it will
eventually be shared and monetised
Really.
Cloud APIs are one of the fast...
What makes a good cloud api ?
• roughly in selection order.
vailability 100% of course with performance SLAs
elievability ...
Where you code runs day-to-day and moment-to-
moment will be driven by economics, legal
requirements and how much risk you...
How scary?
design, coding, deployment ,
startup, execution, scaling
debugging, security, resilience …
Almost
everything ab...
Resilient applications
Design for short term failure: something fails all the time. Expect data and
service outages regula...
Debugging
Remote support for your family?
Fancy having to do that for your own
apps?
You have to assume:
You will never be...
Debugging
It gets more challenging.
Failures during deployment
or initial startup can be difficult or
impossible to diagno...
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...
Part 5 – our thoughts
It’s all change
How you design, code, deploy, debug,
support etc will be effected by the
metrics and limits imposed on you...
More thoughts
• Do we need a JVM anymore? If your container has code that will
ONLY run on one OS/arch do we need hardware...
Has this talk made you
Think about how you use compute resource today?
Think about how that use may need to change tomorro...
https://www.flickr.com/photos/pasukaru76/
The story ends – you wake up and
Java is what’s it’s always been
The story ends ...
Thank you
Prochain SlideShare
Chargement dans…5
×

All change! How the new Economics of Cloud will make you think differently about Java - Chris Bailey, Steve Poole

JAX London 2015 talk

Livres associés

Gratuit avec un essai de 30 jours de Scribd

Tout voir
  • Soyez le premier à commenter

All change! How the new Economics of Cloud will make you think differently about Java - Chris Bailey, Steve Poole

  1. 1. All Change – why the economics of Cloud will make you think differently about Java OR -Xmx: £100 https://www.flickr.com/photos/teegardin/
  2. 2. 2 Important Disclaimers THE INFORMATION CONTAINED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY. WHILST EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION CONTAINED IN THIS PRESENTATION, IT IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. ALL PERFORMANCE DATA INCLUDED IN THIS PRESENTATION HAVE BEEN GATHERED IN A CONTROLLED ENVIRONMENT. YOUR OWN TEST RESULTS MAY VARY BASED ON HARDWARE, SOFTWARE OR INFRASTRUCTURE DIFFERENCES. ALL DATA INCLUDED IN THIS PRESENTATION ARE MEANT TO BE USED ONLY AS A GUIDE. IN ADDITION, THE INFORMATION CONTAINED IN THIS PRESENTATION IS BASED ON IBM’S CURRENT PRODUCT PLANS AND STRATEGY, WHICH ARE SUBJECT TO CHANGE BY IBM, WITHOUT NOTICE. IBM AND ITS AFFILIATED COMPANIES SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF, OR OTHERWISE RELATED TO, THIS PRESENTATION OR ANY OTHER DOCUMENTATION. NOTHING CONTAINED IN THIS PRESENTATION IS INTENDED TO, OR SHALL HAVE THE EFFECT OF: - CREATING ANY WARRANT OR REPRESENTATION FROM IBM, ITS AFFILIATED COMPANIES OR ITS OR THEIR SUPPLIERS AND/OR LICENSORS
  3. 3. Your Guides for Today’s Journey Steve Poole – IBM Making Java Real Since Version 0.9 DevOps Practitioner (whatever that means!) @spoole167 Chris Bailey- IBM technical architect for runtime monitoring and diagnostics @chris__bailey
  4. 4. This talk is intended to make you • Think about how you use compute resource today • Think about how that use may need to change tomorrow • Starting measuring your application profile now • Try out cloud technologies and gather real experience • Wonder where Java is going next
  5. 5. 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
  6. 6. Outline • Part 1 – The economics of Cloud provisioning • Part 2 - How Java measures up • Part 3 – The API economy and what that aaaaaaameans for Java • Part 4 – Our thoughts
  7. 7. Part 1 – The economics of Cloud provisioning
  8. 8. Why ‘Cloud’ ? https://www.flickr.com/photos/sylvar/ A local, hand-crafted, static environment which requires in-house specialist support, doesn’t scale well and requires long term investment and commitment
  9. 9. 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
  10. 10. 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..
  11. 11. 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”
  12. 12. 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
  13. 13. https://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 Why buy one computer for a year when you can hire 365 computers for a day..
  14. 14. https://www.flickr.com/photos/vuhung/ “Compute on demand” – it’s what we always wanted
  15. 15. Cloud Economics We really are getting closer all the time to ‘Compute on Tap’ https://www.flickr.com/photos/leunix/
  16. 16. But with taps come meters… https://www.flickr.com/photos/beigephotos/ Cloud Economics
  17. 17. 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.
  18. 18. American Society of Civil Engineers Someone will be looking at your leaky app Someone will be looking at your leaky app
  19. 19. Part 2 - How Java measures up
  20. 20. Compute == money Easier than ever before a business can buy a CPU Just for how long they need it. No long term capital investment. Just as much as they need $ == GB/hr -Xmx: £100
  21. 21. Real costs – it’s confusing Offering RAM Cost 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.
  22. 22. Example costs 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 10 containers in parallel 2890.80 for 40 cpus $1987.20 for 10 cpus Reducing memory footprint by 10% saves 289.80 $0
  23. 23. N-Body Memory Footprints (lower is better)
  24. 24. N-Body Completion Time (lower is better):
  25. 25. N-Body Completion Time, normalized for 100MB of memory (lower is better):
  26. 26. 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/
  27. 27. Startup times How long do you want to wait? How long do you have to wait? Do you need to preemptively start instances ‘just in case’ due to start up time? To bad – that costs If the unit of deployment and scaling is an instance of a service it needs to start FAST BTW – think about this: Everything that happens at startup – happens every time, all the time. https://www.flickr.com/photos/91295117@N08/
  28. 28. Java & fast startup time – It’s known for it! 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. what about “ Everything that happens at startup – happens every time, all the time”
  29. 29. The rub For container based services – all this start up effort happens multiple times during development and testing (let along during 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/
  30. 30. https://www.flickr.com/photos/isherwoodchris/ Runtime costs • Q: How much RAM does your application use? • A: Too much
  31. 31. 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/
  32. 32. Multiple languages on the JVM. What’s the benefit of running them on the JVM vs having a native service? They can take more memory, and take longer to execute. Cloud applications are increasingly heterogeneous. Anyway they share data not objects Nashorn JavaScript engine delivered in JDK8 Utilizes new JVM level features for performance Avatar.js provides Node.js support on Nashorn Results of “Octane” JavaScript benchmark using Java 8 pre- u20 Node.js is 4.8x faster Avatar.js is >10x larger Feb 12th , 2015: Avatar is “put on hold” https://blogs.oracle.com/theaquarium/entry/project_avatar_update
  33. 33. Simply Java 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 https://www.flickr.com/photos/rvoegtli/
  34. 34. Part 3 – The API economy And what that means for Java
  35. 35. The API economy If your company has data it will eventually be shared and monetised 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.
  36. 36. 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’s 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?
  37. 37. 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
  38. 38. How scary? design, coding, deployment , startup, execution, scaling debugging, security, resilience … Almost everything about your application is effected https://www.flickr.com/photos/mjtmail/
  39. 39. 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 Retry, compensation, backout strategies– these are your new friends “Everything in the cloud fails all the time” : Werner Vogels
  40. 40. 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/
  41. 41. 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/
  42. 42. Debugging • Q: Why can’t you just keep the failed instance around? • A: You can – if you accept the £££ consequences…
  43. 43. 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
  44. 44. Part 5 – our thoughts
  45. 45. 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 The JVM and Java applications have to get leaner and meaner You have to learn new techniques and tools https://www.flickr.com/photos/beigephotos/
  46. 46. More thoughts • Do we need a JVM anymore? If your container has code that will ONLY run on one OS/arch do we need hardware abstraction like class files and bytecode? • Linker coming in Java 9 helps reduce footprint and some startup time. • We need more AOT to convert Java into executable code once only • Individual service lifetimes are short so dynamic recompliation is not useful unless the generated code is shared. How do we share compiled code cheaper than it costs to generate the code? • Remember – you’ll be paying for all the ‘wasted’ CPU / RAM etc.
  47. 47. Has this talk made you Think about how you use compute resource today? Think about how that use may need to change tomorrow? Want to measure your application profile now? Want to try out cloud technologies and gather real experience? Made you wonder where Java is going next?
  48. 48. https://www.flickr.com/photos/pasukaru76/ The story ends – you wake up and Java is what’s it’s always been The story ends – you wake up and Java is what’s it’s always been You stay in wonderland and see how deep the Java goes
  49. 49. Thank you

×