IBM provides a number of free tools to assist in monitoring and diagnosing issues when running
any Java application - from Hello World to IBM or third-party, middleware-based applications. This
session introduces attendees to those tools, highlights how they have been extended with IBM
middleware product knowledge, how they have been integrated into IBM’s development tools,
and how to use them to investigate and resolve real-world problem scenarios
Presented at the WebSphere Technical University 2014, Dusseldorf
InterConnect2016: WebApp Architectures with Java and Node.jsChris Bailey
Java has been the historical leader for enterprise web application development. However, Node.js is rapidly gaining in popularity for developing mobile apps, APIs and web applications. Java and Node.js are complimentary tools for enterprise web application development and this session will highlight the strengths and complimentary nature of each.
Presented at IBM InterConnect 2016
This session discusses how to maximize the performance of an application deployment with tools that are native to the server platform, as well as cross-platform Java analysis and monitoring tools include IBM Health Center and IBM Service Engage. The session begins with systematic steps organizations can take to locate a performance problem in a complex system and moves on to analysis they 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 organizations can catch performance issues before they build up into serious problems.
IBM Monitoring and Diagnostic Tools - GCMV 2.8Chris Bailey
Overview of IBM Monitoring and Diagnostics Tools - Garbage Collection and Memory Visualizer 2.8, which provides offline memory and Garbage Collection monitoring for Java and Node.js applications
IBM InterConnect: Java vs JavaScript for Enterprise WebAppsChris Bailey
The last few years have see a huge growth in the usage of JavaScript, to the extent that it is often reported to be the #1 programming language in use today. Additionally, the arrival of server-side JavaScript through frameworks such as Node.js and Ringo.js, and JavaScript on the JVM through Nashorn and Avatar.js, mean that enterprise web applications written in JavaScript are not just a possibility—but a reality for companies such as LinkedIn, eBay, Yahoo, ADP and Dow Jones. This session will compare and contrast the two platforms and describe the advantages of each for deploying, managing and monitoring highly scalable applications. It will also introduce IBM's strategy for building a common ecosystem around the two languages.
Presented at IBM InterConnect, Feb 25th, 2015
Presented at JAX London 2015.
The last few years have seen a huge growth in the usage of JavaScript, to the extent that it is often reported to be the #1 programming language in use today. Additionally, the arrival of server-side JavaScript through frameworks such as Node.js and Ringo.js, and JavaScript on the JVM through Nashorn and Avatar.js, means that enterprise web applications written in JavaScript are not just a possibility—but a reality for companies such as LinkedIn, eBay, Yahoo, ADP and Dow Jones. This session will compare and contrast the two platforms and describe the advantages of each for deploying, managing and monitoring highly scalable applications.
JavaOne 2015: From Java Code to Machine CodeChris Bailey
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
Video available from Parleys.com:
https://www.parleys.com/talk/java-versus-javascript-head-head
Programmers are often advised to use “the right tool for the right job.” So how does Java compare to JavaScript? This session compares and contrasts Java and JavaScript in different areas and determines just which is the king of the languages that start with Java.
InterConnect2016: WebApp Architectures with Java and Node.jsChris Bailey
Java has been the historical leader for enterprise web application development. However, Node.js is rapidly gaining in popularity for developing mobile apps, APIs and web applications. Java and Node.js are complimentary tools for enterprise web application development and this session will highlight the strengths and complimentary nature of each.
Presented at IBM InterConnect 2016
This session discusses how to maximize the performance of an application deployment with tools that are native to the server platform, as well as cross-platform Java analysis and monitoring tools include IBM Health Center and IBM Service Engage. The session begins with systematic steps organizations can take to locate a performance problem in a complex system and moves on to analysis they 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 organizations can catch performance issues before they build up into serious problems.
IBM Monitoring and Diagnostic Tools - GCMV 2.8Chris Bailey
Overview of IBM Monitoring and Diagnostics Tools - Garbage Collection and Memory Visualizer 2.8, which provides offline memory and Garbage Collection monitoring for Java and Node.js applications
IBM InterConnect: Java vs JavaScript for Enterprise WebAppsChris Bailey
The last few years have see a huge growth in the usage of JavaScript, to the extent that it is often reported to be the #1 programming language in use today. Additionally, the arrival of server-side JavaScript through frameworks such as Node.js and Ringo.js, and JavaScript on the JVM through Nashorn and Avatar.js, mean that enterprise web applications written in JavaScript are not just a possibility—but a reality for companies such as LinkedIn, eBay, Yahoo, ADP and Dow Jones. This session will compare and contrast the two platforms and describe the advantages of each for deploying, managing and monitoring highly scalable applications. It will also introduce IBM's strategy for building a common ecosystem around the two languages.
Presented at IBM InterConnect, Feb 25th, 2015
Presented at JAX London 2015.
The last few years have seen a huge growth in the usage of JavaScript, to the extent that it is often reported to be the #1 programming language in use today. Additionally, the arrival of server-side JavaScript through frameworks such as Node.js and Ringo.js, and JavaScript on the JVM through Nashorn and Avatar.js, means that enterprise web applications written in JavaScript are not just a possibility—but a reality for companies such as LinkedIn, eBay, Yahoo, ADP and Dow Jones. This session will compare and contrast the two platforms and describe the advantages of each for deploying, managing and monitoring highly scalable applications.
JavaOne 2015: From Java Code to Machine CodeChris Bailey
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
Video available from Parleys.com:
https://www.parleys.com/talk/java-versus-javascript-head-head
Programmers are often advised to use “the right tool for the right job.” So how does Java compare to JavaScript? This session compares and contrasts Java and JavaScript in different areas and determines just which is the king of the languages that start with Java.
JavaOne2013: Build Your Own Runtime Monitoring for the IBM JDK with the Healt...Chris Bailey
In the recently released Health Center version 2.2 of the IBM JDK, a new API was made available that makes it possible to create your own monitoring and profiling tools that uses the Health Center data and recommendations. This session provides an overview of the API, shows you how to use it to create simple alerts based on the occurrence of defined conditions, and explores how it is being used by IBM to integrate the Health Center data into its own products.
Video available from Parleys.com:
https://www.parleys.com/talk/build-your-own-runtime-monitoring-ibm-jdk-health-center-api
Swift Summit: Pushing the boundaries of Swift to the ServerChris Bailey
Swift is a robust language for mobile but cloud development opens the door to new opportunities for today's top app developers. Integrating projects to backend systems can sometimes be problematic, requiring new tools and skills. It doesn't have to be; end-to-end Swift opens the door to radically simpler app dev so we can all focus on the engagement. This session will describe the work that's been done to bring Swift to the server, both in terms of efforts in the Swift.org projects, and with implementation of server frameworks, and show you how you can quickly create and deploy applications with both server and client components.
Presented at the Swift Summit, Nov 7th 2016
Node Summit 2016: Web App ArchitecturesChris Bailey
While Node.js is becoming the platform of choice for web-scale applications, enterprises are resistant to change and have legacy applications based on other technologies, typically Java. Emerging web application architectures bring together the web-scale and integrated browser characteristics of Node.js with the transactional nature of Java to deliver high-performance, engaging web applications. Learn how the complimentary characteristics of Node.js and Java are being used to build the next generation of web applications.
QCon Shanghai: Trends in Application DevelopmentChris Bailey
Presented at QCon Shanghai:
Trends in Application Development
The last few years have seen a number of growing trends in application development, driven by the disruptive changes around cloud, mobile and engaging applications. These have led to a wider set of languages being used for production applications, the emergence of asynchronous and reactive programming, and interest in micro-services based architectures. This keynote will review some of the growing trends in application development, and highlight which skills you should be developing and which architectures you should be using.
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.
FLOW3 is an application framework which will change the way you code PHP. It aims to back up developers with security and infrastructure while they focus on the application logic.
FLOW3 is one of the first application frameworks to choose Domain-Driven Design as its major underlying concept. This approach makes FLOW3 easy to learn and at the same time clean and flexible for even complex projects. Built with PHP 5.3 in mind from the beginning, it features namespaces and has an emphasis on clean, object-oriented code.
Thanks to its Doctrine 2 integration, FLOW3 gives you access to a wide range of databases while letting you forget the fact that you’re using a database at all (think objects, not tables). FLOW3’s unique way of supporting Dependency Injection (no configuration necessary) lets you truly enjoy creating a stable and easy-to-test application architecture. Being the only Aspect-Oriented Programming capable PHP framework, FLOW3 allows you to cleanly separate cross cutting concerns like security from your main application logic.
In this tutorial we’ll walk you through an imaginary project from scratch. During the journey we’ll visit all important areas of the framework like templating, routing, security and persistence. For every core concept we’ll provide a short introduction, so that the process is comprehensible to all experienced PHP developers.
This article will help you fetch details about the Ubuntu based AWS EC2 instance. You need to deploy the Python (2.7) based REST Services in Apache webserver. The core of application is Python DJango framework, which uses a custom virtual environment (vitualenv). The Apache uses mod_wsgi for connecting the WSGI application and mod_sec for security purposes.
Deploying Django with Apache and mod_wsgi is a method to get Django into production. mod_wsgi is an Apache module which is supposed to host any Python WSGI application, which includes Django. Django can work with any version of Apache that supports mod_wsgi.
Read the article further, to understand the step-by-step deployment process.
Ubuntu Server is lean, fast and powerful. Its services are reliable, predictable and economical. It is the perfect base on which you can build your instances. Django is a web framework which is written in Python. One can easily guess that everything, in Django, is also done in Python. Django was developed to simplify the creation of database driven sites. The best feature in Django is that it, probably, is the fastest website framework to create a fully functioning website.
Efficient Memory and Thread Management in Highly Parallel Java Applicationspkoza
This presentation discusses strategies to estimate and control the memory use of multi-threaded java applications. It includes a quick overview of how the JVM uses memory, followed by techniques to estimate the memory usage of various types of objects during testing. This knowledge is then used as the basis for a runtime scheme to estimate and control the memory use of multiple threads. The final part of the presentation describes how to implement robust handling for unchecked exceptions, especially Out Of Memory (OOM) errors, and how to ensure threads stop properly when unexpected events occur.
J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"Daniel Bryant
It’s easy to get seduced by being able to quickly deploy and scale applications by using containers. However, when things inevitably go wrong, how do you debug your application? This session covers various pro bug hunting tips and tricks. It shows live demos of tools such as the Docker stats API, Docker exec (and top, vmstat, and netstat), and how to use the ELK stack for centralized logging. It also dives into other more sophisticated tools that operate at the application and (micro)service layer, such as Twitter’s Zipkin tracing app, Spring Boot’s Actuator, and DropWizard’s Metrics library. Keep those container-based nightmares away by ensuring that when the worst does happen, you have the tools, info, and experience to debug containerized applications.
Presented at JavaOne 2015 with Steve Poole
Successful Software Development with Apache Cassandrazznate
Adding a new technology to your development process can be challenging, and the distributed nature of Apache Cassandra can make it daunting. However, recent improvements in drivers, utilities and tooling have simplified the process making it easier than ever before to develop software with Apache Cassandra.
In this presentation, we cover essential knowledge for all developers wanting to efficiently create reliable Apache Cassandra based solutions. Topics include:
- Language and Driver selection
- Optimizing Driver configuration
- Productive Developer environments using ccm, Vagrant and DataStax DevCenter
- Creating appropriate test data
- Unit testing
- Automated integration testing
- Test optimization with profiles
New and existing users will come away from this presentation with the necessary knowledge to make their next Apache Cassandra project a success.
DevoxxUK: Optimizating Application Performance on KubernetesDinakar Guniguntala
Now that you have your apps running on K8s, wondering how to get the response time that you need ? Tuning a polyglot set of microservices to get the performance that you need can be challenging in Kubernetes. The key to overcoming this is observability. Luckily there are a number of tools such as Prometheus that can provide all the metrics you need, but here is the catch, there is so much of data and metrics that is difficult make sense of it all. This is where Hyperparameter tuning can come to the rescue to help build the right models.
This talk covers best practices that will help attendees
1. To understand and avoid common performance related problems.
2. Discuss observability tools and how they can help identify perf issues.
3. Look closer into Kruize Autotune which is a Open Source Autonomous Performance Tuning Tool for Kubernetes and where it can help.
Vaadin is quickly popularizing Java framework for developing rich and interactive server-driven web applications. Vaadin is built around core Servlet and Google Web Toolkit (GWT) technologies and it strives to developer productivity by providing large library of components and ready made functionality that hides the hard parts of web development allowing developers to concentrate to the real business problem at hand. During this session we’ll cover the basics of building Vaadin based web applications: layouting, data binding, application deployment and Vaadin Touckit integration for mobile devices. Attending the speech does not require thorough understanding of web technologies in general, session will include demonstration and live coding.
OSGi ecosystems compared on Apache Karaf - Christian Schneidermfrancis
OSGi Community Event 2015
A look at three competing OSGi ecosystems (Declarative Services, Blueprint, CDI). Capabilities of each DI framework. Comparison of support for EE technologies like JPA, Security, SOAP and REST services, UIs. Looking into some of the recent advancements like Aries JPA 2 featuring closure based transactions, JAAS Security, JSP and JSF on OSGi. Attendees will get a good overview about the stacks as well as recommendations where each is most applicable.
WebSphere Technical University: Top WebSphere Problem Determination FeaturesChris Bailey
Problem determination is an important focus area in the IBM WebSphere Application Server. Serviceability improvements have been added that have greatly improved the ability to find root causes of problems in both the full IBM WebSphere Application Server profile, and the newer Liberty profile. The session focuses on how to effectively use serviceability improvements added to the application server since V8.0. This includes high performance extensibe logging, cross-component trace, IBM Support Assistant data collector, timed operations, memory leak detection/prevention, and IBM Support Assistant 5.
Presented at the WebSphere Technical University 2014, Dusseldorf
JavaOne2013: Build Your Own Runtime Monitoring for the IBM JDK with the Healt...Chris Bailey
In the recently released Health Center version 2.2 of the IBM JDK, a new API was made available that makes it possible to create your own monitoring and profiling tools that uses the Health Center data and recommendations. This session provides an overview of the API, shows you how to use it to create simple alerts based on the occurrence of defined conditions, and explores how it is being used by IBM to integrate the Health Center data into its own products.
Video available from Parleys.com:
https://www.parleys.com/talk/build-your-own-runtime-monitoring-ibm-jdk-health-center-api
Swift Summit: Pushing the boundaries of Swift to the ServerChris Bailey
Swift is a robust language for mobile but cloud development opens the door to new opportunities for today's top app developers. Integrating projects to backend systems can sometimes be problematic, requiring new tools and skills. It doesn't have to be; end-to-end Swift opens the door to radically simpler app dev so we can all focus on the engagement. This session will describe the work that's been done to bring Swift to the server, both in terms of efforts in the Swift.org projects, and with implementation of server frameworks, and show you how you can quickly create and deploy applications with both server and client components.
Presented at the Swift Summit, Nov 7th 2016
Node Summit 2016: Web App ArchitecturesChris Bailey
While Node.js is becoming the platform of choice for web-scale applications, enterprises are resistant to change and have legacy applications based on other technologies, typically Java. Emerging web application architectures bring together the web-scale and integrated browser characteristics of Node.js with the transactional nature of Java to deliver high-performance, engaging web applications. Learn how the complimentary characteristics of Node.js and Java are being used to build the next generation of web applications.
QCon Shanghai: Trends in Application DevelopmentChris Bailey
Presented at QCon Shanghai:
Trends in Application Development
The last few years have seen a number of growing trends in application development, driven by the disruptive changes around cloud, mobile and engaging applications. These have led to a wider set of languages being used for production applications, the emergence of asynchronous and reactive programming, and interest in micro-services based architectures. This keynote will review some of the growing trends in application development, and highlight which skills you should be developing and which architectures you should be using.
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.
FLOW3 is an application framework which will change the way you code PHP. It aims to back up developers with security and infrastructure while they focus on the application logic.
FLOW3 is one of the first application frameworks to choose Domain-Driven Design as its major underlying concept. This approach makes FLOW3 easy to learn and at the same time clean and flexible for even complex projects. Built with PHP 5.3 in mind from the beginning, it features namespaces and has an emphasis on clean, object-oriented code.
Thanks to its Doctrine 2 integration, FLOW3 gives you access to a wide range of databases while letting you forget the fact that you’re using a database at all (think objects, not tables). FLOW3’s unique way of supporting Dependency Injection (no configuration necessary) lets you truly enjoy creating a stable and easy-to-test application architecture. Being the only Aspect-Oriented Programming capable PHP framework, FLOW3 allows you to cleanly separate cross cutting concerns like security from your main application logic.
In this tutorial we’ll walk you through an imaginary project from scratch. During the journey we’ll visit all important areas of the framework like templating, routing, security and persistence. For every core concept we’ll provide a short introduction, so that the process is comprehensible to all experienced PHP developers.
This article will help you fetch details about the Ubuntu based AWS EC2 instance. You need to deploy the Python (2.7) based REST Services in Apache webserver. The core of application is Python DJango framework, which uses a custom virtual environment (vitualenv). The Apache uses mod_wsgi for connecting the WSGI application and mod_sec for security purposes.
Deploying Django with Apache and mod_wsgi is a method to get Django into production. mod_wsgi is an Apache module which is supposed to host any Python WSGI application, which includes Django. Django can work with any version of Apache that supports mod_wsgi.
Read the article further, to understand the step-by-step deployment process.
Ubuntu Server is lean, fast and powerful. Its services are reliable, predictable and economical. It is the perfect base on which you can build your instances. Django is a web framework which is written in Python. One can easily guess that everything, in Django, is also done in Python. Django was developed to simplify the creation of database driven sites. The best feature in Django is that it, probably, is the fastest website framework to create a fully functioning website.
Efficient Memory and Thread Management in Highly Parallel Java Applicationspkoza
This presentation discusses strategies to estimate and control the memory use of multi-threaded java applications. It includes a quick overview of how the JVM uses memory, followed by techniques to estimate the memory usage of various types of objects during testing. This knowledge is then used as the basis for a runtime scheme to estimate and control the memory use of multiple threads. The final part of the presentation describes how to implement robust handling for unchecked exceptions, especially Out Of Memory (OOM) errors, and how to ensure threads stop properly when unexpected events occur.
J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"Daniel Bryant
It’s easy to get seduced by being able to quickly deploy and scale applications by using containers. However, when things inevitably go wrong, how do you debug your application? This session covers various pro bug hunting tips and tricks. It shows live demos of tools such as the Docker stats API, Docker exec (and top, vmstat, and netstat), and how to use the ELK stack for centralized logging. It also dives into other more sophisticated tools that operate at the application and (micro)service layer, such as Twitter’s Zipkin tracing app, Spring Boot’s Actuator, and DropWizard’s Metrics library. Keep those container-based nightmares away by ensuring that when the worst does happen, you have the tools, info, and experience to debug containerized applications.
Presented at JavaOne 2015 with Steve Poole
Successful Software Development with Apache Cassandrazznate
Adding a new technology to your development process can be challenging, and the distributed nature of Apache Cassandra can make it daunting. However, recent improvements in drivers, utilities and tooling have simplified the process making it easier than ever before to develop software with Apache Cassandra.
In this presentation, we cover essential knowledge for all developers wanting to efficiently create reliable Apache Cassandra based solutions. Topics include:
- Language and Driver selection
- Optimizing Driver configuration
- Productive Developer environments using ccm, Vagrant and DataStax DevCenter
- Creating appropriate test data
- Unit testing
- Automated integration testing
- Test optimization with profiles
New and existing users will come away from this presentation with the necessary knowledge to make their next Apache Cassandra project a success.
DevoxxUK: Optimizating Application Performance on KubernetesDinakar Guniguntala
Now that you have your apps running on K8s, wondering how to get the response time that you need ? Tuning a polyglot set of microservices to get the performance that you need can be challenging in Kubernetes. The key to overcoming this is observability. Luckily there are a number of tools such as Prometheus that can provide all the metrics you need, but here is the catch, there is so much of data and metrics that is difficult make sense of it all. This is where Hyperparameter tuning can come to the rescue to help build the right models.
This talk covers best practices that will help attendees
1. To understand and avoid common performance related problems.
2. Discuss observability tools and how they can help identify perf issues.
3. Look closer into Kruize Autotune which is a Open Source Autonomous Performance Tuning Tool for Kubernetes and where it can help.
Vaadin is quickly popularizing Java framework for developing rich and interactive server-driven web applications. Vaadin is built around core Servlet and Google Web Toolkit (GWT) technologies and it strives to developer productivity by providing large library of components and ready made functionality that hides the hard parts of web development allowing developers to concentrate to the real business problem at hand. During this session we’ll cover the basics of building Vaadin based web applications: layouting, data binding, application deployment and Vaadin Touckit integration for mobile devices. Attending the speech does not require thorough understanding of web technologies in general, session will include demonstration and live coding.
OSGi ecosystems compared on Apache Karaf - Christian Schneidermfrancis
OSGi Community Event 2015
A look at three competing OSGi ecosystems (Declarative Services, Blueprint, CDI). Capabilities of each DI framework. Comparison of support for EE technologies like JPA, Security, SOAP and REST services, UIs. Looking into some of the recent advancements like Aries JPA 2 featuring closure based transactions, JAAS Security, JSP and JSF on OSGi. Attendees will get a good overview about the stacks as well as recommendations where each is most applicable.
WebSphere Technical University: Top WebSphere Problem Determination FeaturesChris Bailey
Problem determination is an important focus area in the IBM WebSphere Application Server. Serviceability improvements have been added that have greatly improved the ability to find root causes of problems in both the full IBM WebSphere Application Server profile, and the newer Liberty profile. The session focuses on how to effectively use serviceability improvements added to the application server since V8.0. This includes high performance extensibe logging, cross-component trace, IBM Support Assistant data collector, timed operations, memory leak detection/prevention, and IBM Support Assistant 5.
Presented at the WebSphere Technical University 2014, Dusseldorf
IBM provides a number of free tools to assist in monitoring and diagnosing issues when running any Java application: from Hello World to IBM or third party middleware based applications. This session will introduce you to those tools, highlight how they have been extended with IBM middleware product knowledge, how they have been integrated into IBMs development tools, and show you how to use them to investigate and resolve real world problem scenarios.
Presented at IBM Impact 2013
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.
Material Design is Google's new vision for how software looks. Here is a brief introductory guide to visual, motion and interactive design. With the use of material design, there is a hope to build products that give users a great experience.
Impact2014: Introduction to the IBM Java ToolsChris Bailey
IBM provides a number of free tools to assist in monitoring and diagnosing issues when running any Java application - from Hello World to IBM or third-party, middleware-based applications. This session introduces attendees to those tools, highlights how they have been extended with IBM middleware product knowledge, how they have been integrated into IBMs development tools, and how to use them to investigate and resolve real-world problem scenarios.
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...Prolifics
Abstract: Recent projects have stressed the "need for speed" while handling large amounts of data, with near zero downtime. An analysis of multiple environments has identified optimizations and architectures that improve both performance and reliability. The session covers data gathering and analysis, discussing everything from the network (multiple NICs, nearby catalogs, high speed Ethernet), to the latest features of extreme scale. Performance analysis helps pinpoint where time is spent (bottlenecks) and we discuss optimization techniques (MQ tuning, IIB performance best practices) as well as helpful IBM support pacs. Log Analysis pinpoints system stress points (e.g. CPU starvation) and steps on the path to near zero downtime.
In this talk I give an overview of IBM's efforts to create a VM-agnostic toolkit of runtime components from the mature J9 Java Virtual Machine (JVM). I provide a summary of the motivations behind this project, talk about some important proof points with CPython and Ruby MRI, describe the motivations behind an open community for this technology, and discuss the many challenges with creating a runtime agnostic Just In Time compiler from the Testarossa Java JIT.
The presentation which I was using during my talk at EPAM Lviv JS community about offline-first applications. Contains high-level review of tools and web platform to submerge folks in a world of offline-first thinking.
Software Profiling: Understanding Java Performance and how to profile in JavaIsuru Perera
Guest lecture at University of Colombo School of Computing on 27th May 2017
Covers following topics:
Software Profiling
Measuring Performance
Java Garbage Collection
Sampling vs Instrumentation
Java Profilers. Java Flight Recorder
Java Just-in-Time (JIT) compilation
Flame Graphs
Linux Profiling
Self-Aware Applications: Automatic Production Monitoring (NDC Sydney 2017)Dina Goldshtein
The road to zen winds through self-monitoring applications, which can reduce the time and effort in diagnosing and correcting production issues. In this talk, we will see how modern Windows applications can self-monitor, self-diagnose, and potentially self-recover without needing an external monitoring agent or a brute-force restarting watchdog. By harnessing the power of ETW for low-level accurate monitoring, Windows performance counters for zero-overhead statistics, and the CLRMD library for inspecting your own threads, heap objects, and locks, you can take your applications one step closer to self-awareness. This will be illustrated through a series of demos: automatic CPU profiling and pinpointing the busy threads and stacks; automatic GC monitoring, including object allocations; automatic heap analysis to reveal unraveling memory leaks; and more. At the end of the talk, you will be equipped with tools and techniques for implementing self-monitoring in your own applications.
Dive deep into specific OSS packages to examine the top issues in the enterprise with two of our most qualified OSS architects, Bill Crowell and Vince Cox walkthrough: Their day-to-day work in OSS packages; ways to fix reported issues; why you can’t expect in-house developers to handle issues in OSS packages.
Continuous Delivery of a Cloud Deployment at a Large Telecommunications ProviderM Kevin McHugh
We deployed IBM SmartCloud Orchestrator at a Large Telecommunications Provider. We used Agile. This presentation details the decisions we made and lessons we learned over the course of the deployment.
Continuous Profiling in Production: What, Why and HowSadiq Jaffer
Everyone wants to understand what their application is really doing in production, but this information is normally invisible to developers. Profilers tell you what code your application is running but few developers profile and mostly on their development environments. Thankfully production profiling is now a practical reality that can help you solve and avoid performance problems.
Profiling in development can be problematic because it’s rare that you have a realistic workload or performance test for your system. Even if you’ve got accurate performance tests maintaining these and validating that they represent production systems is hugely time consuming and hard. Not only that but often the hardware and operating system that you run in production are different from your development environment.
This pragmatic talk will help you understand the ins and outs of profiling in a production system. You’ll learn about different techniques and approaches that help you understand what’s really happening with your system. This helps you to solve new performance problems, regressions and undertake capacity planning exercises.
Find out how profiling in production can uncover performance bottlenecks, aid scalability and reduce your costs.
Recover 30% of your day with IBM Development Tools (Smarter Mainframe Develop...Susan Yoskin
If you need to attract new developers, and want to keep your company’s name out of the headlines, then this session is for you. When your business depends on your mainframe apps working and performing well—all the time—you need to be alerted to issues as they occur and have the tools to help you find and fix the problems and test your solutions before disaster strikes (we’ve all been in those late night and weekend drills). You also need to continue supporting these applications for years to come, and that will require new talent.
This session will introduce you to the development environments that college grads are already comfortable with, and help your applications become more resilient at the same time. We’ll walk you through the tools to help you accomplish all of this and demo some scenarios to show you how efficiently our tools can perform the tasks that slow you down.
In the design of electronics and semiconductors, challenges are compounded by the integration of AI, multi-core, real-time software, network, connectivity, diagnostics, and security. Performance limits, battery life, and cost are adoption barriers. It is extremely important to have tools and processes that deliver efficiency throughout the design cycle.
Continuous verification from planning to development addresses the multi-discipline needs of hardware, software, and networks. This unique approach accelerates the design phase, defines the test efforts, and finds defects during specification. Architecture modeling is required to meet timing deadlines, generate the lowest power consumption, and attain the highest Quality-of-Service. optimize the electronic design system and designing of custom components.
Similar to WebSphere Technical University: Introduction to the Java Diagnostic Tools (20)
Function-as-a-Service (FaaS) and serverless platforms increase productivity by 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, writing simple JavaScript functions or actions instead of using the expressive APIs that are available from Express.js, Hapi.js, Fastify, and other frameworks.
In this session, you’ll learn how it's now possible to create FaaS and serverless based applications using the same framework APIs that you use today, and see a live demo of an application being built and deployed as a serverless cloud native application on Kubernetes.
Voxxed Micro-services: Serverless JakartaEE - JAX-RS comes to FaaSChris Bailey
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.
Silicon Valley Code Camp 2019 - Reaching the Cloud Native WorldChris Bailey
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.
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
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.
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
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.
Swift Cloud Workshop - Swift MicroservicesChris Bailey
How to deploy Swift micro-services using Docker and Kubernetes, with scaling, monitoring and fault tolerance using the Kitura server side Swift framework.
Swift Cloud Workshop - Codable, the key to Fullstack SwiftChris Bailey
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.
Try!Swift India 2017: All you need is SwiftChris Bailey
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.
Swift Summit 2017: Server Swift State of the UnionChris Bailey
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.
Node Interactive: Node.js Performance and Highly Scalable Micro-ServicesChris Bailey
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.
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.
AltConf 2017: Full Stack Swift in 30 MinutesChris Bailey
The introduction of Swift on the server gave the promise of being able to easily build, deliver and own the whole user experience and the solution, not just the iOS app. Building a backend however introduces many new technologies and terms, from server, cloud and Swagger definitions, to Docker and Kubernetes. This session will show you how easy it can be, demonstrating how to build a Swift Server application and connect to it from an iOS app in under 30 minutes.
InterConnect: Server Side Swift for Java DevelopersChris Bailey
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.
InterConnect: Java, Node.js and Swift - Which, Why and WhenChris Bailey
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.
The availability of on-demand, utility computing via the cloud introduces a new world of flexibility but also an entirely new charging model for applications. This new model has long promised to provide metered compute, charging you for exactly the amount of processing power you need, at the points that you need it.
The cloud is a large paradigm change, not just for some of the technologies involved but also for the economics and the return on investment for deploying and running a given application. Whereas traditional on-premises applications require upfront capital expenditure on hardware, cloud deployments have an ongoing operational expense. Additionally, clouds typically charge by the amount of memory used, whereas applications are typically developed and tuned to run as fast as possible using all the available (already paid for) resources.
Chris Bailey explains how this new economics of the cloud is driving changes in the way applications are architected, developed, and deployed.
Presented at the O'Reilly Software Architecture Conference, London 2017
FrenchKit: End to End Application Development with SwiftChris Bailey
The addition of support for Swift as a server-side programming language makes it possible to use not just the same language on client and server, but also to reuse APIs and code. This opens up a world of possibilities for creating and deploying new types of applications. This session will introduce you to new models of client and server interaction for application development, and show you how to rapidly build an app with both client and server components written in Swift.
Presented at FrenchKit: September 2016
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
3. Introduction to the Speaker
Chris Bailey
IBM Runtime Monitoring and Diagnostics Architect
13 years experience developing and deploying Java SDKs
1 years experience developing and deploying Node.js SDKs
3
Recent work focus:
‒ Java and Node.js monitoring and diagnostics
‒ Java and Node.js integration into the cloud
‒ Highly resilient and scalable deployments
‒ Requirements gathering
Contact Details:
‒ baileyc@uk.ibm.com
‒ http://www.linkedin.com/in/chrisbaileyibm
‒ http://www.slideshare.net/cnbailey/
‒ @Chris__Bailey
4. 4
What I hope to achieve in the next 60 mins
Introduce the IBM tools for monitoring, debugging and diagnosing problems
Understand the capabilities of each tool
See how the tools can be extended tools with knowledge of applications or to build custom
tools
See how IBM is building on top of the Java tools platform
6. ● A free unified suite of tools to understand different aspects of applications
● Provides more than visualizations – also provides recommendations
● IBM supported and always current to latest IBM runtime levels
● Provides APIs to allow you to extend or create your own custom tools
6
IBM Monitoring and Diagnostic Tools for Java
7. 7
Where to use our tools
The IBM Monitoring and Diagnostic Tools fall into two groups
Reactive (Post-Mortem):
Information created at runtime and analyzed offline:
– Garbage Collection Memory Visualiser (GCMV)
– Memory Analyzer (MA)
– Interactive Diagnostic Dump Explorer (IDDE)
Proactive (Runtime):
Information created at runtime and analyzed immediately:
– Health Center
8. 8
How to get the tools: IBM Support Assistant (ISA)
A workbench for use by your technical personnel to:
Expedite resolution of problems
Automate collection of symptom
based “MustGather” data
View and analyze collected data
Leverage powerful tools to analyze
logs, JVM core and heap dumps,
config files, etc.
11. 11
Garbage Collector and Memory Visualizer (GCMV)
Analyses and visualizes:
● Process and system memory usage
● Java heap memory usage and performance
Compares multiple logs in the same plots
and reports
Many data views
Reports
Graphs
Tables
12. 12
Garbage Collector and Memory Visualizer (GCMV)
Process and system memory usage:
#!/bin/sh
PID=$1
INTERVAL=3
# Echo time at start of monitoring.
echo timestamp = `date +%s`
# Echo the interval frequency.
echo "ps interval = $INTERVAL"
# Run the system command at intervals.
while ([ -d /proc/$PID ]) do
ps -p $PID -o pid,vsz,rss
sleep $INTERVAL
done
13. 13
Garbage Collector and Memory Visualizer (GCMV)
Process and system memory usage:
#!/bin/sh
PID=$1
INTERVAL=3
# Echo time at start of monitoring.
echo timestamp = `date +%s`
# Echo the interval frequency.
echo "ps interval = $INTERVAL"
# Run the system command at intervals.
while ([ -d /proc/$PID ]) do
ps -p $PID -o pid,vsz,rss
sleep $INTERVAL
done
14. 14
Garbage Collector and Memory Visualizer (GCMV)
Process and system memory usage:
#!/bin/sh
PID=$1
INTERVAL=3
# Echo time at start of monitoring.
echo timestamp = `date +%s`
# Echo the interval frequency.
echo "ps interval = $INTERVAL"
# Run the system command at intervals.
while ([ -d /proc/$PID ]) do
ps -p $PID -o pid,vsz,rss
sleep $INTERVAL
done
Java heap memory usage and performance
-verbose:gc
-Xverbosegclog:[DIR_PATH][FILE_NAME]
-Xverbosegclog:[DIR_PATH][FILE_NAME],X,Y
where:
X is the number of files to
Y is the number of GC cycles a file should contain
15. 15
Performance Overhead of Verbose:GC
Benchmark: DayTrader with 50 clients:
WebSphere 8.5.5 and IBM Java 7 SR7 on POWER 7
4 CPU machine, running at 100% utilization
Throughput Runs Min Max Stddev
Without verbose:gc 3743.953 8 3637.019 3855.971 71.6304964862
4000
3500
3000
2500
2000
1500
1000
500
0
16. 16
Performance Overhead of Verbose:GC
Benchmark: DayTrader with 50 clients:
WebSphere 8.5.5 and IBM Java 7 SR7 on POWER 7
4 CPU machine, running at 100% utilization
Throughput Runs Min Max Stddev
Without verbose:gc 3743.953 8 3637.019 3855.971 71.6304964862
With verbose:gc 3748.779 8 3654.9945 3877.9495 83.5641336842
4000
3500
3000
2500
2000
1500
1000
500
0
17. 17
Performance Overhead of Verbose:GC
Benchmark: DayTrader with 50 clients:
WebSphere 8.5.5 and IBM Java 7 SR7 on POWER 7
4 CPU machine, running at 100% utilization
Throughput Runs Min Max Stddev
Without verbose:gc 3743.953 8 3637.019 3855.971 71.6304964862
With verbose:gc 3748.779 8 3654.9945 3877.9495 83.5641336842
4000
3500
3000
2500
2000
1500
1000
500
0
0.1289% ?
18. 18
Memory Analyzer (based on Eclipse MAT)
Provides deep insights into Java Heaps
Powerful analytic capabilities to explore
heap sections, including “deep” and
“shallow” cost
Path to GC Roots
Provides the reference chain that
prevents an object being garbage
collected
Eclipse Equinox bundle explorer (works
with OSGI bundles for WebSphere)
20. 20
Memory Analyzer overview cont…
Overview:
Overview of the heapdump including size and total
number of objects.
Provides links to continued analysis
Path to GC Roots:
Provides the reference chain that prevents
an object being garbage collected.
Dominator Tree grouped by Class Loader:
Lists the biggest objects using a “keep alive tree”.
Grouping by Class
Loader limits the analysis to a single application in a
JEE environment
21. Extensions for Memory Analyzer
Additional capabilities for debugging generic Java Applications
21
Extensions currently available for
IBM Java SE runtime
WebSphere Application Server
CICS Transaction Gateway
Using these extensions will enable
Visualization of application and IBM product code
Confirm configuration of IBM Products
Inspect size and contents of IBM products
Extensions are made available through ISA or installed directly into the Memory
Analyser application
22. 22
Interactive Diagnostic Data Explorer (IDDE)
The IBM JRE Dump artefacts provide insight into the health and integrity of your
application by providing a graphical view of a system dump file
Provides access to detailed
information contained dumps
Allows collaboration and user
defined extensions
Community of extensions and
add-ons
Ability to run Memory Analyzer
Extensions
Also supports Node.js
24. IBM Monitoring and Diagnostic Tools for Java™ Health Center
24
Answers vital questions:
What is my JVM doing? Is everything ok?
Why is my application running slowly? Why
is it not scaling?
Am I using the right options?
Live monitoring with very low overhead
Diagnose potential problems, with
recommendations
Works at the JVM level, no domain-specific
(e.g. J2EE) information
Suitable for all Java applications
Special view for WebSphere Real Time
Helps identify outlier events (class load,
compilation, GC, application method)
25. 25
Enabling Health Center
Health Center enabled using the command line:
java -Xhealthcenter Heartbeat
Health Center enabled at runtime using “Late Attach” to a running process:
java Heartbeat
java -jar healthcenter.jar
java -jar healthcenter.jar -PID=<pid>
26. Machine and Process CPU Usage
• Visualizes heap usage and gc pause times over time
• Identifies memory leaks
• Suggests command-line and tuning parameters
• Same recommendation logic as GCMV
26
Health Center Data: Operating System and Machine
Native Memory
• Detect native memory leaks in application
• Determine if external forces are using more memory
• View components using the most native memory
Environment reporting
• Detects invalid Java options
• Detects options which may hurt performance or
serviceability
• Useful for remote diagnosis of configuration-related
problems
27. 27
Health Center Data: Java Runtime
Garbage Collection visualization
Visualizes heap usage and gc pause times over time
Identifies memory leaks
Suggests command-line and tuning parameters
Same recommendation logic as GCMV
Object Allocation Profiling
Understand what types of data is being allocated and
at what rate
Determine which code is allocating data
Threads view
List of current threads and states
Number of threads over time
See contended monitors
28. 28
Health Center Data: Java Runtime
Class loading visualization
Shows all loaded classes
Shows load time
Identifies shared classes
Live class histogram information
I/O
Monitor application file open/close events as they
occur
Lists currently open files
29. 29
Health Center Data: Application
Method Profiling
Always-on profiling shows application activity
Identifies the hottest methods in an application
Full call stacks to identify where methods are being
called from and what methods they call
No byte code instrumentation, no recompiling
Java Lock Profiling
Always-on lock monitoring
Quickly allows the usage of all locks to be profiled
Helps to identify points of contention in the
application that are preventing scaling
Live control of application
Trigger dumps
Enable verbosegc collection
30. 105
100
95
90
85
Measured using WebSphere App Server and the DayTrader benchmark with 50 clients
Running WAS 8.5.5, IBM Java 7 SR5, AIX 7.1, POWER7
Throughput determined by number of completed transactions on 4 saturated CPUs
30
Health Center overhead
80
100
Baseline
Network Client
Headless
Headless with ZIP
31. 105
100
95
90
85
Measured using WebSphere App Server and the DayTrader benchmark with 50 clients
Running WAS 8.5.5, IBM Java 7 SR5, AIX 7.1, POWER7
Throughput determined by number of completed transactions on 4 saturated CPUs
31
Health Center overhead
80
100.4
Baseline
Network Client
Headless
Headless with ZIP
32. 105
100
95
90
85
Measured using WebSphere App Server and the DayTrader benchmark with 50 clients
Running WAS 8.5.5, IBM Java 7 SR5, AIX 7.1, POWER7
Throughput determined by number of completed transactions on 4 saturated CPUs
32
Health Center overhead
80
99.01
Baseline
Network Client
Headless
Headless with ZIP
33. 105
100
95
90
85
Measured using WebSphere App Server and the DayTrader benchmark with 50 clients
Running WAS 8.5.5, IBM Java 7 SR5, AIX 7.1, POWER7
Throughput determined by number of completed transactions on 4 saturated CPUs
33
Health Center overhead
80
96.99
Baseline
Network Client
Headless
Headless with ZIP
34. Access Health Center data with the API
The 2.2 release of Health Center provides an API
● Allows developers to access Health Center data in their applications
// Create the connection object:
ConnectionProperties conn1 = new ConnectionProperties("localhost", 1973);
// Connect to the Health Center agent, using the previous connection
// settings:
HealthCenter hcObject = HealthCenterFactory.connect(conn1, true);
// Get garbage collection data and print:
GCData gcData = hcObject.getGCData();
System.out.println("GC Mode is " + gcData.getGCMode().toString());
35. RAD v9 Usage of Health Center Data
Enable “Health Center Agent”
Select “Sample based profiling”
Method CPU usage collected
Displayed in real time
Accessed using API
37. Browser Browser
Browser Browser
37
ISA 5.0 Team Server
Server-based model
Install once - shared by many team
members via browser
Web 2.0 browser interface
Remote execution of PD tools
Off-load analysis processing
Collaboration on PD
Case Management
Tool Management
Single-user option available
Available at www.ibm.com/software/support/isa
ISA
Team Server
IBM Support Assistant (ISA) 5.0
40. 40
Summary
IBM is building a set of integrated monitoring and diagnostic tools
Taking a ground up approach
Working across teams, products and brands
Providing a consistent user experience
What Next??
42. Your feedback is valuable - please complete your session
or lab evaluation!
Session number
[A5]
Provide your evaluations by:
Evaluation forms:
Fill out a form at the end of each session
Paper forms are located in each of the session or lab rooms
Place the completed form in the tray as you exit the room
- Or –
Complete the session survey on Event Connect Portal:
ibmeventconnect.eu/euxdx
Select Sessions, then Session Finder, and complete the
survey
43. 43
Where to find more information
IBM Monitoring and Diagnostic Tools for Java™ on developerWorks
http://www.ibm.com/developerworks/java/jdk/tools/
IBM Support Assistant (ISA)
http://www.ibm.com/software/support/isa
Email javatool@uk.ibm.com