Migrating 200 millions users to a cloud based identity system {Okta}. Part I


How to migrate a legacy Customer Identity and Access Management(CIAM) system with a huge data set (200 millions users) to a cloud based CIAM system like Okta a cloud based modern OpenID Connect (OIDC).

Requirements

 Challenges

Migration Time Calculator

API Call Rate

Unit

Data Size

Total Time

Unit

10,000

Per/Minute

200,000,000

20,000

Minutes

13.89

Days

1.98

Weeks

Solution

In order to migrate all users to Okta while meeting the requirements and mitigating the challenges a dual strategy solution  is implemented and executed simultaneously using Just In Time (JIT) migration and Bulk/Batched migration. The JIT migration will migrate users while using the system in real and the bulk migration will X set of users as background process or thread.

The migration process or user registration to Okta requires at least 3 mandatory fields

  1. Login: the username.
  2. Primary email: for password recovery and MFA
  3. Password: as credentials other type of credentials could be used but for the sake of simplicity let’s assume password for the time being
  4. UUID: this field is optional but nice to have  as a user domain agnostic opaque identifier to correlate between Okta and external systems or vice versa.

JIT migration

JIT migration is often called lazy migration or on demand migration, it is quite simple and straightforward.  The migration is triggered when the user becomes active within the system. The user activity is detected when the user login for the first time after enabling JIT or register for the first time.

Bulk/Batch migration

Bulk migration is a background process that extracts  X number of users from the legacy system and migrates them to Okta domain via API calls. The process repeats itself  by extracting X number of users again and again unttill all the users are migrated to Okta.