Microsoft Workloads on AWS
Inside MindTouch’s Modernization Journey with AWS
Even early adopters of the cloud can still benefit from modernizing their infrastructure. MindTouch is one example. MindTouch, with over 43 million active users, offers a knowledge management platform that allows organizations to create and publish content into a customizable self-service experience.
MindTouch started its modernization journey with AWS in 2008 when they moved their Microsoft .NET workloads to Amazon Elastic Compute Cloud (Amazon EC2). Over 11 years later, MindTouch continues to rely on AWS because “the richness of AWS products and services makes it a better place for us to keep innovating.” In this article we’ll review MindTouch’s early adoption and continuous modernization story.
Early to the cloud
MindTouch cofounders, Steve Bjorg and Aaron Fulkerson, previously worked at Microsoft before starting the company in 2005. As they began to build Deki Wiki, an open source wiki and application platform for communities and enterprises, they remained loyal to Microsoft. They stuck with the Microsoft stack they knew, programming in C# and building applications using Microsoft’s .NET Framework.
However, MindTouch’s operations team wanted to run on Linux. So, Bjorg turned to Mono, an open source, cross-platform implementation of Microsoft’s .NET Framework (which later evolved into Microsoft .NET Core). Microsoft .NET Core gave the company the flexibility to work with familiar Microsoft technologies while running on Linux, but an even greater level of flexibility was coming.
By 2007, the company had started to move its applications from on-premises infrastructure to AWS, including moving its wiki farm to Amazon Elastic Compute Cloud (Amazon EC2) with out-of-the-box integration with Amazon Simple Storage Service (Amazon S3). In addition to a “perfect architectural fit,” Bjorg says, this early adoption of AWS shortened development cycles and lowered costs, while giving their customers unlimited storage and a maintenance-free experience. How so? Their customers no longer needed to install MindTouch’s software on local servers. MindTouch took care of this IT overhead for them, running on AWS.
According to Bjorg, MindTouch depends on AWS’ superior performance compared to other clouds. Bjorg says he needed to feel that he could trust MindTouch’s cloud provider to consistently deliver exceptional operational performance. He feels confident in AWS, given its strong track record of performance over many years.
MindTouch has depended on Amazon EC2 and other AWS services for years. As the company sought to incrementally improve operations, it started to explore AWS Lambda for serverless. “We realized we needed to start breaking our monolithic apps into microservices,” says MindTouch lead engineer Juan Manuel Torres. This shift also enabled developers to dedicate more time towards more differentiated work for customers.
The company has evolved its architecture to push events from its application to an AWS Lambda function, relying on Amazon Simple Notification Service (Amazon SNS) topics and Amazon Simple Queue Service queues to manage things like error handling. AWS Lambda reduces the MindTouch engineers’ need to manage infrastructure. Instead, they focus more on “building out [their] own microservices framework,… and bringing value to [their] customers.
Throughout their evolution MindTouch has stayed true to their .NET beginnings, thanks in significant part to exceptional support from AWS, notes Bjorg. The AWS .NET software development kit (SDK) team has done a “fantastic job” of taking care of .NET developers like MindTouch, he declares. Additionally, AWS has always been “quick at providing support for their .NET developers.” For example, he continues, AWS split the .NET SDK into smaller assemblies to reduce the dependencies size and adopted the await/async pattern consistently across the SDK. With each change (including Microsoft’s shift to .NET Core), AWS has kept support for Microsoft .NET fresh, “which shows how caring the team is” for .NET developers, Bjorg concludes.
The key to MindTouch’s modernization?
MindTouch depends upon AWS’ Microsoft .NET support for application development. As important as this support is for MindTouch, Bjorg points to something even more critical to their continued reliance on AWS: “the richness of AWS products and services makes AWS a better place for us to keep innovating.” That breadth and depth of AWS products and services makes Bjorg feel “safe” because “It feels myopic to worry too much about where something runs, as really you should care about what it connects to afterward.” Because AWS has over 175 services, connects to AWS Marketplace (with 39 categories and over 7,000 listings), and offers customers the broadest array of systems integrators and consulting partners, MindTouch and other customers have unparalleled freedom when they choose to modernize with AWS.
MindTouch’s strategy is to pick the cloud with the broadest breadth of offerings, coupled with the deepest well of complementary partner technologies. “In technology you want all your eggs in one basket. You don’t want different baskets with different requirements,” Bjorg argues. “If you only go skin deep you’re never going to understand the platform deeply enough.” “Building reliable services is hard,” he notes, and that work becomes much harder if teams are forced to try to dilute efforts between cloud providers. One other positive benefit of digging deep into AWS, he continues, is that it enables MindTouch to optimize their services and “keep prices really low.”
The journey continues
When MindTouch first turned to AWS, AWS offered just a few services, including compute (Amazon EC2) and storage (Amazon Simple Storage Service, Amazon S3). Years later, MindTouch continues its modernization journey with AWS, building out ever-richer features, including new machine learning capabilities that continually improve a customer’s knowledge management system every time it is used. By tapping into AWS’ services and partnerships and thereby continually modernizing their infrastructure, MindTouch has more resources to apply to innovating for their customers.