Pharocloud Ephemeric Cloud is a powerful tool created for building stable development process with Pharo Smalltalk. This article will introduce the deployment plan that allows to apply best practices of software development cycle to Pharo web application ddddevelopment.
The plan describes 3 environments for development process:
The main idea of the plan is running Smalltalk code in Ephemeric instances and running necessary resources like databases as Pharocloud appliances. Standard Ephemeric Cloud subscription plan allows you to run up to 10 instances which should be enough for any development purposes in scope of the plan. Pharocloud appliances provide you with most known applications for web development like MongoDB, PostgreSQL, Static resources.
If you need something specific which is not on the list, then contact Pharocloud support for details at email@example.com.
In this article we use Gate and PostgreSQL appliances and three Ephemeric cloud instances. The conceptual diagram of the deployment plan is as follows:
Pharocloud provides the following tools for Pharo smalltalk developer:
Please note that the developer can access published Images directly by internal Ephemeric cloud hostnames (ex.: http://eph-eaa7a571.swarm.pharocloud.com/") without going through the Gate appliance.
With those tools development process can be really flexible:
Ephemeric cloud integrates well with continuous integration systems. Run of the Image can be scripted with any client which supports HTTP requests (like
Pharo workspace) thus we can easily imagine a script which automatically downloads and builds project from repository, publishes it in Ephemeric cloud, runs unit tests on the instance and analyses the results. To have an example bash script you may refer to the following article: https://www.pharocloud.com/kb/tutorial/ephemeric_cloud_bash_script
When you start an instance in Ephemeric cloud it generates a random hostname which identifies the application. However despite on this restriction Ephemeric cloud can be used both for beta-test and production environments. The trick is to use Gate appliance which can be configured to route specific user requests to specific ephemeric instance.
On the diagram of the plan you may see that Gate appliance is configured to route
www.example.org to the first ephemeric instance, and
beta.example.org to another. With this setup user can easily switch the production URL to a newer version just by reconfiguring the Gate to point to the new ephemeric instance.
The main idea of the plan is to publish an application as "beta" version and run it on a special domain (
beta.example.org). When stability of the new code is assured, the ephemeric can be re-mapped to the main domain with just few clicks.
This approach provides a flexible tool to manage development lifecycle of web application.
Pharocloud two products: appliance hosting and Ephemeric cloud provide the users with a flexible platform that helps developers to create steady development process for web application. Here we described only one pattern you can implement with Pharocloud infrastructure, but there are quite a few simple ways to change the process to fit your special needs.
Try this configuration out and share your thoughts on it with us by commenting below or contacting us directly at firstname.lastname@example.org.