Complex applications with highly customized logic and user interfaces take time to develop and require more formal practices to ensure that they work as intended and meet users' needs. Your project might not be so large, but you can still benefit from using development and test environments, where you can develop and test your code without affecting end users. Building your own applications requires a thorough understanding of the issues that can take place during the app lifecycle, from development to the production stage.
Application lifecycle management becomes a lot easier thanks to the automation of routine operations (creating environments, building and deploying projects, binding and swapping domains, etc.). One of the best practices is to make your test environment look like your production environment and to periodically synchronize the test database with the data from production, and both of environments will look at one database. Also we’ll show how to use separate building environments to build all your projects with the embedded Maven tool.
To realize the schema above we’ll come through the next steps:
Log into the platform dashboard.
Create a new environment.
Wait just a minute for your environment to be created.
You can build applications in the platform instead of building your projects locally and uploading WAR archives. It is faster and takes less time and bandwidth, you get the efficiency of the cloud and can continue to use your computer without extra loads. The platform can take application source code directly from your version control repositories (via Git or SVN protocol).
The next step is to create a building environment.
Create a new environment, pick 1. Create a new environment, pick Maven as your building tool, set the cloudlets limit and type the environment name, for example: buildenv. You can create environment without a compute node. No need to have separate building tools for each of your environments.
as your building tool, set the cloudlets limit and type the environment name, for example: buildenv. You can create environment without a compute node. No need to have separate building tools for each of your environments.
Now we can easily build our first project and deploy it to the production environment.
In the dialog, navigate to the Git tab (or SVN) if you want to use Git as your revision control system. Specify your project name, Path to your project, Branch, Login and Password of your repository, name of your Environment, Context in which you will deploy your project, and click Add.
Let’s create one more environment with the database without a compute node. This allows you to store all your applications' data there.
host=jdbc:mysql://mysql{node_id}-{your_env_name}.{hoster_domain}/{db_name} username={get in the email} password={get in the email} driver=com.mysql.jdbc.Driver
Note: You can mention all connection settings in your code (application). In the given example, we put all the settings in the file, which is read by our application.
Note: In this example we use DNS names (production.com, test.com) that were previously added to local DNS-server (file hosts).
It’s time to create our test environment now. For this purposes you can easily clone your production environment. That lets you work with multiple versions of the same environment and branch your environments as needed. The cloned environment is identical to the original environment and includes all data in its databases, deployed .WAR and .JAR packages.
Let’s call it testenv.
If, for example, you need to make some changes to your application:
After you have tested your new features you can just swap domains. With this functionality, your application’s end users will not experience downtime when you deploy a new application version. You can stage your new application version in a test environment and swap the URLs with the production environment in just a few clicks.
Now you can go to production.com and you’ll see that your application has been already updated.