Ignore Infrastructure: Concentrate on Code with Jakarta EE and Payara Cloud
August 09, 2022Java EE, now Jakarta EE, makes it possible for developers to focus purely on the development of a Java enterprise application, solving the business logic without needing to think about infrastructure and operations when writing code.
Payara Cloud extends this philosophy by also eliminating the need to worry about infrastructure and operations when preparing your application to run in the cloud.
Together, Jakarta EE and Payara Cloud let you focus on writing code and delivering solutions to business challenges from the moment you write your first piece of code to the day people are using your application successfully on the cloud.
Note: We are currently offering limited free previews of Payara Cloud to businesses. Follow this link -- Payara Cloud Preview.
After creating your application, developers (or anyone else, really) can upload it to Payara Cloud to deliver the app to users, without dealing with the provisioning of the Jakarta EE runtime, setting up containers, setting up the Pod, setting up TLS and SSL certificates, or making it work with Kubernetes.
What used to take days or weeks of frustration getting the infrastructure set up to run an application in the Cloud is now automated when you use Payara Cloud.
With Jakarta EE and Payara Cloud, developers can finally focus on what they do best: write applications that solve business challenges.
Application-Focused Jakarta EE Model
Jakarta EE is a set of specifications that allow Java developers to work on Java enterprise applications.
It is developed by industry leaders and designed to work well in relation to cloud-native deployment.
By using Java with Jakarta EE specifications, an application server can be installed, configured, and supported by the operations team. They setup the environment and prepare the connection to the database.
The name for this connection is a JNDI name in your environment and it just needs to be referenced in a configuration or descriptor files by your application. This has the added advantage that your application can be deployed unaltered in many environments, like test and production, as the application server configuration can point to the correct database in either the test or production environment.
The Jakarta EE specifications simplify the work of database connection and environment setup. You are ready to start creating your business-specific app.
Another way that Jakarta EE lets you focus on application logic is the integrated specifications, already built-into Jakarta EE.
With the Web Profile, providing Web-based clients like REST endpoints and UI-based interfaces with Jakarta Faces, and in the Full Profile, which also supports other communications like the usage of Messaging protocols, Jakarta EE offers a set of functionalities from different areas that are ready-to-use.
Developers don’t need to add more libraries to provide some functionality and then deal with the difficulties of integrating them since everything is already in place - so the developer can simply focus on solving the business challenges.
Easing the Pressure on the “Plate-Spinning” DevOps Engineer
The popularity of a DevOps method makes it even more useful if infrastructure elements can be dealt with separately to application development.
This is because with DevOps, developers are more likely to be involved in setting up and maintaining the infrastructure. DevOps tends to see a move from different groups of people being responsible for each different part of the application set-up process, to working as a single team to solve the problem. Developing the application process and putting it on a production server is a joint task for many people.
As a result of the DevOps method, developers are confronted more often with infrastructure-related tasks. They need to learn more about the frameworks and infrastructure concepts. They are spinning so many plates and juggling different priorities. Using specifications that reduce the stress of setting up an application’s infrastructure is a welcome invitation to spend more time writing the core code.
Avoid Infrastructure Infiltration
Separating the infrastructure from the code using a Jakarta EE application server also avoids the situation where the infrastructure finds its way into the the application itself, making it difficult to change later on.
If you do not just refer to available resources, as you can do with the database connection we mentioned earlier, you make a direct and hard-coded dependency on some infrastructure component. Then you cannot easily change to another system and you need to perform much more maintenance as you probably need to rework the integration when you need to upgrade to a newer version of the integration.
DevOps sparked the creation of Infrastructure as Code (IaC). Since developers are good at writing applications, they approached the new challenge of dealing with the infrastructure in a way they are comfortable with, writing code!
But the environments can already be managed using command-line tools. So, this method requires developing and maintaining the IaC in addition to the CLI tools, which creates additional work and one more thing the developer needs to learn.
The Jakarta EE model avoids: infrastructure swallowing up developers’ time, requiring them to learn a host of new skills; the potential problems of intermingled infrastructure and code; the constant extra maintenance of Infrastructure as Code.
And what Jakarta EE does for application set up, Payara Cloud does for getting your web applications to run in the cloud.
Taking the Jakarta EE Deployment Model into the Cloud Era with Payara Cloud
Using a cloud environment brings a whole new set of things to learn, like Kubernetes, routing, and setting up secure communication - to name just a few.
Payara Cloud is a serverless Platform-as-a-Service (PaaS) that allows you to build and run Jakarta EE Web apps without dealing with infrastructure management.
Payara Cloud scans your application for database usage and configuration parameters defined using the MicroProfile Config specification, and then presents you with a configuration screen to enter these values. That’s all you need to do to connect to your database and deploy the application.
The provisioning of the Kubernetes resources, setting up the routing, networking aspects, and providing the SSL certificate for your endpoints are all handled for you. It brings the serverless architecture idea to Jakarta EE, you just need to configure and deploy the application.
Some other Platform As a Service solutions come close to this concept, but with Payara Cloud, the entire infrastructure is shielded away from the user:
Jakarta EE + Payara Cloud Lets You Focus on Functionality
For an end-user, the provided functionality of an application is the most important aspect. Traditionally, Jakarta EE developers could focus on the most important aspect of development, which is the business logic that supplies the functionality of the finished application, while keeping the operations and deployments separated from the development task.
With the rise of the DevOps movement, better communications emerged between the developers and the operations department. But it also meant that infrastructure elements were introduced into the development process and that diverted the developers' focus away from application development.
Cloud environments and the cloud-native approach also require that people learn new frameworks and processes, further distracting developers from coding - as most of the new frameworks and processes that need to be learned are not really focused on the actual goal of giving the end-users the required functionality in the finished application.
But now with Payara Cloud, we bring the Jakarta EE deployment model to the cloud environment.
As a developer, you can once again focus on creating the web application based on the Jakarta Web Profile without worrying about the infrastructure.
All of the infrastructure parts are taken care of for you based on the configuration value you provide during the upload of your WAR.
All the Kubernetes interactions and Cloud Provider supplied functionality is taken care of for you, too, letting you run your applications in the cloud with ease.
Sign Up for a Free Preview, Limited Time Only: Payara Cloud Preview