PNNL uses AWS to enable collaborative research between researchers and engineers. This allows for faster delivery of research projects that meet researchers' needs. An example is described of building an image classification pipeline on AWS that retrieves images from S3, processes them through Lambda, and classifies them for researchers to access. The pipeline demonstrates how AWS services like S3, SNS, Lambda, and Nifi can work together to build flexible research tools while avoiding infrastructure management.
2. PNNL-SA-126544
“Invention requires two things: the ability to
try a lot of experiments, and not having to
live with the collateral damage of failed
experiments.”
— Andy Jassy, AWS CEO
3. PNNL-SA-126544
Who We Are
• Mike Giardinelli – Senior Software Engineer & Technical Team Lead for
Computing and Analytics
• Ralph Perko – Senior Software Engineer & Technical Team Lead for
Computing and Analytics
8. PNNL-SA-126544
Software Engineering at PNNL
• Staff focus is research and innovation, not operations
• Developers work with scientists to enable research
• Limited space and resources for hardware
• Big driver for moving to AWS!
9. PNNL-SA-126544
Problem: Isolated Research
• Researchers work independently
• Lack of collaboration with engineers
• Long delivery times
• Product usually wasn’t what customer had envisioned
13. PNNL-SA-126544
Use Case - Image Classification Pipeline
The goal is to provide:
• An image retrieval pipeline
• Image storage repository
• Mechanism for distributing images to classifier
• Storage for image classifications and image reference
• A means for other collaborators to access the system
17. PNNL-SA-126544
Nifi Overview
• Message/data routing is very flexible and robust
• ETL is painless
• Easy to install, scale, configure, and extend
• Visually see what is going on with your pipelines
(metrics/bottlenecks)
• Backpressure and queueing are baked into the flows –
excellent for systems that have brittle end points
• Low barrier to entry, broadens user audience
24. PNNL-SA-126544
Lambda Function
• Written in Java
• Use Standard Libraries
• Apache HTTP Components to download image
• ImageMagick to convert and strip image
public void handleRequest(SNSEvent snsEvent,
Context context) throws Exception {…}