Under Armour Case Study

Cloud-Native Development Allows B2B eCommerce Portal to Scale Internationally

UI/UX internationalization of Under Armour’s front end

The Opportunity: Improve International B2B eCommerce Sales by Developing a Wholesale Order Management Portal for EU Businesses

Under Armour is a leading manufacturer and distributor of performance apparel, footwear, and accessories. As a global brand, Under Armour committed to investing in the necessary infrastructure to support growth in Europe and around the globe. With international expansion deemed a priority, they wanted to facilitate local retailers and businesses to fulfill the growing demand for Under Armour products.

Historically, businesses placed orders by speaking directly with a sales rep. Under Armour wished to streamline and enhance this process by providing customers with a self-service portal with a customized catalog of products they could order based on their business needs. To do so, they needed an international B2B ordering system to support all the languages spoken and currencies accepted in the markets they service within the EU.

Our Response: Develop a Scalable Order Management System Leveraging Cloud-native Architectures

While this new system would initially support the EU, it would eventually underpin their North American B2B platform. As such, it was paramount that the system scale with Under Armour’s needs. In comes the power of cloud-native architectures and the technologies that enable it.

Service Separation

MojoTech dug right in to identify natural system boundaries. This process enabled us to identify how certain platform areas could be split into separate services.

Our approach facilitated the incremental transition of Under Armour’s server code from Scala to Go, as some subsystems had already been implemented in Go and were already running smoothly alongside the legacy services.

Flow chart for Under Armour’s cloud-native order management system

Containerization

MojoTech deployed each service in a Docker container tailored to the specific service. Each service lives in a semi-isolated container whose boundaries are clear and comprehensible and contains only the system dependencies necessary to accomplish a particular purpose.

From an organizational perspective, this simplifies UA’s overhead of maintaining robust deployments in the future and secures the environment by breaking it into smaller modules. For example, the container that enables a user’s browser experience cannot do anything else, which is good from a security and systems management perspective.

Orchestration

Given that Under Armour’s codebase has been separated into containerized services, MojoTech programmed the logic to ensure that the different pieces consistently work well together. We used Kubernetes to provide a formal language for defining and enforcing the layout of production deployment and the relationships between various service instances.

For example, the Orders service may experience a much heavier load at certain times of the year, while the need for the User Identity service may remain consistent. Or, we may want to ensure that users with items stored in a certain version of the Carts service only see a specific version of the Web service (front-end).

Results: $1B+ Revenue from UA’s Largest Direct Customers Across North America & the EU

In the end, the benefits of the engagement were tenfold. Under Armour got a global wholesale order management portal that is scalable, internationalized, and accessible. The React front-end works smoothly within their cloud deployment environment for their custom catalogs, account management, order processing, and customer support via the API abstraction layer.

Continuous Deployment

MojoTech provided Under Armor’s internal teams with an automation solution that eliminates barriers between development and deployment. Each time a developer pushes source code to a given service, their continuous integration server publishes a fully deployable image for that service (provided that the build passes all the tests.)

Leveraging cloud-native development ensures easy access to scalability when necessary. It allows UA to effectively serve its customers in various continents (currently North America and Europe) with minimal administrative overhead.