SlideShare a Scribd company logo
Cloud Economics
Chris Bailey, IBM
@Chris__Bailey
“Cloud economics is a branch of knowledge
concerned with the principles, costs and benefits of
cloud computing.”
— searchcio.techtarget.com
O'Reilly Software Architecture Conf: Cloud Economics
O'Reilly Software Architecture Conf: Cloud Economics

Recommended for you

Adopting Java for the Serverless world at Serverless Meetup New York and Boston
Adopting Java for the Serverless world at Serverless Meetup New York and BostonAdopting Java for the Serverless world at Serverless Meetup New York and Boston
Adopting Java for the Serverless world at Serverless Meetup New York and Boston

Java is for many years one of the most popular programming languages, but it used to have hard times in the Serverless Community. Java is known for its high cold start times and high memory footprint. For both you have to pay to the cloud providers of your choice. That's why most developers tried to avoid using Java for such use cases. But the times change: Community and cloud providers improve things steadily for Java developers. In this talk we look at the features and possibilities AWS cloud provider offers for the Java developers and look the most popular Java frameworks, like Micronaut, Quarkus and Spring (Boot) and look how (AOT compiler and GraalVM native images play a huge role) they address Serverless challenges and enable Java for broad usage in the Serverless world.

awscloudcloud computing
Writing less code with Serverless on AWS at FrOSCon 2021
Writing less code with Serverless on AWS at FrOSCon 2021Writing less code with Serverless on AWS at FrOSCon 2021
Writing less code with Serverless on AWS at FrOSCon 2021

The purpose of Serverless is to focus on writing the code that delivers business value and offload undifferentiated heavy lifting to the Cloud providers or SaaS vendors of your choice. Today’s code quickly becomes tomorrow’s technical debt even if you meet the perfect decision. The less you own, the better it is from the maintainability point of view. In this talk I will go through examples of the various Serverless architectures on AWS where you glue together different Serverless managed services relying mostly on configuration, significantly reducing the amount of the code written to perform the task. Own less, build more!

awscloudcloud computing
Writing less code with Serverless on AWS at AWS User Group Nairobi
Writing less code with Serverless on AWS at AWS User Group NairobiWriting less code with Serverless on AWS at AWS User Group Nairobi
Writing less code with Serverless on AWS at AWS User Group Nairobi

The purpose of Serverless is to focus on writing the code that delivers business value and offload undifferentiated heavy lifting to the Cloud providers or SaaS vendors of your choice. Today’s code quickly becomes tomorrow’s technical debt even if you meet the perfect decision. The less you own, the better it is from the maintainability point of view. In this talk I will go through examples of the various Serverless architectures on AWS where you glue together different Serverless managed services relying mostly on configuration, significantly reducing the amount of the code written to perform the task. Own less, build more!

awscloudcloud computing
Why Cloud?
Traditional Computing
§ On premise, or hosted bare metal machines
| @Chris__Bailey
Traditional Computing
§ On premise, or hosted bare metal machines
§ Capital Expenditure (CapEX):
- Upfront cost, followed by depreciation
| @Chris__Bailey
Traditional Computing
§ On premise, or hosted bare metal machines
§ Capital Expenditure (CapEX):
- Upfront cost, followed by depreciation
§ Requirement for accurate capacity planning
- Estimate hardware for given load
- Project future load requirements
| @Chris__Bailey

Recommended for you

Use GitLab with Chaos Engineering to Harden your Applications + OpenEBS 1.3 ...
 Use GitLab with Chaos Engineering to Harden your Applications + OpenEBS 1.3 ... Use GitLab with Chaos Engineering to Harden your Applications + OpenEBS 1.3 ...
Use GitLab with Chaos Engineering to Harden your Applications + OpenEBS 1.3 ...

The document provides an overview of new features in OpenEBS 1.3 including support for Kubernetes 1.16 APIs, enhancements like auto scaling of cStor pools and initial support for NDM prometheus metrics exporter, and bug fixes. It discusses using GitLab with OpenEBS for running GitLab and storing application data and using Litmus for injecting chaos in GitLab pipelines. The presentation covers use cases like using OpenEBS as persistent storage for GitLab, keeping CI data closer to reality with immediate access to failed environments, and practicing chaos engineering to increase resiliency from CI pipelines to production.

openebsopenebs enterprise platformgitlab
Measure and Increase Developer Productivity with Help of Serverless at AWS Co...
Measure and Increase Developer Productivity with Help of Serverless at AWS Co...Measure and Increase Developer Productivity with Help of Serverless at AWS Co...
Measure and Increase Developer Productivity with Help of Serverless at AWS Co...

The goal of Serverless is to focus on writing the code that delivers business value and offload everything else to your trusted partners (like Cloud providers or SaaS vendors). You want to iterate quickly and today’s code quickly becomes tomorrow’s technical debt. In this talk we will show why Serverless adoption increases the developer productivity and how to measure it. We will also go through AWS Serverless architectures where you only glue together different Serverless managed services relying solely on configuration, minimizing the amount of the code written.

awsserverlesscloud computing
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

Your website is probably vulnerable and gonna be hacked one day. Here're 15 ready-to-use tips on how you can make your web applications more secure. How to protect web application from hacker attacks and mitigate DDoS with NGINX web server.

web application securityddosnginx
Traditional Computing
§ On premise, or hosted bare metal machines
§ Capital Expenditure (CapEX):
- Upfront cost, followed by depreciation
§ Requirement for accurate capacity planning
- Estimate hardware for given load
- Project future load requirements
§ IT is seen as a cost centre
| @Chris__Bailey
Capacity Planning
§ Find a representative benchmark?
| @Chris__Bailey
SPECjEnterprise 2010 (spec.org)
Capacity Planning
§ Find a representative benchmark?
- SPECjbb2015
- SPECjEnterprise2010
- SPECjms2007
- SPECjvm2008
| @Chris__Bailey
SPECjbb2015 (spec.org)
Capacity Planning
§ Find a representative benchmark?
- SPECjbb2015
- SPECjEnterprise2010
- SPECjms2007
- SPECjvm2008
| @Chris__Bailey
SPECjbb2015 (spec.org)

Recommended for you

Developers Are Users, Too
Developers Are Users, TooDevelopers Are Users, Too
Developers Are Users, Too

This document discusses conducting user research for an API management product. It outlines the research process of empathizing with users through interviews and personas, defining problems by synthesizing findings, ideating solutions through design studios, and prototyping and testing solutions. The research uncovered that API consumers want easy discovery and secure access to APIs without involving operations. It also found that API managers want observability into API usage. Outcomes of the research included API discovery and documentation pages and secure access pages. The value of user research is building empathy, validating assumptions, and providing structured feedback.

springone 2020ci/cd/ agiledevops
JPA Performance Myths -- JavaOne 2013
JPA Performance Myths -- JavaOne 2013JPA Performance Myths -- JavaOne 2013
JPA Performance Myths -- JavaOne 2013

Every few months, another Joe (or Jane) Shmoe decides it’s time to write an agenda-driven blog post (or presentation for a conference) that shows why a particular flavor of JPA blows all the other competitors out of the water. This session shows that, when properly used/tuned, the JPA implementations from the major providers (EclipseLink, Hibernate, and OpenJPA) all perform nearly the same.

jpaperformance
Writing less code with Serverless on AWS at AWS Community Day DACH 2021
Writing less code with Serverless on AWS at AWS Community Day DACH 2021Writing less code with Serverless on AWS at AWS Community Day DACH 2021
Writing less code with Serverless on AWS at AWS Community Day DACH 2021

The purpose of Serverless is to focus on writing the code that delivers business value and offload undifferentiated heavy lifting to the Cloud providers or SaaS vendors of your choice. Today’s code quickly becomes tomorrow’s technical debt even if you meet the perfect decision. The less you own, the better it is from the maintainability point of view. In this talk I will go through examples of the various Serverless architectures on AWS where you glue together different Serverless managed services relying mostly on configuration, significantly reducing the amount of the code written to perform the task. Own less, build more!

awscloudcloud computing
Capacity Planning
§ Find a representative benchmark?
- SPECjbb2015
- SPECjEnterprise2010
- SPECjms2007
- SPECjvm2008
| @Chris__Bailey
SPECjEnterprise2010 (spec.org)
Capacity Planning
§ Find a representative benchmark?
- SPECjbb2015
- SPECjEnterprise2010
- SPECjms2007
- SPECjvm2008
| @Chris__Bailey
Capacity Planning
§ Find a representative benchmark?
- SPECjbb2015
- SPECjEnterprise2010
- SPECjms2007
- SPECjvm2008
| @Chris__Bailey
§ Find a representative benchmark?
- SPECjEnterprise2010
§ Analyse the results
Capacity Planning
Tested By System Name Result
Java EE Server DB Server
Nodes CPU Nodes CPU
Oracle Corporation
Oracle WebLogic Server Standard Edition Release 12.2.1 on SPARC S7-2
Jun 29, 2016 | HTML | Text
14,121.47 1 16 cores, 2 chips 1 16 cores, 2 chips
Oracle Corporation
Oracle WebLogic Server Standard Edition Release 12.2.1 on SPARC S7-2
Jun 29, 2016 | HTML | Text
14,400.78 1 16 cores, 2 chips 1 16 cores, 2 chip
| @Chris__Bailey

Recommended for you

Performance Testing Cloud-Based Systems
Performance Testing Cloud-Based SystemsPerformance Testing Cloud-Based Systems
Performance Testing Cloud-Based Systems

As cloud computing becomes of strategic importance in the enterprise, part of the solution is no longer on-premise but in the cloud, adding a layer of complexity. Edwin Chan demystifies performance testing of cloud systems and applications by addressing the following key questions: Is performance testing of cloud systems fundamentally different from testing on-premises applications? What are the best practices for performance testing of both cloud and on-premises systems? Performance testing of cloud systems is essentially the same as that of its on-premises counterpart with the exception of the key consideration of network latency. After clearing common misconceptions, Edwin shares the hot topic best practices���adopting an agile/lean methodology, conducting early performance testing, and automating the injection of test data. Discuss the challenges the testing team faces in these days of disruptive and fast-paced technology changes. Take back and apply some of the best practices that fit your organization’s need.

testing
Puppet devops wdec
Puppet devops wdecPuppet devops wdec
Puppet devops wdec

This document discusses configuring Cisco devices using Puppet and Chef automation tools. It provides an overview of: - The benefits of automated configuration vs manual configuration such as reliability, auditing, and drift correction. - How Puppet and Chef work by maintaining configuration state in code and transitioning systems from current to desired state in an idempotent way. - Key components of Puppet like the Puppet master, catalogs, and Puppet agents. And key components of Chef like the Chef server, cookbooks, recipes, and Chef clients. - Cisco's One-PK which provides an API and SDK for developing applications to control and configure Cisco devices, and how Puppet and Chef agents are

puppetconfiguration managementcisco
What's New in IBM Java 8 SE?
What's New in IBM Java 8 SE?What's New in IBM Java 8 SE?
What's New in IBM Java 8 SE?

Java SE 8 is the latest eagerly anticipated release of the Java platform that powers much of IBM's software and provides functionality for you to get your work done. This presentation describes the new features available in the virtual machine and associated libraries and tooling. Learn how to be more productive as a developer, use new techniques for exploiting modern hardware to process large volumes of data in parallel with GPUs, move data efficiently across the network, and exploit the virtualization potential of your data center. The talk outlines a road map for IBM's technology and valuable tips directly from IBM's Java engineers.

ibm java
§ Find a representative benchmark?
- SPECjEnterprise2010
§ Analyse the results
Capacity Planning
Tested By System Name Result
Java EE Server DB Server
Nodes CPU Nodes CPU
Oracle Corporation
Oracle WebLogic Server Standard Edition Release 12.2.1 on SPARC S7-2
Jun 29, 2016 | HTML | Text
14,121.47 1 16 cores, 2 chips 1 16 cores, 2 chips
Oracle Corporation
Oracle WebLogic Server Standard Edition Release 12.2.1 on SPARC S7-2
Jun 29, 2016 | HTML | Text
14,400.78 1 16 cores, 2 chips 1 16 cores, 2 chip
| @Chris__Bailey
§ Find a representative benchmark?
- SPECjEnterprise2010
§ Analyse the results
Capacity Planning
Tested By System Name Result
Java EE Server DB Server
Nodes CPU Nodes CPU
Oracle Corporation
Oracle Weblogic Server Standard Edition Release 12.2.1 on Oracle Server X6-2
Mar 31, 2016 | HTML | Text
NC 1 44 cores, 2 chips 1 44 cores, 2 chips
| @Chris__Bailey
§ Find a representative benchmark?
- SPECjEnterprise2010
§ Analyse the results
Capacity Planning
Tested By System Name Result
Java EE Server DB Server
Nodes CPU Nodes CPU
Oracle Corporation
Oracle Weblogic Server Standard Edition Release 12.2.1 on Oracle Server X6-2
Mar 31, 2016 | HTML | Text
NC 1 44 cores, 2 chips 1 44 cores, 2 chips
| @Chris__Bailey
§ Find a representative benchmark?
- SPECjEnterprise2010
§ Analyse the results
Capacity Planning
Tested By System Name Result
Java EE Server DB Server
Nodes CPU Nodes CPU
Oracle Corporation
Oracle WebLogic Server Standard Edition Release 12.1.3 on Oracle Server X5-2
Apr 1, 2015 | HTML | Text
21,504.30 1 36 cores, 2 chips 1 36 cores, 2 chips
| @Chris__Bailey

Recommended for you

Microservices and functional programming
Microservices and functional programmingMicroservices and functional programming
Microservices and functional programming

A talk I did recently on microservices and functional programming. Microservices are small, single purpose apps that are run as a service, which are usually composed together to provide the real app.

Adopting Java for the Serverless world at Serverless Meetup Singapore
Adopting Java for the Serverless world at Serverless Meetup SingaporeAdopting Java for the Serverless world at Serverless Meetup Singapore
Adopting Java for the Serverless world at Serverless Meetup Singapore

Java is for many years one of the most popular programming languages, but it used to have hard times in the Serverless Community. Java is known for its high cold start times and high memory footprint. For both you have to pay to the cloud providers of your choice. That's why most developers tried to avoid using Java for such use cases. But the times change: Community and cloud providers improve things steadily for Java developers. In this talk we look at the features and possibilities AWS cloud provider offers for the Java developers and look the most popular Java frameworks, like Micronaut, Quarkus and Spring (Boot) and look how (AOT compiler and GraalVM native images play a huge role) they address Serverless challenges and enable Java for broad usage in the Serverless world.

awscloudcloud computing
CFSummit ColdFusion 2015 Load Balancing, Failover and Scalability
CFSummit ColdFusion 2015 Load Balancing, Failover and ScalabilityCFSummit ColdFusion 2015 Load Balancing, Failover and Scalability
CFSummit ColdFusion 2015 Load Balancing, Failover and Scalability

Learn about Coldfusion Load Balancing , Failover and Scaling CF. Learm about the Tomcat Connector Admin for maintaing LB - cfsummit2015

coldfusion tomcat load balancing failover cfsummit
§ Find a representative benchmark?
- SPECjEnterprise2010
§ Analyse the results
Capacity Planning
Tested By System Name Result
Java EE Server DB Server
Nodes CPU Nodes CPU
Oracle Corporation
Oracle WebLogic Server Standard Edition Release 12.1.3 on Oracle Server X5-2
Apr 1, 2015 | HTML | Text
21,504.30 1 36 cores, 2 chips 1 36 cores, 2 chips
| @Chris__Bailey
§ Find a representative benchmark?
- SPECjEnterprise2010
§ Analyse the results
Capacity Planning
Tested By System Name Result
Java EE Server DB Server
Nodes CPU Nodes CPU
Oracle Corporation
Oracle WebLogic Server Standard Edition Release 12.1.3 on Oracle Server X5-2
Apr 1, 2015 | HTML | Text
21,504.30 1 36 cores, 2 chips 1 36 cores, 2 chips
| @Chris__Bailey
§ Find a representative benchmark?
- SPECjEnterprise2010
§ Analyse the results
Capacity Planning
Tested By System Name Result
Java EE Server DB Server
Nodes CPU Nodes CPU
Oracle Corporation
Oracle WebLogic Server Standard Edition Release 12.1.3 on Oracle Server X5-2
Apr 1, 2015 | HTML | Text
21,504.30 1 36 cores, 2 chips 1 36 cores, 2 chips
| @Chris__Bailey
§ Find a representative benchmark?
- SPECjEnterprise2010
§ Analyse the results
- Intel® Xeon® processor E5- 2600 v3 @3.6GHz
Capacity Planning
Tested By System Name Result
Java EE Server DB Server
Nodes CPU Nodes CPU
Oracle Corporation
Oracle WebLogic Server Standard Edition Release 12.1.3 on Oracle Server X5-2
Apr 1, 2015 | HTML | Text
21,504.30 1 36 cores, 2 chips 1 36 cores, 2 chips
| @Chris__Bailey

Recommended for you

Java EE 7: Boosting Productivity and Embracing HTML5
Java EE 7: Boosting Productivity and Embracing HTML5Java EE 7: Boosting Productivity and Embracing HTML5
Java EE 7: Boosting Productivity and Embracing HTML5

The document discusses the key features of Java EE 7 including improved developer productivity through more annotated POJOs, less boilerplate code, and a cohesive integrated platform. It highlights top features such as WebSocket client/server endpoints, batch applications, JSON processing, concurrency utilities, simplified JMS API, and more annotated POJOs. The document provides details on these features and code examples for concepts like WebSocket chat servers, JSON streaming API, batch job specification, and simplified JMS message sending.

wildflyhtml5javaee
Cloud-based performance testing
Cloud-based performance testingCloud-based performance testing
Cloud-based performance testing

1. The document discusses using cloud computing for performance testing by provisioning virtual machines and load generation servers in the cloud instead of on-premise servers. 2. Commercial testing products and open-source frameworks like JMeter can be used for cloud-based performance testing, with benefits including lower costs, ability to simulate large-scale loads, and geographic distribution. 3. A case study describes a custom Hailstorm framework built on JMeter that was able to simulate 40,000 concurrent users for a client, providing rapid and cost-effective performance metrics at scale.

productstestingperformance improvement
Playgrounds: Mobile + Swift = BFF
Playgrounds: Mobile + Swift = BFFPlaygrounds: Mobile + Swift = BFF
Playgrounds: Mobile + Swift = BFF

Over the last 12 months Swift has gone from an emerging language on the server, to a real one. The ability to run Swift on both Mobile and Server, works ideally in the Backend for Frontend "BFF") pattern.

thoughtworksswiftserver
§ Find a representative benchmark?
- SPECjEnterprise2010
§ Analyse the results
§ Calculate transactions per core
Capacity Planning
Tested By System Name Result
Java EE Server DB Server
Nodes CPU Nodes CPU
Oracle Corporation
Oracle WebLogic Server Standard Edition Release 12.1.3 on Oracle Server X5-2
Apr 1, 2015 | HTML | Text
21,504.30 1 36 cores, 2 chips 1 36 cores, 2 chips
| @Chris__Bailey
§ Find a representative benchmark?
- SPECjEnterprise2010
§ Analyse the results
§ Calculate transactions per core
- 21,504.30 / 36 = 597.3 EjOPS/core
Capacity Planning
Tested By System Name Result
Java EE Server DB Server
Nodes CPU Nodes CPU
Oracle Corporation
Oracle WebLogic Server Standard Edition Release 12.1.3 on Oracle Server X5-2
Apr 1, 2015 | HTML | Text
21,504.30 1 36 cores, 2 chips 1 36 cores, 2 chips
| @Chris__Bailey
Capacity Planning
| @Chris__Bailey
Time
Capacity
Capacity Planning
| @Chris__Bailey
Time
Capacity
Predicted Load

Recommended for you

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...

The document discusses how the economics of cloud computing will change how Java applications are developed and deployed. Cloud providers charge for computing resources on an hourly basis, incentivizing lighter, more efficient applications. Java applications will need to reduce their memory footprints and startup times to lower costs. Developers will also need to design applications to be resilient to failures and easier to debug remotely without access to instances. The rise of APIs and metering of resources will require Java and the JVM to become leaner and more flexible to run optimally in cloud environments.

Practical Performance: Understand and improve the performance of your applica...
Practical Performance: Understand and improve the performance of your applica...Practical Performance: Understand and improve the performance of your applica...
Practical Performance: Understand and improve the performance of your applica...

This session discusses how you can maximize the performance of your application deployment with tools that are native to your server platform as well as cross-platform Java analysis and monitoring tools. The session begins with systematic steps you can take to locate a performance problem in a complex system and moves on to analysis you can do to understand the root cause of the problem. The picture is completed by consideration of the tools and techniques available to monitor application performance in normal operation so that you can catch performance issues before they build up into serious problems. Presented at JavaOne 2012 Video available from Parleys.com: https://www.parleys.com/talk/the-hidden-world-your-java-application-what-its-really-doing

tuningjvmjava
Software Archaeology
Software ArchaeologySoftware Archaeology
Software Archaeology

As Java deployments have become more complex, it has become harder and harder to get good insight into the structure and execution flow of the application. This applies particularly where middleware and third-party components or legacy software that has little or no design documentation is involved. This session introduces you to software archaeology: how to build an understanding of the layout and execution of your Java application from the deployed application itself. Presented at JavaOne 2012.

Capacity Planning
| @Chris__Bailey
Time
Capacity
Predicted Load
Purchasing

Delay
Capacity Planning
| @Chris__Bailey
Time
Capacity
Predicted Load
Purchasing

Delay
Capacity Planning
| @Chris__Bailey
Time
Capacity
Predicted Load
Purchasing

Delay
Capacity Requirement
Capacity Planning
| @Chris__Bailey
Time
Capacity
Predicted Load
Purchasing

Delay
Capacity Requirement

Recommended for you

Best Romantic Getaways for Adventures Couples
Best Romantic Getaways for Adventures Couples Best Romantic Getaways for Adventures Couples
Best Romantic Getaways for Adventures Couples

Discover the best adventure activities you can enjoy with your loved one. These destination are sure to provide adrenaline fueled activities to strengthen the bond between soulmates.

american south westwinter sportswater sports
Once upon a time: Why operations mythology matters
Once upon a time: Why operations mythology mattersOnce upon a time: Why operations mythology matters
Once upon a time: Why operations mythology matters

Operations people frequently communicate and learn through stories and mythology. Much like fairy tales: some of this mythology is healthy, some cautionary and some moralistic. Your Operations mythology is a strong element in how your organisational culture is shaped and more importantly can influence how your Operations team makes decisions. I (with some help from Hans Christian Andersen and the Brothers Grimm) am going to examine why these stories and mythology matter. We’ll look at how these shape your culture and set the mood for your Operations team. You’ll see why and how mythology, whether you’re in a giant enterprise or a tiny startup, often subconsciously influences the decisions and choices you make and the risks you’re prepared to take. Finally, I’ll present some ways you can tell good stories, build healthy mythology, make use of that mythology for profit, and how you can eradicate the mythology and stories that give your Operation’s team nightmares.

