The organization was started with the mission to provide education in the disadvantaged communities of Kenya enabling the children to transform their lives and avail the opportunities to grow. Today, the client is a Christ centred, non-governmental organization that works with children and families in the slums of Nairobi and has expanded into remote villages in rural Kenya. The client has a dedicated staff of more than 850 Kenyans and an international team of partners and leaders, plus missionaries from a global mission team. They currently serve more than 25,000 children in 25 communities throughout Kenya, have started 14 Outreach Hope community churches, and developed partnerships with two local churches.
- The client uses web applications to manage student attendance, maintain the roster, handle promotions, grading, admission services, and sponsorship details.
- It was using an application server and database server and file server On-Premises.
- Only the users from the client network were able to access the servers and other teams/users from UBTI and other domains had to access only through VPN tunnel for support, Maintenance, and deployment.
- All the images and other documents were stored in the local file share.
Challenges Faced by the Client
- Data storage leading to localized data availability limiting global reach.
- Access was provisioned through tunnels and private networks running the risk of data outages for long periods of time.
- High maintenance of Server and network.
- Need to perform continuous upgrades due to new technology implementation, to maintain optimal application usage and performance.
- Low availability and cumbersome disaster recovery.
- Lack of backup and limited security.
- Geo-replication of data becomes expensive.
- Application server, database server and file server have been migrated to Azure cloud.
- Developed Azure Web App and API service to provide student information as and when it is needed, ensuring global availability.
- Backend data storage using Azure SQL database to provide data to web app and API.
- Usage of Azure BLOB storage to maintain the files like students/staff photos, files, attachments, and other reports.
- Used Azure Web Jobs to trigger frequent data load operations and communicate between the BLOB storage, SQL database, and the API service when required.
- Due to the Geo-replication feature by Azure, data can be fetched globally from the nearest data center.
- Used Azure function (Event Grid) app for payment-related request /response handling without any loss of data. This will initiate the request from API once API got the request from mobile/web.
- Azure Application Gateway ensures integrated security between the apps and load balancing is also provided.
- Provisioned DEV, QA, UAT & PROD Environments for project. Each environment will have Azure App Service (for both WEB & API), SQL Data Base, Web Jobs, Function (Event Grid), Storage Account (BLOB).
- Effective cost management with low capital costs compared to On-Premise setup.
- Azure offers secure Identity & Access Management capabilities with Azure Active Directory service to enable right users to access the right information.
- Low maintenance cost and less TAT for upgradation of infrastructure.
- Automated data backup and recovery managed by Azure.
- High-performance in-memory technologies and intelligent query processing.
- Analytics and intelligence capabilities with global availability and scalability.
- Noticeable improvement in application performance.
- Ease of managing multiple environments for development, QA and Production.