Uploaded image for project: 'Apache Fineract'
  1. Apache Fineract
  2. FINERACT-1584

Make Fineract.dev (~Mifos X) demo server multi tenant aware, more Cloud Native, and Performance Tested

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • None
    • None
    • None

    Description

      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.

      Attachments

        Activity

          People

            Unassigned Unassigned
            rahul.usit12 Rahul Goel
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: