A US national wireless service provider has an online account management system that serves thousands of subscriberâ€™s accounts every day. Subscriber can modify, add or remove packages, pricing plans, billing information or make payments online. The main problem with this legacy system is its monolithic architecture that gives a hard time to add or update features in order to keep the pace with the subscriber need. The decision is to build a ground up new online account management system.
- Get familiar with the current Online account management system;
- Recognize and isolate separate functional modules from the monolithic architecture;
- Design and provide architecture that will provide the most optimized solution;
- Detect systems that cannot be migrated to cloud â€“ like Identity provider;
- Define the process of development and integration of new distributed solution;
- Define CI/CD process that will include several teams: technical committee, developers, QA and DevOps;
- Use .NET Core 2.0 for Lambda functions just several days after beta version was released;
- Establish and transfer the knowledge for using CloudFormation specific deployment.
Taking into consideration clientâ€™s business model and his needs, we proposed a solution based on microservices and responsive design. The machinery that will move the user interface is completely designed and implemented using AWS services â€“ serverless approach using Lambda functions with .Net Core 2.0, API Gateway, Step Functions, SQS and SNS. A complete solution is secured under VPC with strictly defined access policies and communication with on-premise APIs.
Using state machine from Step Functions we solved one of the biggest problems that the client had. In the previous version of the online account management application, when a new subscriber was in the registration process, he was only notified that registration is in process and when it is done â€“ notification e-mail will be sent. This is low quality user experience â€“ the user wants to have an immediate response from the system. Another problem here was that the registration in the different systems was done in synchronous mode with no option for rollback if something fails. The problems were fixed manually.
Now, with the usage of asynchronous processing and state machine, we are 100% confident to say that the user is registered and can immediately use his/her account.
Following our SDLC, we provided reusable CloudFormation scripts that fully support CI/CD process, where different teams can be completely autonomous. The development, quality assurance, business analysts and design team, are working in sync, without interruption or waiting time. We enriched this process by introducing EUT team, close to the development team. In the first month of EUT work, we reduced bug reports by 28% and with triaging we reduced the developerâ€™s time for review of around 60%.
Benefits and Results
- The client gets a low-cost reliable solution running entirely on AWS infrastructure making it fully scalable and upgradable at any moment.
- Easy integration with third-party systems allowing usage of various notification and monitoring tools that provide efficient support process.
- In the first month of EUT work, we reduced bug reports by 28% and with triaging we reduced developerâ€™s time for review of around 60%.