Posts tagged Cloud (3)

Tips for Building Cloud-Native Applications

An increasing number of organisations have moved, or are planning to move, to cloud-based hosting and are developing their applications to run in the cloud. However, once it's decided that your next application is going to run in the cloud, there are still a lot of architectural choices ahead of you. Besides obvious benefits like cost reduction, scalability and easier administration, cloud environments bring their own disadvantages and potential risks. In this blog, I'll share with you some tips on how to take care of the most important disadvantages and risks when you decide to build your applications for the cloud.

We will look at the various options for running your application:

Help Us Shape Your Journey to the Cloud!

One of our key goals for the Payara Platform is to enable developers to use the Java EE skills they have honed over many years to take advantage of new infrastructure, architectures and programming models. We fundamentally believe that a managed runtime platform combined with industry standard APIs like Java EE and in the future Jakarta EE is a perfect fit for cloud and containerized infrastructure. Java EE has always separated the development of applications from the construction and management of the infrastructure to run those applications using the concept of deployment artifacts. This has a natural fit to cloud and container platforms including in the future serverless models.

 

Taking Payara To The Cloud

It may be hard to believe in 2018, but there was once a time before Amazon Web Services. In 2006, Amazon launched what was to become the most dominant platform in cloud computing - the Elastic Compute Cloud (EC2). While there were a lot of early adopters who could see the benefits of "Infrastructure as a Service" (IaaS) style cloud computing - a notable example being Dropbox - there were many who were sceptical of the hype around the "cloud" and prompted stickers like the one pictured.

Domain Data Grid in Payara Server 5

In Payara Server 5 we will be introducing some major changes to the way clustering is working by creating the Domain Data Grid (see documentation for more info). The Domain Data Grid will be easier to use, more scalable, more flexible and ideally suited for cloud environments and cloud-native architectures. All Payara Server instances will join a single domain-wide data grid for sharing of in-memory data like web sessions, JCache, SSO and Stateful EJBs. 

 

Payara Server 5 Data Sheet 

Kubernetes Native Discovery with Payara Micro

Payara Micro supports Hazelcast out of the box, and can be used for clustering. This allows members in the cluster to distribute data between themselves, amongst other things. By default, Hazelcast comes with multiple ways to discover other members in the same network. A multicast discovery strategy is commonly used for this purpose; a multicast request is sent to all members in a network and the members respond with their IP addresses. Another strategy must be employed if a member cannot or does not wish to provide their IP address.

AWS Native Discovery with Payara Micro

Both Payara Server and Payara Micro can cluster together and share data using Hazelcast. Out-of-the-box, there is no configuration needed, since Hazelcast uses multicast to discover and join other cluster members. However, when running in cloud environments like AWS, for example, there are a lot of things which can stop discovery being quite so straightforward. The key thing is that Multicast is not available, meaning another discovery strategy is needed; the most common generic alternative is to use TCP, but this assumes that you know at least the intended subnet that your cluster members will be in ahead of time.

 

Payara Micro in Docker

The Payara Micro 173 release had a few changes which will make the lives of Docker users easier. This blog will cover the changes which affect Payara Micro in Docker,  demonstrating the following:

  • Using the new Payara Micro 5 Docker image, which provides Java EE 8 features.

  • Deploying applications without the targetted database being present.

  • Adding library JARs from the command line.