Whilst cost is an important consideration when choosing a cloud provider, there are other things that you need to take into consideration before making your decision. To help, here are the top 5 tips for choosing the right cloud provider for projects based on Payara Server or Payara Micro and your business needs.
1. Ensure Cloud Provider’s Infrastructure and Services Meet your Current and Future Requirements
The cloud provider must be able to support your critical business applications and have the capacity to scale with your anticipated business growth. The chosen cloud will need to have good support for running those Payara Platform runtimes which you need for your project and applications. This means it should be easy to run Java applications and use Payara Server or Payara Micro. This can be done either using virtual machines with an Infrastructure as a Service solution or using solutions that leverage containers, e.g. a Containers as a Service cloud platform or a Kubernetes cloud platform. Such cloud needs to have scalable storage, load balancing, network and DNS services. The best cloud to run applications with Payara Platform would also offer support for Jakarta EE features and integrations and allow you to leverage cloud features of Payara Platform effectively.
2. Consider Availability of Tools and Security When Moving an Existing System to the Cloud
If you are moving an existing system to the cloud, then cloud migration tools and services will play an important part in simplifying the process - reducing the effort, time and costs significantly. The key tools or services to consider are Server Migration, Database Migration and Large-Scale Data Transfer (Petabyte and Exabyte).
Payara Platform offers supported Docker containers for both Payara Server and Payara Micro. With those you can run your existing applications seamlessly using cloud services that support Docker containers.
If you need to migrate data into the cloud, you should make sure that the cloud provider offers some data migration tools to help you automate the process and make it reliable. It's also suggested that you find out whether the amount of data affects your migration costs. Sometimes cloud providers charge for large data transfers. Be careful if you decide to migrate data from one cloud provider to another one. Cloud providers often charge much more for outgoing data transfers than for incoming data transfers and it may come very expensive to change your cloud provider later.
Message Broker Migration
Migration of your JMS message brokers should be as straightforward as migrating Payara Platform. You can either install them in the same way as before on a hosted infrastructure or run them in containers.
With most cloud providers you have even more options. Some cloud providers offer hosted JMS brokers so that you don't need to install and maintain them yourself. You can also often use highly optimized message brokers which are specific to each cloud provider. To connect to them with minimal code changes in you application, you can use opensource JCA cloud connectors maintained by Payara. There are connectors for Amazon SQS, Azure Service Bus, Kafka and MQTT.
Security is one of the main reasons why organisations think twice about moving to public clouds. As the main access to the clouds will be over the internet, the cloud provider must ensure good security models to protect the cloud resources from attacks. This will need to cover the RBAC access to the cloud resources, determining who can access the resources and what operations they can carry out on the resources (Identity and Access Management).
Consider availability of firewalls to isolate your application, web and network. Secured Socket Layer (SSL/TLS) certificates should be used to secure access to web applications and encrypt data, so ensuring the cloud provider has services for managing SSL keys securely is important. As sensitive data may be sent over public networks, encryption is vital to protect the integrity of the data. Does the provider offer hardware encryption? You might need this in case you need an extra level of security for your application or the application is data intensive and software encryption would be too slow.
3. Check Geographic Location
It is important to be aware of the number and location of the data centres (Regions) the cloud provider has due to the following reasons:
- Global organisations need to ensure a consistent service for access from employees/customers in different countries
- The end to end latency is essential - the farther away a facility is, the more latency will be affected
- The data protection laws and regulations can be different depending on location of a provider's data center
When you’ve chosen your cloud provider, ensure that the expected performance between the point of access to the point of service is agreed upfront, that they have a strong presence and knowledge of local legislation of the countries that it operates in, and always check to see if the resources/services you want are available in the regions you want to use. Be aware that providers will roll out new services to the most popular regions first.
People often forget that the communication between applications deployed in multiple data centers is much slower than within a single data center. Be careful to research and test the communication speed across the data centers you plan to use and prepare that you might need to do some optimizations.
Payara Scales distribution can greatly improve communication speeds in clusters spread across multiple locations. It comes with an additional license cost for Hazelcast Enterprise but it might still be cheaper than figuring out your own custom optimizations.
Read more: Payara Scales
4. Assess Availability
The availability of a system is critical in today’s world. We have become dependent on IT infrastructure being available 24/7, with systems supporting operations across different time zones. The cloud providers will have multiple data centres located in different sites within a region (often referred to as Availability Zones). They help protect your mission-critical applications from failures of entire data centres with low latency and high availability. Assess whether the provider’s regions have Availability Zones in the region you want to use and that all the cloud resources and services you need are supported in these.
5. Don’t Forget about Application Lifecycle Management in the Cloud
One thing that some people sometimes forget to take into consideration when choosing a cloud provider is how easy it will be to perform the tasks that keep the systems running. This includes developing, testing, provisioning production environments and other day to day activities. What command line tools are available to create and manage the cloud resources, are they easy to use?
The cloud is a perfect fit for DevOps practices. For organisations that have invested in these practices, the integration of automation tools, such as Ansible, Chef and Puppet, with cloud is vital to ensure that cloud resources can be created and managed easily in a replicable, consistent and reliable manner - helping to promote Continuous Delivery. For organisations that automate deployments using containers, it's essential that the cloud provider offers services for running containers or Kubernetes and it's possible to script them or configure in a code repository. It should be possible not only to run your applications with Payara Docker containers but also to automate integration of these containers with other services like load balancers and databases.
Once the applications are running in production, monitoring, logging and alerting needs to be carried out to ensure the systems are kept running. This means that discovering which monitoring, logging and alerting tools are available with the cloud provider and how they integrate with Payara Platform and your application is important.
The Payara Platform and Your Cloud Provider
Considering the above 5 factors will ensure you choose the right cloud provider for your needs. From scale capacity, migration tools, the geographic location, availability, and Application Lifecycle Management - organisations must take many aspects into consideration when choosing a cloud provider. The good news is the Payara Platform is cloud-native and ready-to-work with whichever cloud provider you end up choosing.