mythoperationsorganizational culture
Monitoring As A Service - Modernity and Self-Service CraftConf 2016
Monitoring As A Service - Modernity and Self-Service CraftConf 2016Monitoring As A Service - Modernity and Self-Service CraftConf 2016
Monitoring As A Service - Modernity and Self-Service CraftConf 2016

Building a modern monitoring environment is more than just using the latest awesome tools, collecting all the data, displaying numerous graphs, and knowing when things go wrong. A modern monitoring environment is more than tools and infrastructure. It’s a service. A service you provide to your whole team: developers, operations, security, and the business. This talk is about how you can build monitoring environments (or extend your existing environment) that are customer-focused rather than infrastructure focused. You’ll see how you can treat your needs and the needs of your organization as customer requirements, and build monitoring that is consumable and configurable on demand. We’ll focus on: * You are not the only customer of your monitoring * What does monitoring as a service look like? * How do we move to a customer-driven service? * How does this change how your monitoring environment operates? By the end of the talk you should be able to understand what you need in order to make monitoring available as a service to anyone in your organization.

monitoringsysadmincraftconf
Capacity Planning
| @Chris__Bailey
Time
Capacity
Predicted Load
Purchasing

Delay
Predicted Load + 10%
Capacity Requirement
Capacity Planning
| @Chris__Bailey
Time
Capacity
Predicted Load
Capacity Requirement
Purchasing

Delay
Predicted Load + 10%
Capacity Planning
| @Chris__Bailey
Time
Capacity
Predicted Load
Capacity Requirement
Purchasing

Delay
Predicted Load + 10%
Capacity Planning
| @Chris__Bailey
Time
Capacity
Predicted Load
Capacity Requirement
Purchasing

Delay

Recommended for you

Developing Good Operations Tools
Developing Good Operations ToolsDeveloping Good Operations Tools
Developing Good Operations Tools

A talk about lessons learned from building developer and sysadmin-facing tools at Puppet and Docker. It’s applicable to open source tools for broader use and the tools you and your teams develop inside your organization. Building tools, both external and internal, is hard. Getting people to adopt those tools is even harder. These are ideas to make it easier.

operationsmonitoringdevops
D Y N A C A C H E Wxs
D Y N A C A C H E WxsD Y N A C A C H E Wxs
D Y N A C A C H E Wxs

The document discusses using Dynacache with WebSphere Extreme Scale (WXS) to improve the performance and scalability of caching for WebSphere Application Server (WAS) applications. WXS provides a "drop-in" cache that can be used instead of the default WAS caching layer without code changes. This allows the entire WXS grid to act as the cache, providing better scalability. It also provides a more efficient single network cache. The WXS Dynacache plugin leverages the power of WXS's distributed and scalable caching architecture to provide a robust caching solution for WAS applications with improved performance, flexibility, and high availability.

D Y N A C A C H E Wxs
D Y N A C A C H E WxsD Y N A C A C H E Wxs
D Y N A C A C H E Wxs

The document discusses using Dynacache with WebSphere Extreme Scale (WXS) to improve the performance and scalability of caching for WebSphere Application Server (WAS) applications. WXS provides a "drop-in" cache that can be used instead of the default WAS caching without code changes. This allows the entire WXS grid to act as the cache, providing better scalability. Key benefits include better performance through caching of expensive operations, leveraging the power of a distributed cache architecture, and increased flexibility and capacity for large applications.

dynacache
Capacity Planning
| @Chris__Bailey
Time
Capacity
Predicted Load
Capacity Requirement
Purchasing

Delay
Excess Capacity
Excess Capacity
Capacity Planning
§ Size for peak demand
- Allow for Black Friday / Cyber Monday
- Or just changes in load throughout each day
| @Chris__Bailey
Capacity Planning
§ Size for peak demand
- Allow for Black Friday / Cyber Monday
- Or just changes in load throughout each day
§ Allow for High Availability (HA) and Disaster Recovery (DR)
- Rule of three for HA - 50% extra capacity
- Full fail-over for DR - 100% extra capacity
| @Chris__Bailey
Capacity Planning
§ Size for peak demand
- Allow for Black Friday / Cyber Monday
- Or just changes in load throughout each day
§ Allow for High Availability (HA) and Disaster Recovery (DR)
- Rule of three for HA - 50% extra capacity
- Full fail-over for DR - 100% extra capacity
§ Oh, and what about capacity for integration, stress and performance test?
| @Chris__Bailey

Recommended for you

Web Sphere Problem Determination Ext
Web Sphere Problem Determination ExtWeb Sphere Problem Determination Ext
Web Sphere Problem Determination Ext

This document provides an overview and agenda for the "Busy Java Developer's Guide to WebSphere Debugging & Troubleshooting" presentation. The presentation covers various WebSphere Application Server components, troubleshooting tools like IBM Support Assistant, JVM troubleshooting tools, problem determination tools, common problem scenarios, how customers run into trouble, and includes a demo and Q&A section. It provides an in-depth look at debugging and resolving issues with WebSphere Application Server.

troubleshooting
Caching technology comparison
Caching technology comparisonCaching technology comparison
Caching technology comparison

Dynacache and Memcached are caching technologies for Java applications. Dynacache is built into WebSphere Application Server and caches content in JVM memory, allowing cache operations through POJO calls. Memcached is an open-source, high-performance distributed memory caching system where keys and values are transmitted over TCP/IP and cached content is not stored in JVM memory. Each technology has advantages such as Dynacache supporting memory and disk storage with size restrictions and faster operations through POJO calls without serialization, while Memcached does not consume memory in the Java heap.

dynacachememcached
Scalable, Available and Reliable Cloud Applications with PaaS and Microservices
Scalable, Available and Reliable Cloud Applications with PaaS and MicroservicesScalable, Available and Reliable Cloud Applications with PaaS and Microservices
Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

Presentation given at AtTheFrontend.dk on 27 May 2015 covering an introduction to microservices and how Platform-as-a-Service helps with many of the challenges deploying microservices. Example supporting technologies include Bluemix / Cloud Foundry, Docker and Netflix OSS.

cloudfoundry bluemix microservices netflixoss dock
Most enterprises have hardware utilisation below 20%
Most enterprises have hardware utilisation below 20%
and below 10% for workloads with peaks
Capacity Planning and Agility
§ Time to obtain capacity affects operational agility
§ Market opportunities lost because of lead time for new projects
| @Chris__Bailey
Capacity Planning and Agility
§ Time to obtain capacity affects operational agility
§ Market opportunities lost because of lead time for new projects
§ 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.
| @Chris__Bailey

Recommended for you

2012 04-09-v2-tdp-1167-cdi-bestpractices-final
2012 04-09-v2-tdp-1167-cdi-bestpractices-final2012 04-09-v2-tdp-1167-cdi-bestpractices-final
2012 04-09-v2-tdp-1167-cdi-bestpractices-final

This document discusses patterns and best practices for dependency injection using the Contexts and Dependency Injection (CDI) specification. It provides an overview of CDI concepts like scopes, qualifiers, producers, events, decorators, and alternatives. It also discusses how CDI is implemented in WebSphere Application Server, including bean failover support.

EUDAT Research Data Management | www.eudat.eu |
EUDAT Research Data Management | www.eudat.eu | EUDAT Research Data Management | www.eudat.eu |
EUDAT Research Data Management | www.eudat.eu |

| www.eudat.eu | The presentation gives an introduction to Research Data Management, explaining why it is important to manage and share data. November 2016

eudattrainingresearch data management
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

The document describes a workshop on using the WebSphere Application Server Performance Tuning Toolkit (PTT) to analyze performance issues in the Daytrader application. It includes instructions on setting up the environment, installing Daytrader, and walking through 5 scenarios that simulate different types of performance problems: synchronization blocking, deadlock, high CPU usage, connection leak, and memory leak. For each scenario, it describes how to trigger the problem, monitor it using the PTT, and analyze the issue using thread dumps and the ISA V5 tool. The goal is to help users understand common performance issues and how to diagnose them.

ptt
Cloud Nirvana
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
| @Chris__Bailey
Cloud Values
§ Much shorter “purchasing delay”
§ Return integration, stress and performance test environments after use
§ Cloud guarantees remove need for DR
| @Chris__Bailey
Traditional Capacity Planning
| @Chris__Bailey
Time
Capacity
Predicted Load
Capacity Requirement
Purchasing

Delay
Excess Capacity
Excess Capacity

Recommended for you

Taking the Application Server to Web Scale with Netflix Open Source Software
Taking the Application Server to Web Scale with Netflix Open Source SoftwareTaking the Application Server to Web Scale with Netflix Open Source Software
Taking the Application Server to Web Scale with Netflix Open Source Software

Presentation from JavaOne providing an introduction to microservices, the Netflix OSS projects Eureka, Ribbon, Hystrix and Archaius, and the open source work that has been done to make them more consumable in WebSphere Application Server Liberty Profile

microservices netflixoss websphere liberty javaone
1812 icap-v1.3 0430
1812 icap-v1.3 04301812 icap-v1.3 0430
1812 icap-v1.3 0430

The ICAP Integrated Development Environment (IDE) provides a number of standard development tools to ease the design of modern applications. Mobile (Worklight) Includes IBM's industry leading mobile development platform Java (WebSphere Liberty Profile) Rapidly build next-generation, engaging applications for the WebSphere Application Server Liberty Profile. JavaScript (Node.js) Easily build applications with the most popular JavaScript runtime for event-driven server side development . Cloud Explorer Quickly discover shared services to enhance applications. Develop custom services to share with others.

Caching technology comparison
Caching technology comparisonCaching technology comparison
Caching technology comparison

The document discusses and compares caching technologies for Java applications, specifically Memcached and DistributedMap. It provides an overview of general object cache characteristics and how cache instances work. Memcached is described as an open-source, high-performance distributed memory caching system where each cluster of servers is a single cache instance. DistributedMap is a built-in component of WebSphere Application Server that allows for multiple cache instances within a single JVM. The document outlines some advantages of each system and poses some open questions for further performance comparisons.

Cloud Capacity Planning
| @Chris__Bailey
Time
Capacity
Predicted Load
Capacity Requirement
Excess Capacity
Excess Capacity
Cloud Capacity Planning
| @Chris__Bailey
Time
Capacity
Predicted Load
Capacity Requirement
Excess Capacity
Capacity Planning and Agility
§ 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.
| @Chris__Bailey
Capacity Planning and Agility
§ 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.
Achievement Unlocked!
| @Chris__Bailey

Recommended for you

Concierge: Bringing OSGi (Back) to Embedded Devices
Concierge: Bringing OSGi (Back) to Embedded DevicesConcierge: Bringing OSGi (Back) to Embedded Devices
Concierge: Bringing OSGi (Back) to Embedded Devices

JavaOne 2013 Talk on bringing OSGi back to embedded devices through Concierge, a new version of the optimized OSGi core framework implementation.

javaoneembedded systemosgi
Novinky v Oracle Database 18c
Novinky v Oracle Database 18cNovinky v Oracle Database 18c
Novinky v Oracle Database 18c

Prezentace ze semináře ODA Partner Enablement Zámek Berchtold, 12.4.2018 Prezentoval Patrik Plachý,Senior Consultant Oracle

Meetup Oracle Database: 3 Analizar, Aconsejar, Automatizar… las nuevas funcio...
Meetup Oracle Database: 3 Analizar, Aconsejar, Automatizar… las nuevas funcio...Meetup Oracle Database: 3 Analizar, Aconsejar, Automatizar… las nuevas funcio...
Meetup Oracle Database: 3 Analizar, Aconsejar, Automatizar… las nuevas funcio...

Las nuevas arquitecturas, servicios y micro-servicios web, aplicaciones y apps, Bots, IoT, AI, etc., que demandan las organizaciones, necesitan cada vez más del talento y experiencia de los Administradores de Bases de Datos para dar consejos, sugerencias y respuestas que aporten un valor diferencial a los grupos de desarrollo y usuarios de negocio. Te mostramos las claves del nuevo rol del DBA, que complementa la “A” de Administrar con: Analizar, Aconsejar, Automatizar y crear Arquitecturas eficientes y Autónomas para la gestión Avanzada de datos, colaborando con los desarrolladores y usuarios desde un conocimiento profundo de las base de datos.

application continuitydatabasedba
Other advantages of Cloud
§ Globally distributed data centres and locality
| @Chris__Bailey
https://aws.amazon.com/about-aws/global-infrastructure/
Other advantages of Cloud
§ Globally distributed data centres and locality
| @Chris__Bailey
https://aws.amazon.com/about-aws/global-infrastructure/
Trouble in Paradise?
OpEx vs CapEx…
§ Rent vs Buy
| @Chris__Bailey

Recommended for you

Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...

Dyn delivers exceptional Internet Performance. Enabling high quality services requires data centers around the globe. In order to manage services, customers need timely insight collected from all over the world. Dyn uses DataStax Enterprise (DSE) to deploy complex clusters across multiple datacenters to enable sub 50 ms query responses for hundreds of billions of data points. From granular DNS traffic data, to aggregated counts for a variety of report dimensions, DSE at Dyn has been up since 2013 and has shined through upgrades, data center migrations, DDoS attacks and hardware failures. In this webinar, Principal Engineers Tim Chadwick and Rick Bross cover the requirements which led them to choose DSE as their go-to Big Data solution, the path which led to SPARK, and the lessons that we’ve learned in the process.

apache sparkdatastax enterpriseapache cassandra
Estimating the Total Costs of Your Cloud Analytics Platform
Estimating the Total Costs of Your Cloud Analytics PlatformEstimating the Total Costs of Your Cloud Analytics Platform
Estimating the Total Costs of Your Cloud Analytics Platform

Organizations today need a broad set of enterprise data cloud services with key data functionality to modernize applications and utilize machine learning. They need a platform designed to address multi-faceted needs by offering multi-function Data Management and analytics to solve the enterprise’s most pressing data and analytic challenges in a streamlined fashion. They need a worry-free experience with the architecture and its components. 

datadata managementanalytics
Cost Effectively Run Multiple Oracle Database Copies at Scale
Cost Effectively Run Multiple Oracle Database Copies at Scale Cost Effectively Run Multiple Oracle Database Copies at Scale
Cost Effectively Run Multiple Oracle Database Copies at Scale

Scaling multiple databases with a single legacy storage system works well from a cost perspective, but workload conflicts and hardware contention make these solutions an unattractive choice for anything but low-performance applications.

next-generation data centersolidfire
OpEx vs CapEx…
§ Rent vs Buy
§ No upfront cost, but no end to cost
| @Chris__Bailey
OpEx vs CapEx…
§ Rent vs Buy
§ No upfront cost, but no end to cost
§ Drive for operational efficiency
| @Chris__Bailey
OpEx vs CapEx…
§ Rent vs Buy
§ No upfront cost, but no end to cost
§ Drive for operational efficiency
§ Focus on ROI for individual apps and app features
| @Chris__Bailey
How is Cloud cost calculated?
| @Chris__Bailey
Provider Type Memory CPUs Cost/month
Amazon EC2 Linux t2.nano 512MB 1 vCPU $4.68
Linux t2.micro 1GB 1 vCPU $9.36
Linux t2.small 2GB 1 vCPU $18.72
Linux t2.medium 4GB 2 vCPUs $37.44
Digital Ocean Standard 512MB 1 Core Processor $5.00
Standard 1GB 1 Core Processor $10.00
Standard 2GB 2 Core Processors $20.00
Pivotal Cloud Foundry App Instance 512MB 4 vCPUs $10.80
App Instance 1GB 4 vCPUs $21.60
App Instance 2GB 4 vCPUs $43.20
Heroku Standard 1x 512MB 1 Share $25.00
Standard 2x 1GB 2 Shares $50.00
IBM Bluemix Instant Runtimes 512MB 4 vCPUs $24.15
Instant Runtimes 1GB 4 vCPUs $49.35
Containers 512MB 4 vCPUs $10.22
Containers 1GB 4 vCPUs $20.59

Recommended for you

Elastic-Engineering
Elastic-EngineeringElastic-Engineering
Elastic-Engineering

To Build Cloud-Native Apps Using Composable Enterprise Architecture Create Elastic Engineering (Pods) Teams To Manage SpecOps: From Specs to Ops

elastic engineeringdddagile
VMworld 2013: Virtualizing Databases: Doing IT Right
VMworld 2013: Virtualizing Databases: Doing IT Right VMworld 2013: Virtualizing Databases: Doing IT Right
VMworld 2013: Virtualizing Databases: Doing IT Right

VMworld 2013 Michael Corey, Ntirety, Inc Jeff Szastak, VMware Learn more about VMworld and register at http://www.vmworld.com/index.jspa?src=socmed-vmworld-slideshare

vmwarevirtualizing applicationsvmworld 2013
OpenStack Silicon Valley - Enterprise Storage Trends Driving OpenStack Features
OpenStack Silicon Valley - Enterprise Storage Trends Driving OpenStack FeaturesOpenStack Silicon Valley - Enterprise Storage Trends Driving OpenStack Features
OpenStack Silicon Valley - Enterprise Storage Trends Driving OpenStack Features

This document discusses how enterprise storage trends are driving new features in OpenStack. Traditional enterprise infrastructure is individualized while cloud applications are transitory and containers are more efficient but also more transient than VMs. This shift in responsibilities from infrastructure to applications is challenging traditional enterprise applications and IT organizations to manage everything on the cloud. OpenStack is working to address these challenges by improving features like live migration, replication, Fibre Channel support, quotas, and container storage integration to better support managing legacy enterprise applications in an enterprise cloud.

cindersolidfireopenstack
$£€¥ = GB/Hr
Movement from CPU to Memory based costs is a
fundamental shift for Application Architectures
§ Find a representative benchmark?
- SPECjEnterprise2010
§ Analyse the results
- Intel® Xeon® processor E5- 2600 v3 @3.6GHz
Capacity Planning
Tested By System Name Result
Java EE Server DB Server
Nodes CPU Nodes CPU
Oracle Corporation
Oracle WebLogic Server Standard Edition Release 12.1.3 on Oracle Server X5-2
Apr 1, 2015 | HTML | Text
21,504.30 1 36 cores, 2 chips 1 36 cores, 2 chips
| @Chris__Bailey
Reading the fine print…
Hardware Vendor: Oracle Corporation
Model Name: Oracle Server X5-2
Processor: Intel Xeon processor E5-2699 v3 (Intel Turbo Boost Technology up to 3.6 GHz)
MHz: 2300
# of CPUs: 36 cores, 2 chips, 18 cores/chip, 2 threads/core (Hyper-Threading)
Memory (MB): 262144
Disks: 2x 600GB SAS-2 HDD and 2x 400GB SSD
Network Interface: 4x 10Gbit onboard and 3x 10GBit Dual-port NICs
JVM Options:
-server -Xms18g -Xmx18g -Xmn16g -Xss256k -XX:MetaspaceSize=200M -XX:+AggressiveOpts -XX:+UseParallelOldGC -XX:ParallelGCThreads=9 -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps
-XX:InitialCodeCacheSize=200m -XX:ReservedCodeCacheSize=200m -XX:+UseCompressedOops -XX:-UseBiasedLocking -XX:+AlwaysPreTouch -XX:InitialSurvivorRatio=24 -XX:SurvivorRatio=24 -XX:TargetSurvivorRatio=90
-XX:-UseAdaptiveSizePolicy -XX:+UseLargePages -Djava.net.preferIPv4Stack=true -Djaxws.transport.streaming=true -XX:-TieredCompilation -Dweblogic.ProductionModeEnabled=true
-Dweblogic.management.discover=false -Dweblogic.diagnostics.debug.DebugLogger.DISABLED=true -Doracle.jdbc.defaultRowPrefetch=200
-Djavax.xml.parsers.DocumentBuilderFactory=weblogic.xml.jaxp.RegistryDocumentBuilderFactory -Dweblogic.threadpool.MinPoolSize=30 -Dsun.net.inetaddr.ttl=0 -Dnetworkaddress.cache.ttl=0
-Dcom.sun.xml.ws.spi.db.BindingContextFactory=com.sun.xml.ws.db.glassfish.JAXBRIContextFactory -Djavax.xml.bind.JAXBContext=com.sun.xml.bind.v2.ContextFactory
-Dweblogic.MuxerClass=weblogic.socket.NIOSocketMuxer -Dweblogic.SocketReaders=2
Server instances were started using numactl binding 1 instance per 9 cores.
| @Chris__Bailey

Recommended for you

Couchbase Singapore Meetup #2: Why Developing with Couchbase is easy !!
Couchbase Singapore Meetup #2:  Why Developing with Couchbase is easy !! Couchbase Singapore Meetup #2:  Why Developing with Couchbase is easy !!
Couchbase Singapore Meetup #2: Why Developing with Couchbase is easy !!

The document discusses new features and improvements in Couchbase 4.6, including timestamp-based conflict resolution for cross datacenter replication, secret management and pluggable authentication modules for security, and new CBImport and CBExport tools. It also covers updates to search and query functionality.

sqlquerynosql
Data Warehouse Modernization - Big Data in the Cloud Success with Qubole on O...
Data Warehouse Modernization - Big Data in the Cloud Success with Qubole on O...Data Warehouse Modernization - Big Data in the Cloud Success with Qubole on O...
Data Warehouse Modernization - Big Data in the Cloud Success with Qubole on O...

The effective use of big data is the key to gaining a competitive advantage and outperforming the competition. This change demands that companies consume and blend enormous amount of data created from divergent and inherently mismatched sources, which represents a paradigm shift to the traditional data warehouse. Companies need to modernize their data warehouse, augmenting it with a platform that allows storage, processing, exploration and analysis of large and diverse datasets without limiting the ability to deliver the data access, and flexibility responding to the needs of the business. That’s where Oracle Cloud and Qubole work together delivering a new breed of data platform —capable of storing and processing the overwhelming amount of data that on-premises big data deployments cannot handle. Watch this on-demand webinar to understand: - Why deploying big data on-premises is expensive, complex to maintain and limits your ability to scale across new use cases and data sources - How Oracle Bare Metal Cloud's predictable and fast performance compute and network services deliver the foundation of a cost-effective, high-performance big data platform - How Qubole leverages Oracle Bare Metal Cloud to provide a turnkey big data service that optimizes cost, performance, and scale, enabling self-service data exploration. Qubole delivers a cloud-based, turnkey, self-service big data service that removes the complexity and reduces the cost of doing big data. It leverages Oracle Bare Metal Cloud’s next generation of scalable, inexpensive and performant compute, network and storage public cloud infrastructure to provide a solution that accelerates time to market and reduces the risk of your big data initiatives.

cloudbig data
Optimizing MySQL for Cascade Server
Optimizing MySQL for Cascade ServerOptimizing MySQL for Cascade Server
Optimizing MySQL for Cascade Server

This document summarizes James Kreuziger's presentation on optimizing MySQL for Cascade Server. The presentation covered choosing a MySQL version and configuration, testing tools, and the results of testing different MySQL configurations and key block sizes on storage space usage and load performance. It was aimed at Cascade administrators and provided an overview of topics like hardware requirements, the InnoDB buffer pool, and recommended resources for MySQL configuration and optimization.

