Starting a Java application as fast as any executable with a memory footprint rivaling the most lightweight runtime engines is quickly becoming a reality, through Graal VM and ahead of time compilation. This in turn is a major boost for using Java for microservice and serverless scenarios. The second major pillar of GraalVM is its polyglot capability: it can run code in several languages - JVM and non-JVM such as JavaScript/ES, Python, Ruby, R or even your own DSL. More importantly: GraalVM enables code running in one language to interoperate with code in another language. GraalVM supports many and increasingly more forms of interoperability. This session introduces GraalVM, its main capabilities and its practical applicability - now and in the near future. There are demonstrations of ahead of time compilation and runtime interoperability of various non-JVM languages with Java.
Processing Terabytes of data every day … and sleeping at night (infiniteConf ...Luciano Mammino
This is the story of how we built a highly available data pipeline that processes terabytes of network data every day, making it available to security researchers for security assessment and threat hunting.
Building this kind of stuff in the cloud is not that complicated, but if you have to make it near real-time, fault tolerant and 24/7 available, well... that's another story. In this talk, Luciano and Domagoj will tell you how they achieved this ambitious goal and how they missed a few good nights of sleep while trying to do that!
Spoiler alert: contains AWS, lambda, elastic search, monitoring, alerting & more!
Processing TeraBytes of data every day and sleeping at nightLuciano Mammino
This is the story of how we built a highly available data pipeline that processes terabytes of network data every day, making it available to security researchers for assessment and threat hunting. Building this kind of stuff on AWS is not that complicated, but if you have to make it near real-time, fault tolerant and 24/7 available, well... that's another story. In this talk, we will tell you how we achieved this ambitious goal and how we missed a few good nights of sleep while trying to do that! Spoiler alert: contains AWS, serverless, elastic search, monitoring, alerting & more!
Processing TeraBytes of data every day and sleeping at nightLuciano Mammino
This is the story of how we built a highly available data pipeline that processes terabytes of network data every day, making it available to security researchers for assessment and threat hunting.
Building this kind of stuff in the cloud is not that complicated, but if you have to make it near real-time, fault tolerant and 24/7 available, well... that's another story.
In this talk, we will tell you how we achieved this ambitious goal and how we missed a few good nights of sleep while trying to do that!
Spoiler alert: contains AWS, serverless, elastic search, monitoring, alerting & more!
Serverless is currently the talk of the town and is enjoying increasing popularity. What does serverless actually mean, what are its characteristics and when do you prefer the use of serverless technologies to a container-based solution?
With the Fn project, Oracle now has a serverless open source platform that can run in the cloud, in its own data center or on a developer's local computer. This distinguishes the solution from other serverless platforms on the market. The Fn project is developed by the same team that previously implemented IronFunctions. The framework is based on Docker and currently does not require a managed runtime environment. But is it still serverless?
The session explains basic serverless concepts, benefits and deployment scenarios of the platform-independent Fn Serverless framework.
Comparing JVM Web Frameworks - February 2014Matt Raible
My Comparing JVM Web Frameworks talk as presented at Denver's Open Source User Group (@dosug) and vJUG (@virtualjug). Covers the history of web frameworks as well as various methods for choosing one. Video on YouTube at https://www.youtube.com/watch?v=ygW8fJVlDxQ.
Processing Terabytes of data every day … and sleeping at night (infiniteConf ...Luciano Mammino
This is the story of how we built a highly available data pipeline that processes terabytes of network data every day, making it available to security researchers for security assessment and threat hunting.
Building this kind of stuff in the cloud is not that complicated, but if you have to make it near real-time, fault tolerant and 24/7 available, well... that's another story. In this talk, Luciano and Domagoj will tell you how they achieved this ambitious goal and how they missed a few good nights of sleep while trying to do that!
Spoiler alert: contains AWS, lambda, elastic search, monitoring, alerting & more!
Processing TeraBytes of data every day and sleeping at nightLuciano Mammino
This is the story of how we built a highly available data pipeline that processes terabytes of network data every day, making it available to security researchers for assessment and threat hunting. Building this kind of stuff on AWS is not that complicated, but if you have to make it near real-time, fault tolerant and 24/7 available, well... that's another story. In this talk, we will tell you how we achieved this ambitious goal and how we missed a few good nights of sleep while trying to do that! Spoiler alert: contains AWS, serverless, elastic search, monitoring, alerting & more!
Processing TeraBytes of data every day and sleeping at nightLuciano Mammino
This is the story of how we built a highly available data pipeline that processes terabytes of network data every day, making it available to security researchers for assessment and threat hunting.
Building this kind of stuff in the cloud is not that complicated, but if you have to make it near real-time, fault tolerant and 24/7 available, well... that's another story.
In this talk, we will tell you how we achieved this ambitious goal and how we missed a few good nights of sleep while trying to do that!
Spoiler alert: contains AWS, serverless, elastic search, monitoring, alerting & more!
Serverless is currently the talk of the town and is enjoying increasing popularity. What does serverless actually mean, what are its characteristics and when do you prefer the use of serverless technologies to a container-based solution?
With the Fn project, Oracle now has a serverless open source platform that can run in the cloud, in its own data center or on a developer's local computer. This distinguishes the solution from other serverless platforms on the market. The Fn project is developed by the same team that previously implemented IronFunctions. The framework is based on Docker and currently does not require a managed runtime environment. But is it still serverless?
The session explains basic serverless concepts, benefits and deployment scenarios of the platform-independent Fn Serverless framework.
Comparing JVM Web Frameworks - February 2014Matt Raible
My Comparing JVM Web Frameworks talk as presented at Denver's Open Source User Group (@dosug) and vJUG (@virtualjug). Covers the history of web frameworks as well as various methods for choosing one. Video on YouTube at https://www.youtube.com/watch?v=ygW8fJVlDxQ.
제 8회 Oracle Developer Meetup에서 발표한 "Cloud Native Java:GraalVM"의 장표입니다. 세미나 동영상은 다음 URL에서 보실 수 있습니다.
https://www.facebook.com/OracleKorea/videos/899585790388647/UzpfSTEwMDAxNTI2OTgwNDYyODpWSzo2MDc3NTY3NDk2MzgyNDg/
Cloud Native CI/CD with Spring Cloud PipelinesLars Rosenquist
Spring, Spring Boot and Spring Cloud are tools that allow developers to speed up the creation of new business features. But a new feature is only useful if it's in production. Companies spend a lot of time and resources on building their own deployment pipelines using a plethora of technologies. Spring Cloud Pipelines provides an opinionated way for getting your features to production in a fast, reliable, reproducible and fully automated way.
OSGi Community Event 2016 Presentation by Milen Dyankov (Liferay)
OSGi has evolved and matured beyond recognition over the last few years. It’s now easier than ever before, to build dynamic, modular Java applications to address the challenges imposed by ever growing and constantly changing business requirements. Despite that fact, OSGi seems to be far from receiving the appreciation it deserves. And if you are OSGi developer who now wanders “why should I care?”, let me remind you Thomas Edison’s famous quote “The value of an idea lies in the using of it”!
Growing large community around given technology has proven to be an essential part of its success. In this talk I’d like to go over what OSGi community is (not) doing to attract “outsiders”. I’d also argue it can do much better than that. Based on observations and conversation from the last 2 years trying to advocate for OSGi among Java developers. I’ll try to position the technology it today’s reality of microservices, containers, clouds, DevOps, automation, Java 9, … and bring to your attention the perspective of an “outsider” together with all the presumptions, fallacies and promises it comes with. Finally I’d like to share some ideas about how to address those, promote relevant parts of OSGi and thus perhaps make it more attractive to Java developers!
At JavaOne keynote this year, Mark Reinhold talked about how Java 9 was much bigger than Jigsaw. To put that in numbers - 80+ JEPs bigger! Yes, we see more presentations on Jigsaw since it brings about modularity to the once monolithic JDK. But what about those other JEPs?! One of those "other" JEPs, is JEP 143 - 'Improve Contended Locking'. Monica will apply her performance engineering approach and talk about JEP 143 and Oracle's Studio Analyzer Performance Tool. The crux of the presentation will entail comparing performance of contended locks in JDK 9 to JDK 8.
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav TulachPROIDEA
TOWARDS THE FASTEST (J)VM ON THE PLANET!
When designing new language, one usually starts with an AST interpreter. When the language is ready for use, users find out it is great, but slow. So one starts to design a bytecode to speed things up. That may help a bit, but usually the result is clear: still the execution is slow. Truffle project offers you a different perspective: write your AST interpreter using Truffle nodes API and we make it fast! In addition to that we also give you tooling for free! As a proof we'll demonstrate that our implementation of Ruby is ten times faster than any other one, including indy based JRuby. Stop by for a short introduction how to be create the fastest execution environment for any language!
Testing Java Microservices: From Development to ProductionDaniel Bryant
Testing microservices is challenging. Dividing a system into components (à la microservices) naturally creates inter-component dependencies, and each service has its own performance and fault-tolerance characteristics that need to be validated during development, the QA process, and continually in production. Attend this meetup to learn about the theory, techniques, and practices needed to overcome this challenge. You will:
• Get an introduction to the challenges of testing distributed microservice systems
• Learn how to isolate tests within a complex microservice ecosystem
• Hear about several tools for automating vulnerability and security scanning for code, dependencies, and deployment artifacts
(java2days) Is the Future of Java Cloudy?Steve Poole
Java – it’s on billions of devices. We think it powers the world. Others disagree.
In this talk we’ll examine a few of the reasons why some developers believe Java is being left behind by younger (or at least different) programming languages. We’ll show where the claims make sense and debunk some of the more outrageous slander. We know the future of Java includes a more polyglot world so we’ll help you understand with practical advice where Java shines today and where you might be better using something else. We’ll also cover the challenges that all runtimes have in the new era of Cloud and how the Java community is leading the way in evolving Java into becoming the Cloud runtime of choice.
This talk will help you become more informed when dealing with those inevitable language cage fights around the water cooler. You’ll be able to refute the fake news and replace it with clear facts. Vote for Java – you know it makes sense
GitOps is the best modern practice for CD with KubernetesVolodymyr Shynkar
Evolution of infrastructure as code, a framework that can drastically improve deployment speed and development efficiency.
Youtube version: https://www.youtube.com/watch?v=z2kHFpCPum8
Free GitOps Workshop + Intro to Kubernetes & GitOpsWeaveworks
Follow along in this free workshop and experience GitOps!
AGENDA:
Welcome - Tamao Nakahara, Head of DX (Weaveworks)
Introduction to Kubernetes & GitOps - Mark Emeis, Principal Engineer (Weaveworks)
Weave Gitops Overview - Tamao Nakahara
Free Gitops Workshop - David Harris, Product Manager (Weaveworks)
If you're new to Kubernetes and GitOps, we'll give you a brief introduction to both and how GitOps is the natural evolution of Kubernetes.
Weave GitOps Core is a continuous delivery product to run apps in any Kubernetes. It is free and open source, and you can get started today!
https://www.weave.works/product/gitops-core
If you’re stuck, also come talk to us at our Slack channel! #weave-gitops http://bit.ly/WeaveGitOpsSlack (If you need to invite yourself to the Slack, visit https://slack.weave.works/)
Why every startup built with Ruby on Rails has an upper hand over their compe...DreamToIPO
Why every startup built with Ruby on Rails has an upper hand over their competitors - Built with ruby on rails, Ruby on Rails development specialist, startup ruby on rails development company.
Efficient DevOps Tooling with Java and GraalVMQAware GmbH
JCON, October 2020, talk by Mario-Leander Reimer (@LeanderReimer, Chief Software Architect at QAware)
== Please download slides if blurred! ==
Abstract: Ops tooling has so far been the domain of shell scripts, interpreted languages like Python or statically compile languages like Go. But with the advent of GraalVM this situation has changed significantly. So behold: it is now possible to apply the power of the Java language and its ecosystem to your DevOps tooling problems and yet get optimal performance and efficiency by using GraalVM native images. In this session we will show that versatile 12-Factor CLI tools and powerful Kubernetes operators can be implemented in Java super easy in no time.
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...Lucas Jellema
Starting a Java application as fast as any executable with a memory footprint rivaling the most lightweight runtime engines is quickly becoming a reality, through Graal VM and ahead of time compilation. This in turn is a major boost for using Java for microservice and serverless scenarios. The second major pillar of GraalVM is its polyglot capability: it can run code in several languages - JVM and non-JVM such as JavaScript/ES, Python, Ruby, R or even your own DSL. More importantly: GraalVM enables code running in one language to interoperate with code in another language. GraalVM supports many and increasingly more forms of interoperability. This session introduces GraalVM, its main capabilities and its practical applicability - now and in the near future. There are demonstrations of ahead of time compilation and runtime interoperability of various non-JVM languages with Java.
제 8회 Oracle Developer Meetup에서 발표한 "Cloud Native Java:GraalVM"의 장표입니다. 세미나 동영상은 다음 URL에서 보실 수 있습니다.
https://www.facebook.com/OracleKorea/videos/899585790388647/UzpfSTEwMDAxNTI2OTgwNDYyODpWSzo2MDc3NTY3NDk2MzgyNDg/
Cloud Native CI/CD with Spring Cloud PipelinesLars Rosenquist
Spring, Spring Boot and Spring Cloud are tools that allow developers to speed up the creation of new business features. But a new feature is only useful if it's in production. Companies spend a lot of time and resources on building their own deployment pipelines using a plethora of technologies. Spring Cloud Pipelines provides an opinionated way for getting your features to production in a fast, reliable, reproducible and fully automated way.
OSGi Community Event 2016 Presentation by Milen Dyankov (Liferay)
OSGi has evolved and matured beyond recognition over the last few years. It’s now easier than ever before, to build dynamic, modular Java applications to address the challenges imposed by ever growing and constantly changing business requirements. Despite that fact, OSGi seems to be far from receiving the appreciation it deserves. And if you are OSGi developer who now wanders “why should I care?”, let me remind you Thomas Edison’s famous quote “The value of an idea lies in the using of it”!
Growing large community around given technology has proven to be an essential part of its success. In this talk I’d like to go over what OSGi community is (not) doing to attract “outsiders”. I’d also argue it can do much better than that. Based on observations and conversation from the last 2 years trying to advocate for OSGi among Java developers. I’ll try to position the technology it today’s reality of microservices, containers, clouds, DevOps, automation, Java 9, … and bring to your attention the perspective of an “outsider” together with all the presumptions, fallacies and promises it comes with. Finally I’d like to share some ideas about how to address those, promote relevant parts of OSGi and thus perhaps make it more attractive to Java developers!
At JavaOne keynote this year, Mark Reinhold talked about how Java 9 was much bigger than Jigsaw. To put that in numbers - 80+ JEPs bigger! Yes, we see more presentations on Jigsaw since it brings about modularity to the once monolithic JDK. But what about those other JEPs?! One of those "other" JEPs, is JEP 143 - 'Improve Contended Locking'. Monica will apply her performance engineering approach and talk about JEP 143 and Oracle's Studio Analyzer Performance Tool. The crux of the presentation will entail comparing performance of contended locks in JDK 9 to JDK 8.
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav TulachPROIDEA
TOWARDS THE FASTEST (J)VM ON THE PLANET!
When designing new language, one usually starts with an AST interpreter. When the language is ready for use, users find out it is great, but slow. So one starts to design a bytecode to speed things up. That may help a bit, but usually the result is clear: still the execution is slow. Truffle project offers you a different perspective: write your AST interpreter using Truffle nodes API and we make it fast! In addition to that we also give you tooling for free! As a proof we'll demonstrate that our implementation of Ruby is ten times faster than any other one, including indy based JRuby. Stop by for a short introduction how to be create the fastest execution environment for any language!
Testing Java Microservices: From Development to ProductionDaniel Bryant
Testing microservices is challenging. Dividing a system into components (à la microservices) naturally creates inter-component dependencies, and each service has its own performance and fault-tolerance characteristics that need to be validated during development, the QA process, and continually in production. Attend this meetup to learn about the theory, techniques, and practices needed to overcome this challenge. You will:
• Get an introduction to the challenges of testing distributed microservice systems
• Learn how to isolate tests within a complex microservice ecosystem
• Hear about several tools for automating vulnerability and security scanning for code, dependencies, and deployment artifacts
(java2days) Is the Future of Java Cloudy?Steve Poole
Java – it’s on billions of devices. We think it powers the world. Others disagree.
In this talk we’ll examine a few of the reasons why some developers believe Java is being left behind by younger (or at least different) programming languages. We’ll show where the claims make sense and debunk some of the more outrageous slander. We know the future of Java includes a more polyglot world so we’ll help you understand with practical advice where Java shines today and where you might be better using something else. We’ll also cover the challenges that all runtimes have in the new era of Cloud and how the Java community is leading the way in evolving Java into becoming the Cloud runtime of choice.
This talk will help you become more informed when dealing with those inevitable language cage fights around the water cooler. You’ll be able to refute the fake news and replace it with clear facts. Vote for Java – you know it makes sense
GitOps is the best modern practice for CD with KubernetesVolodymyr Shynkar
Evolution of infrastructure as code, a framework that can drastically improve deployment speed and development efficiency.
Youtube version: https://www.youtube.com/watch?v=z2kHFpCPum8
Free GitOps Workshop + Intro to Kubernetes & GitOpsWeaveworks
Follow along in this free workshop and experience GitOps!
AGENDA:
Welcome - Tamao Nakahara, Head of DX (Weaveworks)
Introduction to Kubernetes & GitOps - Mark Emeis, Principal Engineer (Weaveworks)
Weave Gitops Overview - Tamao Nakahara
Free Gitops Workshop - David Harris, Product Manager (Weaveworks)
If you're new to Kubernetes and GitOps, we'll give you a brief introduction to both and how GitOps is the natural evolution of Kubernetes.
Weave GitOps Core is a continuous delivery product to run apps in any Kubernetes. It is free and open source, and you can get started today!
https://www.weave.works/product/gitops-core
If you’re stuck, also come talk to us at our Slack channel! #weave-gitops http://bit.ly/WeaveGitOpsSlack (If you need to invite yourself to the Slack, visit https://slack.weave.works/)
Why every startup built with Ruby on Rails has an upper hand over their compe...DreamToIPO
Why every startup built with Ruby on Rails has an upper hand over their competitors - Built with ruby on rails, Ruby on Rails development specialist, startup ruby on rails development company.
Efficient DevOps Tooling with Java and GraalVMQAware GmbH
JCON, October 2020, talk by Mario-Leander Reimer (@LeanderReimer, Chief Software Architect at QAware)
== Please download slides if blurred! ==
Abstract: Ops tooling has so far been the domain of shell scripts, interpreted languages like Python or statically compile languages like Go. But with the advent of GraalVM this situation has changed significantly. So behold: it is now possible to apply the power of the Java language and its ecosystem to your DevOps tooling problems and yet get optimal performance and efficiency by using GraalVM native images. In this session we will show that versatile 12-Factor CLI tools and powerful Kubernetes operators can be implemented in Java super easy in no time.
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...Lucas Jellema
Starting a Java application as fast as any executable with a memory footprint rivaling the most lightweight runtime engines is quickly becoming a reality, through Graal VM and ahead of time compilation. This in turn is a major boost for using Java for microservice and serverless scenarios. The second major pillar of GraalVM is its polyglot capability: it can run code in several languages - JVM and non-JVM such as JavaScript/ES, Python, Ruby, R or even your own DSL. More importantly: GraalVM enables code running in one language to interoperate with code in another language. GraalVM supports many and increasingly more forms of interoperability. This session introduces GraalVM, its main capabilities and its practical applicability - now and in the near future. There are demonstrations of ahead of time compilation and runtime interoperability of various non-JVM languages with Java.
Micronaut: A new way to build microservicesLuram Archanjo
Over the years microservices architecture has been widely adopted in conjunction with Spring Boot. But recently, we are witnessing the rise of microframeworks such as Micronaut, which has innovated the way we build microservices by providing low memory consumption, fast startup, non-blocking, and other important features that I will demonstrate and conceptualize in this talk.
GraalVM – a high-performance multilingual runtime. It is designed to accelerate the execution of applications written in Java and other JVM languages while also providing runtimes for JavaScript, Ruby, Python, and a number of other popular languages.
The new GraalVM from Oracle supports multiple language including JavaScript, Python, Ruby, R, C++ as well as Java and other JVM languages. This opens up interesting possibilities for polygot enterprise applications. Now you can use a Node library in a Java application or call an R statistical function from an EJB. Previously, this type of integration was extremely challenging. This session will provide recipes to get up and running along with best practices and some cool demos.
Code: https://github.com/rcuprak/graalvm_jee
HOW AND WHY GRAALVM IS QUICKLY BECOMING RELEVANT FOR YOULucas Jellema
Starting a Java application as fast as any executable with a memory footprint rivaling the most lightweight runtime engines is quickly becoming a reality, through Graal VM and ahead of time compilation. This in turn is a major boost for using Java for microservice and especially serverless scenarios. For a long time GraalVM seemed merely an exotic research project in an Oracle lab. However, things are moving fast now. A production ready GraalVM release is available – so we can start to leverage its goodness.
Microservice frameworks like Quarkus fully leverage GraalVM – and Spring is rapidly embracing it as well. The second major pillar of GraalVM is its polyglot capability: it can run code in several languages – JVM and non-JVM such as JavaScript/ES, Python, Ruby, R or even your own DSL. More importantly still: GraalVM enables code running in one language to interoperate with code in another language. Forget Rhino and Nashorn: Java to JavaScript interaction is so much better on GraalVM. Want to leverage Python libraries from Java? Or a C++ routine? GraalVM supports many and increasingly more forms of interoperability.
This session introduces GraalVM, its main capabilities and especially its practical applicability – now and in the near future. There are demonstrations of ahead of time compilation and use of Java based serverless functions with tiny run times and ultrafast startup. Quarkus and Apache Camel on Graal VM are shown and examples are presented of runtime interoperability of various non-JVM languages with Java.
Are you looking for the Java Development Company? Look no Further! Xicom offers custom Java software development and offshore Java web application outsourcing services. To know further details you must visit Xicom. Read More @ https://www.xicom.biz/offerings/java-development/?utm_source=blog%2FRyan
Introduction To Groovy And Grails - SpringPeopleSpringPeople
Groovy and Grails Tool Suite supports application targeting to local, virtual and cloud-based servers. It is freely available for development and internal business operations use with no time limits.
How to build unified Batch & Streaming Pipelines with Apache Beam and DataflowDaniel Zivkovic
Apache Beam is a beautiful framework that blurs the line between Batch and Streaming, so check out this interactive tutorial by Patrick Lecuyer - Head of Specialist Customer Engineering at Google Canada. His examples run on GCP Dataflow, but what you'll learn will be portable across clouds, and distributed processing engines like Apache Flink, Apache Samza, Apache Spark, IBM Streams... regardless of where you do your Big Data processing!
The meetup recording with TOC for easy navigation is at https://youtu.be/7pUYKX40RfA.
P.S. For more interactive lectures like this, go to http://youtube.serverlesstoronto.org/ or sign up for our upcoming live events at https://www.meetup.com/Serverless-Toronto/events/
Building a µservice with Kotlin, Micronaut & GCPRobert MacLean
In this session, Robert will take the audience through the real-life learnings he has gained in building microservices for a large UK retailer using Kotlin, Micronaut, DataStore and running it on GCP.
This session is meant to be practical in its advice and is targetted at those new to Kotlin and microservice development and attendees can expect to walk away knowing how to get started in this space.
While GCP, in particular, DataStore, Storage, and GKE will be mentioned they are not the core focus with about 10min of the talk focused on that (and the bulk of that being on DataStore).
First shared at DevFest 2019
Introduction to web application development with Vue (for absolute beginners)...Lucas Jellema
In this slide deck I show you how you can easily and quickly create quite rich web applications with Vue 3 – without having to study complex concepts or understand many technical details. I have only recently learned how to work with Vue 3 myself and now is the best time for me to share my learning experience (and my enthusiasm) with you. I know what I found essential to understand and what most got me excited in these early steps (what was a little bit hard to grasp). I believe that I can present my steps and guide you to experience the same fun and have a similarly gratifying experience. I am not an expert in this subject – I have barely learned how to walk and that is why I can help you with these first steps with Vue.
In this deck, I do not explain how Vue works. I do not really know that. I will show you how to work with it and how to create web applications that are functional, appealing, fast and responsive.
The approach I am taking is straightforward:
• I will tell you a little bit about web development, browsers and reactive frameworks
• I will show the hello world of Vue applications
• I will explain about components and nesting, events, data binding and reactive behavior and demonstrate these concepts
• I will introduce Vue UI Component libraries – and with no effort at all we will launch our application to the next level – with rich components to explore, manipulate, visualize data collections
• We will publish the web application from our development environment to where the whole world could see it – using GitHub Pages
• As bonus topic – we discuss state management
At the end of this session you will be able to quickly create a simple yet rich web application with Vue 3. You have a starting point to further evolve your skills with the many online resources I am convinced that you will enjoy your newfound powers and the simplicity and power of Vue 3.
Note: a tutorial accompanies this slide deck - see https://github.com/lucasjellema/code-face-vue3-intro-reactiive-webapps-aug2023/blob/main/README.md
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Lucas Jellema
Designing, agreeing on, implementing and testing the application is our first challenge. But it does not end there. Applications require tender love and care when they are live. Application Operations needs to be in place along with the functionality of the application. AppOps is the process of making sure that the applications are executed as required and that any problems are detected, reported and dealt with. Some mechanisms used in AppOps: transaction tracing, log analysis, post-data-exchange-checks, health checking of all systems involved, in-production-testing of end-to-end data flows. Additionally, AppOps takes care of configuration management, scaling, cost management, technical life cycle management on solution components. In this session, we will take a closer look at what is required to keep those applications going and how we do ops by design from early on in the agile process.
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lucas Jellema
Cloud Based Development environments allow software engineers to work in a new and refreshing way. The development environment runs in the cloud, based on a coded environment definition and with the sources from a specific branch in a Git repository. The environment can be quite powerful in memory, CPU and storage. Development can be done from a lightweight device such as a Chromebook or even a tablet. Switching between different environments becomes a breeze, collaborating in an environment is easily done. Using network tunneling, the IDE could run locally against the remote workspace and remote ports can be accessed on localhost. This session demonstrates both Gitpod and Github Codespaces - similar SaaS offerings with generous free tiers. They are great for quick investigation into new technologies, for working through tutorials and for contributing to open source projects. You will smile at the ease and elegance of engineering your software in this way.
Apache Superset - open source data exploration and visualization (Conclusion ...Lucas Jellema
Introducing Apache Superset - an open source platform for data exploration, visualization and analysis - co-starring Trino and Steampipe for providing SQL access to many non-SQL data sources.
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...Lucas Jellema
Enterprise IT systems are deaf, blind and highly insensitive. They do not know what is going on in the outside world. Through Internet of Things technology, we provide eyes, ears and hands that allow enterprises to learn about and react in real time to events in the physical world. The energy transition at a major Dutch energy company (Eneco) is powered by IoT technology – to steer and sometimes curtail windmills and solar farms and to coordinate local energy production and trade. This session shows you how the physical world was connected to the customer portals and apps, asset management systems and Kafka platform through the Azure cloud based IoT Hub en Edge, digital twin, serverless functions, timeseries datastores and streaming data analysis. It is a story about technological innovation on top of existing foundations and of a vision for business and our society at large.
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...Lucas Jellema
I hear this aspiration from a growing number of organizations. Sometimes as a quite literal question. This however is merely half of a wish. Apparently, organizations want to quit with one thing — but have not yet stipulated what they desire instead. What is the objective that is pursued here? Only to get rid of Oracle? It will become clear why you should give a considerable thought about dropping Oracle, or any other vendors’ technology, when you’re not pleased with your current IT situation. You need to focus on the actual problems and objectives and define the suitable roadmap to fit your real needs. It turns out that the quest is usually for modernization and flexibility - and Oracle can very well be a part of that future.
Organizations with decades of investment in Oracle technology sometimes (and increasingly) express a wish to move away from Oracle. In this session, we will first explore where the desire to move away from Oracle might come from. Then we describe what the term Oracle represents — more than 2.000 products on all layers in the technology stack and in different business areas. Finally, we map out what the ‘moving away from’ consists of: defining where you ‘move to’ and subsequently actually going there.
It will become clear why you should give considerable thought about dropping Oracle, or any other vendors’ technology, when you’re not pleased with your current IT situation. You need to focus on the actual problems and objectives and define the suitable roadmap to fit your real needs. It turns out that the quest is usually for modernization and flexibility - and Oracle can very well be a part of that future.
Original storyline in this Medium Article: https://medium.com/real-vox/what-if-companies-say-help-me-move-away-from-oracle-ffbbc95afc4f
IoT - from prototype to enterprise platform (DigitalXchange 2022)Lucas Jellema
In 2019 the company started a small scale IoT project: smart meters in consumer homes, a cloud based IoT platform for device management, metrics collecting, monitoring and real time data processing. From the initial 12 devices and this single use case, the initiative has rapidly scaled, to tens of thousands devices - including entire wind parks and solar farms - and seven substantial business cases, not just for harvesting data but increasingly for real time actuation. The IoT Platform is feeding the brain at the heart of the enterprise - through an event streaming platform and an API platform. It supports complex operations with anomaly detection on metrics streams and device and communication monitoring. This session tells about the eye catching business cases - what are business objectives and results - and explains the journey since the start. It continues the story presented at DigitalXchange 2020 - discussing technical challenges and solutions as well as organizational aspects. Areas of particular interest: edge processing, data analytics and machine learning.
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Lucas Jellema
Pitch: The movie The Matrix made it clear: The Architect is powerful. How to be(come) and IT architect? What do you do, what do you need to know, is it fun and why? Using real world examples, core principles and useful tools, this session introduces the subtle art of designing and realizing flexible IT architectures. </p><p>Taking a step back to get and create an overview, frequently asking why to get to the real intention, bringing aspects such as cost, scale, time and change and business strategy into the design and bridging the gap between business owners, process managers and technical specialists. One way to define the responsibility of an IT architect. In this session, we will discuss what is expected of the architect and what you need to do for that and what you could use to get it done. How do you get started as an architect, how to grow in that role? We discuss a number of real life architectural challenges and solution design. And discuss a number of architecture principles, patterns, and powers to apply. Never stop programming - but perhaps rise to the architecture challenge too.
Notes: Many IT professionals aspire to become architects. Many architects wonder what it is they have to do. After 27 years in IT I find I have slowly and steadily moved into a role that I can probably use the label architect for, although still with some reluctance. What exactly does that mean - IT architect? While I may not have all answers and the ultimate truth and wisdom, I do have many architectural challenges to discuss and some core principles to share and a number of tips, tricks and tools to recommend that will help anyone get started or grow in a role as architect for software and IT systems. Elements that make an appearance include cloud, agile, DevOps, microservices, persistence, business, powers of persuasion, diagramming, cost, security, software engineering, data.
Outline: - two real world examples (one new business initiative, one running and struggling project) and how to approach them with an architect's mind - core principles to apply , patterns to us, what to unearth (the power question of WHY) - architecture products: what do you deliver as an architect; how do you ensure agility? - how to be effective? bringing your design to life - communication with stakeholders/powers of persuasion, monitoring adherence, being pragmatic but not lose grip; - anecdotal evidence from several small and large product teams - the good and also the ugly (architectural oversights and the consequences)
some specific answers to address - how much technical knowledge and programming skills does an architect require? What other knowledge is required and how to stay on top of your game? how to get going: first steps towards be(com)ing and architect?
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Lucas Jellema
Introduction to Steampipe - a tool for retrieving data and metadata about cloud resources, platform resources and file content - all through SQL. Data from clouds, files and platforms can be joined, filtered, sorted, aggregated using regular SQL. Steampipe offers a very convenient way to get hold of data that describes the environment in detail.
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Lucas Jellema
Automation of software delivery has several advantages. Prevention of human error is certainly one. Consistent and complete execution of tried and tested build and deployment tasks as the only way to apply changes in the live environment. Once the pipelines have been set up, the engineers can focus on the software and applying the required changes to it. To bring that software all the way to production is a breeze. Oracle Cloud Infrastructure offers the DevOps service, introduced in the Summer of 2021. This service comes with git style code repositories, build servers and build pipelines, artifact repositories as well as deployment pipelines. This session introduces OCI DevOps and demonstrates how software can be built and deployed on OKE Kubernetes, Compute Instance VMs and Oracle Functions. From simple source code an application is put in production without manual intervention in the build and deployment process.
Introducing Dapr.io - the open source personal assistant to microservices and...Lucas Jellema
Dapr.io is an open source product, originated from Microsoft and embraced by a broad coalition of cloud suppliers (part of CNFC) and open source projects. Dapr is a runtime framework that can support any application and that especially shines with distributed applications - for example microservices - that run in containers, spread over clouds and / or edge devices.
With Dapr you give an application a "sidecar" - a kind of personal assistant that takes care of all kinds of common responsibilities. Capturing and retrieving state, publishing and consuming messages or events. Reading secrets and configuration data. Shielding and load balancing over service endpoints. Calling and subscribing to all kinds of SaaS and PaaS facilities. Logging traces across all kinds of application components and logically routing calls between microservices and other application components. Dapr provides generic APIs to the application (HTTP and gRPC) for calling all these generic services – and provides implementations of these APIs for all public clouds and dozens of technology components. This means that your application can easily make use of a wide range of relevant features - with a strict separation between the language the application uses for this (generic, simple) and the configuration of the specific technology (e.g. Redis, MySQL, CosmosDB, Cassandra, PostgreSQL, Oracle Database, MongoDB, Azure SQL etc) that the Dapr sidecar uses. Changing technology does not affect the application, but affects the configuration of the Sidecar. Dapr can be used from applications in any technology - from Java and C#/.NET to Go, Python, Node, Rust and PHP. Or whatever can talk HTTP (or gRPC).
In this Code Café I will introduce you to Dapr.io. I will show you what Dapr can do for you (application) and how you can Dapr-izen an application. I'll show you how an asynchronously collaborative system of microservices - implemented in different technologies - can be easily connected to Dapr, first to Redis as a Pub/Sub mechanism and then also to Apache Kafka without modifications. Then we do - with the interested parties - also a hands-on in which you will apply Dapr yourself . In a short time you get a good feel for how you can use Dapr for different aspects of your applications. And if nothing else, Dapr is a very easy way to get your code with Kafka, S3, Redis, Azure EventGrid, HashiCorp Consul, Twillio, Pulsar, RabbitMQ, HashiCorp Vault, AWS Secret Manager, Azure KeyVault, Cron, SMTP, Twitter, AWS SQS & SNS, GCP Pub/Sub and dozens of other technology components talk.
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...Lucas Jellema
For a long time I have been reluctant to actively contribute to an open source project. I thought it would be rather complicated and demanding – and that I didn't have the knowledge or skills for it or at the very least that they (the project team) weren't waiting for me.
In December 2021, I decided to have a serious input into the Dapr.io project – and now finally to determine how it works and whether it is really that complicated. In this session I want to tell you about my experiences. How Fork, Clone, Branch, Push (and PR) is the rhythm of contributing to an open source project and how you do that (these are all Git actions against GitHub repositories). How to learn how such a project functions and how to connect to it; which tools are needed, which communication channels are used. I tell how the standards of the project – largely automatically enforced – help me to become a better software engineer, with an eye for readability and testability of the code.
How the review process is quite exciting once you have offered your contribution. And how the final "merge to master" of my contribution and then the actual release (Dapr 1.6 contains my first contribution) are nice milestones.
I hope to motivate participants in this session to also take the step yourself and contribute to an open source project in the form of issues or samples, documentation or code. It's valuable to the community and the specific project and I think it's definitely a valuable experience for the "contributer". I looked up to it and now that I've done it gives me confidence – and it tastes like more (I could still use some help with the work on Dapr.io, by the way).
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Lucas Jellema
Apache Kafka is one of the best known enterprise grade message brokers – created at LinkedIn, donated to the Apache software foundation and used in an ever growing number of organizations to provide a backbone for asynchronous communication. This session introduces Apache Kafka – history, concepts, community and tooling. In a hands on lab, participants will create topics, publish and consume messages and get a general feel for Kafka. Simple microservices are developed in NodeJS – publishing to and consuming from Apache Kafka.
Dapr.io has support for Apache Kafka. Using Kafka through Dapr is very straightforward as is explained and demonstrated and applied in a second handson lab – with applications in various programming languages. Participants will even be able to exchange events across their laptops – through a cloud based Kafka broker.
Use of Apache Kafka in several architecture patterns is discussed – such as data integration, microservices, CQRS, Event Sourcing – along with a number of real world use cases from several well known organizations. The Kafka Connector framework is introduced – a set of adapters that allow us to easily connect Kafka to sources and sinks – where respectively change events are captured from and messages are published to.
Bonus Lab: Apache Kafka is ran on Kubernetes as is Dapr.io. Multiple mutually interacting microservices are deployed on the same local Kubernetes cluster.
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Lucas Jellema
This session does a quick recap of microservices: why do we want them, what problems do they solve and what are the principles around designing and implementing them? The Dapr.io runtime framework for distributed applications is introduced. Dapr provides a sidecar (almost like a personal assistant to a manager) to an application or microservice, a companion process that handles common tasks such as storing and retrieving state, consuming and publishing messages and events, invoking external services and other microservices as well as handling incoming requests. Participants will do a handson lab with Dapr.io and learn how to quickly implement interactions with various technologies, including Redis and MySQL.
Node(JS) is introduced – a server side JavaScript-based programming language that can be used well for implementing microservices. Some of the main characteristics of NodeJS are discussed (functional programming, asynchronous flows, NPM package manager) as well as common use cases (handle incoming HTTP requests, invoke REST APIs). In the second lab, Node and Dapr are used together to implement microservices that interact with databases and message brokers and each other – in a decoupled fashion.
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...Lucas Jellema
The cloud is changing many things. Even the decision to not (yet) adopt cloud is one to make explicitly. Now is a time for any organization to reconsider the IT landscape. For each system we should make a conscious ruling on its roadmap. The 6R model suggests six ways to move a system forward.
This session uses the 6R model and applies it specifically to Oracle technology based systems: what are the options and considerations for Oracle Database, Oracle Fusion Middleware, custom applications, and other red components? What future should we consider and how do we choose? The paths chosen by several Oracle-heavy users is presented to illustrate these options and the decision making process. Oracle Cloud Infrastructure and Autonomous Database play a role, as do Azure IaaS and Azure Managed Database as well as on premises systems. Latency, recovery, scalability, licenses, automation, lock-in, skills, and resources all make their appearance.
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Lucas Jellema
Organizations with decades of investment in Oracle technology sometimes (and increasingly) express a wish to move away from Oracle. In this session, we will first explore where the desire to move away from Oracle might come from. Then we describe what the term Oracle represents -- more than 2.000 products on all layers in the technology stack and in different business areas. Finally, we map out what the 'moving away from' consists of: defining where you 'move to' and subsequently actually going there.
It will become clear why you should give considerable thought about dropping Oracle, or any other vendors' technology, when you're not pleased with your current IT situation. You need to focus on the actual problems and objectives and define the suitable roadmap to fit your real needs. It turns out that the quest is usually for modernization and flexibility - and Oracle can very well be a part of that future.
DevOps is a term used in many places and unfortunately also to mean many different things. This presentation (largely in Dutch) paints the DevOps picture. While it may not give a clear cut definition (there does not seem to be one) it certainly makes clear what DevOps is about, what objectives and origins are and which factors enable and drive DevOps.
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Lucas Jellema
Microcks is a tool for API Mocking and Testing. In this presentation an overview of the support in Microcks for asynchronous APIs - the event publishing and consuming behavior of services and applications
Cloud native applications offer scalability, flexibility, and optimal use of compute resources. Serverless functions interacting through events, leveraging cloud capabilities for persistent storage and automated operations take organization to the next level in IT. This session demonstrates polyglot Functions interacting with native cloud services for events and persistence (Object Storage and NoSQL Database) and leveraging the Key and Secrets Vault, Monitoring and Notifications services for operational control. A lightweight API Gateway is used to expose APIs to external consumers. Infrastructure as Code is the guiding principle in deploying both cloud resources and application components, through OCI CLI and Terraform. This session leverages many cloud native (enabling) services in Oracle Cloud Infrastructure. The session will introduce concepts, then spend most of the time on live demonstrations. All sources are shared with the audience, to allow participants to create the same application in their own cloud tenancy. What is so great about Cloud Native Applications? How do you create one? I will explain the first and demonstrate the second. On Oracle Cloud Infrastructure, using services that anyone can use for free, I will live create a cloud native application that streams, persists, notifies, scales, monitors Benefits: - get to know many different OCI services - understand the meaning, purpose and benefits of cloud native development - learn how to take your own first steps in OCI - for free!
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeAftab Hussain
Understanding variable roles in code has been found to be helpful by students
in learning programming -- could variable roles help deep neural models in
performing coding tasks? We do an exploratory study.
- These are slides of the talk given at InteNSE'23: The 1st International Workshop on Interpretability and Robustness in Neural Software Engineering, co-located with the 45th International Conference on Software Engineering, ICSE 2023, Melbourne Australia
Atelier - Innover avec l’IA Générative et les graphes de connaissancesNeo4j
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Allez au-delà du battage médiatique autour de l’IA et découvrez des techniques pratiques pour utiliser l’IA de manière responsable à travers les données de votre organisation. Explorez comment utiliser les graphes de connaissances pour augmenter la précision, la transparence et la capacité d’explication dans les systèmes d’IA générative. Vous partirez avec une expérience pratique combinant les relations entre les données et les LLM pour apporter du contexte spécifique à votre domaine et améliorer votre raisonnement.
Amenez votre ordinateur portable et nous vous guiderons sur la mise en place de votre propre pile d’IA générative, en vous fournissant des exemples pratiques et codés pour démarrer en quelques minutes.
Artificia Intellicence and XPath Extension FunctionsOctavian Nadolu
The purpose of this presentation is to provide an overview of how you can use AI from XSLT, XQuery, Schematron, or XML Refactoring operations, the potential benefits of using AI, and some of the challenges we face.
Graspan: A Big Data System for Big Code AnalysisAftab Hussain
We built a disk-based parallel graph system, Graspan, that uses a novel edge-pair centric computation model to compute dynamic transitive closures on very large program graphs.
We implement context-sensitive pointer/alias and dataflow analyses on Graspan. An evaluation of these analyses on large codebases such as Linux shows that their Graspan implementations scale to millions of lines of code and are much simpler than their original implementations.
These analyses were used to augment the existing checkers; these augmented checkers found 132 new NULL pointer bugs and 1308 unnecessary NULL tests in Linux 4.4.0-rc5, PostgreSQL 8.3.9, and Apache httpd 2.2.18.
- Accepted in ASPLOS ‘17, Xi’an, China.
- Featured in the tutorial, Systemized Program Analyses: A Big Data Perspective on Static Analysis Scalability, ASPLOS ‘17.
- Invited for presentation at SoCal PLS ‘16.
- Invited for poster presentation at PLDI SRC ‘16.
OpenMetadata Community Meeting - 5th June 2024OpenMetadata
The OpenMetadata Community Meeting was held on June 5th, 2024. In this meeting, we discussed about the data quality capabilities that are integrated with the Incident Manager, providing a complete solution to handle your data observability needs. Watch the end-to-end demo of the data quality features.
* How to run your own data quality framework
* What is the performance impact of running data quality frameworks
* How to run the test cases in your own ETL pipelines
* How the Incident Manager is integrated
* Get notified with alerts when test cases fail
Watch the meeting recording here - https://www.youtube.com/watch?v=UbNOje0kf6E
Mobile App Development Company In Noida | Drona InfotechDrona Infotech
Looking for a reliable mobile app development company in Noida? Look no further than Drona Infotech. We specialize in creating customized apps for your business needs.
Visit Us For : https://www.dronainfotech.com/mobile-application-development/
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Łukasz Chruściel
No one wants their application to drag like a car stuck in the slow lane! Yet it’s all too common to encounter bumpy, pothole-filled solutions that slow the speed of any application. Symfony apps are not an exception.
In this talk, I will take you for a spin around the performance racetrack. We’ll explore common pitfalls - those hidden potholes on your application that can cause unexpected slowdowns. Learn how to spot these performance bumps early, and more importantly, how to navigate around them to keep your application running at top speed.
We will focus in particular on tuning your engine at the application level, making the right adjustments to ensure that your system responds like a well-oiled, high-performance race car.
Launch Your Streaming Platforms in MinutesRoshan Dwivedi
The claim of launching a streaming platform in minutes might be a bit of an exaggeration, but there are services that can significantly streamline the process. Here's a breakdown:
Pros of Speedy Streaming Platform Launch Services:
No coding required: These services often use drag-and-drop interfaces or pre-built templates, eliminating the need for programming knowledge.
Faster setup: Compared to building from scratch, these platforms can get you up and running much quicker.
All-in-one solutions: Many services offer features like content management systems (CMS), video players, and monetization tools, reducing the need for multiple integrations.
Things to Consider:
Limited customization: These platforms may offer less flexibility in design and functionality compared to custom-built solutions.
Scalability: As your audience grows, you might need to upgrade to a more robust platform or encounter limitations with the "quick launch" option.
Features: Carefully evaluate which features are included and if they meet your specific needs (e.g., live streaming, subscription options).
Examples of Services for Launching Streaming Platforms:
Muvi [muvi com]
Uscreen [usencreen tv]
Alternatives to Consider:
Existing Streaming platforms: Platforms like YouTube or Twitch might be suitable for basic streaming needs, though monetization options might be limited.
Custom Development: While more time-consuming, custom development offers the most control and flexibility for your platform.
Overall, launching a streaming platform in minutes might not be entirely realistic, but these services can significantly speed up the process compared to building from scratch. Carefully consider your needs and budget when choosing the best option for you.
What is Augmented Reality Image Trackingpavan998932
Augmented Reality (AR) Image Tracking is a technology that enables AR applications to recognize and track images in the real world, overlaying digital content onto them. This enhances the user's interaction with their environment by providing additional information and interactive elements directly tied to physical images.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Zoom is a comprehensive platform designed to connect individuals and teams efficiently. With its user-friendly interface and powerful features, Zoom has become a go-to solution for virtual communication and collaboration. It offers a range of tools, including virtual meetings, team chat, VoIP phone systems, online whiteboards, and AI companions, to streamline workflows and enhance productivity.
E-commerce Application Development Company.pdfHornet Dynamics
Your business can reach new heights with our assistance as we design solutions that are specifically appropriate for your goals and vision. Our eCommerce application solutions can digitally coordinate all retail operations processes to meet the demands of the marketplace while maintaining business continuity.
Do you want Software for your Business? Visit Deuglo
Deuglo has top Software Developers in India. They are experts in software development and help design and create custom Software solutions.
Deuglo follows seven steps methods for delivering their services to their customers. They called it the Software development life cycle process (SDLC).
Requirement — Collecting the Requirements is the first Phase in the SSLC process.
Feasibility Study — after completing the requirement process they move to the design phase.
Design — in this phase, they start designing the software.
Coding — when designing is completed, the developers start coding for the software.
Testing — in this phase when the coding of the software is done the testing team will start testing.
Installation — after completion of testing, the application opens to the live server and launches!
Maintenance — after completing the software development, customers start using the software.
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
How and why GraalVM is quickly becoming relevant for you (DOAG 2020)
1. How and why
GraalVM is
quickly becoming
relevant for you
DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
DOAG 2020, November 2020
Lucas Jellema, CTO & Architect AMIS | Conclusion
4. Lifetime of a software application
DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
5. A wonderful piece of machine
DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
6. A wonderful piece of machine
DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
7. DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
Cost Complexity Risk
1999 2020
8. DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
Fit, Value and Agility
9. Big Bowl
DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
10. DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
11. DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
12. DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
13. DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
14. (limited) Spring Boot
support for GraalVM
native images
2017
Some history on GraalVM
DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
Project spun off from
Maxine VM
2012
Proof of Concept: a compiler written in Java (with all its
software engineering advantages) could generate highly
optimized code without compromising on compile times
2019
Twitter started to run its
many Scala applications
on the GraalVM JIT
Compiler to save money
and CPU cycles
20.2.0
August, 2020
WebLogic
Certified on
GraalVM
GraalVM
“productized”
at Oracle
ES2020
support
GraalVM
Advisory
Board
Spring Framework
5.3 with GraalVM
AOT support
(October 2020)
WebAssembly
support
Oracle
Database
MLE
GraalVM support in
Helidon, Micronaut &
Quarkus
Coherence
support for
GraalVM
Project Fn
GraalVM
enabled
Java 11
support
Node 12.18 and
iniitial ES2021
support
Ruby 2.6.6, Java
11.08, improved
VS Code support
15. DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
bit.ly/graalvm-handson
16. DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
17. DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
Native
Polyglot
Interoperability
18. DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
19. DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
simple
runtime
stateless, single
request | event
handling
rapid
startup
fast
execution
small
application
footprint
20. DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
simple
runtime
stateless, single
request | event
handling
rapid
startup
fast
execution
small
application
footprint
21. Native?!
• a binary executable
• that runs on just a bare O/S
• possibly a minimal container or serverless function
• fast startup
• small footprint (disk & memory)
• simple environment
• fast execution
• typically short-lived stateless request or event processing
• not stateful and long running
• not happily ever faster JIT compilation but build time AOT
DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
22. DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
Run Time
Just in Time
compilation
23. DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
Run Time
Just in Time
compilation
Ahead of Time
compilation
24. DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
Native Images (AOT) versus JVM JIT
25. Ahead-of-Time Compilation
DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
Application
Substrate VM
JDK
Libraries
All Java classes from
your application, JDK
and Substrate VM
Points-
to analysis
Run
initializations
Heap
snapshotting
Iterative analysis on all
reachable methods,
fields and classes
Machine Code
Image Heap
Native executable
Application running without
dependency on JDK
Input Analysis Output
26. DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
27. DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
28. DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
Program in X *)
Use my coding skills with X
Import existing code in X
Leverage libraries and native features
of X
Run on an enterprise grade, fast and
stable VM with tools to operate
*) X can be Node, Python, Ruby, R, …
(and Scala, Groovy, Kotlin)
29. DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
30. DOAG 2020 | How and why GraalVM is quickly becoming relevant for youOracle Database
31. DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
32. DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
33. The Grass is Greener
• The other programming language …
• is so much better at …
• has great libraries for …
• is the one used by our domain experts …
• was used to implement modules we would like to reuse
DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
34. Extending the lawn by opening the fence
DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
35. Polyglot Interoperability
• Establish frictionless interaction between language contexts
• To benefit from the best of all wor(l)ds
• Call out to ‘other world’ in a native way
• Receive response in interpretable format
• Minimal hoops to jump through at design time
• Minimal performance overhead at run time
• Uncomplicated run time environment
• Despite multiple runtime execution languages
• Basically: polyglot with the ease of mono-glot
DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
36. DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
Meta Language
(concepts, grammar,
structure)
37. DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
Abstract Syntax Tree
(variables, loops, conditions,
calls, arithmetic)
Truffle framework
38. GraalVM can merge and run (Java Byte) code
derived from various origins
• GraalVM provides generic objects
in all supported languages to make
Polyglot call-outs, evaluate embedded
foreign code and share data across
language contexts
• This enables interoperability
DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
GraalVM
Polyglot
Fortran
Haskell
39. DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
CODE
40. From Java to JavaScript
Evaluate a Simple Code Snippet
DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
Create Polyglot
context
Evaluate
Snippet
Import Graal
Polyglot package
41. From Java to JavaScript
Evaluate a JavaScript Function – then call it as Java method
DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
Create Polyglot
context
Evaluate
Snippet
Evaluate Snippet =>
instantiate function
Execute function
Import Graal
Polyglot package
42. From Java to JavaScript
Handle exception in Java thrown in JavaScript
DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
Create Polyglot
context
Evaluate
Snippet
Evaluate Snippet =>
instantiate function
Execute function
Handle Exception
from JS
Import Graal
Polyglot package
43. A Typical Java Challenge
(aided by JavaScript interaction)
• Developing a Java application
• Need to perform validations on input data
• Postal Code (various countries), Mobile Phone Numbers (many
countries), Email Address, Credit Card Number etc.
• NPM Module Validator offers
most of these OOTB
• But… it is written in JavaScript
• How does that help me?
DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
44. A Typical Java Challenge
• Developing a Java application
• I need to perform validations on input data
• Postal Code (various countries), Mobile Phone Numbers (many
countries), Email Address, Credit Card Number etc.
• In Pseudo Code:
•
DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
45. Validator.js – a community package with dozens of
predefined validations … in JavaScript
DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
46. JavaScript Validator Module is compatible with GraalJS
DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
47. A Typical Java Challenge – Resolved (with GraalVM)
• Embrace GraalVM as the Java runtime
• Install npm module validator
• Install and use webpack
to create a single bundle for module validator
• Extend Java application
• Import GraalVM Polyglot package
• Create JavaScript Context
• Load validator_bundled.js into context
• Get desired JS functions from bindings map
• Execute required JS functions
as if they were Java methods
DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
48. A Typical Java Challenge – Resolved (with GraalVM)
DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
49. Polyglot from JavaScript to other Graal Truffle Languages
• Polyglot.eval can execute any language snippet
• It returns data objects (to read/write) or functions (that can be executed)
DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
GraalVM
Polyglot
50. Polyglot from non-JVM languages
Dutch National Police Case: Scala (Fast)R on GraalVM
DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
GraalVM
Polyglot
51. DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
53. DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
source: https://www.beyondjava.net/what-about-graalvm
JIT
Native
Polyglot
Custom DSL
Interoperable
Tools
55. GraalVM EE included
in all OCI subscriptions
DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
GraalVM Enterprise is included in all Oracle Cloud
Infrastructure (OCI) subscriptions so you can use it at no
additional charge (Compute, OKE, Functions, ...)
56. Adopting GraalVM in your team - your first steps
• Start exploring GraalVM – download & install, play and do a PoC
• Plenty of resources available (code samples, blog articles, tutorials, ..)
• Hybrid: have some containers running GraalVM (for Java applications)
instead of your traditional JVM brand
• to try out, check if it is stable and performant and (better) manageable
• AOT/native - use GraalVM to build Java applications
as native executables as last step in the build process
and deliver that executable instead of JAR files
• create Java based Serverless Functions
with small footprint and very quick startup
• benefit from ultra fast and super small frameworks
(Quarkus, Helidon, Micronaut, , Vert.x, Spring, …)
DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
57. Adopting GraalVM in your team - your next steps
• Start leveraging polyglot
• single runtime for different programming languages)
• interoperability (benefit in Java from 3rd party libraries in JavaScript
or Python [or vice versa] and/or make better use of the skills in your team)
• better start creating standards and guidelines around when and how to polyglot!
DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
GraalVM
Polyglot
Fortran
Haskell
58. Thank you for your attention
DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
lucas.jellema@amis.nl | technology.amis.nl | @lucasjellema | lucas-jellema
bit.ly/graalvm-handson
https://bit.ly/...
Slides:
Katacoda Live Handson Environments
Editor's Notes
Java JIT CC
uit 1999?
Java applications run faster over time
because Hotspot VM JIT (C2 compiler) will compile hottest code paths to machine code to take over from interpreted code execution
Java JIT CC
uit 1999?
Java applications run faster over time
because Hotspot VM JIT (C2 compiler) will compile hottest code paths to machine code to take over from interpreted code execution
new JIT compiler
for modern Java/JVM languages
https://openjdk.java.net/projects/graal/
Two execution paths
program (java), compile (bytes/.class) , build (war/jar) (once) => run on JVM (JDK), JIT compilation (very often – in cloud native/serverless scenarios, not so much for long running, stateful Java Enterprise applications
program (java), compile (bytes/.class) => AOT into native (once per deploy) => run executable on OS (very often)
Two execution paths
program (java), compile (bytes/.class) , build (war/jar) (once) => run on JVM (JDK), JIT compilation (very often – in cloud native/serverless scenarios, not so much for long running, stateful Java Enterprise applications
program (java), compile (bytes/.class) => AOT into native (once per deploy) => run executable on OS (very often)
So let's see what is all happening in this Ahead of Time compiler in order to produce a native image.
At first step as input, GraalVM is taking everything that is consumed by the Java application, meaning the libraries, the JDK libraries, also resource like SubstrateVM, and what it does is a Closed World Analysis.
Closed World Analysis is an analysis of all reachable methods, fields and classes from the main class of the application. Because when you create this package binary, you don't want to include every JDK class there is, you don't want to include every library class there is. You want to package only what is used by your application, so Graal does a point-to analysis of what is reachable from the entry point of the application. Graal runs some of the static initializers and creates heap snapshots.
Then, we put everything together in a single binary. We put all the code AOT compiled code into the machine code section, and we write down a snapshot of the Java application as it was when initialized into the image heap section. This allows us to pre-initialize certain values or configuration parameters of the application, and we don't need to load them again when we start this binary.
This binary has a GC inside, so it still has some run-time system but it does no longer contain interpreter nor JIT compiler.AOT has a less advanced GC comparing it with JIT GC and no profiling data is collected for further improvement like in JIT
Startup time is probably the area where the Ahead of Time compilation is beating the JIT compilation by the largest margin
mature
stable, reliable, hardened
runs anywhere
leverage modern hardware
envy of the world
of other programming languages
dream in X
program X code or script
leverage skills
existing code
X’s libraries and USPs
run on enterprise grade runtime VM
similar to JVM languages such as Groovy, Scala, Kotlin, Clojure
and many more JVM-implementations of other languages
GraalVM opens the fence – that grass becomes part of your lawn
Spaghetti…
Hotspot C2 compiler for runtime optimizations had gotten very complicated and very hard to maintain. It does not support optimization for modern code patterns. The C++ code had gotten out of hand
https://blogs.oracle.com/graalvm/accelerating-oci-applications-with-graalvm-enterprise
For OCI user workloads, GraalVM Enterprise can be used in the following deployment scenarios:
Bare Metal and Virtual Machines (OCI Compute)
Containers (Oracle Container Engine for Kubernetes)
Functions (Oracle Functions)