One major issue when developing modern enterprise applications is the "works on my machine" problem: when an application works well on your machine but is not functional in production or even on a colleague's machine. An even more prevalent problem is to maintain the quality of ever-changing applications during development and maintenance.
This is especially prevalent when Jakarta EE applications are developed and not properly tested in an isolated and cohesive manner. Proper integration testing helps to avoid both the "works on my machine" problem, and ensures developers can change the application effectively without breaking it. However often teams struggle with it, due to a lack of standardized testing solutions and the unpredictability of real-world conditions.
Here, I present an effective method for Jakarta EE integration testing, using Payara Platform and Testcontainers in my example.
この “Uber” Jarは、Dockerコンテナ内でアプリケーションを実行するための最良の方法ではないことに注意してください。アプリケーションに小さなコード変更を加えるたびに、バイナリ全体のアップデートが必要になるためです。より良い方法は、Payara Microインスタンスを起動して、インストールが必要なアプリケーションを指定することです。詳細については Payara Micro Docker Image documentation をご覧ください。
One of the cornerstones of any modern Payara Platform architecture is the use of the Domain Data Grid. The Domain Data Grid allows multiple Payara Server or Payara Micro instances to join and form a robust cluster of interchangeable nodes that can share data between each other and grant High Availability and Failover capabilities to any applications deployed in the cluster.
What happens when an application designed for a small user base needs to be scaled up and moved to the cloud?
It needs to live in a distributed environment: responding to an appropriate number of concurrent user requests per second and ensuring users find the application reliable.
Though Jakarta EE and Eclipse MicroProfile can help with reliable clustering, there is no standard API in Jakarta EE that defines how clustering should work currently. This might change in the future, but in the meantime, this gap must be filled by DevOps engineers.
In this blog, we will cover 10 technical strategies to deal with clustering challenges when developing Jakarta EE and MicroProfile for cloud environments.