Rahul Goel created FINERACT-1584:
------------------------------------

             Summary: Make Fineract.dev (~Mifos X) demo server multi tenant 
aware, more Cloud Native, and Performance Tested
                 Key: FINERACT-1584
                 URL: https://issues.apache.org/jira/browse/FINERACT-1584
             Project: Apache Fineract
          Issue Type: Improvement
            Reporter: Rahul Goel


Mifos X was built to be cloud ready from the ground up. One of the most popular 
deployment environments for MifosX has been on Amazon EC2, however due to 
country specific regulation, many implementors are forced to seek alternative 
models that can scale as effectively. The aim of this project is two-fold:
 * Propose a scalable deployment model for Mifos on Google Cloud. Your 
application should highlight a starting point with some details of your plannedĀ 
deployment architecture, as Mentors would be not giving you step-by-step 
instructions in this project, just "nudge" you along; you would be expected to 
learn about how to deploy Mifos yourself and by autonomously using the 
documentation available and help from the public mailing list and IRC channel, 
and figure out the details of the Cloud deployment.

 * Propose how the above proposed model could be contributed to Mifos in the 
form of e.g. ready-to-run "configurations" etc. allowing ANYONE to deploy THE 
LATEST VERSION of Mifos in the Cloud themselves, and then implement this 
approach in practice. (Contrast this with a "one-off exercise", e.g. taking the 
current Mifos X WAR file, and UI, and manually making some changes to it, and 
then manually deploying that to some Cloud PaaS - this would not be sufficient 
for this project's expectations.)

 * Implement a Continuous Deployment "Devops" EXAMPLE instance of this scalable 
blueprint using the latest nightly Mifos build artifacts.

 * Publish a high level whitepaper of the same, which can be used as a 
reference for local implementors, who would additionally take care of 
provisioning their own hardware. This documentation should be ideally 
high-level, and what it described much be automated; only providing lengthy 
step-by-step manual instructions would not be sufficient for this project's 
expectations.

To prepare for this project, applying contibutors must demonstrate at least 
that they have already successfully locally built and ran a Mifos X REST 
back-end server and UI, populated the database etc. as well as provided a 
simple pull request proposing some minimal deployment related improvement.

Note that we now believe that a Platform as a Service (PaaS) is a more suitable 
foundation for this project than a raw Cloud Infrastructure as a Service (IaaS) 
platform (such as Openstack, offered by public cloud provider such as e.g. 
Rackspace; or Azure, or raw Amazon EC2). This is because a PaaS, such 
OpenShift, already come with relevant features such as built-in, managed, 
supported and monitored HTTP load balancing (e.g. OpenShift comes with HAProxy).

The MariaDB (MySQL) database used by Apache Fineract/Mifos does not offer 
clustering. We believe that this would not be required, and that proper 
configuration of the already existing cache facility (incl. distributed cache 
invalidation) available in Mifos X will add more value at signficantly less 
operational complexity.

You may need to develop some minor "adjustments" for Mifos X to work well in a 
PaaS. For example, writeable directories may be limited, and configuration 
changes may be needed to pick up allowed data directories from an environment 
variable configuration (but consider multi node distribution in this cluster 
setup!). Also a cloud PaaS like OpenShift may not support "always running" 
instances, and scheduled jobs may have to be configured to be kicked off via an 
explicit HTTP "wake up" request from a cron job.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to