Building Portable SaaS at Landing AI: Part 1
What is this? Why is this important? What are the challenges?
By Junjie Guan, Zeqi Qiu, Juan Camilo Pineda,Matias Cuenca Acuña
What software are we building?
Our mission at Landing AI is to bring together the power of deep learning and machine vision to manufacturing.
Behind this mission are a team of machine learning engineers who are driven to take AI to the edge (quite literally)!
LandingLens is the only end-to-end automated inspection platform that enables machine vision and machine learning engineers to quickly, easily, and collaboratively train, test, confirm, and deploy deep-learning models based on high-quality and verified data to edge devices on the plant floor.
In this journey of ML productization, both traditional and unconventional software challenges emerge, from the user-facing product all the way down to the infrastructure backbone. In this blog series, we mainly focus on how we build and ship a portable SaaS Platform at Landing AI.
What is Portable SaaS?
A Portable SaaS is a web-based platform that can be hosted either in a public or on-premise cloud. We heavily leverage cloud-native technologies to make our platform cloud-agnostic as well as easily maintainable across environments.
Going into details of the diagram, the portable SaaS we are building can be deployed as one fully self-contained solution, or can be pluggable to an environment that has its own storage solution already.
The key idea is to follow Abstraction Layered Architecture to have an abstraction interface, especially for any storage system we use.
Why are we building Portable SaaS?
Typical SaaS is designed to be highly scalable, available, durable and maintainable. A portable SaaS Platform brings even more potential for performance, security and compliance.
Use case #1: data geolocation
Data geolocation is usually a hard requirement for enterprises, whether it is a company-level or country-level regulatory requirement. For example, a company may not like the idea of transmitting the image of a highly confidential product over the internet and store it on a third party managed platform.
In this case, the ability to deploy and operate a SaaS platform in a target region, or even air-gap on-premises environment, is a must have feature.
Use case #2: leverage edge computing
The ability to train and run a machine learning model efficiently is an important feature. During the model training phase, our customers need to transmit large amounts of data from time to time. And once the model is ready, it will be used on the factory floor for production. Any unexpected latency will have a direct negative impact on the day-to-day production.
Plus, customers may already have purchased and setup dedicated GPUs in house, which is usually more cost-effective than using GPUs from the cloud.
This can be done by deploying the SaaS platform at a close proximity, and leverage storage and computation at the edge. This makes the ML model decouple from the internet, and become worry-free of unpredictable internet availability, performance and security threats.
Use case #3: consistent and auditable results
Not all companies can use constantly evolving SaaS offerings. For example, for FDA compliance reasons a pharmaceutical company needs to ensure a fix & validated version of all the cloud elements to ensure the same manufacturing quality over time.
In this case, we need to treat the whole SaaS product as a single packageable software with release management and version control.
Use case #4: disaster recovery and cloud-agnostic
Implementing a backup and disaster recovery (DR) plan is a requirement of most regulatory standards and cybersecurity frameworks. A portable SaaS architecture is deployable across regions, making DR easier. (Of course, deploying an identical stack to multiple regions is just the first step. How to setup active-active or active-passive serving architecture is the next challenge.)
In addition, the portable platform is less vendor lock-in. It opens the possibility to leverage different cloud providers in the consideration of technology offering and cost.
What are the infra challenges?
What we aim to deliver is already ambitious. In the end, it boils down to the following goals:
- Portable stack: we need to deploy our ML Platform to any environment easily.
- High engineering velocity: as a startup we emphasize on fast iteration with minimal trial-and-error cost.
- High product quality and cost-effectiveness: we are delivering enterprise-level products at minimal cost.
- Uncompromised security and privacy bar: security non-negotiable to our enterprise clients.
The end goal is the blue color blocks. There is a plethora of infrastructure building blocks that will help us move towards the goal. The question is, how can we move towards the end goal strategically and efficiently?
Summary & Looking forward
Albeit the benefits of a portable SaaS is attractive. It does not come for free. In the following blogs we will talk about what we have done to address the challenges when stepping into the uncharted territory of building Portable SaaS at Landing AI.