Reading the fine print…
Hardware Vendor: Oracle Corporation
Model Name: Oracle Server X5-2
Processor: Intel Xeon processor E5-2699 v3 (Intel Turbo Boost Technology up to 3.6 GHz)
MHz: 2300
# of CPUs: 36 cores, 2 chips, 18 cores/chip, 2 threads/core (Hyper-Threading)
Memory (MB): 262144
Disks: 2x 600GB SAS-2 HDD and 2x 400GB SSD
Network Interface: 4x 10Gbit onboard and 3x 10GBit Dual-port NICs
JVM Options:
-server -Xms18g -Xmx18g -Xmn16g -Xss256k -XX:MetaspaceSize=200M -XX:+AggressiveOpts -XX:+UseParallelOldGC -XX:ParallelGCThreads=9 -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps
-XX:InitialCodeCacheSize=200m -XX:ReservedCodeCacheSize=200m -XX:+UseCompressedOops -XX:-UseBiasedLocking -XX:+AlwaysPreTouch -XX:InitialSurvivorRatio=24 -XX:SurvivorRatio=24 -XX:TargetSurvivorRatio=90
-XX:-UseAdaptiveSizePolicy -XX:+UseLargePages -Djava.net.preferIPv4Stack=true -Djaxws.transport.streaming=true -XX:-TieredCompilation -Dweblogic.ProductionModeEnabled=true
-Dweblogic.management.discover=false -Dweblogic.diagnostics.debug.DebugLogger.DISABLED=true -Doracle.jdbc.defaultRowPrefetch=200
-Djavax.xml.parsers.DocumentBuilderFactory=weblogic.xml.jaxp.RegistryDocumentBuilderFactory -Dweblogic.threadpool.MinPoolSize=30 -Dsun.net.inetaddr.ttl=0 -Dnetworkaddress.cache.ttl=0
-Dcom.sun.xml.ws.spi.db.BindingContextFactory=com.sun.xml.ws.db.glassfish.JAXBRIContextFactory -Djavax.xml.bind.JAXBContext=com.sun.xml.bind.v2.ContextFactory
-Dweblogic.MuxerClass=weblogic.socket.NIOSocketMuxer -Dweblogic.SocketReaders=2
Server instances were started using numactl binding 1 instance per 9 cores.
| @Chris__Bailey
Reading the fine print…
Hardware Vendor: Oracle Corporation
Model Name: Oracle Server X5-2
Processor: Intel Xeon processor E5-2699 v3 (Intel Turbo Boost Technology up to 3.6 GHz)
MHz: 2300
# of CPUs: 36 cores, 2 chips, 18 cores/chip, 2 threads/core (Hyper-Threading)
Memory (MB): 262144
Disks: 2x 600GB SAS-2 HDD and 2x 400GB SSD
Network Interface: 4x 10Gbit onboard and 3x 10GBit Dual-port NICs
7.1GB / core
JVM Options:
-server -Xms18g -Xmx18g -Xmn16g -Xss256k -XX:MetaspaceSize=200M -XX:+AggressiveOpts -XX:+UseParallelOldGC -XX:ParallelGCThreads=9 -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps
-XX:InitialCodeCacheSize=200m -XX:ReservedCodeCacheSize=200m -XX:+UseCompressedOops -XX:-UseBiasedLocking -XX:+AlwaysPreTouch -XX:InitialSurvivorRatio=24 -XX:SurvivorRatio=24 -XX:TargetSurvivorRatio=90
-XX:-UseAdaptiveSizePolicy -XX:+UseLargePages -Djava.net.preferIPv4Stack=true -Djaxws.transport.streaming=true -XX:-TieredCompilation -Dweblogic.ProductionModeEnabled=true
-Dweblogic.management.discover=false -Dweblogic.diagnostics.debug.DebugLogger.DISABLED=true -Doracle.jdbc.defaultRowPrefetch=200
-Djavax.xml.parsers.DocumentBuilderFactory=weblogic.xml.jaxp.RegistryDocumentBuilderFactory -Dweblogic.threadpool.MinPoolSize=30 -Dsun.net.inetaddr.ttl=0 -Dnetworkaddress.cache.ttl=0
-Dcom.sun.xml.ws.spi.db.BindingContextFactory=com.sun.xml.ws.db.glassfish.JAXBRIContextFactory -Djavax.xml.bind.JAXBContext=com.sun.xml.bind.v2.ContextFactory
-Dweblogic.MuxerClass=weblogic.socket.NIOSocketMuxer -Dweblogic.SocketReaders=2
Server instances were started using numactl binding 1 instance per 9 cores.
| @Chris__Bailey
§ Project Management Triangle
§ Fast
§ Good
§ Cheap
§ Pick any two…
Performance Optimisation
Euler Diagram
Cheap
Fast Good
| @Chris__Bailey
§ Performance Triangle
§ Throughput
§ Latency
§ Memory footprint
§ Enterprise software has traditionally chosen

throughput and latency over memory
§ Data caching
§ Garbage Collection
§ Function Inlining
Low
Memory
High
Throughput
Low
Latency
Performance Optimisation
Euler Diagram
| @Chris__Bailey

Recommended for you

Couchbase Chennai Meetup: Developing with Couchbase- made easy
Couchbase Chennai Meetup:  Developing with Couchbase- made easyCouchbase Chennai Meetup:  Developing with Couchbase- made easy
Couchbase Chennai Meetup: Developing with Couchbase- made easy

This session provided an overview of Couchbase Solutions and whats latest and greatest in the new release. This session also talks about how easy is to develop with Couchbase and query the database

databasecouchbase mobileandroid
MySQL Cluster - Latest Developments (up to and including MySQL Cluster 7.4)
MySQL Cluster - Latest Developments (up to and including MySQL Cluster 7.4)MySQL Cluster - Latest Developments (up to and including MySQL Cluster 7.4)
MySQL Cluster - Latest Developments (up to and including MySQL Cluster 7.4)

MySQL Cluster is the distributed, shared-nothing version of MySQL. It’s typically used for applications that need any combination of high availability, real-time performance, and scaling of reads and writes. After a brief introduction to the technology, its uses, and the new features added in MySQL Cluster 7.3, this session focuses on the very latest developments happening in MySQL Cluster 7.4. As you’d expect from a real-time, scalable, distributed, in-memory database, performance continues to be a top priority, as do simplicity of use and robustness. Come hear firsthand what’s being done to make sure MySQL Cluster continues to dominate in mission-critical, high-performance applications.

node.js mysql "mysql cluster" nosql sql memcached7.4
MISYS-KL - Cintra Optimized Oracle Archiecture Solution and Services 1.1.pdf
MISYS-KL - Cintra Optimized Oracle Archiecture Solution and Services 1.1.pdfMISYS-KL - Cintra Optimized Oracle Archiecture Solution and Services 1.1.pdf
MISYS-KL - Cintra Optimized Oracle Archiecture Solution and Services 1.1.pdf

Cintra proposes two optimized Oracle database architecture solutions for Fusion Invest's 100 users: 1) A standard architecture using commodity x86 servers with database log replication for redundancy. 2) An Oracle Database Appliance architecture using physical servers in a non-clustered configuration with database log replication for redundancy. Both solutions would provide 24x7 monitoring for availability and performance as well as implementation and ongoing 24x7 support from Cintra. The costs provided include software licensing, hardware, implementation services, and ongoing support costs.

misys fusion invest spec
Garbage Collection Tradeoff
| @Chris__Bailey
Memory
Heap Size
Garbage Collection Tradeoff
| @Chris__Bailey
Memory
Live in-use data
(Retained Set)
Heap Size
Garbage Collection Tradeoff
| @Chris__Bailey
Memory
Live in-use data
(Retained Set)
Heap Size
Temporary Data
(Garbage)
Temporary Data
(Garbage)
Garbage Collection Tradeoff
| @Chris__Bailey
Memory
Live in-use data
(Retained Set)
Heap Size
Temporary Data
(Garbage)
Temporary Data
(Garbage)

Recommended for you

Implementing SharePoint on Azure, Lessons Learnt from a Real World Project
Implementing SharePoint on Azure, Lessons Learnt from a Real World ProjectImplementing SharePoint on Azure, Lessons Learnt from a Real World Project
Implementing SharePoint on Azure, Lessons Learnt from a Real World Project

This document discusses lessons learned from implementing SharePoint on Azure. It covers Azure architecture concepts like virtual networks, cloud services, availability sets, and load balancing. It provides an example reference architecture for a hybrid on-premises and Azure environment. It also discusses topics like database planning, disk performance, server topology with multiple tiers, and reserving IP addresses. The presentation aims to share best practices for deploying SharePoint on Azure based on a real-world project.

azuremicrosoftsharepoint 2013
Java ee7 with apache spark for the world's largest credit card core systems, ...
Java ee7 with apache spark for the world's largest credit card core systems, ...Java ee7 with apache spark for the world's largest credit card core systems, ...
Java ee7 with apache spark for the world's largest credit card core systems, ...

Financial industry companies need Java EE to power for its business today. Rakuten Card, one of the largest credit card companies in Japan, adopted Java EE 7 for its credit card core systems architecture, from one of the oldest COBOL based mainframe in Japan. Additionally, we chose Apache Spark for super rapid batch execution platform. We completed this big core system migration project successfully. You can learn why we choose Java EE, and Apache Spark for super rapid batch execution, and our experiences and lessons we learned. How to start such a the big project? Why we choose it, how we ported, how use Apache Spark for performance improvements, and launched with? We’ll answer these questions and any that you may have. Additionally, we are going to unveil our future roadmap for expanding our systems as well, with the cutting edge technology and standards.

rakuten technology conference 2017rakutenrtc2017
20240518 - VixulCon 2024 - The Rise of PostgreSQL_ Historic Trends and Modern...
20240518 - VixulCon 2024 - The Rise of PostgreSQL_ Historic Trends and Modern...20240518 - VixulCon 2024 - The Rise of PostgreSQL_ Historic Trends and Modern...
20240518 - VixulCon 2024 - The Rise of PostgreSQL_ Historic Trends and Modern...

Discover the journey of PostgreSQL from its origins at UC Berkeley to its status as the world’s most favored open-source database. This presentation will explore significant historical shifts towards open-source software in enterprise settings and PostgreSQL’s continuous evolution to meet changing technological standards. We will highlight its extensive feature set, accommodating a variety of use cases such as GIS, full text search, JSON, graph, time series, business intelligence, and vector storage. Additionally, we will examine why PostgreSQL’s versatility is highly valued by developers, offering ease of development along with improved performance and scalability.

postgresqldatabaseopen source
Garbage Collection Tradeoff
| @Chris__Bailey
Memory
Live in-use data
(Retained Set)
Heap Size
Temporary Data
(Garbage)
Temporary Data
(Garbage)
Garbage Collection Tradeoff
| @Chris__Bailey
Memory
Live in-use data
(Retained Set)
Heap Size
Temporary Data
(Garbage)
Temporary Data
(Garbage)
40 to 70%
Garbage Collection Tradeoff
| @Chris__Bailey
Memory
Live in-use data
(Retained Set)
Heap Size
Temporary Data
(Garbage)
Temporary Data
(Garbage)
40 to 70%
30 to 60% additional memory for additional performance
Optimising for the Cloud


Recommended for you

Oracle RAC - Customer Proven Scalability
Oracle RAC - Customer Proven ScalabilityOracle RAC - Customer Proven Scalability
Oracle RAC - Customer Proven Scalability

The document discusses Oracle Real Application Clusters (RAC) and provides examples of how it has enabled scalability and high availability for many large customers. It describes how RAC allows databases to scale horizontally across multiple servers, provides several customer cases that have implemented RAC with 4+ nodes, and highlights how RAC provides scalability by design through its instance and global cache architecture.

oraclescalabilityreferences
Private Cloud: Database-as-a-Service with Enterprise Manager : OOW 16
Private Cloud: Database-as-a-Service with Enterprise Manager : OOW 16Private Cloud: Database-as-a-Service with Enterprise Manager : OOW 16
Private Cloud: Database-as-a-Service with Enterprise Manager : OOW 16

Learn how Comcast is building Database-as-a-service with Oracle's Enterprise Manager, Cloud Management Pack.

private clouddatabase-as-a-servicehybrid cloud
FlexPod Datacenter for Oracle’s JD Edwards EnterpriseOne
FlexPod Datacenter for Oracle’s JD Edwards EnterpriseOneFlexPod Datacenter for Oracle’s JD Edwards EnterpriseOne
FlexPod Datacenter for Oracle’s JD Edwards EnterpriseOne

This document discusses the benefits of using FlexPod converged infrastructure for Oracle workloads such as JD Edwards EnterpriseOne. It highlights how FlexPod can help accelerate business processes, improve quality of service, mitigate risk, and provide a better return on investment compared to traditional infrastructure. It also provides performance metrics and details about how FlexPod has been validated for various Oracle solutions.

roiconverged infrastructuresoftware defined storage
Optimising for the Cloud

#1: Choose The Right Language
Memory Usage by Language
| @Chris__Bailey
0
17.5
35
52.5
70
C++
	
	
	
	
	
	
	
	
	
	
	
	
Mem	usage	(MB)
C
Memory Usage by Language
| @Chris__Bailey
0
17.5
35
52.5
70
C++
Go
Sw
i:
Rust
	
	
	
	
	
	
	
	
	
Mem	usage	(MB)
Modern	NativeC
Memory Usage by Language
| @Chris__Bailey
0
17.5
35
52.5
70
C++
Go
Sw
i:
Rust
Ruby
PHP
Python
JavaScript
Erlang
Dart
	
	
	
Mem	usage	(MB)
Modern	Native ScriptingC

Recommended for you

NodeJS Interactive 2019: FaaS meets Frameworks
NodeJS Interactive 2019:  FaaS meets FrameworksNodeJS Interactive 2019:  FaaS meets Frameworks
NodeJS Interactive 2019: FaaS meets Frameworks

The document discusses Function as a Service (FaaS) and how it can be used with frameworks. FaaS allows developers to build and run application functionalities without managing infrastructure. It focuses on business logic over implementation details. The document provides an overview of FaaS and how it works using Apache OpenWhisk as an example. It also discusses how FaaS can scale functions on demand and be used for building microservices and REST APIs. Appsody is presented as a tool that uses FaaS and stacks to provide a development workflow for building cloud-native applications.

appsodynodesexpress
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

Function-as-a-service (FaaS) and serverless platforms increase productivity, enabling you to focus on application code, with the platform taking care of how to deploy, configure, run, and scale the code. They do however require you to adopt a new programming model, creating generic handlers or actions that lack the expressive APIs that you get from frameworks and standards such as Jakarta EE. In this session, you’ll learn how it’s now possible to create FaaS- and serverless-based applications using the same APIs you use today such as JAX-RS and you’ll see a live demo of an application being built and deployed as a cloud native application on Kubernetes using a combination of open source tools and Knative serving.

jax-rsfaasfunctions
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

The move to microservices enables developers to rapidly create and innovate by giving them autonomy to build and deploy applications using the languages, frameworks and technologies that they choose. However, such move requires a cost. Developers require a deeper set of skills to create apps that integrate fully with cloud-native capabilities. The additional complexity is one of the main reasons why most “cloud applications” are co-hosted. Only 38% of cloud developers are leveraging cloud services, and just 12% are building cloud-native applications. These statistics indicate that the majority of applications do not fully leverage and integrate with the additional capabilities that the platform provides. This session will introduce you how to modernize existing and build new cloud-native applications, and show how to utilize open source tools to rapidly develop and build new cloud-native applications with best practises built-in.

nodejsdockerkuberentes
Memory Usage by Language
| @Chris__Bailey
0
17.5
35
52.5
70
C++
Go
Sw
i:
Rust
Ruby
PHP
Python
JavaScript
Erlang
Dart
Java
Scala
Clojure
Mem	usage	(MB)
Modern	Native Scripting JVM	C
Throughput by Language
| @Chris__Bailey
C
0
25
50
75
100
C++
	
	
		
	
	
	
	
	
	
	
	
	
DuraOon
Throughput by Language
| @Chris__Bailey
Modern	NativeC
0
25
50
75
100
C++
Go
Sw
i:
Rust
	
	
	
	
	
	
	
	
	
DuraOon
Throughput by Language
| @Chris__Bailey
Modern	Native ScriptingC
0
25
50
75
100
C++
Go
Sw
i:
Rust
Ruby
PHP
Python
JavaScript
Erlang
Dart
	
	
	
DuraOon

Recommended for you

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

Function-as-a-service (FaaS) and serverless platforms increase productivity, enabling you to focus on application code, with the platform taking care of how to deploy, configure, run, and scale the code. They do, however, require you to adopt a new programming model, creating handlers or actions instead of using expressive APIs such as JAX-RS that you have become familiar with. In this session, you’ll learn how it’s now possible to create FaaS- and serverless-based applications with the same APIs you use today and you’ll see a live demo of an application being built and deployed as a cloud native application on Kubernetes. Presented at Oracle Code One, Sept 16th 2019

javaserverlessfaas
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

The document outlines the history and progress of Server-Side Swift frameworks including Kitura, Vapor, and Perfect from 2015 to the present. It shows the initial releases of these frameworks in 2015-2016 as Swift was opened sourced, their updates to support new Swift versions, and formation of the Swift Server Work Group in 2016 to standardize and coordinate development. Key events include the releases of Swift-NIO in 2018 and ongoing work to graduate projects through the incubation process and improve performance, APIs, and scalability.

swiftserver-side swiftmicroservices
Server-side Swift with Swagger
Server-side Swift with SwaggerServer-side Swift with Swagger
Server-side Swift with Swagger

The Kitura Server-side Swift framework has built support for Swagger and OpenAPI directly into its framework so that it auto-generates its own OpenAPI specification. This presentation show's how that enables Kitura to be used in the much wider OpenAPI ecosystem.

kituraserver-side swiftswift
Throughput by Language
| @Chris__Bailey
Modern	Native Scripting JVM	C
0
25
50
75
100
C++
Go
Sw
i:
Rust
Ruby
PHP
Python
JavaScript
Erlang
Dart
Java
Scala
Clojure
DuraOon
Normalised Throughput/Memory Language
| @Chris__Bailey
C
0
20
40
60
80
C++
	
		
	
	
	
	
	
	
	
	
	
	
DuraOon
Normalised Throughput/Memory Language
| @Chris__Bailey
Modern	NativeC
0
20
40
60
80
C++
Go
Sw
i:
Rust
	
	
		
	
	
	
	
	
	
DuraOon
Normalised Throughput/Memory Language
| @Chris__Bailey
Modern	Native ScriptingC
0
20
40
60
80
C++
Go
Sw
i:
Rust
Ruby
PHP
Python
JavaScript
Erlang
Dart
	
	
	
DuraOon

Recommended for you

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

The fundamental performance characteristics of Node.js make it ideal for building highly performant microservices for a number of workloads. Translating that into highly responsive, scalable solutions however is still far from easy. This session will not just discuss why Node.js is a natural fit for microservices, but will introduce you to the tools and best practices for creating, building, deploying, monitoring and tracing microservices that are both scalable and fault tolerant, and show through a live demo how do that with minimal effort. Speakers: Chris Bailey, Chief Architect, Cloud Native Runtimes, IBM Beth Griggs, Node.js Developer, IBM

kubernetesdockercloud
Index - BFFs vs GraphQL
Index - BFFs vs GraphQLIndex - BFFs vs GraphQL
Index - BFFs vs GraphQL

There are an emerging set of architectures that are designed to optimise how front-end applications access back-end services, the most popular of which are the Backend-For-Frontend (BFF) pattern and the use of GraphQL. The BFF pattern takes the approach that the backend should be bespoke to the front-end it serves, optimised for that front-end, and ideally owned by the front-end team. GraphQL however sits at the other end of the spectrum: providing an optimised but utility backend for all frontends that is agnostic of the clients it serves. Give the two very different approaches, which is the right approach to take? This sessions will introduce the two approaches, highlight their advantages and disadvantages, and help you determine which you should be looking to adopt as the backend technology for your frontend applications.

bffgraphqlweb
Swift Cloud Workshop - Swift Microservices
Swift Cloud Workshop - Swift MicroservicesSwift Cloud Workshop - Swift Microservices
Swift Cloud Workshop - Swift Microservices

The document discusses deploying Swift microservices with Docker and Kubernetes. It covers building a Swift microservice into a Docker container, deploying the container with Kubernetes, and integrating resiliency features like health checks, circuit breakers, and monitoring. Key points include using Dockerfiles to package the application, Helm charts to deploy to Kubernetes, liveness probes to check service health, and circuit breakers to handle failures of downstream services.

swiftdockerkuberenetes
Normalised Throughput/Memory Language
| @Chris__Bailey
Modern	Native Scripting JVM	C
0
20
40
60
80
C++
Go
Sw
i:
Rust
Ruby
PHP
Python
JavaScript
Erlang
Dart
Java
Scala
Clojure
DuraOon
Selecting the Language
§ Ruby on Rails app, 100 instances at 500MB / instance
- 50GB of memory required at $24.15 GB/month
- = $14,490/year
| @Chris__Bailey
Selecting the Language
§ Ruby on Rails app, 100 instances at 500MB / instance
- 50GB of memory required at $24.15 GB/month
- = $14,490/year
§ Switching to Java provides a 7x saving:
- = $2,070/year
| @Chris__Bailey
Selecting the Language
§ Ruby on Rails app, 100 instances at 500MB / instance
- 50GB of memory required at $24.15 GB/month
- = $14,490/year
§ Switching to Java provides a 7x saving:
- = $2,070/year
§ Switching to Swift provides 42x saving:
- = $345/year
| @Chris__Bailey

Recommended for you

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

Codable, introduced in Swift 4, makes is possible to share Swift classes and structs between client and server, making it easy to share data. It can also be used to add such more type safety to other parts of Fullstack Swift. This presentations shows some of the many ways that Codable is being using in Kitura to enable Fullstack Swift.

swiftkiturafullstack
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

In September last year Swift 3 was released, added official support for Swift on Linux for the first time. This provided the scope for Swift to be used for both front-end and back-end development, allowing iOS developers to gain the benefits of full-stack development that Web developers have enjoyed for some time. In just twelve months, this has moved from promise to reality, with full-stack Swift applications not just being possible but being developed and deployed by some of the largest companies in the world. In this session Chris and AB will introduce you to full-stack Swift development, show you how easy it is to get started, and talk about how the IBM MobileFirst for iOS Garage are building full-stack Swift applications their customers.

swiftbffmobile
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

Server Swift has come a long way in the last 12 months, reaching a point where there are multiple successful frameworks and clouds. This session reviews the last year, announces some new capabilities, and outlines some of what to expect in the (near) future.

swiftkituravapor
Selecting the Language
| @Chris__Bailey
C++ Go Swift Rust Ruby PHP Python JScript Erlang Dart Java Scala Clojure
C++ 4.02 10.96 14.65 461.69 251.83 689.22 40.25 359.13 75.16 65.18 79.88 169.17
Go 0.25 2.73 3.64 114.79 62.61 171.37 10.01 89.29 18.69 16.21 19.86 42.06
Swift 0.09 0.37 1.34 42.11 22.97 62.86 3.67 32.75 6.86 5.95 7.29 15.43
Rust 0.07 0.27 0.75 31.52 17.19 47.06 2.75 24.52 5.13 4.45 5.45 11.55
Ruby 0.00 0.01 0.02 0.03 0.55 1.49 0.09 0.78 0.16 0.14 0.17 0.37
PHP 0.00 0.02 0.04 0.06 1.83 2.74 0.16 1.43 0.30 0.26 0.32 0.67
Python 0.00 0.01 0.02 0.02 0.67 0.37 0.06 0.52 0.11 0.09 0.12 0.25
JScript 0.02 0.10 0.27 0.36 11.47 6.26 17.13 8.92 1.87 1.62 1.98 4.20
Erlang 0.00 0.01 0.03 0.04 1.29 0.70 1.92 0.11 0.21 0.18 0.22 0.47
Dart 0.01 0.05 0.15 0.19 6.14 3.35 9.17 0.54 4.78 0.87 1.06 2.25
Java 0.02 0.06 0.17 0.22 7.08 3.86 10.57 0.62 5.51 1.15 1.23 2.60
Scala 0.01 0.05 0.14 0.18 5.78 3.15 8.63 0.50 4.50 0.94 0.82 2.12
Clojure 0.01 0.02 0.06 0.09 2.73 1.49 4.07 0.24 2.12 0.44 0.39 0.47
From
To
Selecting the Language
| @Chris__Bailey
C++ Go Swift Rust Ruby PHP Python JScript Erlang Dart Java Scala Clojure
C++ 4.02 10.96 14.65 461.69 251.83 689.22 40.25 359.13 75.16 65.18 79.88 169.17
Go 0.25 2.73 3.64 114.79 62.61 171.37 10.01 89.29 18.69 16.21 19.86 42.06
Swift 0.09 0.37 1.34 42.11 22.97 62.86 3.67 32.75 6.86 5.95 7.29 15.43
Rust 0.07 0.27 0.75 31.52 17.19 47.06 2.75 24.52 5.13 4.45 5.45 11.55
Ruby 0.00 0.01 0.02 0.03 0.55 1.49 0.09 0.78 0.16 0.14 0.17 0.37
PHP 0.00 0.02 0.04 0.06 1.83 2.74 0.16 1.43 0.30 0.26 0.32 0.67
Python 0.00 0.01 0.02 0.02 0.67 0.37 0.06 0.52 0.11 0.09 0.12 0.25
JScript 0.02 0.10 0.27 0.36 11.47 6.26 17.13 8.92 1.87 1.62 1.98 4.20
Erlang 0.00 0.01 0.03 0.04 1.29 0.70 1.92 0.11 0.21 0.18 0.22 0.47
Dart 0.01 0.05 0.15 0.19 6.14 3.35 9.17 0.54 4.78 0.87 1.06 2.25
Java 0.02 0.06 0.17 0.22 7.08 3.86 10.57 0.62 5.51 1.15 1.23 2.60
Scala 0.01 0.05 0.14 0.18 5.78 3.15 8.63 0.50 4.50 0.94 0.82 2.12
Clojure 0.01 0.02 0.06 0.09 2.73 1.49 4.07 0.24 2.12 0.44 0.39 0.47
From
To
C
Selecting the Language
| @Chris__Bailey
C++ Go Swift Rust Ruby PHP Python JScript Erlang Dart Java Scala Clojure
C++ 4.02 10.96 14.65 461.69 251.83 689.22 40.25 359.13 75.16 65.18 79.88 169.17
Go 0.25 2.73 3.64 114.79 62.61 171.37 10.01 89.29 18.69 16.21 19.86 42.06
Swift 0.09 0.37 1.34 42.11 22.97 62.86 3.67 32.75 6.86 5.95 7.29 15.43
Rust 0.07 0.27 0.75 31.52 17.19 47.06 2.75 24.52 5.13 4.45 5.45 11.55
Ruby 0.00 0.01 0.02 0.03 0.55 1.49 0.09 0.78 0.16 0.14 0.17 0.37
PHP 0.00 0.02 0.04 0.06 1.83 2.74 0.16 1.43 0.30 0.26 0.32 0.67
Python 0.00 0.01 0.02 0.02 0.67 0.37 0.06 0.52 0.11 0.09 0.12 0.25
JScript 0.02 0.10 0.27 0.36 11.47 6.26 17.13 8.92 1.87 1.62 1.98 4.20
Erlang 0.00 0.01 0.03 0.04 1.29 0.70 1.92 0.11 0.21 0.18 0.22 0.47
Dart 0.01 0.05 0.15 0.19 6.14 3.35 9.17 0.54 4.78 0.87 1.06 2.25
Java 0.02 0.06 0.17 0.22 7.08 3.86 10.57 0.62 5.51 1.15 1.23 2.60
Scala 0.01 0.05 0.14 0.18 5.78 3.15 8.63 0.50 4.50 0.94 0.82 2.12
Clojure 0.01 0.02 0.06 0.09 2.73 1.49 4.07 0.24 2.12 0.44 0.39 0.47
From
To
C
Modern

Native
Selecting the Language
| @Chris__Bailey
C++ Go Swift Rust Ruby PHP Python JScript Erlang Dart Java Scala Clojure
C++ 4.02 10.96 14.65 461.69 251.83 689.22 40.25 359.13 75.16 65.18 79.88 169.17
Go 0.25 2.73 3.64 114.79 62.61 171.37 10.01 89.29 18.69 16.21 19.86 42.06
Swift 0.09 0.37 1.34 42.11 22.97 62.86 3.67 32.75 6.86 5.95 7.29 15.43
Rust 0.07 0.27 0.75 31.52 17.19 47.06 2.75 24.52 5.13 4.45 5.45 11.55
Ruby 0.00 0.01 0.02 0.03 0.55 1.49 0.09 0.78 0.16 0.14 0.17 0.37
PHP 0.00 0.02 0.04 0.06 1.83 2.74 0.16 1.43 0.30 0.26 0.32 0.67
Python 0.00 0.01 0.02 0.02 0.67 0.37 0.06 0.52 0.11 0.09 0.12 0.25
JScript 0.02 0.10 0.27 0.36 11.47 6.26 17.13 8.92 1.87 1.62 1.98 4.20
Erlang 0.00 0.01 0.03 0.04 1.29 0.70 1.92 0.11 0.21 0.18 0.22 0.47
Dart 0.01 0.05 0.15 0.19 6.14 3.35 9.17 0.54 4.78 0.87 1.06 2.25
Java 0.02 0.06 0.17 0.22 7.08 3.86 10.57 0.62 5.51 1.15 1.23 2.60
Scala 0.01 0.05 0.14 0.18 5.78 3.15 8.63 0.50 4.50 0.94 0.82 2.12
Clojure 0.01 0.02 0.06 0.09 2.73 1.49 4.07 0.24 2.12 0.44 0.39 0.47
From
To
C
Modern

Native
Scripting

Recommended for you

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

The document discusses key aspects of building scalable microservices including containerization, orchestration, monitoring, and performance optimization. It provides code examples for containerizing a Node.js application, deploying it with Kubernetes using a Helm chart, and implementing continuous delivery with Jenkins pipelines and DevOps toolchains. The document also covers understanding microservices performance by analyzing architecture diagrams showing public/private networks, services, and databases.

node.jsmicroservicesdevelopment
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

The document discusses the tradeoffs of different programming languages including Java, Node.js, and Swift. It covers topics like type safety, performance, developer productivity, memory management, and cloud computing costs as they relate to choosing the right language for different types of applications and workloads. Charts and data are presented to illustrate the comparisons.

javanode.jsswift
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

The fundamental performance characteristics of Node.js, along with the improvements driven through the community benchmarking workgroup, makes Node.js ideal for highly performing micro-service workloads. Translating that into highly responsive, scalable solutions however is still far from easy. This session will discuss why Node.js is right for micro-services, introduce the best practices for building scalable deployments, and show you how to monitor and profile your applications to identify and resolve performance bottlenecks.

nodesmicroservicesperformance
Selecting the Language
| @Chris__Bailey
C++ Go Swift Rust Ruby PHP Python JScript Erlang Dart Java Scala Clojure
C++ 4.02 10.96 14.65 461.69 251.83 689.22 40.25 359.13 75.16 65.18 79.88 169.17
Go 0.25 2.73 3.64 114.79 62.61 171.37 10.01 89.29 18.69 16.21 19.86 42.06
Swift 0.09 0.37 1.34 42.11 22.97 62.86 3.67 32.75 6.86 5.95 7.29 15.43
Rust 0.07 0.27 0.75 31.52 17.19 47.06 2.75 24.52 5.13 4.45 5.45 11.55
Ruby 0.00 0.01 0.02 0.03 0.55 1.49 0.09 0.78 0.16 0.14 0.17 0.37
PHP 0.00 0.02 0.04 0.06 1.83 2.74 0.16 1.43 0.30 0.26 0.32 0.67
Python 0.00 0.01 0.02 0.02 0.67 0.37 0.06 0.52 0.11 0.09 0.12 0.25
JScript 0.02 0.10 0.27 0.36 11.47 6.26 17.13 8.92 1.87 1.62 1.98 4.20
Erlang 0.00 0.01 0.03 0.04 1.29 0.70 1.92 0.11 0.21 0.18 0.22 0.47
Dart 0.01 0.05 0.15 0.19 6.14 3.35 9.17 0.54 4.78 0.87 1.06 2.25
Java 0.02 0.06 0.17 0.22 7.08 3.86 10.57 0.62 5.51 1.15 1.23 2.60
Scala 0.01 0.05 0.14 0.18 5.78 3.15 8.63 0.50 4.50 0.94 0.82 2.12
Clojure 0.01 0.02 0.06 0.09 2.73 1.49 4.07 0.24 2.12 0.44 0.39 0.47
From
To
C
Modern

Native
Scripting
Selecting the Language
| @Chris__Bailey
C++ Go Swift Rust Ruby PHP Python JScript Erlang Dart Java Scala Clojure
C++ 4.02 10.96 14.65 461.69 251.83 689.22 40.25 359.13 75.16 65.18 79.88 169.17
Go 0.25 2.73 3.64 114.79 62.61 171.37 10.01 89.29 18.69 16.21 19.86 42.06
Swift 0.09 0.37 1.34 42.11 22.97 62.86 3.67 32.75 6.86 5.95 7.29 15.43
Rust 0.07 0.27 0.75 31.52 17.19 47.06 2.75 24.52 5.13 4.45 5.45 11.55
Ruby 0.00 0.01 0.02 0.03 0.55 1.49 0.09 0.78 0.16 0.14 0.17 0.37
PHP 0.00 0.02 0.04 0.06 1.83 2.74 0.16 1.43 0.30 0.26 0.32 0.67
Python 0.00 0.01 0.02 0.02 0.67 0.37 0.06 0.52 0.11 0.09 0.12 0.25
JScript 0.02 0.10 0.27 0.36 11.47 6.26 17.13 8.92 1.87 1.62 1.98 4.20
Erlang 0.00 0.01 0.03 0.04 1.29 0.70 1.92 0.11 0.21 0.18 0.22 0.47
Dart 0.01 0.05 0.15 0.19 6.14 3.35 9.17 0.54 4.78 0.87 1.06 2.25
Java 0.02 0.06 0.17 0.22 7.08 3.86 10.57 0.62 5.51 1.15 1.23 2.60
Scala 0.01 0.05 0.14 0.18 5.78 3.15 8.63 0.50 4.50 0.94 0.82 2.12
Clojure 0.01 0.02 0.06 0.09 2.73 1.49 4.07 0.24 2.12 0.44 0.39 0.47
From
To
C
Modern

Native
Scripting
Selecting the Language
| @Chris__Bailey
C++ Go Swift Rust Ruby PHP Python JScript Erlang Dart Java Scala Clojure
C++ 4.02 10.96 14.65 461.69 251.83 689.22 40.25 359.13 75.16 65.18 79.88 169.17
Go 0.25 2.73 3.64 114.79 62.61 171.37 10.01 89.29 18.69 16.21 19.86 42.06
Swift 0.09 0.37 1.34 42.11 22.97 62.86 3.67 32.75 6.86 5.95 7.29 15.43
Rust 0.07 0.27 0.75 31.52 17.19 47.06 2.75 24.52 5.13 4.45 5.45 11.55
Ruby 0.00 0.01 0.02 0.03 0.55 1.49 0.09 0.78 0.16 0.14 0.17 0.37
PHP 0.00 0.02 0.04 0.06 1.83 2.74 0.16 1.43 0.30 0.26 0.32 0.67
Python 0.00 0.01 0.02 0.02 0.67 0.37 0.06 0.52 0.11 0.09 0.12 0.25
JScript 0.02 0.10 0.27 0.36 11.47 6.26 17.13 8.92 1.87 1.62 1.98 4.20
Erlang 0.00 0.01 0.03 0.04 1.29 0.70 1.92 0.11 0.21 0.18 0.22 0.47
Dart 0.01 0.05 0.15 0.19 6.14 3.35 9.17 0.54 4.78 0.87 1.06 2.25
Java 0.02 0.06 0.17 0.22 7.08 3.86 10.57 0.62 5.51 1.15 1.23 2.60
Scala 0.01 0.05 0.14 0.18 5.78 3.15 8.63 0.50 4.50 0.94 0.82 2.12
Clojure 0.01 0.02 0.06 0.09 2.73 1.49 4.07 0.24 2.12 0.44 0.39 0.47
From
To
C
Modern

Native
Scripting
JVM
Selecting the Language
| @Chris__Bailey
C++ Go Swift Rust Ruby PHP Python JScript Erlang Dart Java Scala Clojure
C++ 4.02 10.96 14.65 461.69 251.83 689.22 40.25 359.13 75.16 65.18 79.88 169.17
Go 0.25 2.73 3.64 114.79 62.61 171.37 10.01 89.29 18.69 16.21 19.86 42.06
Swift 0.09 0.37 1.34 42.11 22.97 62.86 3.67 32.75 6.86 5.95 7.29 15.43
Rust 0.07 0.27 0.75 31.52 17.19 47.06 2.75 24.52 5.13 4.45 5.45 11.55
Ruby 0.00 0.01 0.02 0.03 0.55 1.49 0.09 0.78 0.16 0.14 0.17 0.37
PHP 0.00 0.02 0.04 0.06 1.83 2.74 0.16 1.43 0.30 0.26 0.32 0.67
Python 0.00 0.01 0.02 0.02 0.67 0.37 0.06 0.52 0.11 0.09 0.12 0.25
JScript 0.02 0.10 0.27 0.36 11.47 6.26 17.13 8.92 1.87 1.62 1.98 4.20
Erlang 0.00 0.01 0.03 0.04 1.29 0.70 1.92 0.11 0.21 0.18 0.22 0.47
Dart 0.01 0.05 0.15 0.19 6.14 3.35 9.17 0.54 4.78 0.87 1.06 2.25
Java 0.02 0.06 0.17 0.22 7.08 3.86 10.57 0.62 5.51 1.15 1.23 2.60
Scala 0.01 0.05 0.14 0.18 5.78 3.15 8.63 0.50 4.50 0.94 0.82 2.12
Clojure 0.01 0.02 0.06 0.09 2.73 1.49 4.07 0.24 2.12 0.44 0.39 0.47
From
To
C
Modern

Native
Scripting
JVM

Recommended for you

FrenchKit 2017: Server(less) Swift
FrenchKit 2017: Server(less) SwiftFrenchKit 2017: Server(less) Swift
FrenchKit 2017: Server(less) Swift

For just over a year, Swift has been available as a formal release on Linux and frameworks like Kitura and Vapor have made it possible to build mobile backends and web applications on the server. Running Server Swift is however not your own option for becoming a fullstack engineer and building backends in Swift. Amazon, Microsoft, Google, IBM and others are all also providing the ability to run Serverless (aka Lambdas or Functions), with some of those supporting the use of Swift. This session will introduce you to Serverless Swift, highlight how it compares to Server Swift and show you some applications that have been built with Server(less) Swift.

serverlessswiftkitura
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

This document discusses Swift development at IBM and its advantages for full stack development. It shows how Swift can be used across mobile, web, and cloud to improve developer productivity. Graphs demonstrate Swift's performance and low memory usage compared to other languages. The document advocates for focusing on productivity over minor performance differences and teaches how to build a full stack app with Swift in 30 minutes. It provides resources for learning more about IBM's Swift development.

backendmobileserver
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

The range of languages and frameworks that are available for building server applications has exploded over the last few years, with the most recent of these being the Swift programming language, which IBM has been backing along with the Kitura application framework. But does this mean that Swift is the future and you should stop developing Java server applications? This session will give you an introduction to where and when you might use Kitura, and take you through the experiences of a long-time Java EE developer building their first Angular.js based Kitura application, and how that compares to building the same application with IBM WebSphere Liberty.

javabffperformance
Optimising for the Cloud

Optimising for the Cloud

#2: Use Intelligent Scaling
Intelligent Scaling for Capacity
| @Chris__Bailey
Time
Capacity
Predicted Load
Capacity Requirement
Excess Capacity
Intelligent Scaling for Capacity
| @Chris__Bailey
Time
Capacity
Predicted Load
Capacity Requirement
Excess Capacity

Recommended for you

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

Java, Node.js, and Swift are three of the most popular and effective programming languages in use today. When presented with an opportunity to choose, it may not be clear which language is best suited for the job. This session will provide a tour of these languages and the use cases for which each is best suited.

swiftmicroservicesbff
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

When you write and run Java code, it is first compiled by javac to bytecode and then converted to optimized machine code by the just-in-time (JIT) compiler. Although JIT compilers are advanced and are able to create highly optimized code, the level of optimization achievable is ultimately limited by how the original Java code was written. This presentation introduces the compilation and optimization process and uses applications to show how following several simple rules when writing your Java code can lead to highly optimizable, and therefore highly performant, applications. Presented at JavaOne 2015

javaperformancejit
Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …

Prada Group Reports Strong Growth in First Quarter …

Intelligent Scaling for Capacity
| @Chris__Bailey
Time
Capacity
Actual Load
Capacity Requirement
Excess Capacity
Intelligent Scaling for Capacity
| @Chris__Bailey
Time
Capacity
Actual Load
Capacity Requirement
Excess Capacity
Intelligent Scaling for Capacity
| @Chris__Bailey
Time
Capacity
Actual Load
Capacity Requirement
Excess Capacity
Dynamic Scaling to Load
| @Chris__Bailey
00:00
Capacity
Actual Load
Excess Capacity
12:00 18:0006:0000:00
Capacity

Recommended for you

WhatsApp Tracker - Tracking WhatsApp to Boost Online Safety.pdf
WhatsApp Tracker -  Tracking WhatsApp to Boost Online Safety.pdfWhatsApp Tracker -  Tracking WhatsApp to Boost Online Safety.pdf
WhatsApp Tracker - Tracking WhatsApp to Boost Online Safety.pdf

WhatsApp Tracker Software is an effective tool for remotely tracking the target’s WhatsApp activities. It allows users to monitor their loved one’s online behavior to ensure appropriate interactions for responsive device use. Download this PPTX file and share this information to others.

whatsapp trackerwhatsapp tracker for parentswhatsapp tracker for employers
CViewSurvey Digitech Pvt Ltd that works on a proven C.A.A.G. model.
CViewSurvey Digitech Pvt Ltd that  works on a proven C.A.A.G. model.CViewSurvey Digitech Pvt Ltd that  works on a proven C.A.A.G. model.
CViewSurvey Digitech Pvt Ltd that works on a proven C.A.A.G. model.

CViewSurvey is a SaaS-based Web & Mobile application that provides digital transformation to traditional paper surveys and feedback for customer & employee experience, field & market research that helps you evaluate your customer's as well as employee's loyalty. With our unique C.A.A.G. Collect, Analysis, Act & Grow approach; business & industry’s can create customized surveys on web, publish on app to collect unlimited response & review AI backed real-time data analytics on mobile & tablets anytime, anywhere. Data collected when offline is securely stored in the device, which syncs to the cloud server when connected to any network.

saasapplicationdigital marketing
NYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdfNYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdf

Explore the craft of program and project management, hearing from Atlassian Program Managers, local thought leaders, and more.

project managementpmoatlassian community
Dynamic Scaling to Load
| @Chris__Bailey
00:00
Capacity
Actual Load
Capacity
Excess Capacity
12:00 18:0006:0000:00
Dynamic Scaling to Load
§ Daily load cycles are common for user facing applications
- Particularly if your using localised availability zones
| @Chris__Bailey
“Most enterprises have hardware utilisation below 20%
and below 10% for workloads with peaks”
Dynamic Scaling to Load
§ Daily load cycles are common for user facing applications
- Particularly if your using localised availability zones
§ Intelligent Scaling can provide a 2x saving:
| @Chris__Bailey
“Most enterprises have hardware utilisation below 20%
and below 10% for workloads with peaks”
Dynamic Scaling to Load
§ Daily load cycles are common for user facing applications
- Particularly if your using localised availability zones
§ Intelligent Scaling can provide a 2x saving:
- Ruby on Rails app: $14,490/year
- Move to Java: $ 2,070/year
| @Chris__Bailey
“Most enterprises have hardware utilisation below 20%
and below 10% for workloads with peaks”

Recommended for you

Development of Chatbot Using AI\ML Technologies
Development of Chatbot Using AI\ML TechnologiesDevelopment of Chatbot Using AI\ML Technologies
Development of Chatbot Using AI\ML Technologies

A captivating AI chatbot PowerPoint presentation is made with a striking backdrop in order to attract a wider audience. Select this template featuring several AI chatbot visuals to boost audience engagement and spontaneity. With the aid of this multi-colored template, you may make a compelling presentation and get extra bonuses. To easily elucidate your ideas, choose a typeface with vibrant colors. You can include your data regarding utilizing the chatbot methodology to the remaining half of the template.

chatbot ppt
introduction of Ansys software and basic and advance knowledge of modelling s...
introduction of Ansys software and basic and advance knowledge of modelling s...introduction of Ansys software and basic and advance knowledge of modelling s...
introduction of Ansys software and basic and advance knowledge of modelling s...

Ansys Mechanical enables you to solve complex structural engineering problems and make better, faster design decisions. With the finite element analysis (FEA) solvers available in the suite, you can customize and automate solutions for your structural mechanics problems and parameterize them to analyze multiple design scenarios. Ansys Mechanical is a dynamic tool that has a complete range of analysis tools.

mechanical engineeringmodelling software3d modelling software
Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)

Our world runs on software. It governs all major aspects of our life. It is an enabler for research and innovation, and is critical for business competitivity. Traditional software engineering techniques have achieved high effectiveness, but still may fall short on delivering software at the accelerated pace and with the increasing quality that future scenarios will require. To attack this issue, some software paradigms raise the automation of software development via higher levels of abstraction through domain-specific languages (e.g., in model-driven engineering) and empowering non-professional developers with the possibility to build their own software (e.g., in low-code development approaches). In a software-demanding world, this is an attractive possibility, and perhaps -- paraphrasing Andy Warhol -- "in the future, everyone will be a developer for 15 minutes". However, to make this possible, methods are required to tweak languages to their context of use (crucial given the diversity of backgrounds and purposes), and the assistance to developers throughout the development process (especially critical for non-professionals). In this keynote talk at ICSOFT'2024 I presented enabling techniques for this vision, supporting the creation of families of domain-specific languages, their adaptation to the usage context; and the augmentation of low-code environments with assistants and recommender systems to guide developers (professional or not) in the development process.

softwaremodel-driven engineeringdomain-specific languages
Dynamic Scaling to Load
§ Daily load cycles are common for user facing applications
- Particularly if your using localised availability zones
§ Intelligent Scaling can provide a 2x saving:
- Ruby on Rails app: $14,490/year
- Move to Java: $ 2,070/year
- Add scaling: $ 1,035/year
| @Chris__Bailey
“Most enterprises have hardware utilisation below 20%
and below 10% for workloads with peaks”
Optimising for the Cloud

Optimising for the Cloud

#3: Identify and Fix Memory Leaks
Look for and Fix memory leaks
§ A small leak means a very large

amount of memory over time
| @Chris__Bailey
American	Society	of	Civil	Engineers

Recommended for you

Safe Work Permit Management Software for Hot Work Permits
Safe Work Permit Management Software for Hot Work PermitsSafe Work Permit Management Software for Hot Work Permits
Safe Work Permit Management Software for Hot Work Permits

Efficient hot work permit software for safe, streamlined work permit management and compliance. Enhance safety today. Contact us on +353 214536034. https://sheqnetwork.com/work-permit/

hot work permit softwarework permit softwaresafe work permit software
COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...
COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...
COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...

Hironori Washizaki, "Charting a Course for Equity: Strategies for Overcoming Challenges and Promoting Inclusion in the Metaverse", IEEE COMPSAC 2024 D&I Panel, 2024.

How we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hoursHow we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hours

Explore the rapid development journey of TryBoxLang, completed in just 48 hours. This session delves into the innovative process behind creating TryBoxLang, a platform designed to showcase the capabilities of BoxLang by Ortus Solutions. Discover the challenges, strategies, and outcomes of this accelerated development effort, highlighting how TryBoxLang provides a practical introduction to BoxLang's features and benefits.

coldfusioncfmladobe
Look for and Fix memory leaks
§ A small leak means a very large

amount of memory over time
§ Memory leaks act a little like
interest on a debt
| @Chris__Bailey
Live in-use data
(Principle)
Look for and Fix memory leaks
§ A small leak means a very large

amount of memory over time
§ Memory leaks act a little like
interest on a debt
| @Chris__Bailey
Live in-use data
(Principle)
Memory Leak
(Interest)
Look for and Fix memory leaks
§ A small leak means a very large

amount of memory over time
§ Memory leaks act a little like
interest on a debt

§ Made worse if you have to size the
container ahead of time to allow for
the leak
| @Chris__Bailey
Live in-use data
(Principle)
Memory Leak
(Interest)
Optimising for the Cloud


Recommended for you

Splunk_Remote_Work_Insights_Overview.pptx
Splunk_Remote_Work_Insights_Overview.pptxSplunk_Remote_Work_Insights_Overview.pptx
Splunk_Remote_Work_Insights_Overview.pptx

Splunk Presentation

Migrate your Infrastructure to the AWS Cloud
Migrate your Infrastructure to the AWS CloudMigrate your Infrastructure to the AWS Cloud
Migrate your Infrastructure to the AWS Cloud

Are you wondering how to migrate to the Cloud? At the ITB session, we addressed the challenge of managing multiple ColdFusion licenses and AWS EC2 instances. Discover how you can consolidate with just one EC2 instance capable of running over 50 apps using CommandBox ColdFusion. This solution supports both ColdFusion flavors and includes cb-websites, a GoLang binary for managing CommandBox websites.

coldfusioncfmlwebsite
NBFC Software: Optimize Your Non-Banking Financial Company
NBFC Software: Optimize Your Non-Banking Financial CompanyNBFC Software: Optimize Your Non-Banking Financial Company
NBFC Software: Optimize Your Non-Banking Financial Company

NBFC Software: Optimize Your Non-Banking Financial Company Enhance Your Financial Services with Comprehensive NBFC Software NBFC software provides a complete solution for non-banking financial companies, streamlining banking and accounting functions to reduce operational costs. Our software is designed to meet the diverse needs of NBFCs, including investment banks, insurance companies, and hedge funds. Key Features of NBFC Software: Centralized Database: Facilitates inter-branch collaboration and smooth operations with a unified platform. Automation: Simplifies loan lifecycle management and account maintenance, ensuring efficient delivery of financial services. Customization: Highly customizable to fit specific business needs, offering flexibility in managing various loan types such as home loans, mortgage loans, personal loans, and more. Security: Ensures safe and secure handling of financial transactions and sensitive data. User-Friendly Interface: Designed to be intuitive and easy to use, reducing the learning curve for employees. Cost-Effective: Reduces the need for additional manpower by automating tasks, making it a budget-friendly solution. Benefits of NBFC Software: Go Paperless: Transition to a fully digital operation, eliminating offline work. Transparency: Enables managers and executives to monitor various points of the banking process easily. Defaulter Tracking: Helps track loan defaulters, maintaining a healthy loan management system. Increased Accessibility: Cutting-edge technology increases the accessibility and usability of NBFC operations. Request a Demo Now!

nbfc softwarenbfc software solutionsnbfc software company
Optimising for the Cloud

#4: Memory Analysis is the New Performance Tuning
Memory Analysis
§ Most applications are memory in-efficient
- Duplication of data
- Oversized collections
- Empty collections
§ Initial analysis and optimisation usual has a large return on investment
| @Chris__Bailey
Memory Analysis
§ Java case study: PlantsByWebSphere sample in WebSphere AppServer 7
- 5 user test load, 206MB of “live data”:
| @Chris__Bailey
Memory Analysis
§ Java case study: PlantsByWebSphere sample in WebSphere AppServer 7
- 5 user test load, 206MB of “live data”:
| @Chris__Bailey
Collection Count Collection Size (MB)
Hashtable 262,234 26.5
WeakHashMap 19,562 12.6
HashMap 10,600 2.3
ArrayList 9,530 0.3
HashSet 1,551 1.0
Vector 1,271 0.04
LinkedList 1,148 0.1
TreeMap 299 0.03
TOTAL 306,195 42.9

Recommended for you

active-directory-auditing-solution (2).pptx
active-directory-auditing-solution (2).pptxactive-directory-auditing-solution (2).pptx
active-directory-auditing-solution (2).pptx

Active Directory Audit

ThaiPy meetup - Indexes and Django
ThaiPy meetup - Indexes and DjangoThaiPy meetup - Indexes and Django
ThaiPy meetup - Indexes and Django

Class based indexes feature in Django

djangoindexesopen-source
dachnug51 - All you ever wanted to know about domino licensing.pdf
dachnug51 - All you ever wanted to know about domino licensing.pdfdachnug51 - All you ever wanted to know about domino licensing.pdf
dachnug51 - All you ever wanted to know about domino licensing.pdf

dachnug51 | All you ever wanted to know about domino licensing | Uffe Sorensen

dachnugdachnug51dnug
Memory Analysis
§ Java case study: PlantsByWebSphere sample in WebSphere AppServer 7
- 5 user test load, 206MB of “live data”:
§ 42.9MB (16% of memory) are collection objects
- Just the collections themselves - excluding any data they store
| @Chris__Bailey
Collection Count Collection Size (MB)
Hashtable 262,234 26.5
WeakHashMap 19,562 12.6
HashMap 10,600 2.3
ArrayList 9,530 0.3
HashSet 1,551 1.0
Vector 1,271 0.04
LinkedList 1,148 0.1
TreeMap 299 0.03
TOTAL 306,195 42.9
Memory Analysis
§ Analysis of just the Hashtable instances showed:
| @Chris__Bailey
Memory Analysis
§ Analysis of just the Hashtable instances showed:
§ 127,016 of the Hashtables were completely empty
| @Chris__Bailey
Memory Analysis
§ Looking at empty collections across all collection types:
§ 52.6% of collections are empty (22.6MB)
§ Could save 11% of heap utilisation by removing empty collections
| @Chris__Bailey
Collection Count Empty % Empty
Hashtable 262,234 127,016 48.8
WeakHashMap 19,562 19,456 99.5
HashMap 10,600 7,599 71.7
ArrayList 9,530 4,588 48.1
HashSet 1,551 866 55.8
Vector 1,271 622 48.9
TOTAL 304,748 160,156 52.6

Recommended for you

Folding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a seriesFolding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a series

The three duality theorems of fold.

duality theorems of foldduality theoremsfold
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) AWS Security .pdf
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) AWS Security .pdfAWS Cloud Practitioner Essentials (Second Edition) (Arabic) AWS Security .pdf
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) AWS Security .pdf

AWS Cloud Practitioner Essentials (Second Edition) (Arabic) AWS Security .pdf

awscloudpractitioner
Independence Day Hasn’t Always Been a U.S. Holiday.pdf
Independence Day Hasn’t Always Been a U.S. Holiday.pdfIndependence Day Hasn’t Always Been a U.S. Holiday.pdf
Independence Day Hasn’t Always Been a U.S. Holiday.pdf

Discover the rich history of US Independence Day 2024, tracing its origins and evolution as a national holiday, and its significance today.

us independence day 2024us independence dayindependence day 2024
Memory Analysis
§ Looking at empty collections across all collection types:
§ 52.6% of collections are empty (22.6MB)
| @Chris__Bailey
Collection Count Empty % Empty
Hashtable 262,234 127,016 48.8
WeakHashMap 19,562 19,456 99.5
HashMap 10,600 7,599 71.7
ArrayList 9,530 4,588 48.1
HashSet 1,551 866 55.8
Vector 1,271 622 48.9
TOTAL 304,748 160,156 52.6
Optimising for the Cloud

Optimising for the Cloud

#5: Design for Memory Usage
Design for Memory
§ Practice lazy allocation of collections
| @Chris__Bailey

Recommended for you

Cultural Shifts: Embracing DevOps for Organizational Transformation
Cultural Shifts: Embracing DevOps for Organizational TransformationCultural Shifts: Embracing DevOps for Organizational Transformation
Cultural Shifts: Embracing DevOps for Organizational Transformation

Mindfire Solutions specializes in DevOps services, facilitating digital transformation through streamlined software development and operational efficiency. Their expertise enhances collaboration, accelerates delivery cycles, and ensures scalability using cloud-native technologies. Mindfire Solutions empowers businesses to innovate rapidly and maintain competitive advantage in dynamic market landscapes.

devops servicesdevops consulting servicesexpertise devops
Design for Memory
§ Practice lazy allocation of collections
§ Don’t use default collection sizes
| @Chris__Bailey
Design for Memory
§ Practice lazy allocation of collections
§ Don’t use default collection sizes
§ Reallocate collections to shrink them if needed
| @Chris__Bailey
Design for Memory
§ Practice lazy allocation of collections
§ Don’t use default collection sizes
§ Reallocate collections to shrink them if needed
§ Use cache miss based strategies for cache sizes
| @Chris__Bailey
Summary

Recommended for you

Cloud Economics

More Related Content

What's hot

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
Chris Bailey
 
Impact2014: Introduction to the IBM Java Tools
Impact2014: Introduction to the IBM Java ToolsImpact2014: Introduction to the IBM Java Tools
Impact2014: Introduction to the IBM Java Tools
Chris Bailey
 
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
Chris Bailey
 
Adopting Java for the Serverless world at Serverless Meetup New York and Boston
Adopting Java for the Serverless world at Serverless Meetup New York and BostonAdopting Java for the Serverless world at Serverless Meetup New York and Boston
Adopting Java for the Serverless world at Serverless Meetup New York and Boston
Vadym Kazulkin
 
Writing less code with Serverless on AWS at FrOSCon 2021
Writing less code with Serverless on AWS at FrOSCon 2021Writing less code with Serverless on AWS at FrOSCon 2021
Writing less code with Serverless on AWS at FrOSCon 2021
Vadym Kazulkin
 
Writing less code with Serverless on AWS at AWS User Group Nairobi
Writing less code with Serverless on AWS at AWS User Group NairobiWriting less code with Serverless on AWS at AWS User Group Nairobi
Writing less code with Serverless on AWS at AWS User Group Nairobi
Vadym Kazulkin
 
Use GitLab with Chaos Engineering to Harden your Applications + OpenEBS 1.3 ...
 Use GitLab with Chaos Engineering to Harden your Applications + OpenEBS 1.3 ... Use GitLab with Chaos Engineering to Harden your Applications + OpenEBS 1.3 ...
Use GitLab with Chaos Engineering to Harden your Applications + OpenEBS 1.3 ...
MayaData Inc
 
Measure and Increase Developer Productivity with Help of Serverless at AWS Co...
Measure and Increase Developer Productivity with Help of Serverless at AWS Co...Measure and Increase Developer Productivity with Help of Serverless at AWS Co...
Measure and Increase Developer Productivity with Help of Serverless at AWS Co...
Vadym Kazulkin
 
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
Wallarm
 
Developers Are Users, Too
Developers Are Users, TooDevelopers Are Users, Too
Developers Are Users, Too
VMware Tanzu
 
JPA Performance Myths -- JavaOne 2013
JPA Performance Myths -- JavaOne 2013JPA Performance Myths -- JavaOne 2013
JPA Performance Myths -- JavaOne 2013
richardgcurtis
 
Writing less code with Serverless on AWS at AWS Community Day DACH 2021
Writing less code with Serverless on AWS at AWS Community Day DACH 2021Writing less code with Serverless on AWS at AWS Community Day DACH 2021
Writing less code with Serverless on AWS at AWS Community Day DACH 2021
Vadym Kazulkin
 
Performance Testing Cloud-Based Systems
Performance Testing Cloud-Based SystemsPerformance Testing Cloud-Based Systems
Performance Testing Cloud-Based Systems
TechWell
 
Puppet devops wdec
Puppet devops wdecPuppet devops wdec
Puppet devops wdec
Wojciech Dec
 
What's New in IBM Java 8 SE?
What's New in IBM Java 8 SE?What's New in IBM Java 8 SE?
What's New in IBM Java 8 SE?
Tim Ellison
 
Microservices and functional programming
Microservices and functional programmingMicroservices and functional programming
Microservices and functional programming
Michael Neale
 
Adopting Java for the Serverless world at Serverless Meetup Singapore
Adopting Java for the Serverless world at Serverless Meetup SingaporeAdopting Java for the Serverless world at Serverless Meetup Singapore
Adopting Java for the Serverless world at Serverless Meetup Singapore
Vadym Kazulkin
 
CFSummit ColdFusion 2015 Load Balancing, Failover and Scalability
CFSummit ColdFusion 2015 Load Balancing, Failover and ScalabilityCFSummit ColdFusion 2015 Load Balancing, Failover and Scalability
CFSummit ColdFusion 2015 Load Balancing, Failover and Scalability
mcollinsCF
 
Java EE 7: Boosting Productivity and Embracing HTML5
Java EE 7: Boosting Productivity and Embracing HTML5Java EE 7: Boosting Productivity and Embracing HTML5
Java EE 7: Boosting Productivity and Embracing HTML5
Arun Gupta
 
Cloud-based performance testing
Cloud-based performance testingCloud-based performance testing
Cloud-based performance testing
abhinavm
 

What's hot (20)

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
 
Impact2014: Introduction to the IBM Java Tools
Impact2014: Introduction to the IBM Java ToolsImpact2014: Introduction to the IBM Java Tools
Impact2014: Introduction to the IBM Java Tools
 
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
 
Adopting Java for the Serverless world at Serverless Meetup New York and Boston
Adopting Java for the Serverless world at Serverless Meetup New York and BostonAdopting Java for the Serverless world at Serverless Meetup New York and Boston
Adopting Java for the Serverless world at Serverless Meetup New York and Boston
 
Writing less code with Serverless on AWS at FrOSCon 2021
Writing less code with Serverless on AWS at FrOSCon 2021Writing less code with Serverless on AWS at FrOSCon 2021
Writing less code with Serverless on AWS at FrOSCon 2021
 
Writing less code with Serverless on AWS at AWS User Group Nairobi
Writing less code with Serverless on AWS at AWS User Group NairobiWriting less code with Serverless on AWS at AWS User Group Nairobi
Writing less code with Serverless on AWS at AWS User Group Nairobi
 
Use GitLab with Chaos Engineering to Harden your Applications + OpenEBS 1.3 ...
 Use GitLab with Chaos Engineering to Harden your Applications + OpenEBS 1.3 ... Use GitLab with Chaos Engineering to Harden your Applications + OpenEBS 1.3 ...
Use GitLab with Chaos Engineering to Harden your Applications + OpenEBS 1.3 ...
 
Measure and Increase Developer Productivity with Help of Serverless at AWS Co...
Measure and Increase Developer Productivity with Help of Serverless at AWS Co...Measure and Increase Developer Productivity with Help of Serverless at AWS Co...
Measure and Increase Developer Productivity with Help of Serverless at AWS Co...
 
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
 
Developers Are Users, Too
Developers Are Users, TooDevelopers Are Users, Too
Developers Are Users, Too
 
JPA Performance Myths -- JavaOne 2013
JPA Performance Myths -- JavaOne 2013JPA Performance Myths -- JavaOne 2013
JPA Performance Myths -- JavaOne 2013
 
Writing less code with Serverless on AWS at AWS Community Day DACH 2021
Writing less code with Serverless on AWS at AWS Community Day DACH 2021Writing less code with Serverless on AWS at AWS Community Day DACH 2021
Writing less code with Serverless on AWS at AWS Community Day DACH 2021
 
Performance Testing Cloud-Based Systems
Performance Testing Cloud-Based SystemsPerformance Testing Cloud-Based Systems
Performance Testing Cloud-Based Systems
 
Puppet devops wdec
Puppet devops wdecPuppet devops wdec
Puppet devops wdec
 
What's New in IBM Java 8 SE?
What's New in IBM Java 8 SE?What's New in IBM Java 8 SE?
What's New in IBM Java 8 SE?
 
Microservices and functional programming
Microservices and functional programmingMicroservices and functional programming
Microservices and functional programming
 
Adopting Java for the Serverless world at Serverless Meetup Singapore
Adopting Java for the Serverless world at Serverless Meetup SingaporeAdopting Java for the Serverless world at Serverless Meetup Singapore
Adopting Java for the Serverless world at Serverless Meetup Singapore
 
CFSummit ColdFusion 2015 Load Balancing, Failover and Scalability
CFSummit ColdFusion 2015 Load Balancing, Failover and ScalabilityCFSummit ColdFusion 2015 Load Balancing, Failover and Scalability
CFSummit ColdFusion 2015 Load Balancing, Failover and Scalability
 
Java EE 7: Boosting Productivity and Embracing HTML5
Java EE 7: Boosting Productivity and Embracing HTML5Java EE 7: Boosting Productivity and Embracing HTML5
Java EE 7: Boosting Productivity and Embracing HTML5
 
Cloud-based performance testing
Cloud-based performance testingCloud-based performance testing
Cloud-based performance testing
 

Viewers also liked

Playgrounds: Mobile + Swift = BFF
Playgrounds: Mobile + Swift = BFFPlaygrounds: Mobile + Swift = BFF
Playgrounds: Mobile + Swift = BFF
Chris Bailey
 
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
 
Practical Performance: Understand and improve the performance of your applica...
Practical Performance: Understand and improve the performance of your applica...Practical Performance: Understand and improve the performance of your applica...
Practical Performance: Understand and improve the performance of your applica...
Chris Bailey
 
Software Archaeology
Software ArchaeologySoftware Archaeology
Software Archaeology
Chris Bailey
 
Best Romantic Getaways for Adventures Couples
Best Romantic Getaways for Adventures Couples Best Romantic Getaways for Adventures Couples
Best Romantic Getaways for Adventures Couples
Pushpitha Wijesinghe
 
Once upon a time: Why operations mythology matters
Once upon a time: Why operations mythology mattersOnce upon a time: Why operations mythology matters
Once upon a time: Why operations mythology matters
James Turnbull
 
Monitoring As A Service - Modernity and Self-Service CraftConf 2016
Monitoring As A Service - Modernity and Self-Service CraftConf 2016Monitoring As A Service - Modernity and Self-Service CraftConf 2016
Monitoring As A Service - Modernity and Self-Service CraftConf 2016
James Turnbull
 
Developing Good Operations Tools
Developing Good Operations ToolsDeveloping Good Operations Tools
Developing Good Operations Tools
James Turnbull
 
D Y N A C A C H E Wxs
D Y N A C A C H E WxsD Y N A C A C H E Wxs
D Y N A C A C H E Wxs
Rohit Kelapure
 
D Y N A C A C H E Wxs
D Y N A C A C H E WxsD Y N A C A C H E Wxs
D Y N A C A C H E Wxs
Rohit Kelapure
 
Web Sphere Problem Determination Ext
Web Sphere Problem Determination ExtWeb Sphere Problem Determination Ext
Web Sphere Problem Determination Ext
Rohit Kelapure
 
Caching technology comparison
Caching technology comparisonCaching technology comparison
Caching technology comparison
Rohit Kelapure
 
Scalable, Available and Reliable Cloud Applications with PaaS and Microservices
Scalable, Available and Reliable Cloud Applications with PaaS and MicroservicesScalable, Available and Reliable Cloud Applications with PaaS and Microservices
Scalable, Available and Reliable Cloud Applications with PaaS and Microservices
David Currie
 
2012 04-09-v2-tdp-1167-cdi-bestpractices-final
2012 04-09-v2-tdp-1167-cdi-bestpractices-final2012 04-09-v2-tdp-1167-cdi-bestpractices-final
2012 04-09-v2-tdp-1167-cdi-bestpractices-final
Rohit Kelapure
 
EUDAT Research Data Management | www.eudat.eu |
EUDAT Research Data Management | www.eudat.eu | EUDAT Research Data Management | www.eudat.eu |
EUDAT Research Data Management | www.eudat.eu |
EUDAT
 
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
Rohit Kelapure
 
Taking the Application Server to Web Scale with Netflix Open Source Software
Taking the Application Server to Web Scale with Netflix Open Source SoftwareTaking the Application Server to Web Scale with Netflix Open Source Software
Taking the Application Server to Web Scale with Netflix Open Source Software
David Currie
 
1812 icap-v1.3 0430
1812 icap-v1.3 04301812 icap-v1.3 0430
1812 icap-v1.3 0430
Rohit Kelapure
 
Caching technology comparison
Caching technology comparisonCaching technology comparison
Caching technology comparison
Rohit Kelapure
 
Concierge: Bringing OSGi (Back) to Embedded Devices
Concierge: Bringing OSGi (Back) to Embedded DevicesConcierge: Bringing OSGi (Back) to Embedded Devices
Concierge: Bringing OSGi (Back) to Embedded Devices
Jan S. Rellermeyer
 

Viewers also liked (20)

Playgrounds: Mobile + Swift = BFF
Playgrounds: Mobile + Swift = BFFPlaygrounds: Mobile + Swift = BFF
Playgrounds: Mobile + Swift = BFF
 
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...
 
Practical Performance: Understand and improve the performance of your applica...
Practical Performance: Understand and improve the performance of your applica...Practical Performance: Understand and improve the performance of your applica...
Practical Performance: Understand and improve the performance of your applica...
 
Software Archaeology
Software ArchaeologySoftware Archaeology
Software Archaeology
 
