{"id":16179262,"url":"https://github.com/jonashackt/springone-2020-highlights","last_synced_at":"2026-01-20T04:32:07.204Z","repository":{"id":147270240,"uuid":"314252904","full_name":"jonashackt/springone-2020-highlights","owner":"jonashackt","description":"Notes for my personal highlights of SpringOne 2020","archived":false,"fork":false,"pushed_at":"2021-03-19T07:24:51.000Z","size":3034,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-07T11:47:15.590Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jonashackt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-19T13:15:09.000Z","updated_at":"2020-11-19T17:22:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"ea9e56ad-c0f4-43c1-b347-b33b1ddfa5c2","html_url":"https://github.com/jonashackt/springone-2020-highlights","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jonashackt/springone-2020-highlights","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonashackt%2Fspringone-2020-highlights","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonashackt%2Fspringone-2020-highlights/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonashackt%2Fspringone-2020-highlights/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonashackt%2Fspringone-2020-highlights/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jonashackt","download_url":"https://codeload.github.com/jonashackt/springone-2020-highlights/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonashackt%2Fspringone-2020-highlights/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28596079,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T02:08:49.799Z","status":"ssl_error","status_checked_at":"2026-01-20T02:08:44.148Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-10T05:26:29.412Z","updated_at":"2026-01-20T04:32:07.183Z","avatar_url":"https://github.com/jonashackt.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# springone-2020-highlights\nNotes about my personal highlights of SpringOne 2020\n\n[![springone-schedule](springone-schedule.png)](https://springone.io/2020/schedule)\n\n\n## Table of Contents \n\n* [General observations](#general-observations)\n* [Spring Boot Build Packs / Paketo.io](#spring-boot-build-packs--paketoio)\n* [Spring Boot \u0026 GraalVM](#spring-boot--graalvm)\n* [Spring Boot K8s Support](#spring-boot-k8s-support)\n\n---\n\n\n### General observations\n\nFind all video-recordings at https://springone.io/2020/schedule (you need to create an account, but most are also on Youtube)\n\n* Pivotal is now --\u003e VMWare Tanzu\n\n* As Kubernetes becomes Industry-Standard, Pivotal Cloud Foundry is now legacy --\u003e and VMWare Tanzu (Kubernetes Grid, see [heise.de](https://www.heise.de/ix/meldung/Fuer-Cloud-Entwickler-VMware-bringt-vSphere-7-und-Tanzu-auf-den-Markt-4672272.html)) is now the thing\n\n* Everything: Buildpacks!\n\n\n---\n\n\n\n\n### Spring Boot Build Packs / Paketo.io\n\n\u003ca href=\"http://www.youtube.com/watch?feature=player_embedded\u0026v=44n_MtsggnI\n\" target=\"_blank\"\u003e\u003cimg src=\"http://img.youtube.com/vi/44n_MtsggnI/0.jpg\" \nalt=\"Spring to Image (SpringOne2020)\" width=\"240\" height=\"180\" border=\"10\" /\u003e\u003c/a\u003e\n\n__*\"Spring to Image\"*__ by https://twitter.com/nebhale / https://springone.io/2020/sessions/spring-to-image\n\n\n\u003e Dockerfiles are super flexible, what is their weakness at the same time\n\n\u003e Build Packs (Heroku invented 2011), Cloud Foundry mainstreamd from 2013\n\n\u003e CNCF-Project: Specification how to turn Applications into Docker Images\n\nhttps://www.cncf.io/blog/2020/11/18/toc-approves-cloud-native-buildpacks-from-sandbox-to-incubation/\n\n\u003e like Jib https://github.com/GoogleContainerTools/jib, ko https://github.com/google/ko, Bazel (https://bazel.build/)\n\n__--\u003e More details: https://github.com/jonashackt/spring-boot-buildpack__\n\n\n\n---\n\n\n\n### Spring Boot \u0026 GraalVM\n\n\u003ca href=\"http://www.youtube.com/watch?feature=player_embedded\u0026v=Um9djPTtPe0\n\" target=\"_blank\"\u003e\u003cimg src=\"http://img.youtube.com/vi/Um9djPTtPe0/0.jpg\" \nalt=\"The Path Towards Spring Boot Native Applications (SpringOne2020)\" width=\"240\" height=\"180\" border=\"10\" /\u003e\u003c/a\u003e\n\n__*\"The Path Towards Spring Boot Native Applications\"*__ by https://twitter.com/sdeleuze \u0026 https://twitter.com/andy_clement\n\ncurrently supported (0.8.x):\n\n* actuator\n* Cache\n* Data JPA, R2DBC...\n* JDBC\n* Logging (Logback)\n* Thymeleaf\n* Validation\n* Web (Spring MVC with Tomcat)\n* Webflux (Netty)\n* Wavefront\n* Spring Cloud Function\n\n\u003e Roadmap: 0.9.x \u0026 Beta status Dec 2020\n\n![spring-graal-overview](spring-graal-overview.png)\n\nbecause of native image, Bean Registration becomes functional Style \n\n\u003e Functional Bean Registration reduced startup times by ~ 50%, executable also ~ 50%\n\n![spring-graal-functional-beanconfiguration-style](spring-graal-functional-beanconfiguration-style.png)\n\n\u003e generator from @Configuration bean registrations to functional Style: https://github.com/spring-projects-experimental/spring-init\n\n\n__--\u003e More details: https://github.com/jonashackt/spring-boot-graalvm__\n\nhttps://blog.codecentric.de/en/2020/05/spring-boot-graalvm/\n\n\n---\n\n\n\n### Spring Boot K8s Support\n\n\u003ca href=\"http://www.youtube.com/watch?feature=player_embedded\u0026v=nPACI6-J9Jc\n\" target=\"_blank\"\u003e\u003cimg src=\"http://img.youtube.com/vi/nPACI6-J9Jc/0.jpg\" \nalt=\"Spring Boot Loves K8s (SpringOne2020)\" width=\"240\" height=\"180\" border=\"10\" /\u003e\u003c/a\u003e\n\n\n__*\"Spring Boot Loves K8s\"*__ by https://twitter.com/bclozel \u0026 https://twitter.com/snicoll\n\n--\u003e Example Code: https://github.com/snicoll/spring-boot-loves-k8s\n\n\n##### Layered jars \u0026 Build Packs\n\nsee [Spring Boot Build Packs / Paketo.io](#spring-boot-build-packs--paketoio) :)\n\nkpack Kubernetes service\n\n\n##### Health States\n\nConcept: \n* Liveness (Correct, Broken)\n* Readiness (Accepting Traffic, Refusing Traffic)\n\n![spring-k8s-liveliness-and-readiness-states](spring-k8s-liveliness-and-readiness-states.png)\n\n+ new programming model inkl. Reactive Endpoints \"recover\" Exceptions, which will be delivered to the frontend, when specific state is reached\n\n- `AvailabilityChangeEvent`, if state of the App changed --\u003e really cool!\n\n\n##### Graceful Shutdown\n\nNew property: \n\n```shell script\nserver.shutdown=graceful\n```\n\n--\u003e With this the app will response to all requests, that were received until this point --\u003e and shutdown only, wenn they are send\n\n\n##### Spring Boot 2.4+\n\n```shell script\nspring.config.activate.on-cloud-platform=kubernetes\n```\n\noptimize graceful shutdown more (for when routing state is changing, but routing traffic is still send to apps)\n\nlayered jars index default, metadata for CI/CD pipelines\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonashackt%2Fspringone-2020-highlights","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjonashackt%2Fspringone-2020-highlights","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonashackt%2Fspringone-2020-highlights/lists"}