Since moving to a 6 monthly release cadence, the Java platform is evolving more dynamically than ever before. It can be quite a challenge to stay on top of all the changes and new features. In this talk we're going to explore the most important developments in the Java API: which classes have been added, and what has been removed? Join Duke, the Java mascot, for a trip to space and learn which exciting new APIs provided by the Java platform can help him with his journey: The Java Vector API for utilizing the SIMD capabilities of modern CPU architectures The Foreign Linker API for integrating with native code The JFR Event Streaming API for publishing JDK Flight Recorder Events We'll also take a look at some useful changes to the Java runtime, such as CDS archives for a faster spaceship..., uhm, application launch!
This document discusses various strategies for managing Kubernetes clusters and pods, including: - Using separate clusters for different applications, environments, or combinations to balance isolation and resource efficiency - Strategies for placing pods on nodes like node selectors, affinity, taints, and tolerations - The importance of resource management to ensure critical applications have sufficient resources and avoid out-of-resource issues - Mechanisms like pod disruption budgets to handle disruptions gracefully
Talk given at OpenResty Con 2017 in Beijing. Kong (https://getkong.org) is a widely-adopted open source API Gateway built with OpenResty. It aims at helping secure, manage, and extend microservices-based architectures with minimal effort from the user, while ensuring platform agnosticism. In this talk, we will explore the challenges we encountered developing such an OpenResty application, and how we overcame many of them by way of libraries and contributions back to the OpenResty community. We will cover topics such as clustering OpenResty nodes, inter-workers communication, DNS resolution, typical pitfalls OpenResty developers should avoid, and much more.
Event Machine is a library for Ruby that provides event-driven I/O. It uses the reactor pattern to achieve high scalability, performance, and stability. Event Machine powers the backends of many large sites by enabling asynchronous programming and handling many concurrent connections efficiently. It can be used with tools like Rails, Thin, Goliath, MongoDB, and RabbitMQ to build highly scalable web applications. Benchmarks show that using Event Machine can process many more requests per second than a traditional Rails app due to its asynchronous and non-blocking nature.
1) The document discusses using Quarkus and Arrow Kotlin to develop microservices that are native to the cloud. 2) It covers topics like Kotlin Coroutines, Arrow for functional programming, and how Quarkus uses standards like CDI and JAX-RS. 3) Reactive programming with coroutines is emphasized for high concurrency in cloud native applications.
Sebastien Thomas, System Architect at Coyote Amerique, gave a presentation on operator frameworks. His talk covered how Operator SDK can be used to create Kubernetes Operators with Go.
We believe that the popularity of Kubernetes derives from its ability to adapt and improve the infrastructure in which is deployed. I'll explain how this is done
This document discusses migrating existing applications to the cloud and developing new applications. It covers moving monolithic applications to a microservices architecture using containers and orchestration. Approaches covered include lift and shift of monoliths, connecting and extending existing applications, and rewriting applications. Performance comparisons of various Java application runtimes are also presented.
An Operator is an application that encodes the domain knowledge of the application and extends the Kubernetes API through custom resources. They enable users to create, configure, and manage their applications. Operators have been around for a while now, and that has allowed for patterns and best practices to be developed. In this talk, Lili will explain what operators are in the context of Kubernetes and present the different tools out there to create and maintain operators over time. She will end by demoing the building of an operator from scratch, and also using the helper tools available out there.
Modern software development is increasingly taking a “microservice” approach that has resulted in an explosion of complexity at the network level. We have more applications running distributed across different datacenters. Distributed tracing, events, and metrics are essential for observing and understanding modern microservice architectures. This talk is a deep dive on how to monitor your distributed system. You will get tools, methodologies, and experiences that will help you to realize what your applications expose and how to get value out from all these information. Gianluca Arbezzano, SRE at InfluxData will share how to monitor a distributed system, how to switch from a more traditional monitoring approach to observability. Stay focused on the server’s role and not on the hostname because it’s not really important anymore, our servers or containers are fast moving part and it’s easy to detach it from the right in case of trouble than call the server by name as a cute puppet. How to design a SLO for your core services and now to iterate on them. Instrument your services with tracing using tools like Zipkin or Jaeger to measure latency between in your network.
Until recently, applications ran on a handful of carefully curated technologies for years to come, deployments were static and teams siloed. In the microservices age, teams are cross-functional, pick the technologies they consider to work best for them, and are held accountable for what they produce. Application deployments are fine-grained, frequent, scalable and fully automated. What a shift and what a challenge for monitoring such environments! In this presentation, you'll learn how to obtain insights from your OpenShift environment by exploring various open-source monitoring, logging, and tracing technologies, including Elasticsearch, Fluentd, Hawkular, Heapster, Jolokia, Kibana, OpenTracing, Prometheus and ZipKin.
This document discusses Kubernetes operators and their role in managing applications on Kubernetes. It begins by outlining three phases of Kubernetes adoption related to stateless, stateful, and distributed applications. It then defines what an operator is and how they embed operational knowledge to provide automated application management. The remainder of the document discusses the Operator Framework, SDKs for building operators including Helm, Ansible and Go, and how operators are being used across different industries to lower the barrier to entry. It also breaks down the components of an operator and provides an example of a real ClusterServiceVersion manifest.
Kong is an open source API gateway that acts as a single entry point for API requests. It handles requests by either proxying them directly to services or fanning out requests to multiple services. It runs in front of RESTful APIs and extends their functionality through plugins. Kong listens on ports 8000 for HTTP, 8443 for HTTPS, 8001 for its admin API, and 7946 and 7373 for inter-node communication. The document discusses setting up Kong with Docker, viewing logs, and the architecture of a Kong implementation with an API and management container on each host behind private and public load balancers. Next steps discussed are using Kongfig for configuration management and comparing Kong to just using Nginx.
This document discusses transforming monolithic applications into microservices using Red Hat OpenShift. It provides an overview of OpenShift capabilities like application lifecycle management, container orchestration, security and monitoring. It then describes a hands-on lab where developers will learn OpenShift concepts, efficient development workflows and promoting applications between environments using CI/CD pipelines.
Kubernetes ecosystem is seeing adoption across the industry and is on the path to becoming the de-facto orchestration platform on modern cloud service delivery. Kubernetes not only provides primitives for deploying run microservices in the cloud but goes one step further and helps you define interactions and lifecycle for your APIs. The Ingress API in Kubernetes allows you to expose your microservice to the outside world and define routing policies for your north-south traffic (or traffic coming into your virtual data center). We invite Harry Bagdi, Sr. Cloud to discuss in-depth about the design and why of Ingress resource, the benefits of using Ingress to manage your API lifecycle using CI/CD pipelines, and how you can accomplish Ingress using a popular open-source solution, Kong. Kong’s Ingress Controller implements authentication, load-balancing, traffic throttling, transformations, caching, metrics, and logging across Kubernetes clusters.
Netflix uses Conductor, an open source microservices orchestrator, to manage complex content processing workflows involving ingestion, encoding, localization, and delivery. Conductor provides visibility, control, and reuse of tasks through a task queuing system and workflow definitions. It has scaled to process millions of workflow executions across Netflix's content platform using a stateless architecture with Dynomite for storage and Dyno-Queues for task distribution.
Data scientists use Graphics Processing Unit, or GPU, to achieve the highest performance for deep learning training and inference. However, there is complexity to managing those hardware resources efficiently which may be outside the scope of the data scientists’ expertise. OpenShift is the ideal platform for simplifying that complexity by providing powerful abstractions for scalable cloud computing. This session will review the value of GPU in data science, how modern deep learning software frameworks consume GPU resources, and the operator-based architecture that enables GPU in OpenShift today.
JavaLand 2022, März, Brühl, Mario-Leander Reimer (@LeanderReimer, Principal Software Architect bei QAware). == Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! == This session focuses on modern and efficient Inter Process Communication (IPC) for microservices. We start with a REST API, built using JAX-RS and Quarkus to briefly discuss the pros and cons of this approach. Then, we will extend the API with an efficient Protobuf payload representation in order to finally transform the API into a fully fledged high-performance gRPC interface definition. But that's not all! To put some extra icing on the cake, this talk will demonstrate how to consume the gRPC service from a JavaScript web client and also how to completely generate a matching REST API from an enhanced gRPC interface definition to ensure full interoperability in a microservice architecture.
This document provides an introduction to Byteman and The Jokre. Byteman is a scriptable Java agent that allows testing code behavior at runtime without changing sources by simulating unexpected events. The Jokre is an optimization technique that modifies the Infinispan API to avoid unnecessary remote procedure calls. A demonstration shows using standard map operations while The Jokre fixes performance issues transparently. Questions are welcomed about these projects.
Yes, I want to build with Eclipse MicroProfile. Then, do I have to do everything from scratch? Are there tools out there to make my life easier to code MicroProfile-based applications? We will review what's out there, talk about what's coming, and show them in action. This was a talk delivered as part of J4K.io 2020.
Apache Spark already has a vectorization optimization in many operations, for instance, internal columnar format, Parquet/ORC vectorized read, Pandas UDFs, etc. Vectorization improves performance greatly in general. In this talk, the performance aspect of SparkR will be discussed and vectorization in SparkR will be introduced with technical details. SparkR vectorization allows users to use the existing codes as are but boost the performance around several thousand present faster when they execute R native functions or convert Spark DataFrame to/from R DataFrame.
本ウェビナーでは JFrog Platform のメインサービス JFrog Artifactory の概要についてお話します。前回は DevSecOps の概要とそれを実現するためのプラットフォームである JFrog Platform のお話をしました。そこでは開発者が作成した素晴らしいソフトウェアを「いかに迅速に安全に安定して」エンドユーザーに届けることができるか、その実現のために JFrog は「バイナリ」を中心にこのフローを再定義してきたというお話をしました。 JFrog Artifactory はこのビジョンを実現するために JFrog が創業前から十数年にわたって提供してきたプロダクトです。この機会に Artifactory を基礎から学んでみたい方を中心にご参加をお待ちしております。
This document summarizes the spy-js tool for debugging JavaScript applications. It works by injecting tracing code into JavaScript files using a proxy. This collects runtime data and sends it to a backend. The backend then notifies IDEs like WebStorm, allowing developers to debug JavaScript by viewing call stacks and event timelines. It aims to provide a simple, fast, and cross-browser way to debug JavaScript without much configuration required.
* What is boilerplate? * Common setup steps * Common build steps * Practices to ensure efficient development * Tools * Python demo
In this presentation I will introduce Quarkus and also show which were the steps followed to migrate Spring PetClinic application to Quarkus using the standard libraries : resteasy, microprofile metrics, hibernate, openapi, .... GraalVM
Are you interested in harnessing and analyzing the data that drives the Spark Web UI? Are you keen to use that data to tune your applications or understand fluctuations in runtime of your production applications? Do you want to understand the efficiency of your Spark executors and system resources? This presentation will help you do that and more, by walking through the wealth of data in Spark application events. The event data can be used as a foundation for a Spark profiler and advisor that analyzes application events in batch or real-time. At the very least, you will be able to use the data to generate a summary page of your application execution, similar to the Hadoop job summary page, allowing you to compare executions.
The document discusses using Django on the Jython platform. Some key points: - Jython allows running Python code on the Java Virtual Machine (JVM), compiling Python to Java bytecode. This enables using Java libraries and deploying Python applications on Java application servers. - Django projects can be packaged and deployed as a WAR (Web ARchive) file, making use of the standard Java web application deployment format. - Using Django on Jython provides performance and scalability benefits from running on the JVM and ability to integrate with the large Java ecosystem, like databases and libraries.
Behind every API there's code. REST and GraphQL are powerful interface abstractions but are not so great for writing code (we’re still looking for the programming language where every command is a GET, POST, PUT, or DELETE). When programmers work, they are usually making function calls, and an RPC framework like gRPC allows those functions to be written in a mixture of languages and distributed among many servers. This means that gRPC can be a great way to implement REST and GraphQL APIs at scale. We’ll share open source projects from Google that can be used to implement OpenAPI and GraphQL services with gRPC and give you hands-on experience with both. Presented at the 2019 API Specifications Conference. https://asc2019.sched.com/event/T6u9/workshop-implementing-openapi-and-graphql-services-with-grpc-tim-burks-google
apidays LIVE Helsinki - APIs, Platforms, And Ecosystems - Transforming Industries And Experiences Implementing OpenAPI and GraphQL Services with gRPC Tim Burks, Software Engineer at Google
JDK Mission Control and Flight Recorder provide a low overhead tool for recording information about the Java Virtual Machine and applications running on it. It records various types of data like CPU and memory profiling and can be controlled through command line, APIs, and the JDK Mission Control application. The data recorded is typically around 2 megabytes per minute and can help troubleshoot performance and debugging issues.
Are Websphere or Weblogic appropriate for your project? Too big" ? Do Jetty or Tomcat actually meet your needs? Too "small"? Neither too big nor too small. What you need is "just enough app server" to support only the subset of APIs and services your application needs.
GraphQL is getting more and more popular for developing web services. The traditional approach is to upgrade your backend service and then connect your frontend to it. We did it the other way around, starting with frontend and adding the backend later. This talk is about why and how we did it, so you can do it too.
Profiling is a technique used to analyze the performance and behavior of software applications. It involves measuring aspects like memory usage, CPU time, disk I/O, and counting function calls of a program during execution. This helps identify bottlenecks and optimize applications. There are various Java profiling tools available like Java VisualVM, Java Mission Control, and JProfiler that help analyze performance metrics and JIT compilation logs. Profiling is important for improving software performance by reducing latency and increasing throughput through optimizations informed by profiling results.
Slide deck from Jenkins User Conference Tel Aviv 2018. Talking about suggested (best?) practices, tips and tricks, using Jenkins pipeline scripts with shared libraries, managing shared libraries, using docker compose, and more.
In this presentation I will introduce Quarkus and also show which were the steps followed to migrate Spring PetClinic application to Quarkus using the standard libraries : resteasy, microprofile metrics, hibernate, openapi, .... GraalVM
How to let IaC support Unit Testing by Terratest, Integration Testing by Open Policy Agent, and GitOps by Atlantis
Speaker: Ranjan Gupta & Raveendar Reddy Anugu (CeX WeBuy Entertainment Pvt Ltd) Presented in ThoughtWorks, Bangalore in the vodQA, 2017, Bangalore event
This document discusses Java Mission Control (JMC) and Java Flight Recorder (JFR), which are tools for monitoring and managing Java applications. JMC provides a graphical user interface for viewing runtime data from Java applications, including garbage collection, memory usage, and CPU usage. Java Flight Recorder is a low-overhead profiling and event collection tool that is built into the Java Development Kit. It can collect detailed information about a Java application's code, memory, threads, and I/O without significant performance impact. The document provides instructions for starting JMC, enabling JFR, and performing flight recordings to analyze application behavior.
In 2022 we heard your GitOps questions at meetups and gatherings, big stages and local panels and one question was often top of mind: how do I get started? The benefits of GitOps are calling your name, but getting started isn’t that straightforward. Red Hat is excited to kick off 2023 with a DevNation TechTalk, focused on GitOps to help you sift through your questions. At DevNation you’ll hear from passionate GitOps practitioners about the pitfalls to avoid and hurdles to jump while kicking off or evolving your GitOps practices. This event is aimed at audiences that are new to GitOps or early in their practice development within a cloud native environment. During this live session you’ll learn: Upcoming updates and key milestones in the ArgoCD roadmap and how Red Hat will support them How to simplify the delivery GitOps across multi-cloud environments GitOps best practices from experts at: PostNord Strålfors: Filip Jansson Arbetsförmedlingen: Misho Kmetovski & Richard Hermansson Swiss Railways (SBB): Manuel Wallrapp & Thomas Bruederli Plus stick around for an “Ask me Anything” segment to ask any outstanding questions live.
Modern cloud-native applications are incredibly complex systems. Keeping the systems healthy and meeting SLAs for our customers is crucial for long-term success. In this session, we will dive into the three pillars of observability - metrics, logs, tracing - the foundation of successful troubleshooting in distributed systems. You'll learn the gotchas and pitfalls of rolling out the OpenTelemetry stack on Kubernetes to effectively collect all your signals without worrying about a vendor lock in. Additionally we will replace parts of the Prometheus stack to scrape metrics with OpenTelemetry collector and operator.
GitHub plays a key role in the everyday work of thousands of developers and is a central piece of the open-source software ecosystem. Even though it is getting better and better every day, it still misses some key features that we need. If you want a better way of reviewing PRs, navigating through the code or better yet - writing the code without leaving the browser - this talk is for you! This talk will be demo driven, and as the title suggests, we will start with the aesthetic revamp. But we definitely won’t stop there! You will also learn a few cool things about interacting with GitHub through the command line. So not only your UI will be officially revamped, but you will also gain a productivity boost.
The Quarkus Quinoa extension takes care of all the web UI build/wiring/dev-mode hassles and lets you focus on your web application logic. In this tech talk, we’ll bring a shopping list app to life with Quarkus, Hibernate as a backend, and React as a frontend. Quinoa will be the glue that makes it all work seamlessly from dev to production.
This document discusses using metrics to monitor Quarkus applications. It recommends metrics like throughput, memory usage, queue time, average response time, and error rates. It explains how Quarkus supports Micrometer for instrumenting applications with metrics and integrating with monitoring systems. The document includes a demo of adding metrics to code. It provides tips for using annotations and tags to gain more insights from metrics. Source code examples are linked.
This talk will teach you how to redesign an event-driven autoscaling architecture for cloud-native microservices by utilizing Apache Kafka, Knative, and KEDA infrastructure. You will also learn how to deploy serverless applications (Quarkus) using a Knative service. Finally, KEDA will enable you to autoscale Knative Eventing components (KafkaSource) through events consumption over standard resources (CPU, memory).
Loom is among the most highly anticipated projects in the Java world. It promises to address concurrency and Java execution model issues by providing virtual threads. Thus, there is no need to write concurrent programs using asynchronous or reactive APIs; it will be possible to use the traditional imperative model and let Loom handle the rest. The JVM will execute the program and leverage non-blocking APIs automatically! Sounds good, doesn't it? How does it work, though? Are there any hidden costs? What is Loom going to change in modern Java frameworks? We will answer these questions in this talk. Starting with the integration of Loom in Quarkus, we will compare the different approaches we considered, discuss their respective pros and cons, and show how Loom might change the Java world.
Quarkus Renarde 🦊♥ is a new Web framework based on Quarkus. This framework focuses not on microservices but web applications and makes Quarkus even easier to use for web apps: - Endpoints based on convention, even easier than RESTEasy Reactive and JAX-RS - Server-side templating with Qute - Validation with Hibernate Validation - Data with Hibernate ORM or Reactive with Panache - Simple authentication with OpenID Connect or WebAuthn Quarkus Renarde 🦊♥ can deliver all this while still providing the joy of developing with Quarkus, with live reload, continuous testing, the Dev, and more.