Best Romantic Getaways for Adventures Couples
Best Romantic Getaways for Adventures Couples Best Romantic Getaways for Adventures Couples
Best Romantic Getaways for Adventures Couples
 
Once upon a time: Why operations mythology matters
Once upon a time: Why operations mythology mattersOnce upon a time: Why operations mythology matters
Once upon a time: Why operations mythology matters
 
Monitoring As A Service - Modernity and Self-Service CraftConf 2016
Monitoring As A Service - Modernity and Self-Service CraftConf 2016Monitoring As A Service - Modernity and Self-Service CraftConf 2016
Monitoring As A Service - Modernity and Self-Service CraftConf 2016
 
Developing Good Operations Tools
Developing Good Operations ToolsDeveloping Good Operations Tools
Developing Good Operations Tools
 
D Y N A C A C H E Wxs
D Y N A C A C H E WxsD Y N A C A C H E Wxs
D Y N A C A C H E Wxs
 
D Y N A C A C H E Wxs
D Y N A C A C H E WxsD Y N A C A C H E Wxs
D Y N A C A C H E Wxs
 
Web Sphere Problem Determination Ext
Web Sphere Problem Determination ExtWeb Sphere Problem Determination Ext
Web Sphere Problem Determination Ext
 
Caching technology comparison
Caching technology comparisonCaching technology comparison
Caching technology comparison
 
Scalable, Available and Reliable Cloud Applications with PaaS and Microservices
Scalable, Available and Reliable Cloud Applications with PaaS and MicroservicesScalable, Available and Reliable Cloud Applications with PaaS and Microservices
Scalable, Available and Reliable Cloud Applications with PaaS and Microservices
 
2012 04-09-v2-tdp-1167-cdi-bestpractices-final
2012 04-09-v2-tdp-1167-cdi-bestpractices-final2012 04-09-v2-tdp-1167-cdi-bestpractices-final
2012 04-09-v2-tdp-1167-cdi-bestpractices-final
 
EUDAT Research Data Management | www.eudat.eu |
EUDAT Research Data Management | www.eudat.eu | EUDAT Research Data Management | www.eudat.eu |
EUDAT Research Data Management | www.eudat.eu |
 
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
 
Taking the Application Server to Web Scale with Netflix Open Source Software
Taking the Application Server to Web Scale with Netflix Open Source SoftwareTaking the Application Server to Web Scale with Netflix Open Source Software
Taking the Application Server to Web Scale with Netflix Open Source Software
 
1812 icap-v1.3 0430
1812 icap-v1.3 04301812 icap-v1.3 0430
1812 icap-v1.3 0430
 
Caching technology comparison
Caching technology comparisonCaching technology comparison
Caching technology comparison
 
Concierge: Bringing OSGi (Back) to Embedded Devices
Concierge: Bringing OSGi (Back) to Embedded DevicesConcierge: Bringing OSGi (Back) to Embedded Devices
Concierge: Bringing OSGi (Back) to Embedded Devices
 

Similar to O'Reilly Software Architecture Conf: Cloud Economics

Novinky v Oracle Database 18c
Novinky v Oracle Database 18cNovinky v Oracle Database 18c
Novinky v Oracle Database 18c
MarketingArrowECS_CZ
 
Meetup Oracle Database: 3 Analizar, Aconsejar, Automatizar… las nuevas funcio...
Meetup Oracle Database: 3 Analizar, Aconsejar, Automatizar… las nuevas funcio...Meetup Oracle Database: 3 Analizar, Aconsejar, Automatizar… las nuevas funcio...
Meetup Oracle Database: 3 Analizar, Aconsejar, Automatizar… las nuevas funcio...
avanttic Consultoría Tecnológica
 
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
DataStax
 
Estimating the Total Costs of Your Cloud Analytics Platform
Estimating the Total Costs of Your Cloud Analytics PlatformEstimating the Total Costs of Your Cloud Analytics Platform
Estimating the Total Costs of Your Cloud Analytics Platform
DATAVERSITY
 
Cost Effectively Run Multiple Oracle Database Copies at Scale
Cost Effectively Run Multiple Oracle Database Copies at Scale Cost Effectively Run Multiple Oracle Database Copies at Scale
Cost Effectively Run Multiple Oracle Database Copies at Scale
NetApp
 
Elastic-Engineering
Elastic-EngineeringElastic-Engineering
Elastic-Engineering
Araf Karsh Hamid
 
VMworld 2013: Virtualizing Databases: Doing IT Right
VMworld 2013: Virtualizing Databases: Doing IT Right VMworld 2013: Virtualizing Databases: Doing IT Right
VMworld 2013: Virtualizing Databases: Doing IT Right
VMworld
 
OpenStack Silicon Valley - Enterprise Storage Trends Driving OpenStack Features
OpenStack Silicon Valley - Enterprise Storage Trends Driving OpenStack FeaturesOpenStack Silicon Valley - Enterprise Storage Trends Driving OpenStack Features
OpenStack Silicon Valley - Enterprise Storage Trends Driving OpenStack Features
Ed Balduf
 
Couchbase Singapore Meetup #2: Why Developing with Couchbase is easy !!
Couchbase Singapore Meetup #2:  Why Developing with Couchbase is easy !! Couchbase Singapore Meetup #2:  Why Developing with Couchbase is easy !!
Couchbase Singapore Meetup #2: Why Developing with Couchbase is easy !!
Karthik Babu Sekar
 
Data Warehouse Modernization - Big Data in the Cloud Success with Qubole on O...
Data Warehouse Modernization - Big Data in the Cloud Success with Qubole on O...Data Warehouse Modernization - Big Data in the Cloud Success with Qubole on O...
Data Warehouse Modernization - Big Data in the Cloud Success with Qubole on O...
Qubole
 
Optimizing MySQL for Cascade Server
Optimizing MySQL for Cascade ServerOptimizing MySQL for Cascade Server
Optimizing MySQL for Cascade Server
hannonhill
 
Couchbase Chennai Meetup: Developing with Couchbase- made easy
Couchbase Chennai Meetup:  Developing with Couchbase- made easyCouchbase Chennai Meetup:  Developing with Couchbase- made easy
Couchbase Chennai Meetup: Developing with Couchbase- made easy
Karthik Babu Sekar
 
MySQL Cluster - Latest Developments (up to and including MySQL Cluster 7.4)
MySQL Cluster - Latest Developments (up to and including MySQL Cluster 7.4)MySQL Cluster - Latest Developments (up to and including MySQL Cluster 7.4)
MySQL Cluster - Latest Developments (up to and including MySQL Cluster 7.4)
Andrew Morgan
 
MISYS-KL - Cintra Optimized Oracle Archiecture Solution and Services 1.1.pdf
MISYS-KL - Cintra Optimized Oracle Archiecture Solution and Services 1.1.pdfMISYS-KL - Cintra Optimized Oracle Archiecture Solution and Services 1.1.pdf
MISYS-KL - Cintra Optimized Oracle Archiecture Solution and Services 1.1.pdf
ssuserd5e338
 
Implementing SharePoint on Azure, Lessons Learnt from a Real World Project
Implementing SharePoint on Azure, Lessons Learnt from a Real World ProjectImplementing SharePoint on Azure, Lessons Learnt from a Real World Project
Implementing SharePoint on Azure, Lessons Learnt from a Real World Project
K.Mohamed Faizal
 
Java ee7 with apache spark for the world's largest credit card core systems, ...
Java ee7 with apache spark for the world's largest credit card core systems, ...Java ee7 with apache spark for the world's largest credit card core systems, ...
Java ee7 with apache spark for the world's largest credit card core systems, ...
Rakuten Group, Inc.
 
20240518 - VixulCon 2024 - The Rise of PostgreSQL_ Historic Trends and Modern...
20240518 - VixulCon 2024 - The Rise of PostgreSQL_ Historic Trends and Modern...20240518 - VixulCon 2024 - The Rise of PostgreSQL_ Historic Trends and Modern...
20240518 - VixulCon 2024 - The Rise of PostgreSQL_ Historic Trends and Modern...
Umair Shahid
 
Oracle RAC - Customer Proven Scalability
Oracle RAC - Customer Proven ScalabilityOracle RAC - Customer Proven Scalability
Oracle RAC - Customer Proven Scalability
Markus Michalewicz
 
Private Cloud: Database-as-a-Service with Enterprise Manager : OOW 16
Private Cloud: Database-as-a-Service with Enterprise Manager : OOW 16Private Cloud: Database-as-a-Service with Enterprise Manager : OOW 16
Private Cloud: Database-as-a-Service with Enterprise Manager : OOW 16
Bala Kuchibhotla
 
FlexPod Datacenter for Oracle’s JD Edwards EnterpriseOne
FlexPod Datacenter for Oracle’s JD Edwards EnterpriseOneFlexPod Datacenter for Oracle’s JD Edwards EnterpriseOne
FlexPod Datacenter for Oracle’s JD Edwards EnterpriseOne
NetApp
 

Similar to O'Reilly Software Architecture Conf: Cloud Economics (20)

Novinky v Oracle Database 18c
Novinky v Oracle Database 18cNovinky v Oracle Database 18c
Novinky v Oracle Database 18c
 
Meetup Oracle Database: 3 Analizar, Aconsejar, Automatizar… las nuevas funcio...
Meetup Oracle Database: 3 Analizar, Aconsejar, Automatizar… las nuevas funcio...Meetup Oracle Database: 3 Analizar, Aconsejar, Automatizar… las nuevas funcio...
Meetup Oracle Database: 3 Analizar, Aconsejar, Automatizar… las nuevas funcio...
 
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
 
Estimating the Total Costs of Your Cloud Analytics Platform
Estimating the Total Costs of Your Cloud Analytics PlatformEstimating the Total Costs of Your Cloud Analytics Platform
Estimating the Total Costs of Your Cloud Analytics Platform
 
Cost Effectively Run Multiple Oracle Database Copies at Scale
Cost Effectively Run Multiple Oracle Database Copies at Scale Cost Effectively Run Multiple Oracle Database Copies at Scale
Cost Effectively Run Multiple Oracle Database Copies at Scale
 
Elastic-Engineering
Elastic-EngineeringElastic-Engineering
Elastic-Engineering
 
VMworld 2013: Virtualizing Databases: Doing IT Right
VMworld 2013: Virtualizing Databases: Doing IT Right VMworld 2013: Virtualizing Databases: Doing IT Right
VMworld 2013: Virtualizing Databases: Doing IT Right
 
OpenStack Silicon Valley - Enterprise Storage Trends Driving OpenStack Features
OpenStack Silicon Valley - Enterprise Storage Trends Driving OpenStack FeaturesOpenStack Silicon Valley - Enterprise Storage Trends Driving OpenStack Features
OpenStack Silicon Valley - Enterprise Storage Trends Driving OpenStack Features
 
Couchbase Singapore Meetup #2: Why Developing with Couchbase is easy !!
Couchbase Singapore Meetup #2:  Why Developing with Couchbase is easy !! Couchbase Singapore Meetup #2:  Why Developing with Couchbase is easy !!
Couchbase Singapore Meetup #2: Why Developing with Couchbase is easy !!
 
Data Warehouse Modernization - Big Data in the Cloud Success with Qubole on O...
Data Warehouse Modernization - Big Data in the Cloud Success with Qubole on O...Data Warehouse Modernization - Big Data in the Cloud Success with Qubole on O...
Data Warehouse Modernization - Big Data in the Cloud Success with Qubole on O...
 
Optimizing MySQL for Cascade Server
Optimizing MySQL for Cascade ServerOptimizing MySQL for Cascade Server
Optimizing MySQL for Cascade Server
 
Couchbase Chennai Meetup: Developing with Couchbase- made easy
Couchbase Chennai Meetup:  Developing with Couchbase- made easyCouchbase Chennai Meetup:  Developing with Couchbase- made easy
Couchbase Chennai Meetup: Developing with Couchbase- made easy
 
MySQL Cluster - Latest Developments (up to and including MySQL Cluster 7.4)
MySQL Cluster - Latest Developments (up to and including MySQL Cluster 7.4)MySQL Cluster - Latest Developments (up to and including MySQL Cluster 7.4)
MySQL Cluster - Latest Developments (up to and including MySQL Cluster 7.4)
 
MISYS-KL - Cintra Optimized Oracle Archiecture Solution and Services 1.1.pdf
MISYS-KL - Cintra Optimized Oracle Archiecture Solution and Services 1.1.pdfMISYS-KL - Cintra Optimized Oracle Archiecture Solution and Services 1.1.pdf
MISYS-KL - Cintra Optimized Oracle Archiecture Solution and Services 1.1.pdf
 
Implementing SharePoint on Azure, Lessons Learnt from a Real World Project
Implementing SharePoint on Azure, Lessons Learnt from a Real World ProjectImplementing SharePoint on Azure, Lessons Learnt from a Real World Project
Implementing SharePoint on Azure, Lessons Learnt from a Real World Project
 
Java ee7 with apache spark for the world's largest credit card core systems, ...
Java ee7 with apache spark for the world's largest credit card core systems, ...Java ee7 with apache spark for the world's largest credit card core systems, ...
Java ee7 with apache spark for the world's largest credit card core systems, ...
 
20240518 - VixulCon 2024 - The Rise of PostgreSQL_ Historic Trends and Modern...
20240518 - VixulCon 2024 - The Rise of PostgreSQL_ Historic Trends and Modern...20240518 - VixulCon 2024 - The Rise of PostgreSQL_ Historic Trends and Modern...
20240518 - VixulCon 2024 - The Rise of PostgreSQL_ Historic Trends and Modern...
 
Oracle RAC - Customer Proven Scalability
Oracle RAC - Customer Proven ScalabilityOracle RAC - Customer Proven Scalability
Oracle RAC - Customer Proven Scalability
 
Private Cloud: Database-as-a-Service with Enterprise Manager : OOW 16
Private Cloud: Database-as-a-Service with Enterprise Manager : OOW 16Private Cloud: Database-as-a-Service with Enterprise Manager : OOW 16
Private Cloud: Database-as-a-Service with Enterprise Manager : OOW 16
 
FlexPod Datacenter for Oracle’s JD Edwards EnterpriseOne
FlexPod Datacenter for Oracle’s JD Edwards EnterpriseOneFlexPod Datacenter for Oracle’s JD Edwards EnterpriseOne
FlexPod Datacenter for Oracle’s JD Edwards EnterpriseOne
 

More from Chris Bailey

NodeJS Interactive 2019: FaaS meets Frameworks
NodeJS Interactive 2019:  FaaS meets FrameworksNodeJS Interactive 2019:  FaaS meets Frameworks
NodeJS Interactive 2019: FaaS meets Frameworks
Chris Bailey
 
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
Chris Bailey
 
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
Chris Bailey
 
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
Chris Bailey
 
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
Chris Bailey
 
Server-side Swift with Swagger
Server-side Swift with SwaggerServer-side Swift with Swagger
Server-side Swift with Swagger
Chris Bailey
 
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
Chris Bailey
 
Index - BFFs vs GraphQL
Index - BFFs vs GraphQLIndex - BFFs vs GraphQL
Index - BFFs vs GraphQL
Chris Bailey
 
Swift Cloud Workshop - Swift Microservices
Swift Cloud Workshop - Swift MicroservicesSwift Cloud Workshop - Swift Microservices
Swift Cloud Workshop - Swift Microservices
Chris Bailey
 
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
Chris Bailey
 
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
Chris Bailey
 
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
Chris Bailey
 
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
Chris Bailey
 
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
Chris Bailey
 
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
Chris Bailey
 
FrenchKit 2017: Server(less) Swift
FrenchKit 2017: Server(less) SwiftFrenchKit 2017: Server(less) Swift
FrenchKit 2017: Server(less) Swift
Chris Bailey
 
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
Chris Bailey
 
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
Chris Bailey
 
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
Chris Bailey
 
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
Chris Bailey
 

More from 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
 
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
 

Recently uploaded

Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …
908dutch
 
WhatsApp Tracker - Tracking WhatsApp to Boost Online Safety.pdf
WhatsApp Tracker -  Tracking WhatsApp to Boost Online Safety.pdfWhatsApp Tracker -  Tracking WhatsApp to Boost Online Safety.pdf
WhatsApp Tracker - Tracking WhatsApp to Boost Online Safety.pdf
onemonitarsoftware
 
CViewSurvey Digitech Pvt Ltd that works on a proven C.A.A.G. model.
CViewSurvey Digitech Pvt Ltd that  works on a proven C.A.A.G. model.CViewSurvey Digitech Pvt Ltd that  works on a proven C.A.A.G. model.
CViewSurvey Digitech Pvt Ltd that works on a proven C.A.A.G. model.
bhatinidhi2001
 
NYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdfNYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdf
AUGNYC
 
Development of Chatbot Using AI\ML Technologies
Development of Chatbot Using AI\ML TechnologiesDevelopment of Chatbot Using AI\ML Technologies
Development of Chatbot Using AI\ML Technologies
MaisnamLuwangPibarel
 
introduction of Ansys software and basic and advance knowledge of modelling s...
introduction of Ansys software and basic and advance knowledge of modelling s...introduction of Ansys software and basic and advance knowledge of modelling s...
introduction of Ansys software and basic and advance knowledge of modelling s...
sachin chaurasia
 
Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)
miso_uam
 
Safe Work Permit Management Software for Hot Work Permits
Safe Work Permit Management Software for Hot Work PermitsSafe Work Permit Management Software for Hot Work Permits
Safe Work Permit Management Software for Hot Work Permits
sheqnetworkmarketing
 
COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...
COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...
COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...
Hironori Washizaki
 
How we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hoursHow we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hours
Ortus Solutions, Corp
 
Splunk_Remote_Work_Insights_Overview.pptx
Splunk_Remote_Work_Insights_Overview.pptxSplunk_Remote_Work_Insights_Overview.pptx
Splunk_Remote_Work_Insights_Overview.pptx
sudsdeep
 
Migrate your Infrastructure to the AWS Cloud
Migrate your Infrastructure to the AWS CloudMigrate your Infrastructure to the AWS Cloud
Migrate your Infrastructure to the AWS Cloud
Ortus Solutions, Corp
 
NBFC Software: Optimize Your Non-Banking Financial Company
NBFC Software: Optimize Your Non-Banking Financial CompanyNBFC Software: Optimize Your Non-Banking Financial Company
NBFC Software: Optimize Your Non-Banking Financial Company
NBFC Softwares
 
active-directory-auditing-solution (2).pptx
active-directory-auditing-solution (2).pptxactive-directory-auditing-solution (2).pptx
active-directory-auditing-solution (2).pptx
sudsdeep
 
ThaiPy meetup - Indexes and Django
ThaiPy meetup - Indexes and DjangoThaiPy meetup - Indexes and Django
ThaiPy meetup - Indexes and Django
akshesh doshi
 
dachnug51 - All you ever wanted to know about domino licensing.pdf
dachnug51 - All you ever wanted to know about domino licensing.pdfdachnug51 - All you ever wanted to know about domino licensing.pdf
dachnug51 - All you ever wanted to know about domino licensing.pdf
DNUG e.V.
 
Folding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a seriesFolding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a series
Philip Schwarz
 
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) AWS Security .pdf
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) AWS Security .pdfAWS Cloud Practitioner Essentials (Second Edition) (Arabic) AWS Security .pdf
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) AWS Security .pdf
karim wahed
 
Independence Day Hasn’t Always Been a U.S. Holiday.pdf
Independence Day Hasn’t Always Been a U.S. Holiday.pdfIndependence Day Hasn’t Always Been a U.S. Holiday.pdf
Independence Day Hasn’t Always Been a U.S. Holiday.pdf
Livetecs LLC
 
Cultural Shifts: Embracing DevOps for Organizational Transformation
Cultural Shifts: Embracing DevOps for Organizational TransformationCultural Shifts: Embracing DevOps for Organizational Transformation
Cultural Shifts: Embracing DevOps for Organizational Transformation
Mindfire Solution
 

Recently uploaded (20)

Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …
 
WhatsApp Tracker - Tracking WhatsApp to Boost Online Safety.pdf
WhatsApp Tracker -  Tracking WhatsApp to Boost Online Safety.pdfWhatsApp Tracker -  Tracking WhatsApp to Boost Online Safety.pdf
WhatsApp Tracker - Tracking WhatsApp to Boost Online Safety.pdf
 
CViewSurvey Digitech Pvt Ltd that works on a proven C.A.A.G. model.
CViewSurvey Digitech Pvt Ltd that  works on a proven C.A.A.G. model.CViewSurvey Digitech Pvt Ltd that  works on a proven C.A.A.G. model.
CViewSurvey Digitech Pvt Ltd that works on a proven C.A.A.G. model.
 
NYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdfNYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdf
 
Development of Chatbot Using AI\ML Technologies
Development of Chatbot Using AI\ML TechnologiesDevelopment of Chatbot Using AI\ML Technologies
Development of Chatbot Using AI\ML Technologies
 
introduction of Ansys software and basic and advance knowledge of modelling s...
introduction of Ansys software and basic and advance knowledge of modelling s...introduction of Ansys software and basic and advance knowledge of modelling s...
introduction of Ansys software and basic and advance knowledge of modelling s...
 
Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)
 
Safe Work Permit Management Software for Hot Work Permits
Safe Work Permit Management Software for Hot Work PermitsSafe Work Permit Management Software for Hot Work Permits
Safe Work Permit Management Software for Hot Work Permits
 
COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...
COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...
COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...
 
How we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hoursHow we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hours
 
Splunk_Remote_Work_Insights_Overview.pptx
Splunk_Remote_Work_Insights_Overview.pptxSplunk_Remote_Work_Insights_Overview.pptx
Splunk_Remote_Work_Insights_Overview.pptx
 
Migrate your Infrastructure to the AWS Cloud
Migrate your Infrastructure to the AWS CloudMigrate your Infrastructure to the AWS Cloud
Migrate your Infrastructure to the AWS Cloud
 
NBFC Software: Optimize Your Non-Banking Financial Company
NBFC Software: Optimize Your Non-Banking Financial CompanyNBFC Software: Optimize Your Non-Banking Financial Company
NBFC Software: Optimize Your Non-Banking Financial Company
 
active-directory-auditing-solution (2).pptx
active-directory-auditing-solution (2).pptxactive-directory-auditing-solution (2).pptx
active-directory-auditing-solution (2).pptx
 
ThaiPy meetup - Indexes and Django
ThaiPy meetup - Indexes and DjangoThaiPy meetup - Indexes and Django
ThaiPy meetup - Indexes and Django
 
dachnug51 - All you ever wanted to know about domino licensing.pdf
dachnug51 - All you ever wanted to know about domino licensing.pdfdachnug51 - All you ever wanted to know about domino licensing.pdf
dachnug51 - All you ever wanted to know about domino licensing.pdf
 
Folding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a seriesFolding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a series
 
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) AWS Security .pdf
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) AWS Security .pdfAWS Cloud Practitioner Essentials (Second Edition) (Arabic) AWS Security .pdf
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) AWS Security .pdf
 
Independence Day Hasn’t Always Been a U.S. Holiday.pdf
Independence Day Hasn’t Always Been a U.S. Holiday.pdfIndependence Day Hasn’t Always Been a U.S. Holiday.pdf
Independence Day Hasn’t Always Been a U.S. Holiday.pdf
 
