From 86211d21b77b97e53162d2e596c84748a24f5260 Mon Sep 17 00:00:00 2001 From: Grace Jansen Date: Tue, 20 Aug 2024 11:40:47 +0100 Subject: [PATCH 01/22] adding syndication blog for five java dev must-haves for faster startup article and images --- img/blog/InstantOnResponseTimeComparison.png | Bin 0 -> 17156 bytes img/blog/InstantOnStartupComparison.png | Bin 0 -> 17056 bytes ...-five-java-dev-musthaves-fast-startup.adoc | 58 ++++++++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 img/blog/InstantOnResponseTimeComparison.png create mode 100644 img/blog/InstantOnStartupComparison.png create mode 100644 posts/2024-08-25-five-java-dev-musthaves-fast-startup.adoc diff --git a/img/blog/InstantOnResponseTimeComparison.png b/img/blog/InstantOnResponseTimeComparison.png new file mode 100644 index 0000000000000000000000000000000000000000..d8619dc235df0e75cf8df919029c74aae606e581 GIT binary patch literal 17156 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 literal 0 HcmV?d00001 diff --git a/posts/2024-08-25-five-java-dev-musthaves-fast-startup.adoc b/posts/2024-08-25-five-java-dev-musthaves-fast-startup.adoc new file mode 100644 index 000000000..b954339d1 --- /dev/null +++ b/posts/2024-08-25-five-java-dev-musthaves-fast-startup.adoc @@ -0,0 +1,58 @@ +--- +layout: post +title: "Five Java Developer Must-Haves for Ultra-Fast Startup Solutions" +# Do NOT change the categories section +categories: blog +author_picture: https://avatars3.githubusercontent.com/vijaysun-omr +author_github: https://github.com/vijaysun-omr +seo-title: Five Java Developer Must-Haves for Ultra-Fast Startup Solutions - OpenLiberty.io +seo-description: Faster Java startup should not compromise developer experience, throughput performance, or security. We discuss how we achieved this with Liberty InstantOn. +blog_description: "Faster Java startup should not compromise developer experience, throughput performance, or security. We discuss how we achieved this with Liberty InstantOn." +open-graph-image: https://openliberty.io/img/twitter_card.jpg +open-graph-image-alt: Open Liberty Logo +additional_authors: +- name: Thomas Watson + github: https://github.com/tjwatson + image: https://avatars0.githubusercontent.com/tjwatson +- name: Laura Cowen + github: https://github.com/lauracowen + image: https://avatars0.githubusercontent.com/lauracowen +--- += Five Java Developer Must-Haves for Ultra-Fast Startup Solutions +AUTHOR_NAME +:imagesdir: / +:url-prefix: +:url-about: / +//Blank line here is necessary before starting the body of the post. + + +As more and more of our applications are being designed and developed to be deployed into the cloud, and we start to move towards microservice and even serverless style application architecture, start-up times are becoming ever more important. Unfortunately, although Java is a fantastic, robust language for us to use for developing enterprise applications, it isn't really known for it's quick start-up times. + +However, several solutions have recently emerged to help with this, speeding up Java startup. They range from compiling a link:https://www.graalvm.org/latest/reference-manual/native-image/[native image] that removes the JVM from the compiled app (the startup speed bottleneck in Java apps) to link:https://docs.azul.com/core/crac/crac-introduction[taking a snapshot of the application] after startup so that there are no startup tasks to complete when restored. But, most of these solutions suffer from compromises to developer experience, throughput performance, or security. + +What we really need is a solution that vastly improves the start-up time of Java applications, whilst also ensuring: +* It's easy for developers to implement in apps. +* It's easy for developers to use existing skills and APIs to write apps. +* It's easy for developers to enable on-the-fly configuration at deployment (restore) time. +* The app's peak throughput performance is not degraded. +* The security of the app is not compromised. + +In this article on DZone, IBM's Hybrid Cloud Performance Architect and the Chief Architect for Java at IBM explore each of these considerations and how they've been able to achieve fast start-up without compromising on any of them with Liberty InstantOn! + +== Liberty InstantOn Checkpoint/Restore Solution + +Liberty InstantOn is a checkpoint/restore-based solution for the fast startup of Java applications in serverless environments. Unlike other solutions, Liberty InstantOn was co-designed from the outset by the development teams working on a JDK (link:https://developer.ibm.com/languages/java/semeru-runtimes/downloads/[IBM Semeru Runtimes], a free distribution of link:https://dzone.com/articles/openjdk-providers-to-take-note-of[OpenJDK] and Eclipse OpenJ9) and an application runtime (link:https://openliberty.io/[Open Liberty], an open-source Java application runtime). This collaboration reflects the many checkpoints and restores tasks that must be done collaboratively between the application runtime and the JDK: several changes were made to Liberty, either to delay tasks until after checkpointing (e.g., initialization of Liberty security features) or to complete them before checkpointing (e.g., waiting for background tasks to complete, such as ongoing JIT compilations and Liberty specific initializers). + +The performance of three different applications was tested, without (baseline) and with Liberty InstantOn, measuring both the startup time of the application and the time taken to serve the first request. See the following two graphs for results and our blog for link:https://openliberty.io/blog/2023/06/29/rapid-startup-instanton.html[method details]. The three applications ranged from a very simple application with a single REST endpoint (link:https://github.com/HotswapProjects/pingperf-quarkus/[pingperf]) through a more complicated application using JPA and a remote database (link:https://github.com/johnaohara/quarkusRestCrudDemo/[Rest Crud]) to a full application using MicroProfile features (link:https://github.com/blueperf/acmeair-mainservice-java#acme-air-main-service---javaliberty/[AcmeAir Microservice Main]). + +[.img_border_light] +image::/img/blog/InstantOnStartupComparison.png[A graph showing the startup times of the three applications with and without InstantOn,width=70%,align="center"] + +[.img_border_light] +image::/img/blog/InstantOnResponseTimeComparison.png[A graph showing the response times of the three applications with and without InstantOn,width=70%,align="center"] + +As well as providing very fast startup and first response times, the collaborative Liberty InstantOn checkpoint/restore approach provides a better developer experience than removing the JVM completely or implementing a checkpoint/restore solution only at the JDK level and then just stating that many kinds of tasks should not be done before checkpoint. + +== Find out more: + +Find out more about Liberty InstantOn and how it enables all of this without compromise in the the full article here: https://dzone.com/articles/five-java-developer-must-haves-for-ultra-fast-star \ No newline at end of file From 6ae7364f4ea0406aa5404533a7ef7f3c78d0f17f Mon Sep 17 00:00:00 2001 From: Grace Jansen Date: Tue, 20 Aug 2024 12:43:20 +0100 Subject: [PATCH 02/22] adding author name --- posts/2024-08-25-five-java-dev-musthaves-fast-startup.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2024-08-25-five-java-dev-musthaves-fast-startup.adoc b/posts/2024-08-25-five-java-dev-musthaves-fast-startup.adoc index b954339d1..778b7ace6 100644 --- a/posts/2024-08-25-five-java-dev-musthaves-fast-startup.adoc +++ b/posts/2024-08-25-five-java-dev-musthaves-fast-startup.adoc @@ -19,7 +19,7 @@ additional_authors: image: https://avatars0.githubusercontent.com/lauracowen --- = Five Java Developer Must-Haves for Ultra-Fast Startup Solutions -AUTHOR_NAME +Vijay Sundaresan :imagesdir: / :url-prefix: :url-about: / From b4827db8b2835a5d85c1ff05bd9b1fff5f9d9d44 Mon Sep 17 00:00:00 2001 From: Grace Jansen Date: Tue, 20 Aug 2024 12:45:18 +0100 Subject: [PATCH 03/22] fixing formatting errors --- posts/2024-08-25-five-java-dev-musthaves-fast-startup.adoc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/posts/2024-08-25-five-java-dev-musthaves-fast-startup.adoc b/posts/2024-08-25-five-java-dev-musthaves-fast-startup.adoc index 778b7ace6..11b28f7c2 100644 --- a/posts/2024-08-25-five-java-dev-musthaves-fast-startup.adoc +++ b/posts/2024-08-25-five-java-dev-musthaves-fast-startup.adoc @@ -31,13 +31,14 @@ As more and more of our applications are being designed and developed to be depl However, several solutions have recently emerged to help with this, speeding up Java startup. They range from compiling a link:https://www.graalvm.org/latest/reference-manual/native-image/[native image] that removes the JVM from the compiled app (the startup speed bottleneck in Java apps) to link:https://docs.azul.com/core/crac/crac-introduction[taking a snapshot of the application] after startup so that there are no startup tasks to complete when restored. But, most of these solutions suffer from compromises to developer experience, throughput performance, or security. What we really need is a solution that vastly improves the start-up time of Java applications, whilst also ensuring: + * It's easy for developers to implement in apps. * It's easy for developers to use existing skills and APIs to write apps. * It's easy for developers to enable on-the-fly configuration at deployment (restore) time. * The app's peak throughput performance is not degraded. * The security of the app is not compromised. -In this article on DZone, IBM's Hybrid Cloud Performance Architect and the Chief Architect for Java at IBM explore each of these considerations and how they've been able to achieve fast start-up without compromising on any of them with Liberty InstantOn! +In an article on link:https://dzone.com/articles/five-java-developer-must-haves-for-ultra-fast-star[DZone], IBM's Hybrid Cloud Performance Architect and the Chief Architect for Java at IBM explore each of these considerations and how they've been able to achieve fast start-up without compromising on any of them with Liberty InstantOn! == Liberty InstantOn Checkpoint/Restore Solution From ad02d2b0d633094122b2321fcddaaa8a7840d8bb Mon Sep 17 00:00:00 2001 From: Grace Jansen Date: Wed, 21 Aug 2024 13:55:51 +0100 Subject: [PATCH 04/22] changes following review by Laura --- ...5-five-java-dev-musthaves-fast-startup.adoc | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/posts/2024-08-25-five-java-dev-musthaves-fast-startup.adoc b/posts/2024-08-25-five-java-dev-musthaves-fast-startup.adoc index 11b28f7c2..1618d9c19 100644 --- a/posts/2024-08-25-five-java-dev-musthaves-fast-startup.adoc +++ b/posts/2024-08-25-five-java-dev-musthaves-fast-startup.adoc @@ -26,7 +26,7 @@ Vijay Sundaresan //Blank line here is necessary before starting the body of the post. -As more and more of our applications are being designed and developed to be deployed into the cloud, and we start to move towards microservice and even serverless style application architecture, start-up times are becoming ever more important. Unfortunately, although Java is a fantastic, robust language for us to use for developing enterprise applications, it isn't really known for it's quick start-up times. +As more and more of our applications are being designed and developed to be deployed into the cloud, and we start to move towards microservices and even serverless style application architecture, start-up times are becoming ever more important. Unfortunately, although Java is a fantastic, robust language for us to use for developing enterprise applications, it isn't really known for its quick start-up times. However, several solutions have recently emerged to help with this, speeding up Java startup. They range from compiling a link:https://www.graalvm.org/latest/reference-manual/native-image/[native image] that removes the JVM from the compiled app (the startup speed bottleneck in Java apps) to link:https://docs.azul.com/core/crac/crac-introduction[taking a snapshot of the application] after startup so that there are no startup tasks to complete when restored. But, most of these solutions suffer from compromises to developer experience, throughput performance, or security. @@ -38,21 +38,7 @@ What we really need is a solution that vastly improves the start-up time of Java * The app's peak throughput performance is not degraded. * The security of the app is not compromised. -In an article on link:https://dzone.com/articles/five-java-developer-must-haves-for-ultra-fast-star[DZone], IBM's Hybrid Cloud Performance Architect and the Chief Architect for Java at IBM explore each of these considerations and how they've been able to achieve fast start-up without compromising on any of them with Liberty InstantOn! - -== Liberty InstantOn Checkpoint/Restore Solution - -Liberty InstantOn is a checkpoint/restore-based solution for the fast startup of Java applications in serverless environments. Unlike other solutions, Liberty InstantOn was co-designed from the outset by the development teams working on a JDK (link:https://developer.ibm.com/languages/java/semeru-runtimes/downloads/[IBM Semeru Runtimes], a free distribution of link:https://dzone.com/articles/openjdk-providers-to-take-note-of[OpenJDK] and Eclipse OpenJ9) and an application runtime (link:https://openliberty.io/[Open Liberty], an open-source Java application runtime). This collaboration reflects the many checkpoints and restores tasks that must be done collaboratively between the application runtime and the JDK: several changes were made to Liberty, either to delay tasks until after checkpointing (e.g., initialization of Liberty security features) or to complete them before checkpointing (e.g., waiting for background tasks to complete, such as ongoing JIT compilations and Liberty specific initializers). - -The performance of three different applications was tested, without (baseline) and with Liberty InstantOn, measuring both the startup time of the application and the time taken to serve the first request. See the following two graphs for results and our blog for link:https://openliberty.io/blog/2023/06/29/rapid-startup-instanton.html[method details]. The three applications ranged from a very simple application with a single REST endpoint (link:https://github.com/HotswapProjects/pingperf-quarkus/[pingperf]) through a more complicated application using JPA and a remote database (link:https://github.com/johnaohara/quarkusRestCrudDemo/[Rest Crud]) to a full application using MicroProfile features (link:https://github.com/blueperf/acmeair-mainservice-java#acme-air-main-service---javaliberty/[AcmeAir Microservice Main]). - -[.img_border_light] -image::/img/blog/InstantOnStartupComparison.png[A graph showing the startup times of the three applications with and without InstantOn,width=70%,align="center"] - -[.img_border_light] -image::/img/blog/InstantOnResponseTimeComparison.png[A graph showing the response times of the three applications with and without InstantOn,width=70%,align="center"] - -As well as providing very fast startup and first response times, the collaborative Liberty InstantOn checkpoint/restore approach provides a better developer experience than removing the JVM completely or implementing a checkpoint/restore solution only at the JDK level and then just stating that many kinds of tasks should not be done before checkpoint. +In an article on link:https://dzone.com/articles/five-java-developer-must-haves-for-ultra-fast-star[DZone], IBM's InstantOn lead and Hybrid Cloud Performance Architect explore each of these considerations and how they've been able to achieve fast start-up without compromising on any of them with Liberty InstantOn! == Find out more: From 6a23f505512c0baaea7b65a111091b2db565272d Mon Sep 17 00:00:00 2001 From: Grace Jansen Date: Wed, 21 Aug 2024 13:57:10 +0100 Subject: [PATCH 05/22] removing uneeded images --- img/blog/InstantOnResponseTimeComparison.png | Bin 17156 -> 0 bytes img/blog/InstantOnStartupComparison.png | Bin 17056 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 img/blog/InstantOnResponseTimeComparison.png delete mode 100644 img/blog/InstantOnStartupComparison.png diff --git a/img/blog/InstantOnResponseTimeComparison.png b/img/blog/InstantOnResponseTimeComparison.png deleted file mode 100644 index d8619dc235df0e75cf8df919029c74aae606e581..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17156 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 From 39d6886e92924c4730f72fcda26bdbdae9ca5f20 Mon Sep 17 00:00:00 2001 From: Grace Jansen Date: Thu, 22 Aug 2024 09:23:26 +0100 Subject: [PATCH 06/22] adding third party syndication post --- .../2024-09-03-what-lies-ahead-in-ai-era.adoc | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 posts/2024-09-03-what-lies-ahead-in-ai-era.adoc diff --git a/posts/2024-09-03-what-lies-ahead-in-ai-era.adoc b/posts/2024-09-03-what-lies-ahead-in-ai-era.adoc new file mode 100644 index 000000000..ee25f3f03 --- /dev/null +++ b/posts/2024-09-03-what-lies-ahead-in-ai-era.adoc @@ -0,0 +1,20 @@ +--- +layout: post +title: "Java Developers, What Lies Ahead in the AI era?" +# Do NOT change the categories section +categories: blog +author_picture: https://avatars3.githubusercontent.com/Emily-Jiang +author_github: https://github.com/Emily-Jiang +seo-title: Java Developers, What Lies Ahead in the AI era? - OpenLiberty.io +seo-description: With the rise of large language models, AI tools/libraries, and AI integrations, what does the future of Java development look like and how does AI fit into this? In this blog, learn about the recent advancements in AI, how they may impact the world of software development and how we could make best use of them as Java developers. +blog_description: "With the rise of large language models, AI tools/libraries, and AI integrations, what does the future of Java development look like and how does AI fit into this? In this blog, learn about the recent advancements in AI, how they may impact the world of software development and how we could make best use of them as Java developers." +open-graph-image: https://openliberty.io/img/twitter_card.jpg +open-graph-image-alt: Open Liberty Logo +redirect_link: https://medium.com/@emijiang6/java-developers-what-lies-ahead-in-the-ai-era-e36aa3c32b64 +permalink: /blog/redirected.html +--- += Java Developers, What Lies Ahead in the AI era? +Emily Jiang +//Blank line here is necessary before starting the body of the post. + +With the rise of large language models (LLMs), AI tools/libraries, and AI integrations, what does the future of Java development look like and how does AI fit into this? In this blog, learn about the recent advancements in AI, how they may impact the world of software development and how we could make best use of them as Java developers. From 23d3de6d2a8c754f0be3f597aae0942e490189b0 Mon Sep 17 00:00:00 2001 From: Grace Jansen Date: Thu, 22 Aug 2024 09:42:45 +0100 Subject: [PATCH 07/22] adding syndication post for 6 reasons why article --- ...rty-is-ideal-choice-cloud-native-java.adoc | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 posts/2024-09-11-six-reasons-why-liberty-is-ideal-choice-cloud-native-java.adoc diff --git a/posts/2024-09-11-six-reasons-why-liberty-is-ideal-choice-cloud-native-java.adoc b/posts/2024-09-11-six-reasons-why-liberty-is-ideal-choice-cloud-native-java.adoc new file mode 100644 index 000000000..589db05de --- /dev/null +++ b/posts/2024-09-11-six-reasons-why-liberty-is-ideal-choice-cloud-native-java.adoc @@ -0,0 +1,26 @@ +--- +layout: post +title: "Six reasons why WebSphere Liberty and Open Liberty is an ideal choice for cloud-native Java applications" +# Do NOT change the categories section +categories: blog +author_picture: https://avatars3.githubusercontent.com/gcharters +author_github: https://github.com/gcharters +seo-title: Six reasons why WebSphere Liberty and Open Liberty is an ideal choice for cloud-native Java applications - OpenLiberty.io +seo-description: The move to cloud and cloud-native delivery leads to new challenges for development and operations teams. This article highlights six capabilities of Liberty that address these new challenges, showcasing how Liberty is an ideal choice for both migrated enterprise Java workloads and new cloud-native workloads. +blog_description: "The move to cloud and cloud-native delivery leads to new challenges for development and operations teams. This article highlights six capabilities of Liberty that address these new challenges, showcasing how Liberty is an ideal choice for both migrated enterprise Java workloads and new cloud-native workloads." +open-graph-image: https://openliberty.io/img/twitter_card.jpg +open-graph-image-alt: Open Liberty Logo +redirect_link: https://developer.ibm.com/articles/6-reasons-why-open-liberty-is-an-ideal-choice-for-developing-and-deploying-microservices/ +permalink: /blog/redirected.html +additional_authors: +- name: Shane O'Rourke + image: https://www.linkedin.com/in/shaneorourke-ibm/overlay/photo/ +- name: Grace Jansen + github: https://github.com/GraceJansen + image: https://avatars0.githubusercontent.com/GraceJansen +--- += Six reasons why WebSphere Liberty and Open Liberty is an ideal choice for cloud-native Java applications +Graham Charters +//Blank line here is necessary before starting the body of the post. + +The move to cloud and cloud-native delivery leads to new challenges for development and operations teams. This article highlights six capabilities of Liberty that address these new challenges, showcasing how Liberty is an ideal choice for both migrated enterprise Java workloads and new cloud-native workloads. From 69872a701a9beb1f099f85e964dabf6440b914fb Mon Sep 17 00:00:00 2001 From: Grace Jansen Date: Thu, 22 Aug 2024 09:55:12 +0100 Subject: [PATCH 08/22] syndicating why cloud native java devs love liberty article --- ...y-cloud-native-java-devs-love-liberty.adoc | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 posts/2024-10-08-why-cloud-native-java-devs-love-liberty.adoc diff --git a/posts/2024-10-08-why-cloud-native-java-devs-love-liberty.adoc b/posts/2024-10-08-why-cloud-native-java-devs-love-liberty.adoc new file mode 100644 index 000000000..518a6cba8 --- /dev/null +++ b/posts/2024-10-08-why-cloud-native-java-devs-love-liberty.adoc @@ -0,0 +1,20 @@ +--- +layout: post +title: "Why cloud-native Java developers love Liberty" +# Do NOT change the categories section +categories: blog +author_picture: https://avatars3.githubusercontent.com/GraceJansen +author_github: https://github.com/GraceJansen +seo-title: Why cloud-native Java developers love Liberty - OpenLiberty.io +seo-description: Explore the features, tools, and supporting technologies that enable developers using Open Liberty to create their Java applications and microservices effectively for a cloud-native environment. +blog_description: "Explore the features, tools, and supporting technologies that enable developers using Open Liberty to create their Java applications and microservices effectively for a cloud-native environment." +open-graph-image: https://openliberty.io/img/twitter_card.jpg +open-graph-image-alt: Open Liberty Logo +redirect_link: https://developer.ibm.com/articles/why-cloud-native-java-developers-love-liberty/ +permalink: /blog/redirected.html +--- += Why cloud-native Java developers love Liberty +Grace Jansen +//Blank line here is necessary before starting the body of the post. + +Delivering cloud-native Java applications can be a complex task, and one that can sometimes seem overwhelming. But this is where useful cloud-native tools and technologies can really help to simplify this process and enable more effective applications designed to thrive in the cloud. In this article, we explore the open source cloud-native runtime, Open Liberty, and the features and tools it offers that make cloud-native developers' lives easier -- from getting started through coding, testing, deployment and monitoring in production. \ No newline at end of file From f1daefd501036b29c7ccb37523ef6c08103bedc3 Mon Sep 17 00:00:00 2001 From: Grace Jansen Date: Thu, 22 Aug 2024 10:26:12 +0100 Subject: [PATCH 09/22] syndicating liberty tools for vs code article --- ...0-24-liberty-tools-visual-studio-code.adoc | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 posts/2024-10-24-liberty-tools-visual-studio-code.adoc diff --git a/posts/2024-10-24-liberty-tools-visual-studio-code.adoc b/posts/2024-10-24-liberty-tools-visual-studio-code.adoc new file mode 100644 index 000000000..a845b5fe7 --- /dev/null +++ b/posts/2024-10-24-liberty-tools-visual-studio-code.adoc @@ -0,0 +1,22 @@ +--- +layout: post +title: "Effective cloud native development with Open Liberty in Visual Studio Code" +# Do NOT change the categories section +categories: blog +author_picture: https://avatars3.githubusercontent.com/GraceJansen +author_github: https://github.com/GraceJansen +seo-title: Effective cloud native development with Open Liberty in Visual Studio Code - OpenLiberty.io +seo-description: Liberty Tools for Visual Studio Code enables fast, easy and efficient development of cloud native Java applications with Open Liberty. +blog_description: "Liberty Tools for Visual Studio Code enables fast, easy and efficient development of cloud native Java applications with Open Liberty." +open-graph-image: https://openliberty.io/img/twitter_card.jpg +open-graph-image-alt: Open Liberty Logo +redirect_link: https://developer.ibm.com/articles/awb-effective-cloud-native-development-open-liberty-vs-code/ +permalink: /blog/redirected.html +--- += Effective cloud native development with Open Liberty in Visual Studio Code +Grace Jansen +//Blank line here is necessary before starting the body of the post. + +As cloud-native developers, you have to care not only about developing your application, but also the building, deployment, and management of it in production. These added tasks create a complex and often challenging environment, which causes you to be constantly switching between different platforms, tools, and frameworks. + +What you need is a way in which you could complete this diverse set of tasks, with language and framework support, all within one IDE. The open source Liberty Tools for Visual Studio Code, offers just this option, helping you in developing, building, testing, deploying, and managing your applications – all within your favorite IDE, Visual Studio Code! \ No newline at end of file From 41e0e867b7911ffaa08feee05d176f085f68c913 Mon Sep 17 00:00:00 2001 From: Grace Jansen Date: Thu, 22 Aug 2024 10:32:16 +0100 Subject: [PATCH 10/22] syndicating liberty tools for eclipse article --- .../2024-11-01-liberty-tools-eclipse-ide.adoc | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 posts/2024-11-01-liberty-tools-eclipse-ide.adoc diff --git a/posts/2024-11-01-liberty-tools-eclipse-ide.adoc b/posts/2024-11-01-liberty-tools-eclipse-ide.adoc new file mode 100644 index 000000000..174117ea4 --- /dev/null +++ b/posts/2024-11-01-liberty-tools-eclipse-ide.adoc @@ -0,0 +1,20 @@ +--- +layout: post +title: "Effective cloud-native Java app development with Open Liberty in the Eclipse IDE" +# Do NOT change the categories section +categories: blog +author_picture: https://avatars3.githubusercontent.com/GraceJansen +author_github: https://github.com/GraceJansen +seo-title: Effective cloud-native Java app development with Open Liberty in the Eclipse IDE - OpenLiberty.io +seo-description: Use Liberty Tools for Eclipse to enable fast, easy, and efficient development of cloud native Java applications with Open Liberty in the Eclipse IDE. +blog_description: "Use Liberty Tools for Eclipse to enable fast, easy, and efficient development of cloud native Java applications with Open Liberty in the Eclipse IDE." +open-graph-image: https://openliberty.io/img/twitter_card.jpg +open-graph-image-alt: Open Liberty Logo +redirect_link: https://developer.ibm.com/articles/awb-effective-cloud-native-development-open-liberty-eclipse-ide/ +permalink: /blog/redirected.html +--- += Effective cloud-native Java app development with Open Liberty in the Eclipse IDE +Grace Jansen +//Blank line here is necessary before starting the body of the post. + +The Eclipse IDE has been a popular choice with developers for many years, placing 2nd in "most popular IDE of 2022" in the JRebel survey. This mature and fully-featured IDE, with an extensive plugin repository, can help to significantly improve the development experience. However, ensuring that developers have the most appropriate and helpful plugins can be the key to unlocking this improved development experience and enhanced productivity. In this article, we explore the Liberty Tools plugin for Eclipse IDE and how it can help enable fast, easy, and efficient development of cloud-native Java applications with Open Liberty. \ No newline at end of file From d107e35afb6ec8a567ea26e784e116fab9e6d47a Mon Sep 17 00:00:00 2001 From: Grace Jansen Date: Thu, 22 Aug 2024 10:39:30 +0100 Subject: [PATCH 11/22] Syndicating rethinking microservices article --- .../2024-11-12-rethinking-microservices.adoc | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 posts/2024-11-12-rethinking-microservices.adoc diff --git a/posts/2024-11-12-rethinking-microservices.adoc b/posts/2024-11-12-rethinking-microservices.adoc new file mode 100644 index 000000000..72995d34d --- /dev/null +++ b/posts/2024-11-12-rethinking-microservices.adoc @@ -0,0 +1,22 @@ +--- +layout: post +title: "Rethinking microservices" +# Do NOT change the categories section +categories: blog +author_picture: https://avatars3.githubusercontent.com/Emily-Jiang +author_github: https://github.com/Emily-Jiang +seo-title: Rethinking microservices - OpenLiberty.io +seo-description: Will microservice survive in the Serverless era as we race towards cloud native development? In this article Emily explores this question, inviting you to take a step back and rethink microservices. +blog_description: "Will microservice survive in the Serverless era as we race towards cloud native development? In this article Emily explores this question, inviting you to take a step back and rethink microservices." +open-graph-image: https://openliberty.io/img/twitter_card.jpg +open-graph-image-alt: Open Liberty Logo +redirect_link: https://medium.com/@emijiang6/rethinking-microservices-dcf9696af385 +permalink: /blog/redirected.html +--- += Rethinking microservices +Emily Jiang +//Blank line here is necessary before starting the body of the post. + +Microservices have been around for over a decade. There are many misconceptions for microservices. Some people are wondering whether microservice is going to die especially in the fast-moving IT industry towards Cloud. Serverless becomes a hot topic. Will microservice survive in the Serverless era? + +In this blog, take a step back and rethink microservices. We start with the history of microservices, then misconception about microservices, best practices of microservices and finally the future of microservices. From b427b897c8a6970c42fc32764aeb26b791afcf5a Mon Sep 17 00:00:00 2001 From: Grace Jansen Date: Thu, 22 Aug 2024 10:45:14 +0100 Subject: [PATCH 12/22] syndicating liberty tools for intellij article --- ...024-10-25-liberty-tools-intellij-idea.adoc | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 posts/2024-10-25-liberty-tools-intellij-idea.adoc diff --git a/posts/2024-10-25-liberty-tools-intellij-idea.adoc b/posts/2024-10-25-liberty-tools-intellij-idea.adoc new file mode 100644 index 000000000..b33f630f0 --- /dev/null +++ b/posts/2024-10-25-liberty-tools-intellij-idea.adoc @@ -0,0 +1,22 @@ +--- +layout: post +title: "Effective cloud-native Java app development with Open Liberty in IntelliJ IDEA" +# Do NOT change the categories section +categories: blog +author_picture: https://avatars3.githubusercontent.com/GraceJansen +author_github: https://github.com/GraceJansen +seo-title: Effective cloud-native Java app development with Open Liberty in IntelliJ IDEA - OpenLiberty.io +seo-description: Use Liberty Tools for IntelliJ IDEA to enable rapid, easy, and efficient development of cloud-native Java applications with Open Liberty. +blog_description: "Use Liberty Tools for IntelliJ IDEA to enable rapid, easy, and efficient development of cloud-native Java applications with Open Liberty." +open-graph-image: https://openliberty.io/img/twitter_card.jpg +open-graph-image-alt: Open Liberty Logo +redirect_link: https://developer.ibm.com/articles/awb-effective-cloud-native-development-open-liberty-intellij-idea/ +permalink: /blog/redirected.html +--- += Effective cloud-native Java app development with Open Liberty in IntelliJ IDEA +Grace Jansen +//Blank line here is necessary before starting the body of the post. + +When it comes to integrated development environments, within the Java community, IntelliJ IDEA is the most popular IDE amongst professional developers. It is the preferred IDE of choice by 2/5ths of developers, making up the biggest majority of IDE users in this community, according to JRebel's 2023 Java Developer Productivity Report. This well-established and highly popular IDE provides a fantastic and highly efficient environment in which to develop effective cloud-native Java applications, significantly improving the development experience. However, in order to truly unlock this improved development experience and enhanced productivity, we must ensure that we have the most appropriate and useful plugins. + +In this article, we'll explore the Liberty Tools plugin for IntelliJ IDEA and how this plugin can help enable fast, easy, and efficient development of cloud-native Java applications with Open Liberty. \ No newline at end of file From 197c6dcd1d1f71b5f6d283a3ab6692837de31a2d Mon Sep 17 00:00:00 2001 From: Grace Jansen Date: Thu, 22 Aug 2024 10:55:22 +0100 Subject: [PATCH 13/22] syndicating rapid startup without compromise article --- ...1-26-rapid-startup-without-compromise.adoc | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 posts/2024-11-26-rapid-startup-without-compromise.adoc diff --git a/posts/2024-11-26-rapid-startup-without-compromise.adoc b/posts/2024-11-26-rapid-startup-without-compromise.adoc new file mode 100644 index 000000000..7d724a5ac --- /dev/null +++ b/posts/2024-11-26-rapid-startup-without-compromise.adoc @@ -0,0 +1,24 @@ +--- +layout: post +title: "Rapid Startup of Your Cloud-Native Java Applications without Compromise" +# Do NOT change the categories section +categories: blog +author_picture: https://avatars3.githubusercontent.com/tajila +author_github: https://github.com/tajila +seo-title: Rapid Startup of Your Cloud-Native Java Applications without Compromise - OpenLiberty.io +seo-description: Learn about the significance of startup time in cloud-native computing with a focus on the challenges for JVM-based apps. Then explore how Liberty InstantOn can boost startup times using checkpoint/restore technology, offering fast startup without compromising Java capabilities or facing static compilation trade-offs. +blog_description: "Learn about the significance of startup time in cloud-native computing with a focus on the challenges for JVM-based apps. Then explore how Liberty InstantOn can boost startup times using checkpoint/restore technology, offering fast startup without compromising Java capabilities or facing static compilation trade-offs." +open-graph-image: https://openliberty.io/img/twitter_card.jpg +open-graph-image-alt: Open Liberty Logo +redirect_link: https://www.infoq.com/articles/rapid-startup-of-your-cloud-native-java/ +permalink: /blog/redirected.html +additional_authors: +- name: Thomas Watson + github: https://github.com/tjwatson + image: https://avatars0.githubusercontent.com/tjwatson +--- += Rapid Startup of Your Cloud-Native Java Applications without Compromise +Tobi Ajila +//Blank line here is necessary before starting the body of the post. + +This article explores the significance of startup time in cloud-native computing, highlighting the challenges for JVM-based apps. It introduces Liberty InstantOn, which boosts startup times using checkpoint/restore technology, offering fast startup without compromising Java capabilities or facing static compilation trade-offs. From f8f27c56fa0f08ab95bc008b422c4b40c8ccb984 Mon Sep 17 00:00:00 2001 From: Grace Jansen Date: Thu, 22 Aug 2024 11:10:04 +0100 Subject: [PATCH 14/22] adding shane github info for author info --- ...-reasons-why-liberty-is-ideal-choice-cloud-native-java.adoc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/posts/2024-09-11-six-reasons-why-liberty-is-ideal-choice-cloud-native-java.adoc b/posts/2024-09-11-six-reasons-why-liberty-is-ideal-choice-cloud-native-java.adoc index 589db05de..9f0f2c742 100644 --- a/posts/2024-09-11-six-reasons-why-liberty-is-ideal-choice-cloud-native-java.adoc +++ b/posts/2024-09-11-six-reasons-why-liberty-is-ideal-choice-cloud-native-java.adoc @@ -14,7 +14,8 @@ redirect_link: https://developer.ibm.com/articles/6-reasons-why-open-liberty-is- permalink: /blog/redirected.html additional_authors: - name: Shane O'Rourke - image: https://www.linkedin.com/in/shaneorourke-ibm/overlay/photo/ + github: https://github.com/shane-orourke + image: https://avatars0.githubusercontent.com/shane-orourke - name: Grace Jansen github: https://github.com/GraceJansen image: https://avatars0.githubusercontent.com/GraceJansen From 3acfa8b49de53460f1ce01ca8cc6b8b54fc0a469 Mon Sep 17 00:00:00 2001 From: Grace Jansen Date: Thu, 22 Aug 2024 11:29:13 +0100 Subject: [PATCH 15/22] syndicating new suva blog --- ...modernizing-architecture-with-liberty.adoc | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 posts/2024-11-19-suva-modernizing-architecture-with-liberty.adoc diff --git a/posts/2024-11-19-suva-modernizing-architecture-with-liberty.adoc b/posts/2024-11-19-suva-modernizing-architecture-with-liberty.adoc new file mode 100644 index 000000000..fbcbdf637 --- /dev/null +++ b/posts/2024-11-19-suva-modernizing-architecture-with-liberty.adoc @@ -0,0 +1,24 @@ +--- +layout: post +title: "Modernizing Software Architecture with MicroProfile and Open Liberty" +# Do NOT change the categories section +categories: blog +author_picture: https://avatars0.githubusercontent.com/igbluz +author_github: https://github.com/igbluz +seo-title: Modernizing Software Architecture with MicroProfile and Open Liberty - OpenLiberty.io +seo-description: Following on from his earlier blog, we catch back up with SUVA to find out how their application modernization journey has been progressing with the help of Open Liberty and MicroProfile. +blog_description: "Following on from his earlier blog, we catch back up with SUVA to find out how their application modernization journey has been progressing with the help of Open Liberty and MicroProfile." +open-graph-image: https://openliberty.io/img/twitter_card.jpg +open-graph-image-alt: Open Liberty Logo +redirect_link: https://www.ibm.com/blog/modernizing-software-architecture-with-microprofile-and-open-liberty/ +permalink: /blog/redirected.html +additional_authors: +- name: Emily Jiang + github: https://github.com/Emily-Jiang + image: https://avatars3.githubusercontent.com/Emily-Jiang +--- += Modernizing Software Architecture with MicroProfile and Open Liberty +Igor Berchtold +//Blank line here is necessary before starting the body of the post. + +Following on from his earlier blog, we catch back up with SUVA to find out how their application modernization journey has been progressing with the help of Open Liberty and MicroProfile. \ No newline at end of file From 40a0542c15b94826ac529cf3a9ed8d1f6b070f40 Mon Sep 17 00:00:00 2001 From: Grace Jansen <32962135+GraceJansen@users.noreply.github.com> Date: Thu, 22 Aug 2024 16:50:03 +0100 Subject: [PATCH 16/22] Update posts/2024-10-08-why-cloud-native-java-devs-love-liberty.adoc Co-authored-by: David Mueller <48686014+dmuelle@users.noreply.github.com> --- posts/2024-10-08-why-cloud-native-java-devs-love-liberty.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2024-10-08-why-cloud-native-java-devs-love-liberty.adoc b/posts/2024-10-08-why-cloud-native-java-devs-love-liberty.adoc index 518a6cba8..e91d9b546 100644 --- a/posts/2024-10-08-why-cloud-native-java-devs-love-liberty.adoc +++ b/posts/2024-10-08-why-cloud-native-java-devs-love-liberty.adoc @@ -17,4 +17,4 @@ permalink: /blog/redirected.html Grace Jansen //Blank line here is necessary before starting the body of the post. -Delivering cloud-native Java applications can be a complex task, and one that can sometimes seem overwhelming. But this is where useful cloud-native tools and technologies can really help to simplify this process and enable more effective applications designed to thrive in the cloud. In this article, we explore the open source cloud-native runtime, Open Liberty, and the features and tools it offers that make cloud-native developers' lives easier -- from getting started through coding, testing, deployment and monitoring in production. \ No newline at end of file +Developing cloud-native Java applications can be a daunting task. However, open source cloud-native runtimes like Open Liberty can simplify the process, making it easier for developers to create effective applications designed for the cloud. This article delves into the features and tools offered by Open Liberty, covering the entire development lifecycle from setup to deployment and monitoring. \ No newline at end of file From c8ee22b79dd2bdfcea8ac9414ef1b394576bc45a Mon Sep 17 00:00:00 2001 From: Grace Jansen <32962135+GraceJansen@users.noreply.github.com> Date: Thu, 22 Aug 2024 16:50:54 +0100 Subject: [PATCH 17/22] Update posts/2024-10-24-liberty-tools-visual-studio-code.adoc Co-authored-by: David Mueller <48686014+dmuelle@users.noreply.github.com> --- posts/2024-10-24-liberty-tools-visual-studio-code.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2024-10-24-liberty-tools-visual-studio-code.adoc b/posts/2024-10-24-liberty-tools-visual-studio-code.adoc index a845b5fe7..2d83a0f45 100644 --- a/posts/2024-10-24-liberty-tools-visual-studio-code.adoc +++ b/posts/2024-10-24-liberty-tools-visual-studio-code.adoc @@ -19,4 +19,4 @@ Grace Jansen As cloud-native developers, you have to care not only about developing your application, but also the building, deployment, and management of it in production. These added tasks create a complex and often challenging environment, which causes you to be constantly switching between different platforms, tools, and frameworks. -What you need is a way in which you could complete this diverse set of tasks, with language and framework support, all within one IDE. The open source Liberty Tools for Visual Studio Code, offers just this option, helping you in developing, building, testing, deploying, and managing your applications – all within your favorite IDE, Visual Studio Code! \ No newline at end of file +What you need is a way in which you could complete this diverse set of tasks, with language and framework support, all within one IDE. The open source Liberty Tools for Visual Studio Code offers just this option, helping you develop, build, test, deploy, and manage your applications – all within your favorite IDE, Visual Studio Code! \ No newline at end of file From e8acf4ff89fdabddb2b251d7a7a658d8c752cf53 Mon Sep 17 00:00:00 2001 From: Grace Jansen <32962135+GraceJansen@users.noreply.github.com> Date: Thu, 22 Aug 2024 16:51:38 +0100 Subject: [PATCH 18/22] Update posts/2024-11-12-rethinking-microservices.adoc Co-authored-by: David Mueller <48686014+dmuelle@users.noreply.github.com> --- posts/2024-11-12-rethinking-microservices.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2024-11-12-rethinking-microservices.adoc b/posts/2024-11-12-rethinking-microservices.adoc index 72995d34d..a3bf654e3 100644 --- a/posts/2024-11-12-rethinking-microservices.adoc +++ b/posts/2024-11-12-rethinking-microservices.adoc @@ -17,6 +17,6 @@ permalink: /blog/redirected.html Emily Jiang //Blank line here is necessary before starting the body of the post. -Microservices have been around for over a decade. There are many misconceptions for microservices. Some people are wondering whether microservice is going to die especially in the fast-moving IT industry towards Cloud. Serverless becomes a hot topic. Will microservice survive in the Serverless era? +There are many misconceptions for microservices, which have been around for over a decade. Some people wonder whether microservices are going to die, especially in an IT industry that is quickly moving toward the cloud. With serverless becoming a hot topic, will microservices survive in the serverless era? In this blog, take a step back and rethink microservices. We start with the history of microservices, then misconception about microservices, best practices of microservices and finally the future of microservices. From 6d6baa39e9bb6f2224601de5e2d2a86b79858619 Mon Sep 17 00:00:00 2001 From: Grace Jansen <32962135+GraceJansen@users.noreply.github.com> Date: Thu, 22 Aug 2024 16:51:52 +0100 Subject: [PATCH 19/22] Update posts/2024-11-19-suva-modernizing-architecture-with-liberty.adoc Co-authored-by: David Mueller <48686014+dmuelle@users.noreply.github.com> --- .../2024-11-19-suva-modernizing-architecture-with-liberty.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2024-11-19-suva-modernizing-architecture-with-liberty.adoc b/posts/2024-11-19-suva-modernizing-architecture-with-liberty.adoc index fbcbdf637..fa47d2f19 100644 --- a/posts/2024-11-19-suva-modernizing-architecture-with-liberty.adoc +++ b/posts/2024-11-19-suva-modernizing-architecture-with-liberty.adoc @@ -21,4 +21,4 @@ additional_authors: Igor Berchtold //Blank line here is necessary before starting the body of the post. -Following on from his earlier blog, we catch back up with SUVA to find out how their application modernization journey has been progressing with the help of Open Liberty and MicroProfile. \ No newline at end of file +Following on from his earlier post, we catch back up with Igor and SUVA to find out how their application modernization journey has been progressing with the help of Open Liberty and MicroProfile. \ No newline at end of file From b2b21bb5cdc70921e4e6346fee58269d262f17aa Mon Sep 17 00:00:00 2001 From: Grace Jansen <32962135+GraceJansen@users.noreply.github.com> Date: Thu, 22 Aug 2024 16:52:12 +0100 Subject: [PATCH 20/22] Update posts/2024-09-03-what-lies-ahead-in-ai-era.adoc Co-authored-by: David Mueller <48686014+dmuelle@users.noreply.github.com> --- posts/2024-09-03-what-lies-ahead-in-ai-era.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2024-09-03-what-lies-ahead-in-ai-era.adoc b/posts/2024-09-03-what-lies-ahead-in-ai-era.adoc index ee25f3f03..a6552f2d7 100644 --- a/posts/2024-09-03-what-lies-ahead-in-ai-era.adoc +++ b/posts/2024-09-03-what-lies-ahead-in-ai-era.adoc @@ -17,4 +17,4 @@ permalink: /blog/redirected.html Emily Jiang //Blank line here is necessary before starting the body of the post. -With the rise of large language models (LLMs), AI tools/libraries, and AI integrations, what does the future of Java development look like and how does AI fit into this? In this blog, learn about the recent advancements in AI, how they may impact the world of software development and how we could make best use of them as Java developers. +With the rise of large language models (LLMs), AI tools/libraries, and AI integrations, what does the future of Java development look like and how does AI fit into this? In this post, learn about the recent advancements in AI, how they may impact the world of software development and how we could make best use of them as Java developers. From 83a0d43bd01b2a4cd9caeddccceb0d56cc0835e2 Mon Sep 17 00:00:00 2001 From: Grace Jansen <32962135+GraceJansen@users.noreply.github.com> Date: Thu, 22 Aug 2024 16:53:15 +0100 Subject: [PATCH 21/22] Apply suggestions from code review Co-authored-by: David Mueller <48686014+dmuelle@users.noreply.github.com> --- ...4-08-25-five-java-dev-musthaves-fast-startup.adoc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/posts/2024-08-25-five-java-dev-musthaves-fast-startup.adoc b/posts/2024-08-25-five-java-dev-musthaves-fast-startup.adoc index 1618d9c19..c81f9f9b3 100644 --- a/posts/2024-08-25-five-java-dev-musthaves-fast-startup.adoc +++ b/posts/2024-08-25-five-java-dev-musthaves-fast-startup.adoc @@ -26,15 +26,15 @@ Vijay Sundaresan //Blank line here is necessary before starting the body of the post. -As more and more of our applications are being designed and developed to be deployed into the cloud, and we start to move towards microservices and even serverless style application architecture, start-up times are becoming ever more important. Unfortunately, although Java is a fantastic, robust language for us to use for developing enterprise applications, it isn't really known for its quick start-up times. +As more and more of our applications are developed for the cloud, and we move towards microservices and even serverless application architecture, start-up times are becoming ever more important. Unfortunately, although Java is a fantastic, robust language for developing enterprise applications, it isn't really known for its quick start-up times. -However, several solutions have recently emerged to help with this, speeding up Java startup. They range from compiling a link:https://www.graalvm.org/latest/reference-manual/native-image/[native image] that removes the JVM from the compiled app (the startup speed bottleneck in Java apps) to link:https://docs.azul.com/core/crac/crac-introduction[taking a snapshot of the application] after startup so that there are no startup tasks to complete when restored. But, most of these solutions suffer from compromises to developer experience, throughput performance, or security. +However, several solutions have recently emerged to help speed up Java startup. They range from compiling a link:https://www.graalvm.org/latest/reference-manual/native-image/[native image] that removes the JVM from the compiled app (the startup speed bottleneck in Java apps) to link:https://docs.azul.com/core/crac/crac-introduction[taking a snapshot of the application] after startup so that there are no startup tasks to complete when it's restored. But, most of these solutions suffer from compromises to developer experience, throughput performance, or security. What we really need is a solution that vastly improves the start-up time of Java applications, whilst also ensuring: -* It's easy for developers to implement in apps. -* It's easy for developers to use existing skills and APIs to write apps. -* It's easy for developers to enable on-the-fly configuration at deployment (restore) time. +* It's easy to implement in apps. +* It's easy to use existing skills and APIs to write apps. +* It's easy to enable on-the-fly configuration at deployment (restore) time. * The app's peak throughput performance is not degraded. * The security of the app is not compromised. @@ -42,4 +42,4 @@ In an article on link:https://dzone.com/articles/five-java-developer-must-haves- == Find out more: -Find out more about Liberty InstantOn and how it enables all of this without compromise in the the full article here: https://dzone.com/articles/five-java-developer-must-haves-for-ultra-fast-star \ No newline at end of file +Find out more about Liberty InstantOn and how it enables all of this without compromise in link:https://dzone.com/articles/five-java-developer-must-haves-for-ultra-fast-star[Five Java Developer Must-Haves for Ultra-Fast Startup Solutions]. \ No newline at end of file From d6de8f5f8ad7542c75ea59074c12440db5e1f1ce Mon Sep 17 00:00:00 2001 From: David Mueller Date: Tue, 27 Aug 2024 10:17:14 -0400 Subject: [PATCH 22/22] add 3rd party tags --- blog_tags.json | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/blog_tags.json b/blog_tags.json index 950e529d2..9d46b1050 100644 --- a/blog_tags.json +++ b/blog_tags.json @@ -82,7 +82,8 @@ "featured": "true" },{ "name": "microprofile", - "posts": ["24.0.0.9-beta", "liberty-on-amazon-ecs", + "posts": ["rethinking-microservices", "24.0.0.9-beta", + "liberty-on-amazon-ecs", "24.0.0.8-beta", "24.0.0.8", "liberty-developer-essentials-badge", "24.0.0.8-beta", "24.0.0.7", "24.0.0.7-beta", "24.0.0.6-beta", @@ -364,7 +365,8 @@ }, { "name": "jakarta-ee", - "posts": ["24.0.0.8", "liberty-developer-essentials-badge", + "posts": ["rethinking-microservices", + "24.0.0.8", "liberty-developer-essentials-badge", "24.0.0.8-beta", "24.0.0.7-beta", "24.0.0.6-beta", "simplifying-nosql-database-integration-with-jakarta-nosql", "jakarta-nosql-in-action-meet-jnopo-game", @@ -430,7 +432,8 @@ }, { "name": "community", - "posts": ["liberty-developer-essentials-badge", + "posts": ["suva-modernizing-architecture-with-liberty", "why-cloud-native-java-devs-love-liberty", + "what-lies-ahead-in-ai-era", "liberty-developer-essentials-badge", "24.0.0.7", "simplifying-nosql-database-integration-with-jakarta-nosql", "jakarta-nosql-in-action-meet-jnopo-game", "jakarta-nosql-challenge-switching-nosql-easily","DevNexus24", @@ -467,7 +470,9 @@ }, { "name": "developer-experience", - "posts": ["liberty-on-amazon-ecs","24.0.0.8", + "posts": ["liberty-tools-eclipse-ide", "liberty-tools-intellij-idea", + "liberty-tools-visual-studio-code", "why-cloud-native-java-devs-love-liberty", + "what-lies-ahead-in-ai-era", "liberty-on-amazon-ecs","24.0.0.8", "liberty-developer-essentials-badge", "24.0.0.8-beta", "24.0.0.7", "liberty-user-feature-tutorial", "liberty-project-starter-guide-IntelliJ", "simplifying-nosql-database-integration-with-jakarta-nosql", @@ -531,8 +536,7 @@ }, { "name": "monitoring", - "posts": ["24.0.0.9-beta", - "24.0.0.8", "24.0.0.8-beta", + "posts": ["24.0.0.8", "24.0.0.8-beta", "24.0.0.7-beta", "24.0.0.3", "Primeur", "23.0.0.3", "tracing-with-microprofile-telemetry", "separate-stack-trace-22008", @@ -552,7 +556,8 @@ }, { "name": "performance-enhancements", - "posts": ["liberty-on-amazon-ecs","virtual-threads-case-study", + "posts": ["five-java-dev-musthaves-fast-startup", "rapid-startup-without-compromise", + "liberty-on-amazon-ecs","virtual-threads-case-study", "24.0.0.6", "24.0.0.3", "Java21-Images", "24.0.0.1", "23.0.0.10-beta", "23.0.0.6", @@ -587,7 +592,8 @@ }, { "name": "case-study", - "posts": [ "Primeur", "production-experience-open-liberty"] + "posts": ["suva-modernizing-architecture-with-liberty", + "Primeur", "production-experience-open-liberty"] }, { "name": "reactive",