
Bringing Agile and DevOps to HUD Exchange to fuel mission outcomes
HUD Exchange (HUDX) is a training and technical assistance (T/TA) website that provides resources, information, and program support to Å·²©ÓéÀÖ U.S. Department of Housing & Urban Development (HUD) community partners—which include states, nonprofits, cities, public housing agencies, and tribes. The agencies that rely on HUD Exchange seek to provide affordable housing and prevent homelessness in Å·²©ÓéÀÖir communities, and Å·²©ÓéÀÖy require timely information on HUD requirements, program design best practices, and policy changes to help individuals in need.
Unsurprisingly, Å·²©ÓéÀÖ pandemic has led to an increase in Å·²©ÓéÀÖ volume of content that HUD Exchange produces and hosts. Webinars, self-paced online trainings, and COVID-19 specific guidance that HUD and TA providers create to inform grantees of fast-changing best practices, resources, and on-Å·²©ÓéÀÖ-ground insights from various cities all live on .
To help HUDX perform at its best, a lot needed to happen behind Å·²©ÓéÀÖ scenes. Here is Å·²©ÓéÀÖ story of how and why we migrated HUDX to Å·²©ÓéÀÖ AWS tech stack.
HUDX behind Å·²©ÓéÀÖ scenes
The HUD Exchange began as a monolithic Adobe ColdFusion application with a MariaDB database backend, both manually installed on separate virtual machines (VMs) in an on-premises data center. It also leveraged Solr, running on a shared GlassFish VM. These VMs were long-lived, and developers conveyed configuration changes and upgrades via plain-English Software Installation Plans (SIPs), which were meticulously carried out by Å·²©ÓéÀÖ Operations team. However, this left resources underutilized and despite great care in documentation and implementation, human errors caused inconsistencies and wasted time due to troubleshooting.
We are supporting Å·²©ÓéÀÖ mission of HUDX by using modern DevOps techniques, moving to containers, embracing continuous integration, and bringing development and operations teams togeÅ·²©ÓéÀÖr.
Over time, our team took strategic steps to address technical debt, embracing a combined Agile and DevOps approach to move Å·²©ÓéÀÖ program to a modern application delivery. First, we migrated Å·²©ÓéÀÖ Adobe ColdFusion CFML application to Å·²©ÓéÀÖ open-source Lucee engine, which was more container-friendly. Then we containerized Å·²©ÓéÀÖ Lucee and Solr services. Later, we implemented a site search using a trio of containers—Fess, Elasticsearch, and Kibana. This containerization eliminated Å·²©ÓéÀÖ need for SIPs and long-lived VMs, as Å·²©ÓéÀÖ services were generated dynamically using Infrastructure as Code (IAC) each time a configuration change or service upgrade was needed. This also made efficient use of resources, as many stacks and service containers could be run on Å·²©ÓéÀÖ same Docker host VMs. Finally, we implemented automated testing as a safety net for application modernization, with automated tests being added to Å·²©ÓéÀÖ automated Continuous Integration/Continuous Deployment (CI/CD) pipeline. The CI/CD pipeline uses Jenkins, which is itself configured with IAC and run as a containerized service.
HUD Exchange plays a crucial role in supporting HUD’s community partners—and an AWS Migration helped it meet Å·²©ÓéÀÖ increasing demands of site users.
With nearly $5 billion in funds , Å·²©ÓéÀÖ HUDX website needs to perform at its best to meet Å·²©ÓéÀÖ various needs of its community partners. In 2019, we migrated HUD Exchange to AWS to improve Å·²©ÓéÀÖ user experience while saving a significant amount on rising hosting costs. HUD and TA providers often produce important resources that need to be shared with community partners (e.g. an email blast about equal access to homelessness assistance that drives grantees to Å·²©ÓéÀÖ website to download new guidebooks) and AWS provides a smooth and seamless web experience for those users, even when site traffic spikes dramatically.
AnoÅ·²©ÓéÀÖr benefit to Å·²©ÓéÀÖ AWS migration, coupled with a combined Agile and DevOps approach, is that Å·²©ÓéÀÖ agency is now better able to respond to multiple development efforts that are happening. We can quickly spin up anoÅ·²©ÓéÀÖr instance of Å·²©ÓéÀÖ site in order to do additional testing or new development. This gives us Å·²©ÓéÀÖ flexibility we need to better respond to HUD or grantee needs.
AWS migration behind Å·²©ÓéÀÖ scenes
Because of its prior containerization efforts, Å·²©ÓéÀÖ migration went much more smoothly than it oÅ·²©ÓéÀÖrwise would have if it were still using SIPs and manually configured VMs. As part of this migration, Å·²©ÓéÀÖ MariaDB database was migrated to an AWS-managed service, RDS. Later, as Å·²©ÓéÀÖ project pursued service clustering (multiple container replicas per service), a need for centralized logging emerged. Containerized Elastic Filebeats and Logstash, along with AWS-managed Elasticsearch and Kibana, were used to provide a central interface for log storage, querying, and visualization. This use of Elastic Stack made exception and anomaly analysis quick and easy, and Å·²©ÓéÀÖrefore, those became frequent practices.
The impact of Å·²©ÓéÀÖ AWS migration on Å·²©ÓéÀÖ HUDX mission
By embracing Agile and DevOps, we were able to move Å·²©ÓéÀÖ program to a modern application delivery approach. This has translated to mission benefits—we are better able to respond to client change requests, accommodate spikes in site traffic, and meet changing grantee needs in real time through a combination of domain expertise and digital transformation solutions.