Cultural Shifts: Embracing DevOps for Organizational Transformation
Cultural Shifts: Embracing DevOps for Organizational TransformationCultural Shifts: Embracing DevOps for Organizational Transformation
Cultural Shifts: Embracing DevOps for Organizational Transformation
 

O'Reilly Software Architecture Conf: Cloud Economics

  • 1. Cloud Economics Chris Bailey, IBM @Chris__Bailey
  • 2. “Cloud economics is a branch of knowledge concerned with the principles, costs and benefits of cloud computing.” — searchcio.techtarget.com
  • 6. Traditional Computing § On premise, or hosted bare metal machines | @Chris__Bailey
  • 7. Traditional Computing § On premise, or hosted bare metal machines § Capital Expenditure (CapEX): - Upfront cost, followed by depreciation | @Chris__Bailey
  • 8. Traditional Computing § On premise, or hosted bare metal machines § Capital Expenditure (CapEX): - Upfront cost, followed by depreciation § Requirement for accurate capacity planning - Estimate hardware for given load - Project future load requirements | @Chris__Bailey
  • 9. Traditional Computing § On premise, or hosted bare metal machines § Capital Expenditure (CapEX): - Upfront cost, followed by depreciation § Requirement for accurate capacity planning - Estimate hardware for given load - Project future load requirements § IT is seen as a cost centre | @Chris__Bailey
  • 10. Capacity Planning § Find a representative benchmark? | @Chris__Bailey SPECjEnterprise 2010 (spec.org)
  • 11. Capacity Planning § Find a representative benchmark? - SPECjbb2015 - SPECjEnterprise2010 - SPECjms2007 - SPECjvm2008 | @Chris__Bailey SPECjbb2015 (spec.org)
  • 12. Capacity Planning § Find a representative benchmark? - SPECjbb2015 - SPECjEnterprise2010 - SPECjms2007 - SPECjvm2008 | @Chris__Bailey SPECjbb2015 (spec.org)
  • 13. Capacity Planning § Find a representative benchmark? - SPECjbb2015 - SPECjEnterprise2010 - SPECjms2007 - SPECjvm2008 | @Chris__Bailey SPECjEnterprise2010 (spec.org)
  • 14. Capacity Planning § Find a representative benchmark? - SPECjbb2015 - SPECjEnterprise2010 - SPECjms2007 - SPECjvm2008 | @Chris__Bailey
  • 15. Capacity Planning § Find a representative benchmark? - SPECjbb2015 - SPECjEnterprise2010 - SPECjms2007 - SPECjvm2008 | @Chris__Bailey
  • 16. § Find a representative benchmark? - SPECjEnterprise2010 § Analyse the results Capacity Planning Tested By System Name Result Java EE Server DB Server Nodes CPU Nodes CPU Oracle Corporation Oracle WebLogic Server Standard Edition Release 12.2.1 on SPARC S7-2 Jun 29, 2016 | HTML | Text 14,121.47 1 16 cores, 2 chips 1 16 cores, 2 chips Oracle Corporation Oracle WebLogic Server Standard Edition Release 12.2.1 on SPARC S7-2 Jun 29, 2016 | HTML | Text 14,400.78 1 16 cores, 2 chips 1 16 cores, 2 chip | @Chris__Bailey
  • 17. § Find a representative benchmark? - SPECjEnterprise2010 § Analyse the results Capacity Planning Tested By System Name Result Java EE Server DB Server Nodes CPU Nodes CPU Oracle Corporation Oracle WebLogic Server Standard Edition Release 12.2.1 on SPARC S7-2 Jun 29, 2016 | HTML | Text 14,121.47 1 16 cores, 2 chips 1 16 cores, 2 chips Oracle Corporation Oracle WebLogic Server Standard Edition Release 12.2.1 on SPARC S7-2 Jun 29, 2016 | HTML | Text 14,400.78 1 16 cores, 2 chips 1 16 cores, 2 chip | @Chris__Bailey
  • 18. § Find a representative benchmark? - SPECjEnterprise2010 § Analyse the results Capacity Planning Tested By System Name Result Java EE Server DB Server Nodes CPU Nodes CPU Oracle Corporation Oracle Weblogic Server Standard Edition Release 12.2.1 on Oracle Server X6-2 Mar 31, 2016 | HTML | Text NC 1 44 cores, 2 chips 1 44 cores, 2 chips | @Chris__Bailey
  • 19. § Find a representative benchmark? - SPECjEnterprise2010 § Analyse the results Capacity Planning Tested By System Name Result Java EE Server DB Server Nodes CPU Nodes CPU Oracle Corporation Oracle Weblogic Server Standard Edition Release 12.2.1 on Oracle Server X6-2 Mar 31, 2016 | HTML | Text NC 1 44 cores, 2 chips 1 44 cores, 2 chips | @Chris__Bailey
  • 20. § Find a representative benchmark? - SPECjEnterprise2010 § Analyse the results Capacity Planning Tested By System Name Result Java EE Server DB Server Nodes CPU Nodes CPU Oracle Corporation Oracle WebLogic Server Standard Edition Release 12.1.3 on Oracle Server X5-2 Apr 1, 2015 | HTML | Text 21,504.30 1 36 cores, 2 chips 1 36 cores, 2 chips | @Chris__Bailey
  • 21. § Find a representative benchmark? - SPECjEnterprise2010 § Analyse the results Capacity Planning Tested By System Name Result Java EE Server DB Server Nodes CPU Nodes CPU Oracle Corporation Oracle WebLogic Server Standard Edition Release 12.1.3 on Oracle Server X5-2 Apr 1, 2015 | HTML | Text 21,504.30 1 36 cores, 2 chips 1 36 cores, 2 chips | @Chris__Bailey
  • 22. § Find a representative benchmark? - SPECjEnterprise2010 § Analyse the results Capacity Planning Tested By System Name Result Java EE Server DB Server Nodes CPU Nodes CPU Oracle Corporation Oracle WebLogic Server Standard Edition Release 12.1.3 on Oracle Server X5-2 Apr 1, 2015 | HTML | Text 21,504.30 1 36 cores, 2 chips 1 36 cores, 2 chips | @Chris__Bailey
  • 23. § Find a representative benchmark? - SPECjEnterprise2010 § Analyse the results Capacity Planning Tested By System Name Result Java EE Server DB Server Nodes CPU Nodes CPU Oracle Corporation Oracle WebLogic Server Standard Edition Release 12.1.3 on Oracle Server X5-2 Apr 1, 2015 | HTML | Text 21,504.30 1 36 cores, 2 chips 1 36 cores, 2 chips | @Chris__Bailey
  • 24. § Find a representative benchmark? - SPECjEnterprise2010 § Analyse the results - Intel® Xeon® processor E5- 2600 v3 @3.6GHz Capacity Planning Tested By System Name Result Java EE Server DB Server Nodes CPU Nodes CPU Oracle Corporation Oracle WebLogic Server Standard Edition Release 12.1.3 on Oracle Server X5-2 Apr 1, 2015 | HTML | Text 21,504.30 1 36 cores, 2 chips 1 36 cores, 2 chips | @Chris__Bailey
  • 25. § Find a representative benchmark? - SPECjEnterprise2010 § Analyse the results § Calculate transactions per core Capacity Planning Tested By System Name Result Java EE Server DB Server Nodes CPU Nodes CPU Oracle Corporation Oracle WebLogic Server Standard Edition Release 12.1.3 on Oracle Server X5-2 Apr 1, 2015 | HTML | Text 21,504.30 1 36 cores, 2 chips 1 36 cores, 2 chips | @Chris__Bailey
  • 26. § Find a representative benchmark? - SPECjEnterprise2010 § Analyse the results § Calculate transactions per core - 21,504.30 / 36 = 597.3 EjOPS/core Capacity Planning Tested By System Name Result Java EE Server DB Server Nodes CPU Nodes CPU Oracle Corporation Oracle WebLogic Server Standard Edition Release 12.1.3 on Oracle Server X5-2 Apr 1, 2015 | HTML | Text 21,504.30 1 36 cores, 2 chips 1 36 cores, 2 chips | @Chris__Bailey
  • 31. Capacity Planning | @Chris__Bailey Time Capacity Predicted Load Purchasing
 Delay Capacity Requirement
  • 32. Capacity Planning | @Chris__Bailey Time Capacity Predicted Load Purchasing
 Delay Capacity Requirement
  • 33. Capacity Planning | @Chris__Bailey Time Capacity Predicted Load Purchasing
 Delay Predicted Load + 10% Capacity Requirement
  • 34. Capacity Planning | @Chris__Bailey Time Capacity Predicted Load Capacity Requirement Purchasing
 Delay Predicted Load + 10%
  • 35. Capacity Planning | @Chris__Bailey Time Capacity Predicted Load Capacity Requirement Purchasing
 Delay Predicted Load + 10%
  • 36. Capacity Planning | @Chris__Bailey Time Capacity Predicted Load Capacity Requirement Purchasing
 Delay
  • 37. Capacity Planning | @Chris__Bailey Time Capacity Predicted Load Capacity Requirement Purchasing
 Delay Excess Capacity Excess Capacity
  • 38. Capacity Planning § Size for peak demand - Allow for Black Friday / Cyber Monday - Or just changes in load throughout each day | @Chris__Bailey
  • 39. Capacity Planning § Size for peak demand - Allow for Black Friday / Cyber Monday - Or just changes in load throughout each day § Allow for High Availability (HA) and Disaster Recovery (DR) - Rule of three for HA - 50% extra capacity - Full fail-over for DR - 100% extra capacity | @Chris__Bailey
  • 40. Capacity Planning § Size for peak demand - Allow for Black Friday / Cyber Monday - Or just changes in load throughout each day § Allow for High Availability (HA) and Disaster Recovery (DR) - Rule of three for HA - 50% extra capacity - Full fail-over for DR - 100% extra capacity § Oh, and what about capacity for integration, stress and performance test? | @Chris__Bailey
  • 41. Most enterprises have hardware utilisation below 20%
  • 42. Most enterprises have hardware utilisation below 20% and below 10% for workloads with peaks
  • 43. Capacity Planning and Agility § Time to obtain capacity affects operational agility § Market opportunities lost because of lead time for new projects | @Chris__Bailey
  • 44. Capacity Planning and Agility § Time to obtain capacity affects operational agility § Market opportunities lost because of lead time for new projects § 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. | @Chris__Bailey
  • 46. 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 | @Chris__Bailey
  • 47. Cloud Values § Much shorter “purchasing delay” § Return integration, stress and performance test environments after use § Cloud guarantees remove need for DR | @Chris__Bailey
  • 48. Traditional Capacity Planning | @Chris__Bailey Time Capacity Predicted Load Capacity Requirement Purchasing
 Delay Excess Capacity Excess Capacity
  • 49. Cloud Capacity Planning | @Chris__Bailey Time Capacity Predicted Load Capacity Requirement Excess Capacity Excess Capacity
  • 50. Cloud Capacity Planning | @Chris__Bailey Time Capacity Predicted Load Capacity Requirement Excess Capacity
  • 51. Capacity Planning and Agility § 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. | @Chris__Bailey
  • 52. Capacity Planning and Agility § 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. Achievement Unlocked! | @Chris__Bailey
  • 53. Other advantages of Cloud § Globally distributed data centres and locality | @Chris__Bailey https://aws.amazon.com/about-aws/global-infrastructure/
  • 54. Other advantages of Cloud § Globally distributed data centres and locality | @Chris__Bailey https://aws.amazon.com/about-aws/global-infrastructure/
  • 56. OpEx vs CapEx… § Rent vs Buy | @Chris__Bailey
  • 57. OpEx vs CapEx… § Rent vs Buy § No upfront cost, but no end to cost | @Chris__Bailey
  • 58. OpEx vs CapEx… § Rent vs Buy § No upfront cost, but no end to cost § Drive for operational efficiency | @Chris__Bailey
  • 59. OpEx vs CapEx… § Rent vs Buy § No upfront cost, but no end to cost § Drive for operational efficiency § Focus on ROI for individual apps and app features | @Chris__Bailey
  • 60. How is Cloud cost calculated? | @Chris__Bailey Provider Type Memory CPUs Cost/month Amazon EC2 Linux t2.nano 512MB 1 vCPU $4.68 Linux t2.micro 1GB 1 vCPU $9.36 Linux t2.small 2GB 1 vCPU $18.72 Linux t2.medium 4GB 2 vCPUs $37.44 Digital Ocean Standard 512MB 1 Core Processor $5.00 Standard 1GB 1 Core Processor $10.00 Standard 2GB 2 Core Processors $20.00 Pivotal Cloud Foundry App Instance 512MB 4 vCPUs $10.80 App Instance 1GB 4 vCPUs $21.60 App Instance 2GB 4 vCPUs $43.20 Heroku Standard 1x 512MB 1 Share $25.00 Standard 2x 1GB 2 Shares $50.00 IBM Bluemix Instant Runtimes 512MB 4 vCPUs $24.15 Instant Runtimes 1GB 4 vCPUs $49.35 Containers 512MB 4 vCPUs $10.22 Containers 1GB 4 vCPUs $20.59
  • 62. Movement from CPU to Memory based costs is a fundamental shift for Application Architectures
  • 63. § Find a representative benchmark? - SPECjEnterprise2010 § Analyse the results - Intel® Xeon® processor E5- 2600 v3 @3.6GHz Capacity Planning Tested By System Name Result Java EE Server DB Server Nodes CPU Nodes CPU Oracle Corporation Oracle WebLogic Server Standard Edition Release 12.1.3 on Oracle Server X5-2 Apr 1, 2015 | HTML | Text 21,504.30 1 36 cores, 2 chips 1 36 cores, 2 chips | @Chris__Bailey
  • 64. Reading the fine print… Hardware Vendor: Oracle Corporation Model Name: Oracle Server X5-2 Processor: Intel Xeon processor E5-2699 v3 (Intel Turbo Boost Technology up to 3.6 GHz) MHz: 2300 # of CPUs: 36 cores, 2 chips, 18 cores/chip, 2 threads/core (Hyper-Threading) Memory (MB): 262144 Disks: 2x 600GB SAS-2 HDD and 2x 400GB SSD Network Interface: 4x 10Gbit onboard and 3x 10GBit Dual-port NICs JVM Options: -server -Xms18g -Xmx18g -Xmn16g -Xss256k -XX:MetaspaceSize=200M -XX:+AggressiveOpts -XX:+UseParallelOldGC -XX:ParallelGCThreads=9 -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:InitialCodeCacheSize=200m -XX:ReservedCodeCacheSize=200m -XX:+UseCompressedOops -XX:-UseBiasedLocking -XX:+AlwaysPreTouch -XX:InitialSurvivorRatio=24 -XX:SurvivorRatio=24 -XX:TargetSurvivorRatio=90 -XX:-UseAdaptiveSizePolicy -XX:+UseLargePages -Djava.net.preferIPv4Stack=true -Djaxws.transport.streaming=true -XX:-TieredCompilation -Dweblogic.ProductionModeEnabled=true -Dweblogic.management.discover=false -Dweblogic.diagnostics.debug.DebugLogger.DISABLED=true -Doracle.jdbc.defaultRowPrefetch=200 -Djavax.xml.parsers.DocumentBuilderFactory=weblogic.xml.jaxp.RegistryDocumentBuilderFactory -Dweblogic.threadpool.MinPoolSize=30 -Dsun.net.inetaddr.ttl=0 -Dnetworkaddress.cache.ttl=0 -Dcom.sun.xml.ws.spi.db.BindingContextFactory=com.sun.xml.ws.db.glassfish.JAXBRIContextFactory -Djavax.xml.bind.JAXBContext=com.sun.xml.bind.v2.ContextFactory -Dweblogic.MuxerClass=weblogic.socket.NIOSocketMuxer -Dweblogic.SocketReaders=2 Server instances were started using numactl binding 1 instance per 9 cores. | @Chris__Bailey
  • 65. Reading the fine print… Hardware Vendor: Oracle Corporation Model Name: Oracle Server X5-2 Processor: Intel Xeon processor E5-2699 v3 (Intel Turbo Boost Technology up to 3.6 GHz) MHz: 2300 # of CPUs: 36 cores, 2 chips, 18 cores/chip, 2 threads/core (Hyper-Threading) Memory (MB): 262144 Disks: 2x 600GB SAS-2 HDD and 2x 400GB SSD Network Interface: 4x 10Gbit onboard and 3x 10GBit Dual-port NICs JVM Options: -server -Xms18g -Xmx18g -Xmn16g -Xss256k -XX:MetaspaceSize=200M -XX:+AggressiveOpts -XX:+UseParallelOldGC -XX:ParallelGCThreads=9 -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:InitialCodeCacheSize=200m -XX:ReservedCodeCacheSize=200m -XX:+UseCompressedOops -XX:-UseBiasedLocking -XX:+AlwaysPreTouch -XX:InitialSurvivorRatio=24 -XX:SurvivorRatio=24 -XX:TargetSurvivorRatio=90 -XX:-UseAdaptiveSizePolicy -XX:+UseLargePages -Djava.net.preferIPv4Stack=true -Djaxws.transport.streaming=true -XX:-TieredCompilation -Dweblogic.ProductionModeEnabled=true -Dweblogic.management.discover=false -Dweblogic.diagnostics.debug.DebugLogger.DISABLED=true -Doracle.jdbc.defaultRowPrefetch=200 -Djavax.xml.parsers.DocumentBuilderFactory=weblogic.xml.jaxp.RegistryDocumentBuilderFactory -Dweblogic.threadpool.MinPoolSize=30 -Dsun.net.inetaddr.ttl=0 -Dnetworkaddress.cache.ttl=0 -Dcom.sun.xml.ws.spi.db.BindingContextFactory=com.sun.xml.ws.db.glassfish.JAXBRIContextFactory -Djavax.xml.bind.JAXBContext=com.sun.xml.bind.v2.ContextFactory -Dweblogic.MuxerClass=weblogic.socket.NIOSocketMuxer -Dweblogic.SocketReaders=2 Server instances were started using numactl binding 1 instance per 9 cores. | @Chris__Bailey
  • 66. Reading the fine print… Hardware Vendor: Oracle Corporation Model Name: Oracle Server X5-2 Processor: Intel Xeon processor E5-2699 v3 (Intel Turbo Boost Technology up to 3.6 GHz) MHz: 2300 # of CPUs: 36 cores, 2 chips, 18 cores/chip, 2 threads/core (Hyper-Threading) Memory (MB): 262144 Disks: 2x 600GB SAS-2 HDD and 2x 400GB SSD Network Interface: 4x 10Gbit onboard and 3x 10GBit Dual-port NICs 7.1GB / core JVM Options: -server -Xms18g -Xmx18g -Xmn16g -Xss256k -XX:MetaspaceSize=200M -XX:+AggressiveOpts -XX:+UseParallelOldGC -XX:ParallelGCThreads=9 -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:InitialCodeCacheSize=200m -XX:ReservedCodeCacheSize=200m -XX:+UseCompressedOops -XX:-UseBiasedLocking -XX:+AlwaysPreTouch -XX:InitialSurvivorRatio=24 -XX:SurvivorRatio=24 -XX:TargetSurvivorRatio=90 -XX:-UseAdaptiveSizePolicy -XX:+UseLargePages -Djava.net.preferIPv4Stack=true -Djaxws.transport.streaming=true -XX:-TieredCompilation -Dweblogic.ProductionModeEnabled=true -Dweblogic.management.discover=false -Dweblogic.diagnostics.debug.DebugLogger.DISABLED=true -Doracle.jdbc.defaultRowPrefetch=200 -Djavax.xml.parsers.DocumentBuilderFactory=weblogic.xml.jaxp.RegistryDocumentBuilderFactory -Dweblogic.threadpool.MinPoolSize=30 -Dsun.net.inetaddr.ttl=0 -Dnetworkaddress.cache.ttl=0 -Dcom.sun.xml.ws.spi.db.BindingContextFactory=com.sun.xml.ws.db.glassfish.JAXBRIContextFactory -Djavax.xml.bind.JAXBContext=com.sun.xml.bind.v2.ContextFactory -Dweblogic.MuxerClass=weblogic.socket.NIOSocketMuxer -Dweblogic.SocketReaders=2 Server instances were started using numactl binding 1 instance per 9 cores. | @Chris__Bailey
  • 67. § Project Management Triangle § Fast § Good § Cheap § Pick any two… Performance Optimisation Euler Diagram Cheap Fast Good | @Chris__Bailey
  • 68. § Performance Triangle § Throughput § Latency § Memory footprint § Enterprise software has traditionally chosen
 throughput and latency over memory § Data caching § Garbage Collection § Function Inlining Low Memory High Throughput Low Latency Performance Optimisation Euler Diagram | @Chris__Bailey
  • 69. Garbage Collection Tradeoff | @Chris__Bailey Memory Heap Size
  • 70. Garbage Collection Tradeoff | @Chris__Bailey Memory Live in-use data (Retained Set) Heap Size
  • 71. Garbage Collection Tradeoff | @Chris__Bailey Memory Live in-use data (Retained Set) Heap Size Temporary Data (Garbage) Temporary Data (Garbage)
  • 72. Garbage Collection Tradeoff | @Chris__Bailey Memory Live in-use data (Retained Set) Heap Size Temporary Data (Garbage) Temporary Data (Garbage)
  • 73. Garbage Collection Tradeoff | @Chris__Bailey Memory Live in-use data (Retained Set) Heap Size Temporary Data (Garbage) Temporary Data (Garbage)
  • 74. Garbage Collection Tradeoff | @Chris__Bailey Memory Live in-use data (Retained Set) Heap Size Temporary Data (Garbage) Temporary Data (Garbage) 40 to 70%
  • 75. Garbage Collection Tradeoff | @Chris__Bailey Memory Live in-use data (Retained Set) Heap Size Temporary Data (Garbage) Temporary Data (Garbage) 40 to 70% 30 to 60% additional memory for additional performance
  • 76. Optimising for the Cloud

  • 77. Optimising for the Cloud
 #1: Choose The Right Language
  • 78. Memory Usage by Language | @Chris__Bailey 0 17.5 35 52.5 70 C++ Mem usage (MB) C
  • 79. Memory Usage by Language | @Chris__Bailey 0 17.5 35 52.5 70 C++ Go Sw i: Rust Mem usage (MB) Modern NativeC
  • 80. Memory Usage by Language | @Chris__Bailey 0 17.5 35 52.5 70 C++ Go Sw i: Rust Ruby PHP Python JavaScript Erlang Dart Mem usage (MB) Modern Native ScriptingC
  • 81. Memory Usage by Language | @Chris__Bailey 0 17.5 35 52.5 70 C++ Go Sw i: Rust Ruby PHP Python JavaScript Erlang Dart Java Scala Clojure Mem usage (MB) Modern Native Scripting JVM C
  • 82. Throughput by Language | @Chris__Bailey C 0 25 50 75 100 C++ DuraOon
  • 83. Throughput by Language | @Chris__Bailey Modern NativeC 0 25 50 75 100 C++ Go Sw i: Rust DuraOon
  • 84. Throughput by Language | @Chris__Bailey Modern Native ScriptingC 0 25 50 75 100 C++ Go Sw i: Rust Ruby PHP Python JavaScript Erlang Dart DuraOon
  • 85. Throughput by Language | @Chris__Bailey Modern Native Scripting JVM C 0 25 50 75 100 C++ Go Sw i: Rust Ruby PHP Python JavaScript Erlang Dart Java Scala Clojure DuraOon
  • 86. Normalised Throughput/Memory Language | @Chris__Bailey C 0 20 40 60 80 C++ DuraOon
  • 87. Normalised Throughput/Memory Language | @Chris__Bailey Modern NativeC 0 20 40 60 80 C++ Go Sw i: Rust DuraOon
  • 88. Normalised Throughput/Memory Language | @Chris__Bailey Modern Native ScriptingC 0 20 40 60 80 C++ Go Sw i: Rust Ruby PHP Python JavaScript Erlang Dart DuraOon
  • 89. Normalised Throughput/Memory Language | @Chris__Bailey Modern Native Scripting JVM C 0 20 40 60 80 C++ Go Sw i: Rust Ruby PHP Python JavaScript Erlang Dart Java Scala Clojure DuraOon
  • 90. Selecting the Language § Ruby on Rails app, 100 instances at 500MB / instance - 50GB of memory required at $24.15 GB/month - = $14,490/year | @Chris__Bailey
  • 91. Selecting the Language § Ruby on Rails app, 100 instances at 500MB / instance - 50GB of memory required at $24.15 GB/month - = $14,490/year § Switching to Java provides a 7x saving: - = $2,070/year | @Chris__Bailey
  • 92. Selecting the Language § Ruby on Rails app, 100 instances at 500MB / instance - 50GB of memory required at $24.15 GB/month - = $14,490/year § Switching to Java provides a 7x saving: - = $2,070/year § Switching to Swift provides 42x saving: - = $345/year | @Chris__Bailey
  • 93. Selecting the Language | @Chris__Bailey C++ Go Swift Rust Ruby PHP Python JScript Erlang Dart Java Scala Clojure C++ 4.02 10.96 14.65 461.69 251.83 689.22 40.25 359.13 75.16 65.18 79.88 169.17 Go 0.25 2.73 3.64 114.79 62.61 171.37 10.01 89.29 18.69 16.21 19.86 42.06 Swift 0.09 0.37 1.34 42.11 22.97 62.86 3.67 32.75 6.86 5.95 7.29 15.43 Rust 0.07 0.27 0.75 31.52 17.19 47.06 2.75 24.52 5.13 4.45 5.45 11.55 Ruby 0.00 0.01 0.02 0.03 0.55 1.49 0.09 0.78 0.16 0.14 0.17 0.37 PHP 0.00 0.02 0.04 0.06 1.83 2.74 0.16 1.43 0.30 0.26 0.32 0.67 Python 0.00 0.01 0.02 0.02 0.67 0.37 0.06 0.52 0.11 0.09 0.12 0.25 JScript 0.02 0.10 0.27 0.36 11.47 6.26 17.13 8.92 1.87 1.62 1.98 4.20 Erlang 0.00 0.01 0.03 0.04 1.29 0.70 1.92 0.11 0.21 0.18 0.22 0.47 Dart 0.01 0.05 0.15 0.19 6.14 3.35 9.17 0.54 4.78 0.87 1.06 2.25 Java 0.02 0.06 0.17 0.22 7.08 3.86 10.57 0.62 5.51 1.15 1.23 2.60 Scala 0.01 0.05 0.14 0.18 5.78 3.15 8.63 0.50 4.50 0.94 0.82 2.12 Clojure 0.01 0.02 0.06 0.09 2.73 1.49 4.07 0.24 2.12 0.44 0.39 0.47 From To
  • 94. Selecting the Language | @Chris__Bailey C++ Go Swift Rust Ruby PHP Python JScript Erlang Dart Java Scala Clojure C++ 4.02 10.96 14.65 461.69 251.83 689.22 40.25 359.13 75.16 65.18 79.88 169.17 Go 0.25 2.73 3.64 114.79 62.61 171.37 10.01 89.29 18.69 16.21 19.86 42.06 Swift 0.09 0.37 1.34 42.11 22.97 62.86 3.67 32.75 6.86 5.95 7.29 15.43 Rust 0.07 0.27 0.75 31.52 17.19 47.06 2.75 24.52 5.13 4.45 5.45 11.55 Ruby 0.00 0.01 0.02 0.03 0.55 1.49 0.09 0.78 0.16 0.14 0.17 0.37 PHP 0.00 0.02 0.04 0.06 1.83 2.74 0.16 1.43 0.30 0.26 0.32 0.67 Python 0.00 0.01 0.02 0.02 0.67 0.37 0.06 0.52 0.11 0.09 0.12 0.25 JScript 0.02 0.10 0.27 0.36 11.47 6.26 17.13 8.92 1.87 1.62 1.98 4.20 Erlang 0.00 0.01 0.03 0.04 1.29 0.70 1.92 0.11 0.21 0.18 0.22 0.47 Dart 0.01 0.05 0.15 0.19 6.14 3.35 9.17 0.54 4.78 0.87 1.06 2.25 Java 0.02 0.06 0.17 0.22 7.08 3.86 10.57 0.62 5.51 1.15 1.23 2.60 Scala 0.01 0.05 0.14 0.18 5.78 3.15 8.63 0.50 4.50 0.94 0.82 2.12 Clojure 0.01 0.02 0.06 0.09 2.73 1.49 4.07 0.24 2.12 0.44 0.39 0.47 From To C
  • 95. Selecting the Language | @Chris__Bailey C++ Go Swift Rust Ruby PHP Python JScript Erlang Dart Java Scala Clojure C++ 4.02 10.96 14.65 461.69 251.83 689.22 40.25 359.13 75.16 65.18 79.88 169.17 Go 0.25 2.73 3.64 114.79 62.61 171.37 10.01 89.29 18.69 16.21 19.86 42.06 Swift 0.09 0.37 1.34 42.11 22.97 62.86 3.67 32.75 6.86 5.95 7.29 15.43 Rust 0.07 0.27 0.75 31.52 17.19 47.06 2.75 24.52 5.13 4.45 5.45 11.55 Ruby 0.00 0.01 0.02 0.03 0.55 1.49 0.09 0.78 0.16 0.14 0.17 0.37 PHP 0.00 0.02 0.04 0.06 1.83 2.74 0.16 1.43 0.30 0.26 0.32 0.67 Python 0.00 0.01 0.02 0.02 0.67 0.37 0.06 0.52 0.11 0.09 0.12 0.25 JScript 0.02 0.10 0.27 0.36 11.47 6.26 17.13 8.92 1.87 1.62 1.98 4.20 Erlang 0.00 0.01 0.03 0.04 1.29 0.70 1.92 0.11 0.21 0.18 0.22 0.47 Dart 0.01 0.05 0.15 0.19 6.14 3.35 9.17 0.54 4.78 0.87 1.06 2.25 Java 0.02 0.06 0.17 0.22 7.08 3.86 10.57 0.62 5.51 1.15 1.23 2.60 Scala 0.01 0.05 0.14 0.18 5.78 3.15 8.63 0.50 4.50 0.94 0.82 2.12 Clojure 0.01 0.02 0.06 0.09 2.73 1.49 4.07 0.24 2.12 0.44 0.39 0.47 From To C Modern
 Native
  • 96. Selecting the Language | @Chris__Bailey C++ Go Swift Rust Ruby PHP Python JScript Erlang Dart Java Scala Clojure C++ 4.02 10.96 14.65 461.69 251.83 689.22 40.25 359.13 75.16 65.18 79.88 169.17 Go 0.25 2.73 3.64 114.79 62.61 171.37 10.01 89.29 18.69 16.21 19.86 42.06 Swift 0.09 0.37 1.34 42.11 22.97 62.86 3.67 32.75 6.86 5.95 7.29 15.43 Rust 0.07 0.27 0.75 31.52 17.19 47.06 2.75 24.52 5.13 4.45 5.45 11.55 Ruby 0.00 0.01 0.02 0.03 0.55 1.49 0.09 0.78 0.16 0.14 0.17 0.37 PHP 0.00 0.02 0.04 0.06 1.83 2.74 0.16 1.43 0.30 0.26 0.32 0.67 Python 0.00 0.01 0.02 0.02 0.67 0.37 0.06 0.52 0.11 0.09 0.12 0.25 JScript 0.02 0.10 0.27 0.36 11.47 6.26 17.13 8.92 1.87 1.62 1.98 4.20 Erlang 0.00 0.01 0.03 0.04 1.29 0.70 1.92 0.11 0.21 0.18 0.22 0.47 Dart 0.01 0.05 0.15 0.19 6.14 3.35 9.17 0.54 4.78 0.87 1.06 2.25 Java 0.02 0.06 0.17 0.22 7.08 3.86 10.57 0.62 5.51 1.15 1.23 2.60 Scala 0.01 0.05 0.14 0.18 5.78 3.15 8.63 0.50 4.50 0.94 0.82 2.12 Clojure 0.01 0.02 0.06 0.09 2.73 1.49 4.07 0.24 2.12 0.44 0.39 0.47 From To C Modern
 Native Scripting
  • 97. Selecting the Language | @Chris__Bailey C++ Go Swift Rust Ruby PHP Python JScript Erlang Dart Java Scala Clojure C++ 4.02 10.96 14.65 461.69 251.83 689.22 40.25 359.13 75.16 65.18 79.88 169.17 Go 0.25 2.73 3.64 114.79 62.61 171.37 10.01 89.29 18.69 16.21 19.86 42.06 Swift 0.09 0.37 1.34 42.11 22.97 62.86 3.67 32.75 6.86 5.95 7.29 15.43 Rust 0.07 0.27 0.75 31.52 17.19 47.06 2.75 24.52 5.13 4.45 5.45 11.55 Ruby 0.00 0.01 0.02 0.03 0.55 1.49 0.09 0.78 0.16 0.14 0.17 0.37 PHP 0.00 0.02 0.04 0.06 1.83 2.74 0.16 1.43 0.30 0.26 0.32 0.67 Python 0.00 0.01 0.02 0.02 0.67 0.37 0.06 0.52 0.11 0.09 0.12 0.25 JScript 0.02 0.10 0.27 0.36 11.47 6.26 17.13 8.92 1.87 1.62 1.98 4.20 Erlang 0.00 0.01 0.03 0.04 1.29 0.70 1.92 0.11 0.21 0.18 0.22 0.47 Dart 0.01 0.05 0.15 0.19 6.14 3.35 9.17 0.54 4.78 0.87 1.06 2.25 Java 0.02 0.06 0.17 0.22 7.08 3.86 10.57 0.62 5.51 1.15 1.23 2.60 Scala 0.01 0.05 0.14 0.18 5.78 3.15 8.63 0.50 4.50 0.94 0.82 2.12 Clojure 0.01 0.02 0.06 0.09 2.73 1.49 4.07 0.24 2.12 0.44 0.39 0.47 From To C Modern
 Native Scripting
  • 98. Selecting the Language | @Chris__Bailey C++ Go Swift Rust Ruby PHP Python JScript Erlang Dart Java Scala Clojure C++ 4.02 10.96 14.65 461.69 251.83 689.22 40.25 359.13 75.16 65.18 79.88 169.17 Go 0.25 2.73 3.64 114.79 62.61 171.37 10.01 89.29 18.69 16.21 19.86 42.06 Swift 0.09 0.37 1.34 42.11 22.97 62.86 3.67 32.75 6.86 5.95 7.29 15.43 Rust 0.07 0.27 0.75 31.52 17.19 47.06 2.75 24.52 5.13 4.45 5.45 11.55 Ruby 0.00 0.01 0.02 0.03 0.55 1.49 0.09 0.78 0.16 0.14 0.17 0.37 PHP 0.00 0.02 0.04 0.06 1.83 2.74 0.16 1.43 0.30 0.26 0.32 0.67 Python 0.00 0.01 0.02 0.02 0.67 0.37 0.06 0.52 0.11 0.09 0.12 0.25 JScript 0.02 0.10 0.27 0.36 11.47 6.26 17.13 8.92 1.87 1.62 1.98 4.20 Erlang 0.00 0.01 0.03 0.04 1.29 0.70 1.92 0.11 0.21 0.18 0.22 0.47 Dart 0.01 0.05 0.15 0.19 6.14 3.35 9.17 0.54 4.78 0.87 1.06 2.25 Java 0.02 0.06 0.17 0.22 7.08 3.86 10.57 0.62 5.51 1.15 1.23 2.60 Scala 0.01 0.05 0.14 0.18 5.78 3.15 8.63 0.50 4.50 0.94 0.82 2.12 Clojure 0.01 0.02 0.06 0.09 2.73 1.49 4.07 0.24 2.12 0.44 0.39 0.47 From To C Modern
 Native Scripting
  • 99. Selecting the Language | @Chris__Bailey C++ Go Swift Rust Ruby PHP Python JScript Erlang Dart Java Scala Clojure C++ 4.02 10.96 14.65 461.69 251.83 689.22 40.25 359.13 75.16 65.18 79.88 169.17 Go 0.25 2.73 3.64 114.79 62.61 171.37 10.01 89.29 18.69 16.21 19.86 42.06 Swift 0.09 0.37 1.34 42.11 22.97 62.86 3.67 32.75 6.86 5.95 7.29 15.43 Rust 0.07 0.27 0.75 31.52 17.19 47.06 2.75 24.52 5.13 4.45 5.45 11.55 Ruby 0.00 0.01 0.02 0.03 0.55 1.49 0.09 0.78 0.16 0.14 0.17 0.37 PHP 0.00 0.02 0.04 0.06 1.83 2.74 0.16 1.43 0.30 0.26 0.32 0.67 Python 0.00 0.01 0.02 0.02 0.67 0.37 0.06 0.52 0.11 0.09 0.12 0.25 JScript 0.02 0.10 0.27 0.36 11.47 6.26 17.13 8.92 1.87 1.62 1.98 4.20 Erlang 0.00 0.01 0.03 0.04 1.29 0.70 1.92 0.11 0.21 0.18 0.22 0.47 Dart 0.01 0.05 0.15 0.19 6.14 3.35 9.17 0.54 4.78 0.87 1.06 2.25 Java 0.02 0.06 0.17 0.22 7.08 3.86 10.57 0.62 5.51 1.15 1.23 2.60 Scala 0.01 0.05 0.14 0.18 5.78 3.15 8.63 0.50 4.50 0.94 0.82 2.12 Clojure 0.01 0.02 0.06 0.09 2.73 1.49 4.07 0.24 2.12 0.44 0.39 0.47 From To C Modern
 Native Scripting JVM
  • 100. Selecting the Language | @Chris__Bailey C++ Go Swift Rust Ruby PHP Python JScript Erlang Dart Java Scala Clojure C++ 4.02 10.96 14.65 461.69 251.83 689.22 40.25 359.13 75.16 65.18 79.88 169.17 Go 0.25 2.73 3.64 114.79 62.61 171.37 10.01 89.29 18.69 16.21 19.86 42.06 Swift 0.09 0.37 1.34 42.11 22.97 62.86 3.67 32.75 6.86 5.95 7.29 15.43 Rust 0.07 0.27 0.75 31.52 17.19 47.06 2.75 24.52 5.13 4.45 5.45 11.55 Ruby 0.00 0.01 0.02 0.03 0.55 1.49 0.09 0.78 0.16 0.14 0.17 0.37 PHP 0.00 0.02 0.04 0.06 1.83 2.74 0.16 1.43 0.30 0.26 0.32 0.67 Python 0.00 0.01 0.02 0.02 0.67 0.37 0.06 0.52 0.11 0.09 0.12 0.25 JScript 0.02 0.10 0.27 0.36 11.47 6.26 17.13 8.92 1.87 1.62 1.98 4.20 Erlang 0.00 0.01 0.03 0.04 1.29 0.70 1.92 0.11 0.21 0.18 0.22 0.47 Dart 0.01 0.05 0.15 0.19 6.14 3.35 9.17 0.54 4.78 0.87 1.06 2.25 Java 0.02 0.06 0.17 0.22 7.08 3.86 10.57 0.62 5.51 1.15 1.23 2.60 Scala 0.01 0.05 0.14 0.18 5.78 3.15 8.63 0.50 4.50 0.94 0.82 2.12 Clojure 0.01 0.02 0.06 0.09 2.73 1.49 4.07 0.24 2.12 0.44 0.39 0.47 From To C Modern
 Native Scripting JVM
  • 101. Optimising for the Cloud

  • 102. Optimising for the Cloud
 #2: Use Intelligent Scaling
  • 103. Intelligent Scaling for Capacity | @Chris__Bailey Time Capacity Predicted Load Capacity Requirement Excess Capacity
  • 104. Intelligent Scaling for Capacity | @Chris__Bailey Time Capacity Predicted Load Capacity Requirement Excess Capacity
  • 105. Intelligent Scaling for Capacity | @Chris__Bailey Time Capacity Actual Load Capacity Requirement Excess Capacity
  • 106. Intelligent Scaling for Capacity | @Chris__Bailey Time Capacity Actual Load Capacity Requirement Excess Capacity
  • 107. Intelligent Scaling for Capacity | @Chris__Bailey Time Capacity Actual Load Capacity Requirement Excess Capacity
  • 108. Dynamic Scaling to Load | @Chris__Bailey 00:00 Capacity Actual Load Excess Capacity 12:00 18:0006:0000:00 Capacity
  • 109. Dynamic Scaling to Load | @Chris__Bailey 00:00 Capacity Actual Load Capacity Excess Capacity 12:00 18:0006:0000:00
  • 110. Dynamic Scaling to Load § Daily load cycles are common for user facing applications - Particularly if your using localised availability zones | @Chris__Bailey “Most enterprises have hardware utilisation below 20% and below 10% for workloads with peaks”
  • 111. Dynamic Scaling to Load § Daily load cycles are common for user facing applications - Particularly if your using localised availability zones § Intelligent Scaling can provide a 2x saving: | @Chris__Bailey “Most enterprises have hardware utilisation below 20% and below 10% for workloads with peaks”
  • 112. Dynamic Scaling to Load § Daily load cycles are common for user facing applications - Particularly if your using localised availability zones § Intelligent Scaling can provide a 2x saving: - Ruby on Rails app: $14,490/year - Move to Java: $ 2,070/year | @Chris__Bailey “Most enterprises have hardware utilisation below 20% and below 10% for workloads with peaks”
  • 113. Dynamic Scaling to Load § Daily load cycles are common for user facing applications - Particularly if your using localised availability zones § Intelligent Scaling can provide a 2x saving: - Ruby on Rails app: $14,490/year - Move to Java: $ 2,070/year - Add scaling: $ 1,035/year | @Chris__Bailey “Most enterprises have hardware utilisation below 20% and below 10% for workloads with peaks”
  • 114. Optimising for the Cloud

  • 115. Optimising for the Cloud
 #3: Identify and Fix Memory Leaks
  • 116. Look for and Fix memory leaks § A small leak means a very large
 amount of memory over time | @Chris__Bailey American Society of Civil Engineers
  • 117. Look for and Fix memory leaks § A small leak means a very large
 amount of memory over time § Memory leaks act a little like interest on a debt | @Chris__Bailey Live in-use data (Principle)
  • 118. Look for and Fix memory leaks § A small leak means a very large
 amount of memory over time § Memory leaks act a little like interest on a debt | @Chris__Bailey Live in-use data (Principle) Memory Leak (Interest)
  • 119. Look for and Fix memory leaks § A small leak means a very large
 amount of memory over time § Memory leaks act a little like interest on a debt
 § Made worse if you have to size the container ahead of time to allow for the leak | @Chris__Bailey Live in-use data (Principle) Memory Leak (Interest)
  • 120. Optimising for the Cloud

  • 121. Optimising for the Cloud
 #4: Memory Analysis is the New Performance Tuning
  • 122. Memory Analysis § Most applications are memory in-efficient - Duplication of data - Oversized collections - Empty collections § Initial analysis and optimisation usual has a large return on investment | @Chris__Bailey
  • 123. Memory Analysis § Java case study: PlantsByWebSphere sample in WebSphere AppServer 7 - 5 user test load, 206MB of “live data”: | @Chris__Bailey
  • 124. Memory Analysis § Java case study: PlantsByWebSphere sample in WebSphere AppServer 7 - 5 user test load, 206MB of “live data”: | @Chris__Bailey Collection Count Collection Size (MB) Hashtable 262,234 26.5 WeakHashMap 19,562 12.6 HashMap 10,600 2.3 ArrayList 9,530 0.3 HashSet 1,551 1.0 Vector 1,271 0.04 LinkedList 1,148 0.1 TreeMap 299 0.03 TOTAL 306,195 42.9
  • 125. Memory Analysis § Java case study: PlantsByWebSphere sample in WebSphere AppServer 7 - 5 user test load, 206MB of “live data”: § 42.9MB (16% of memory) are collection objects - Just the collections themselves - excluding any data they store | @Chris__Bailey Collection Count Collection Size (MB) Hashtable 262,234 26.5 WeakHashMap 19,562 12.6 HashMap 10,600 2.3 ArrayList 9,530 0.3 HashSet 1,551 1.0 Vector 1,271 0.04 LinkedList 1,148 0.1 TreeMap 299 0.03 TOTAL 306,195 42.9
  • 126. Memory Analysis § Analysis of just the Hashtable instances showed: | @Chris__Bailey
  • 127. Memory Analysis § Analysis of just the Hashtable instances showed: § 127,016 of the Hashtables were completely empty | @Chris__Bailey
  • 128. Memory Analysis § Looking at empty collections across all collection types: § 52.6% of collections are empty (22.6MB) § Could save 11% of heap utilisation by removing empty collections | @Chris__Bailey Collection Count Empty % Empty Hashtable 262,234 127,016 48.8 WeakHashMap 19,562 19,456 99.5 HashMap 10,600 7,599 71.7 ArrayList 9,530 4,588 48.1 HashSet 1,551 866 55.8 Vector 1,271 622 48.9 TOTAL 304,748 160,156 52.6
  • 129. Memory Analysis § Looking at empty collections across all collection types: § 52.6% of collections are empty (22.6MB) | @Chris__Bailey Collection Count Empty % Empty Hashtable 262,234 127,016 48.8 WeakHashMap 19,562 19,456 99.5 HashMap 10,600 7,599 71.7 ArrayList 9,530 4,588 48.1 HashSet 1,551 866 55.8 Vector 1,271 622 48.9 TOTAL 304,748 160,156 52.6
  • 130. Optimising for the Cloud

  • 131. Optimising for the Cloud
 #5: Design for Memory Usage
  • 132. Design for Memory § Practice lazy allocation of collections | @Chris__Bailey
  • 133. Design for Memory § Practice lazy allocation of collections § Don’t use default collection sizes | @Chris__Bailey
  • 134. Design for Memory § Practice lazy allocation of collections § Don’t use default collection sizes § Reallocate collections to shrink them if needed | @Chris__Bailey
  • 135. Design for Memory § Practice lazy allocation of collections § Don’t use default collection sizes § Reallocate collections to shrink them if needed § Use cache miss based strategies for cache sizes | @Chris__Bailey