High capacity enrolment and authentication solution for the Unique Identification Authority of India
The Unique Identiﬁcation Authority of India (UIDAI), established by the Government of India, is mandated to issue a unique identiﬁcation number (called Aadhaar or UID) with associated biometric data to all residents to allow them to identify themselves anywhere in India, and to access a host of beneﬁts and services.
Here is how Mindtree helped the UIDAI develop a solution that could ramp up to support enrolment and authentication at a massive scale.
The UIDAI required a one-of-a-kind enrolment and an authentication system capable of meeting the needs of 1.2 billion residents of India. Such a system was necessarily complex and called for innovative technology solutions. Key customer requirements included the following:
- UID enrolment: Ability to scale up to 100 million UIDs; process 1 million UID per day and sustain hourly throughput for 20 hours
- UID Authentication: Ability to handle 10 million authentication requests per day and sustain hourly throughput for 10 hours
- A dedicated production-like test environment for the project's colossal data generation needs
- Ascertaining all crucial components within the system could not only survive the high load but also deliver expected throughput consistently
- Monitoring and analyzing high volume I/O transactions across multiple storage centers
- Accurately measuring the scalability of big data systems
- Coordinating with multiple stakeholders, distributed across states
Mindtree collaborated with the customer to develop two sub-systems: one sub-system to process enrolments, and the other to take care of authentication.
We focused on meeting SLAs and set up an elaborate and independent testing process. This ‘Performance Characterization’ exercise was carried out in multiple phases for the two primary applications called Enrolment Server (ES) and Authentication Server (AS). Altogether, we followed a ﬁve-phase approach:
We considered each application component and identiﬁed performance metrics associated with it; then devised a workload model built around real-time data.
This phase included setting up a test environment with high-end infrastructure and preparing tens of millions of seed data points. Test data was created for enrolment servers as well as authentication servers.
During the execution phase we conducted tests and monitored performance. For example, for authentication servers we conducted load tests targeting 10 million authentications within 10 hours.
Following successful text execution, the team carried out multiple rounds of tuning and reﬁning.
Reporting and tools
Finally, we collated approximately 60 metrics at the application level and system level for reporting purposes. A one-click tool was created to process and generate different types of graphs from raw data. Further, a comparison report was used to showcase the improvement in performance following application tuning.
- Built a robust system capable of processing 1 million enrolments and 10 million authentication per day
- Accelerated seeding process through reusable tools
- Delivered 8x improvement in response time for one sub-system
- Successfully met 40% higher than expected processing load for the other sub-system