Hi all,

as part of the installation user experience of WSO2 products, we are
intending to provide the users with an option to run WSO2 products within a
few minutes and evaluate its features using Vagrant [1]. Vagrant will allow
users to evaluate our products within virtual machine environments.

The constructed Vagrant resources are to be categorized into two
categories, as follows:

   1. *Standalone product deployment using Vagrantfiles* [2]:  deployment
   of the product distribution using Vagrant in Ubuntu LTS operating system
   with Oracle JDK installed.
   2. *Product pattern deployment using Vagrantfiles*: deployment of any
   product deployment pattern in the form of Vagrant multi-machine [3]
   environments.

*Standalone product evaluation:*
When installing and running a WSO2 product, the following basic steps are
followed within any Vagrantfile.

Step 1: Install the latest Ubuntu Long Term Support (LTS) operating system
version.
Step 2: Update packages and install necessary utility software.
Step 3: Install Oracle Java SE Development Kit (JDK).
Step 4: Install the WSO2 product pack.
Step 5: Exposing ports.

*Explanation:*
[Step 1]: The Ubuntu LTS version is used as it is constantly updated,
secure and stable. Please see this link for detailed information [4]. For
this purpose, the official Vagrant box [5] corresponding to Ubuntu LTS
16.04 (ubuntu/xenial64 [6]) has been used.
[Step 2]: Install required software packages which are required for WSO2
product installation process (e.g. ‘unzip’ is required to extract the WSO2
product distribution), troubleshooting purposes and etc.
[Steps 3 and 4]: The user is expected to mount the product pack and the
Oracle JDK distribution to the guest machine. For this purpose, Vagrant's
synced folders [7] are used to allow the user to mount these files. In this
case, Vagrant’s default behavior of sharing the project directory
(directory containing the Vagrantfile) to /vagrant is used.
[Step 5]: For this purpose, Vagrant’s port forwarding [8] is used. This
technique is adopted due to its simplicity, as an evaluating user will be
able to easily access the service using loopback address.

*Note*: Vagrant's Shell Provisioner [9] is used to execute these commands.

*Product pattern deployment:*
For product pattern deployment using Vagrant, multi-machine environments
are used. The previously discussed steps have been used to setup the
product. Apart from that, for communication between multiple virtual
machines, Vagrant private networks [10] are used.

Any ideas and suggestions on this topic and the discussed details are
highly appreciated.

[1]: https://www.vagrantup.com/
[2]: https://www.vagrantup.com/docs/vagrantfile/
[3]: https://www.vagrantup.com/docs/multi-machine/
[4]: https://wiki.ubuntu.com/LTS
[5]: https://www.vagrantup.com/docs/boxes.html
[6]: https://app.vagrantup.com/ubuntu/boxes/xenial64
[7]: https://www.vagrantup.com/docs/synced-folders/
[8]: https://www.vagrantup.com/docs/networking/forwarded_ports.html
[9]: https://www.vagrantup.com/docs/provisioning/shell.html
[10]: https://www.vagrantup.com/docs/networking/private_network.html

-- 
Yours sincerely,

*Chiranga Alwis*
Software Engineer | WSO2

*Mobile : *+94775930497
*Email: *[email protected]
*LinkedIn: *https://lk.linkedin.com/in/chiranga-alwis-391342a9
*Medium:* https://medium.com/@chirangaalwis

<http://wso2.com/signature>
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to