Some Platform as a Service providers make developers stick to the Twelve-Factor App methodology while building modern web-based applications. With others, you have to create your application considering the requirements of immutable infrastructure, or proprietary runtimes and APIs. These approaches also require code changes when it comes to migrating from virtual machines to containers, decomposition of traditional (so-called legacy) monoliths to microservices, or while moving from one provider to the other.
With Jelastic, you are not forced to use any specific standards and redesign applications. Jelastic deployment can be easily performed using archives (zip, tar.gz, war, jar, ear), FTPS/SFTP, GIT/SVN with automatic updates right from the dev panel or via integrated plugins for Maven, Eclipse, NetBeans, IntelliJ IDEA. Also, it is not mandatory to modify the source code to a proprietary API in order to deploy applications to the platform. This makes the entry point easier and more seamless, reducing the go-to-market time and eliminating vendor lock-in.
Zero code change approach, as well as application and system containers support provide the ability to run both cloud-native microservices and legacy monolithic applications based on Java, PHP, Ruby, Node.js, Python, and Docker.
In addition, the deploy and further running of the applications inside containers are not going to be restricted after migration from VMs, letting you:
Run several services inside a single container
Use any ports that are required
Attach multiple Public IPv4 or IPv6 per container
Write to local or remote file system
Access containers via SSH with compatibility to configuration management tools like Chef or Puppet
Deploy well-known control panels for VPS and shared hosting management (cPanel, Plesk, and ISPManager)
Perform live migration similar to vMotion
Deploy Docker Engine in the same way you do with VMs
Perform other actions previously implemented within VPS
Also, Jelastic keeps the same IPs and hostnames for each container after any planned or occasional downtime. So there is no need to rewrite them in order to let services keep tracking the right connections.
Usually, deployment of a project at Jelastic PaaS implies performing the following steps:
1. Create an environment via comprehensive topology wizard with a wide range of pre-configured software stacks (i.e. application servers, databases, load balancers, cache and build nodes).
2. When the appropriate environment is created, you can deploy your application with one of the supported deployment options:
provide an archive (zip, bzip2, tar, tar.gz, tar.bz2, war, jar or ear) with prepackaged application resources by uploading it to the platform storage or giving a link to the location it’s kept at
fetch sources from GIT/SVN repository (additionally, you can set up automatic update)
use integrated plugins (Maven, Eclipse, NetBeans, IntelliJ IDEA)
After the process initiation, regardless of the selected deployment type, all the configurations (e.g. connecting to load balancer, memory usage tuning, enabling SSL or IP if needed, etc.) will be handled by the platform automatically. There is no need to modify application source code, you may just need to adjust some custom configs due to a new location (e.g. IP addresses or domain names).
Don’t limit yourself with unnecessary boundaries and rules – build the application based on your business needs but not on cloud platform requirements. Try out at one of the service providers.