US Citizenship and Immigration Services (USCIS) – Department of Homeland Security, TICS Contract
OPTIMOZ provided the refactoring and cloud migration of the ELIS application, the core application that manages the daily work of USCIS. Our work included the implementation of CI/CD and DevSecOps processes, accelerated provisioning of cloud infrastructure, and the execution of agile development processes. We leveraged modern software development and DevOps technologies on AWS to deliver a high performance outcome and zero downtime deplyments. This represented a first of its kind effort in DHS.
USCIS administers the country’s naturalization and immigration systems.
We provided the refactoring and Cloud migration of the ELIS application, the core application that manages the daily work of USCIS. Our work fell into six areas:
- Implementation of CI/CD processes, which introduced advanced automation approaches into the software development lifecycle. This included automating build and compile processes, unit testing, smoke testing, and acceptance testing and production readiness. We also enabled early integration of updated components to increase transparency and improve speed in the development process.
- In conjunction with the CI/CD rollout, developed and deployed DevOps and IT security processes based on industry best practices to support both software development and IT operations professionals. This allowed the ELIS team to: (1) create true agile environment, (2) enable development teams to collaborate more effectively, (3) increase the code quality, (4) to reduce the time to production, and (5) deploy releases daily, if necessary.
- Accelerated build-out and provisioning of Cloud infrastructure, which provided immediate availability of services when needed and scaled down services when not in use. This increased application performance and reliability and lowered operating costs.
- Implemented agile software development and Kanban principles and processes to drive faster, more reliable software development for the ELIS application and provide the ability to respond quickly to needs of application owners and users.
- Leveraged modern applications development, cloud platform, database, and performance management tools to create a modern version of ELIS that is easy to enhance, manage, and refactor as needed. We collaborated with the 20 agile development teams working on ELIS (Electronic Immigration System) to integrate modern software development and cloud management tools into the development process. Along with AWS cloud infrastructure, we leveraged commercial supported versions of open-source technologies such as Chef, Jenkins, Son type Nexus, SonarQube, Java, Python, Ruby, MongoDB and ActiveMQ. We then automated end-to-end development and IT security processes, managed builds, and provided configuration control. We established an opensource-based Continuous Integration/Continuous Delivery (CI/CD) pipeline that enabled an automated build and deployment environment for frequent software delivery.
- Employed next generation development and deployment approaches, including microservices, EC2 Container Services, RedHat OpenShift for container management, and Kubernettes for container deployment. By using microservices, we were able to refactor ELIS a series of loosely coupled services. This enables the development team to add new features with breaking other parts of the application and to replace services that become outdated with minimal impact on the entire application. When paired with the new ELIS CI/CD processes, new microservices built for the ELIS application can be deployed into production without downtime. Container-driven technologies enable the ELIS application to scale up and down based on usage and policies established by ELIS DevOps team.
Benefits to USCIS:
- High performance and reliability – The ability to execute and support zero-day deployment with no user downtime
- Modern software development and operations processes – specifically tailored to operate in the Cloud
- Lower operating costs – through better management of computing resources
- Real-time application monitoring – via Cloud-based application performance management tools
- Infinite scalability – through automation and the use of modern Cloud platforms
- Improved technical skills of the internal team – including knowledge of the latest development tools and DevSecOps processes
- Enhanced security – by embedding modern security practices into every step of the development to deployment process