A manufacturer of IoT inventory solutions had a stable, mature, single-tenant solution built almost exclusively on IaaS OSS tooling in the AWS cloud. Our client focused their efforts entirely on their product feature-functionality and invested little as to the cloud adaptability, maintainability, and other non-functional “ilities” of their solution. Several of their prospective retail merchant customers wanted to use their IoT solutions, but were uncomfortable having their biggest competitor (Amazon) involved with their infrastructure and having data access. Our customer had no Azure presence or such expertise. They looked to us to build the entire Azure solution as quickly as possible.
Our first objective was to understand the data flows in the application and the architecture that supported it. Luckily, our client was a technical “hands on” team and used OSS solutions running in IaaS VMs. This internal expertise enabled creating a multi-cloud environment much easier to code in a DevOps manner. When our client onboarded a new customer or upgraded an existing customer, it was a high-touch manual process – they had no DevOps tooling or experience to speak of and looked to us to help guide them through the process.
We relied upon orchestration and key management solutions from Hashicorp to migrate the existing AWS IAM solution to these technologies, while natively building the Azure solutions with such tools. This configuration allowed us to have a very similar infrastructure setup in both clouds. Furthermore, our incorporation of Terraform scripts were able to leverage existing Ansible code that could run on both public clouds.
Our client was adamant that they did not want to leverage PaaS services to save hosting costs at the expense of cloud vendor lock-in, unless there were very compelling offerings. In addition, our client wanted to begin leveraging containers to improve infrastructure density and control costs. We began by road mapping the technologies and services that would be the best options for container refactoring without introducing risk.
- Led the client setup of their Site Reliability Engineering team, including build the initial multi-cloud Terraform scripts, ensure the solution met all non-functional “iliities” requirements in both clouds, and provided managed services for all these needs.
- Deployed Fargate in AWS and Azure Container Services in Azure as the initial container orchestrators on both clouds. Began road mapping and testing migrating some services to containers.
With their IoT solution available in Azure, our client could begin pursuing customers that were traditional Amazon competitors who heretofore did not want their data hosted with their largest merchant competitor. With our managed services, we allowed our client to focus upon core competencies while outsourcing their operations needs to us.
An ancillary benefit of our assistance was faster customer deployments with less labor and manual intervention. Software upgrades generally delivered bi-annually, were able to be delivered faster and with less labor. In addition, upgrade events were disruptive and buggy, and customers feared them. With our automation came the ability to identify and remediate bugs sooner with resultant reduced downtime during these events.