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)