Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ddobrin/native-spring-on-k8s-with-graalvm-an-introduction
Workshop materials for the introductory Spring Native workshop
https://github.com/ddobrin/native-spring-on-k8s-with-graalvm-an-introduction
graalvm java native spring
Last synced: about 2 months ago
JSON representation
Workshop materials for the introductory Spring Native workshop
- Host: GitHub
- URL: https://github.com/ddobrin/native-spring-on-k8s-with-graalvm-an-introduction
- Owner: ddobrin
- License: apache-2.0
- Created: 2021-06-05T16:09:24.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2021-06-05T17:54:45.000Z (over 3 years ago)
- Last Synced: 2024-10-06T02:04:54.831Z (3 months ago)
- Topics: graalvm, java, native, spring
- Language: Java
- Homepage:
- Size: 3.18 MB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# native-spring-on-k8s-with-graalvm-an-introduction
This repo contains all the materials required for the `An Introduction to Native Spring on K8s with GraalVM` workshop.
The workshop is designed to help Spring Boot developers build new / modernize existing applications using Spring Native and deploy them in Kubernetes.
Basic knowledge of Spring Boot and Kubernetes is assumed for successful completion.This workshop is followed by the `Advanced Spring Native with GraalVM` workshop.
---
## Context
This content contains sample code supporting the workshop agenda, with a focus on building Native Applications using Spring Native and GraalVM.
The content is organized around a number of independent sections, each with a `README.md` file explaining how to build and run the samples,
or pointing out areas of interest, for further exploration.The content focuses on the following main areas:
* [Prerequisite Software Setup and Validation](setup/README.md)
* Understanding GraalVM
* Building [Spring Native](spring-native/README.md) Applications with GraalVM
* Best Practices for designing native-friendly Spring apps and libraries
* [Complete](complete/README.md) Spring Native examplesThe following areas are explored in-depth in the `Advanced Spring Native` workshop:
* Understanding [GraalVM](graalvm/README.md)
* Building [Spring Native](spring-native/README.md) Applications with GraalVM
* [Best Practices](best-practices/README.md) for designing native-friendly Spring apps and libraries----
## RepositoryThis workshop repository can be cloned to your machine as follows:
```shell
# SSH
> git clone [email protected]:ddobrin/native-spring-on-k8s-with-graalvm-an-introduction.git# HTTPs
> git clone https://github.com/ddobrin/native-spring-on-k8s-with-graalvm-an-introduction.git
```Full samples are provided for each lab or demo!
All samples are relative to the repository root, for ex.:
```shell
# Petclinic
/complete/petclinic-jdbc
```---------
## Environment setup and validation
**Please start** by cloning the repo, then **follow** the [environment setup and validation section](setup/README.md) `prior` to the start of the workshop.---------
## Workshop - Detailed Agenda1. Introduction
2. [Setup Validation](setup/README.md) - say "Hello Workshop"
* **[Hands-on Setup Lab](setup/README.md#Build-Run-App)**
3. Let's get started - How fast are your pets? Let's build some images for them !
* **[Hands-on Lab](complete/petclinic-jdbc/README.md)**
4. Demystifying Native Images
* Let's talk about JVM vs Native
* Introducing ahead-of-time compilation (AOT)
* Making close-world assumptions
* When to modernize apps with native images ? Let's see the use-cases
* Why not use Native Images everywhere?
5. Understanding GraalVM
* GraalVM Architecture
* Native Image technology for ahead-of-time compilation
* Build configuration for a native image build process
* Initialization
* AOT compilation limitations - what do I need to know?
* Visualization Tools - GraalVM Dashboard
6. Are there any alternatives to GraalVM?
7. What are our competitors saying?
8. [Building Spring Native Applications](spring-native/README.md) with GraalVM
* What is Spring Native and why use it ?
* AOT compilation limitations - how do Native Hints in Spring help bypass them ? -- **[Demo(s)](spring-native/README.md#Demo)**
* Accessing Resources in Spring Native Images
* **[Demo](spring-native/README.md#Lab)**
* Spring Native's limitations - what do I need to know ?
* Building with the Spring AOT Maven plugin
* Cloud Native Buildpacks -support source-to-image for native images
* Building, containerizing and running a Spring Native app and **_diving_** into the built image
* **[Optional Hands-on Lab](spring-native/README.md#Lab)**
* Using a container-based Spring Native build environment
* Troubleshooting tips
9. Performance expectations
10. Any Best Practices for designing native-friendly Spring apps and libraries?
* Identification of AOT limitations in the app
* Building a Spring Native Shared Library
* Comparing Images
11. Spring Native Roadmap#### Appendix:
* [Complete Spring Native examples](complete/README.md)