Hi, I'm Matt from AWS,
and on today's 'This is My Architecture' I'm joined by Gabe from 3M.
Hi, Matt, thanks for having me.
So tell us about 3M.
3M is a large manufacturer of consumer and industrial products.
Great, and it's a big company, what part of 3M do you work in?
I'm in 3M corporate research.
Nice. Okay.
And so today we're gonna be talking about your modelling platform, is that right?
Yes, exactly.
And so I guess before we begin, what is a modelling platform?
Well, so the modelling platform, in our case is a publishing platform
for our scientists and engineers
to make models that they develop available to lots of people inside of 3M.
And when you say models, do you mean machine learning models, or?
Yes, we mean, both physics-based models and machine learning models.
Okay, so I see a lot of icons here on the board,
I'd venture to guess at least from the top part that maybe this is a web application?
Yes, exactly, this is a web application
Okay, so how does it work? How are your scientists using it?
So our scientists are coming, and they're authenticating through CloudFront,
and we use Lambda@Edge to authenticate all the connections entering the application.
Interesting, so you're doing your authentication at the edge with Lambda@Edge?
Yes, exactly.
So we're integrated with our identity provider,
our third party and identity provider right at the edge.
Okay, great. And so once they authenticate into the web application,
you know, how does it work?
Yep. So after authentication,
the user is downloading a single page application from S3.
So back to the user here.
Okay, so single page web application,
where the HTML and the assets are hosted, JavaScript on S3.
And then are these the services that back up the web application?
Yes, these are the services that back up the web application.
So from CloudFront, the web application will be directed to API Gateway,
where we can do some additional authorization,
and then to our API layer here, hosted on ECS Fargate.
Okay, I like security at every stage, that's good.
So you have API Gateway fronting, is this Fargate, you said,
so it's serverless? Yes.
Yes, this is Fargate, it's serverless.
Okay, and then DynamoDB is the data store backing this?
Exactly, so DynamoDB is used to host configurations
for the front end, and to handle some access management.
Great, okay, so this is really a well architected, serverless web application,
and a web application needs to do something, so what is it actually doing?
So what it's doing is actually allowing our scientists inside of 3M
to amplify their productivity
by publishing models, they developed to this platform
to end users inside the company.
Okay, and so when you say publish, what does that actually mean?
So we have our CI/CD inspired application
that is based on Step Functions with a couple of dozen Lambdas around it, actually.
So we have our scientists using this.
So the scientists from within the web application, submit their models,
and it publishes using Lambdas, orchestrated by Step Functions?
Exactly, so we actually have a Git repository
that triggers the step function.
So the scientist is tied into that.
And from there, it actually publishes definitions about the Step Function into DynamoDB
and publishes some files for the model into our high performance computing cluster
Okay, so this is an HPC cluster running on EC2?
Yes, it is. Okay.
And so you're essentially simplifying CI/CD for scientists?
Yes, exactly.
Because, we, aside from having to do a pull request,
we didn't want them to have lots of other accouterments,
so to speak, of CI/CD,
and potentially impede them.
Yeah, I mean, these are super high value employees,
you wanna make it easy and fast and efficient for them to publish their models.
So that's the publishing piece and enabling CI/CD through Step Functions in Lambda.
That's the web application part as well.
What about the model consumption?
And we talked about publishing, but actually running stuff on the HPC cluster?
Yes, exactly.
So the end user when they fill out effectively an input page for any given model,
and they click a button to submit a job,
that will actually instantiate them from our API layer
into our high performance computing environment.
And when the job is complete, results will be published again, back to our S3.
Oh, so it's really like a full service platform in the sense
that once the models are published, other scientists or other users
can go in and actually run the jobs and then see the results in the same web application?
Yes, exactly.
Okay, interesting.
So I like how it's a closed loop, as we would say, at Amazon,
it's a well architected serverless web application,
interesting orchestration with Step Functions and Lambda,
HPC running on EC2, great scalable place running HPC clusters.
This is a great architecture.
All right, thank you.
Thanks for sharing it with us. Thanks.
And thanks for watching, 'This is My Architecture.'