SlideShare a Scribd company logo
1 of 41
Download to read offline
EASILY FIND
YOUR
CONFERENCE
PICTURES
USING THE POWER OF THE CLOUD
@TimvEijndhoven
@RBraam
Tim van Eijndhoven Roy Braam
@TimvEijndhoven @RBraam
JPOINT TEAM
T O G E T H E R W I T H
4
CONFERENCE
PHOTOGRAPHY
W E L O V E
SEARCHING FOR
RELEVANT PHOTOS
T I M E C O N S U M I N G
5
G O A L S
AUTOMATE LEARN NEW FUN
H O W IT S T A R T E D
TECH WEEKEND
J P O I N T
WEEKEND CODING ON
DIFFERENT PROJECTS
TECH WEEKEND
J P O I N T
9
Devoxx
Belguim
Speakers
O V E R V I E W
SERVERLESS
ARCHITECTURE
ON AWS
API’s to:
- Manage events
- Trigger album imports
- Search based on photo
AWS Rekognition does the heavy lifting in facial analysis.
Only analysis results are stored, no pictures
COMPONENTS We chose lambda for
computation to ensure only costs
for usage.
LAMBDA
Photo’s are downloaded to S3 as
Rekognition needs this for indexing,
they are removed when indexing is
done.
Also used for large SQS messages.
S3
All events are communicated
using SQS queues to reduce
coupling.
SQS
We chose dynamo as datastore as
we have a very simple datamodel.
Dynamo appeared to be the
cheapest solution for this.
DYNAMODB
Serverless architecture on AWS
AMAZON REKOGNITION
Image analysis using
Image and video analysis based on deep learning technology from Amazon. Offers analysis functions such as: object
detection, facial recognition, facial analysis, unsafe content detection, celebrity recognition and detecting text in images.
USING REKOGNITION
The way we are
Each event gets its own collection.
COLLECTION PER EVENT
Each photo that is added to S3 triggers an import into a
specific collection.
IMAGE ADDED FROM S3 TRIGGER
Rekognition response object is stored into dynamodb
to be able to review the detected faces.
STORED FOR DEBUGGING
The original URL is added to the “image” in rekognition
using the external id field, this requires the URL to be hex
encoded.
URL AS EXTERNAL IMAGE ID
The SearchFacesByImage function is used to find the
matching photos, we call this using the image binary data
as payload.
SEARCHFACESBYIMAGE
Quarkus & GraalVM
GRAALVM GraalVM is a universal virtual
machine for running applications
VIRTUAL MACHINE
Native images compiled with
GraalVM ahead-of-time improve
the startup time and reduce the
memory footprint of JVM-based
applications.
NATIVE
Zero overhead interoperability
between programming
languages allows you to write
polyglot applications and select
the best language for your task.
POLYGLOT
GraalVM can be embedded in
both managed and native
applications. There are existing
integrations into OpenJDK,
Node.js and Oracle Database.
EMBEDDABLE
Run Programs Faster Anywhere
AOT vs JIT
GraalVM
STARTUP SPEED
Cold lambda startup time
reduced, lambda’s are
billed by running time.
LOW MEMORY FOOTPRINT
SMALL PACKAGING
REDUCED MAX LATENCY
PEAK THROUGHPUT
AOT
JIT
Lambda’s are priced by
memory size.
Jackson deserialization bit us hard
Reflection is also in your dependencies
Use the tracing agent to generate the
configurations
REFLECTION
The native image did not do HTTPS out of
the box.
Quarkus has a guide on this, basically you
provide your own copy of cacerts and
bundle libsunec
CRYPTO RESOURCES
Building is slow but required to detect
issues in the native image (reflection for
example)
First develop without AOT to establish
correctness of the code, than deal with
native image issues
DEVELOPMENT SPEED
CHALLENGES
GraalVM
QUARKUS
A Kubernetes Native Java stack tailored for
OpenJDK HotSpot and GraalVM, crafted from the
best of breed Java libraries and standards
Quarkus tailors your application
for GraalVM and HotSpot.
Amazingly fast boot time, and
incredibly low RSS memory.
CONTAINER FIRST
A cohesive platform for optimized
developer joy: Unified
configuration, Zero config, live
reload, Streamlined code, No
hassle native executable
generation
DEVELOPER JOY
Combine both the familiar
imperative code and the
non-blocking reactive style when
developing applications.
UNIFIES IMPERATIVE
AND REACTIVE
Quarkus brings a cohesive, fun to
use full-stack framework by
leveraging best of breed libraries
you love and use wired on a
standard backbone.
BEST OF BREED LIBRARIES
AND STANDARDS
Build native
images with
Maven profile
BUILD TOOLS FOR NATIVE IMAGES
quarkus-amazon-
lambda
plugin
LAMBDA USING NATIVE IMAGE
CHALLENGES
Quarkus
Quarkus is the new kid on the block so there are not that
many documentation resources available at this moment.
DOCUMENTATION
The quarkus-amazon-lambda library is used to run our
natively compiled lambda in its own runtime like it would be
run in the regular amazon lambda but subtle differences
might present itself such as Jackson case sensitivity
differences (fixed in a later release)
LAMBDA COMPATIBILITY
AWS CDK
AWS Cloud
Development
KitDefine cloud infrastructure using familiar
programming languages
Apply your existing skills and tools to
the task of building cloud
infrastructure.
Provides high-level components that
preconfigure cloud resources with
proven defaults
EASIER CLOUD
ONBOARDING
The expressive power of programming
languages for defining infrastructure.
use your IDE to take advantage of
existing productivity tools and testing
frameworks
FASTER
DEVELOPMENT
PROCESS
Design your own reusable
components that meet your
requirements.
Like with any other software library,
you can easily share components.
CUSTOMIZABLE AND
SHAREABLE
Enables you to build your cloud
application without leaving your IDE.
You can write your runtime code and
define your AWS resources with the
same programming language.
No context switching
Using code completion, object references
and type safety in Java.
INFRA AS “PROPER” CODE
Use the CLI tools to see what infra changes
will be made.
DIFF VIEW
BENEFITS
AWS CDK
When we started the CDK was missing some
features for which we had to use
cloudformation.
Features were added in the next couple of
weeks.
MISSING FEATURES
Development on the CDK is going fast,
sometimes breaking backwards
compatibility.
Never cost us much time
BREAKING COMPATIBILITY
CHALLENGES
AWS CDK
D E M O
G D P R
FACE
RECOGNITION
AND GDPR
PROCESSING
IMAGES
PHYSICAL
CHARACTERISTICS
BEHAVIORAL
CHARACTERISTICS
An image that contains
recognizable people
Mustage, eye color,
hair, etc.
Smiling, angry, sad
30
User consent
and option to
withdraw
At its crux, GDPR is all about
increasing transparency, control and
letting the user know how their data
will be used
CONSENT BY
PROJECT OWNER
SEARCH WITHIN
PROJECT
NAMES ARE NOT
CORRELATED
We assume the project
owner verified consent
Searching is done in
content of project only and
not shared
Names are not stored
and/or correlated with
images
IMAGES ARE NOT
STORED
Images and matches are
not stored
GDPR
COMPLIANT
THE EFFORT TO MAKE IT
E T H I C S
37
Making use of the fast growing
amount of surveillance cameras
CATCHING CRIMINALS
Find the last location of a lost
person
FINDING MISSING PERSONS
Dispense medication, monitor
pain levels
MEDICAL USE
Pay with your face
VALIDATING PURCHASE
Personalized advertisements
ADVERTISING
IMAGE
RECOGNITION
IS POWERFUL
38
Accuracy, storage, big brother
FALSE POSITIVES
Not want to be found
PRIVACY
Provoke unnecessary health
concerns. Wrong diagnostics
HEALTH CONCERNS
Can not replace the face used for
identifying
IDENTITY FRAUD
No easy opt out.
KEEP SECRETS
IMAGE
RECOGNITION
IS DANGEROUS
39
"Make sure you can
look in the mirror and
tell yourself you are
doing the right thing"
Sensei Hoofdakker
Q U E S T I O N S?
SESSIONS AT DEVOXX
QUARKUS & GRAALVM
MONDAY
WEDNESDAY
TUESDAY
THURSDAY
Quarkus Community BOF
Learn to build Cloud Native Java Applications with Quarkus
Battle Of The Microservice Frameworks: Micronaut versus Quarkus edition!
Quarkus why, how and what
Everything you need to know about GraalVM
GraalVM native images explained
Optimizing the Performance of Machine Learning in Enterprise Java SaaS with GraalVM, Python and CUDA
Secure your Quarkus Applications
Abstractions Without Regret with GraalVM
GraalVM native images explained
Running Spring Boot applications as GraalVM native images
Kubernetes Native Spring apps on Quarkus

More Related Content

What's hot

Permit to Cloud, Landing with confidence in Azure
Permit to Cloud, Landing with confidence in AzurePermit to Cloud, Landing with confidence in Azure
Permit to Cloud, Landing with confidence in AzureMike Benkovich
 
20200429 PMI NYC Meetup Agile Governance Ariel Partners for Distribution
20200429 PMI NYC Meetup Agile Governance Ariel Partners for Distribution20200429 PMI NYC Meetup Agile Governance Ariel Partners for Distribution
20200429 PMI NYC Meetup Agile Governance Ariel Partners for DistributionCraeg Strong
 
A Year Of Running Kubernetes, and the Importance Of Empathy
A Year Of Running Kubernetes, and the Importance Of EmpathyA Year Of Running Kubernetes, and the Importance Of Empathy
A Year Of Running Kubernetes, and the Importance Of EmpathyJohn Contad
 
How To Become A Cloud Engineer | Cloud Engineer Salary | Cloud Computing Engi...
How To Become A Cloud Engineer | Cloud Engineer Salary | Cloud Computing Engi...How To Become A Cloud Engineer | Cloud Engineer Salary | Cloud Computing Engi...
How To Become A Cloud Engineer | Cloud Engineer Salary | Cloud Computing Engi...Simplilearn
 
A Hitchhiker’s Guide to the Cloud Native Stack. #DevoxxPL
A Hitchhiker’s Guide to the Cloud Native Stack. #DevoxxPLA Hitchhiker’s Guide to the Cloud Native Stack. #DevoxxPL
A Hitchhiker’s Guide to the Cloud Native Stack. #DevoxxPLMario-Leander Reimer
 
DataPalooza - A Music Festival themed ML + IoT Workshop
DataPalooza - A Music Festival themed ML + IoT WorkshopDataPalooza - A Music Festival themed ML + IoT Workshop
DataPalooza - A Music Festival themed ML + IoT WorkshopAmazon Web Services
 
Aws-What You Need to Know_Simon Elisha
Aws-What You Need to Know_Simon ElishaAws-What You Need to Know_Simon Elisha
Aws-What You Need to Know_Simon ElishaHelen Rogers
 
(P.D.F. FILE) Programming Kubernetes: Developing Cloud-Native Applications
(P.D.F. FILE) Programming Kubernetes: Developing Cloud-Native Applications (P.D.F. FILE) Programming Kubernetes: Developing Cloud-Native Applications
(P.D.F. FILE) Programming Kubernetes: Developing Cloud-Native Applications sqavhoiob
 
FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...
FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...
FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...Vadym Kazulkin
 
CI/CD pipelines on AWS - Builders Day Israel
CI/CD pipelines on AWS - Builders Day IsraelCI/CD pipelines on AWS - Builders Day Israel
CI/CD pipelines on AWS - Builders Day IsraelAmazon Web Services
 
20211007 PMI LIC Chapter Agile Tool Celebrity Death Match Kanbanize vs Jira C...
20211007 PMI LIC Chapter Agile Tool Celebrity Death Match Kanbanize vs Jira C...20211007 PMI LIC Chapter Agile Tool Celebrity Death Match Kanbanize vs Jira C...
20211007 PMI LIC Chapter Agile Tool Celebrity Death Match Kanbanize vs Jira C...Craeg Strong
 
FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...
FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...
FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...Vadym Kazulkin
 
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_SingaporeCI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_SingaporeAmazon Web Services
 
Enforcing Your Security Policy at Scale - Technical 301
Enforcing Your Security Policy at Scale - Technical 301Enforcing Your Security Policy at Scale - Technical 301
Enforcing Your Security Policy at Scale - Technical 301Amazon Web Services
 

What's hot (17)

Permit to Cloud, Landing with confidence in Azure
Permit to Cloud, Landing with confidence in AzurePermit to Cloud, Landing with confidence in Azure
Permit to Cloud, Landing with confidence in Azure
 
20200429 PMI NYC Meetup Agile Governance Ariel Partners for Distribution
20200429 PMI NYC Meetup Agile Governance Ariel Partners for Distribution20200429 PMI NYC Meetup Agile Governance Ariel Partners for Distribution
20200429 PMI NYC Meetup Agile Governance Ariel Partners for Distribution
 
Let's Program The Cloud
Let's Program The CloudLet's Program The Cloud
Let's Program The Cloud
 
Achieving Profitability on AWS
Achieving Profitability on AWSAchieving Profitability on AWS
Achieving Profitability on AWS
 
A Year Of Running Kubernetes, and the Importance Of Empathy
A Year Of Running Kubernetes, and the Importance Of EmpathyA Year Of Running Kubernetes, and the Importance Of Empathy
A Year Of Running Kubernetes, and the Importance Of Empathy
 
How To Become A Cloud Engineer | Cloud Engineer Salary | Cloud Computing Engi...
How To Become A Cloud Engineer | Cloud Engineer Salary | Cloud Computing Engi...How To Become A Cloud Engineer | Cloud Engineer Salary | Cloud Computing Engi...
How To Become A Cloud Engineer | Cloud Engineer Salary | Cloud Computing Engi...
 
A Hitchhiker’s Guide to the Cloud Native Stack. #DevoxxPL
A Hitchhiker’s Guide to the Cloud Native Stack. #DevoxxPLA Hitchhiker’s Guide to the Cloud Native Stack. #DevoxxPL
A Hitchhiker’s Guide to the Cloud Native Stack. #DevoxxPL
 
DataPalooza - A Music Festival themed ML + IoT Workshop
DataPalooza - A Music Festival themed ML + IoT WorkshopDataPalooza - A Music Festival themed ML + IoT Workshop
DataPalooza - A Music Festival themed ML + IoT Workshop
 
Aws-What You Need to Know_Simon Elisha
Aws-What You Need to Know_Simon ElishaAws-What You Need to Know_Simon Elisha
Aws-What You Need to Know_Simon Elisha
 
(P.D.F. FILE) Programming Kubernetes: Developing Cloud-Native Applications
(P.D.F. FILE) Programming Kubernetes: Developing Cloud-Native Applications (P.D.F. FILE) Programming Kubernetes: Developing Cloud-Native Applications
(P.D.F. FILE) Programming Kubernetes: Developing Cloud-Native Applications
 
CI/CD on AWS
CI/CD on AWSCI/CD on AWS
CI/CD on AWS
 
FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...
FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...
FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...
 
CI/CD pipelines on AWS - Builders Day Israel
CI/CD pipelines on AWS - Builders Day IsraelCI/CD pipelines on AWS - Builders Day Israel
CI/CD pipelines on AWS - Builders Day Israel
 
20211007 PMI LIC Chapter Agile Tool Celebrity Death Match Kanbanize vs Jira C...
20211007 PMI LIC Chapter Agile Tool Celebrity Death Match Kanbanize vs Jira C...20211007 PMI LIC Chapter Agile Tool Celebrity Death Match Kanbanize vs Jira C...
20211007 PMI LIC Chapter Agile Tool Celebrity Death Match Kanbanize vs Jira C...
 
FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...
FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...
FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...
 
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_SingaporeCI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
 
Enforcing Your Security Policy at Scale - Technical 301
Enforcing Your Security Policy at Scale - Technical 301Enforcing Your Security Policy at Scale - Technical 301
Enforcing Your Security Policy at Scale - Technical 301
 

Similar to Easily find your conference pictures using the power of the cloud

Continuous Deployment @ AWS Re:Invent
Continuous Deployment @ AWS Re:InventContinuous Deployment @ AWS Re:Invent
Continuous Deployment @ AWS Re:InventJohn Schneider
 
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...Amazon Web Services
 
AWS re:Invent 2016 recap (part 1)
AWS re:Invent 2016 recap (part 1)AWS re:Invent 2016 recap (part 1)
AWS re:Invent 2016 recap (part 1)Julien SIMON
 
AWS re:Invent 2016 Day 1 Keynote re:Cap
AWS re:Invent 2016 Day 1 Keynote re:CapAWS re:Invent 2016 Day 1 Keynote re:Cap
AWS re:Invent 2016 Day 1 Keynote re:CapIan Massingham
 
AWS re:Invent 2016 Day 1 Keynote re:Cap
AWS re:Invent 2016 Day 1 Keynote re:CapAWS re:Invent 2016 Day 1 Keynote re:Cap
AWS re:Invent 2016 Day 1 Keynote re:CapAdrian Hornsby
 
Data Summer Conf 2018, “Build, train, and deploy machine learning models at s...
Data Summer Conf 2018, “Build, train, and deploy machine learning models at s...Data Summer Conf 2018, “Build, train, and deploy machine learning models at s...
Data Summer Conf 2018, “Build, train, and deploy machine learning models at s...Provectus
 
MobSecCon 2015 - Dynamic Analysis of Android Apps
MobSecCon 2015 - Dynamic Analysis of Android AppsMobSecCon 2015 - Dynamic Analysis of Android Apps
MobSecCon 2015 - Dynamic Analysis of Android AppsRon Munitz
 
AWS Re:Invent 2019 Re:Cap
AWS Re:Invent 2019 Re:CapAWS Re:Invent 2019 Re:Cap
AWS Re:Invent 2019 Re:CapChris Fregly
 
Intelligence of Things: IoT, AWS DeepLens and Amazon SageMaker
Intelligence of Things: IoT, AWS DeepLens and Amazon SageMakerIntelligence of Things: IoT, AWS DeepLens and Amazon SageMaker
Intelligence of Things: IoT, AWS DeepLens and Amazon SageMakerAmazon Web Services
 
Deploying deep learning models with Docker and Kubernetes
Deploying deep learning models with Docker and KubernetesDeploying deep learning models with Docker and Kubernetes
Deploying deep learning models with Docker and KubernetesPetteriTeikariPhD
 
AWS re:Invent 2016: ↑↑↓↓←→←→ BA Lambda Start (SVR305)
AWS re:Invent 2016: ↑↑↓↓←→←→ BA Lambda Start (SVR305)AWS re:Invent 2016: ↑↑↓↓←→←→ BA Lambda Start (SVR305)
AWS re:Invent 2016: ↑↑↓↓←→←→ BA Lambda Start (SVR305)Amazon Web Services
 
Machine Learning Inference at the Edge (IOT322-R1) - AWS re:Invent 2018
Machine Learning Inference at the Edge (IOT322-R1) - AWS re:Invent 2018Machine Learning Inference at the Edge (IOT322-R1) - AWS re:Invent 2018
Machine Learning Inference at the Edge (IOT322-R1) - AWS re:Invent 2018Amazon Web Services
 
Disaster recovery sites on AWS: minimal costs maximum efficiency
Disaster recovery sites on AWS: minimal costs maximum efficiencyDisaster recovery sites on AWS: minimal costs maximum efficiency
Disaster recovery sites on AWS: minimal costs maximum efficiencyAmazon Web Services
 
Level up your SQL and Azure, by using Rubrik
Level up your SQL and Azure, by using RubrikLevel up your SQL and Azure, by using Rubrik
Level up your SQL and Azure, by using RubrikJaap Brasser
 
AWS DeepLens Workshop: Building Computer Vision Applications - BDA201 - Atlan...
AWS DeepLens Workshop: Building Computer Vision Applications - BDA201 - Atlan...AWS DeepLens Workshop: Building Computer Vision Applications - BDA201 - Atlan...
AWS DeepLens Workshop: Building Computer Vision Applications - BDA201 - Atlan...Amazon Web Services
 
Infrastructure Is Code with the AWS Cloud Development Kit (DEV372) - AWS re:I...
Infrastructure Is Code with the AWS Cloud Development Kit (DEV372) - AWS re:I...Infrastructure Is Code with the AWS Cloud Development Kit (DEV372) - AWS re:I...
Infrastructure Is Code with the AWS Cloud Development Kit (DEV372) - AWS re:I...Amazon Web Services
 

Similar to Easily find your conference pictures using the power of the cloud (20)

Continuous Deployment @ AWS Re:Invent
Continuous Deployment @ AWS Re:InventContinuous Deployment @ AWS Re:Invent
Continuous Deployment @ AWS Re:Invent
 
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...
 
AWS re:Invent 2016 recap (part 1)
AWS re:Invent 2016 recap (part 1)AWS re:Invent 2016 recap (part 1)
AWS re:Invent 2016 recap (part 1)
 
AWS re:Invent 2016 Day 1 Keynote re:Cap
AWS re:Invent 2016 Day 1 Keynote re:CapAWS re:Invent 2016 Day 1 Keynote re:Cap
AWS re:Invent 2016 Day 1 Keynote re:Cap
 
AWS re:Invent 2016 Day 1 Keynote re:Cap
AWS re:Invent 2016 Day 1 Keynote re:CapAWS re:Invent 2016 Day 1 Keynote re:Cap
AWS re:Invent 2016 Day 1 Keynote re:Cap
 
Data Summer Conf 2018, “Build, train, and deploy machine learning models at s...
Data Summer Conf 2018, “Build, train, and deploy machine learning models at s...Data Summer Conf 2018, “Build, train, and deploy machine learning models at s...
Data Summer Conf 2018, “Build, train, and deploy machine learning models at s...
 
Big Data in the Cloud
Big Data in the CloudBig Data in the Cloud
Big Data in the Cloud
 
MobSecCon 2015 - Dynamic Analysis of Android Apps
MobSecCon 2015 - Dynamic Analysis of Android AppsMobSecCon 2015 - Dynamic Analysis of Android Apps
MobSecCon 2015 - Dynamic Analysis of Android Apps
 
AWS Re:Invent 2019 Re:Cap
AWS Re:Invent 2019 Re:CapAWS Re:Invent 2019 Re:Cap
AWS Re:Invent 2019 Re:Cap
 
Intelligence of Things: IoT, AWS DeepLens and Amazon SageMaker
Intelligence of Things: IoT, AWS DeepLens and Amazon SageMakerIntelligence of Things: IoT, AWS DeepLens and Amazon SageMaker
Intelligence of Things: IoT, AWS DeepLens and Amazon SageMaker
 
Deploying deep learning models with Docker and Kubernetes
Deploying deep learning models with Docker and KubernetesDeploying deep learning models with Docker and Kubernetes
Deploying deep learning models with Docker and Kubernetes
 
AWS re:Invent 2016: ↑↑↓↓←→←→ BA Lambda Start (SVR305)
AWS re:Invent 2016: ↑↑↓↓←→←→ BA Lambda Start (SVR305)AWS re:Invent 2016: ↑↑↓↓←→←→ BA Lambda Start (SVR305)
AWS re:Invent 2016: ↑↑↓↓←→←→ BA Lambda Start (SVR305)
 
Machine Learning Inference at the Edge (IOT322-R1) - AWS re:Invent 2018
Machine Learning Inference at the Edge (IOT322-R1) - AWS re:Invent 2018Machine Learning Inference at the Edge (IOT322-R1) - AWS re:Invent 2018
Machine Learning Inference at the Edge (IOT322-R1) - AWS re:Invent 2018
 
Disaster recovery sites on AWS: minimal costs maximum efficiency
Disaster recovery sites on AWS: minimal costs maximum efficiencyDisaster recovery sites on AWS: minimal costs maximum efficiency
Disaster recovery sites on AWS: minimal costs maximum efficiency
 
Level up your SQL and Azure, by using Rubrik
Level up your SQL and Azure, by using RubrikLevel up your SQL and Azure, by using Rubrik
Level up your SQL and Azure, by using Rubrik
 
2020 re:Cap
2020 re:Cap2020 re:Cap
2020 re:Cap
 
AWS DeepLens Workshop: Building Computer Vision Applications - BDA201 - Atlan...
AWS DeepLens Workshop: Building Computer Vision Applications - BDA201 - Atlan...AWS DeepLens Workshop: Building Computer Vision Applications - BDA201 - Atlan...
AWS DeepLens Workshop: Building Computer Vision Applications - BDA201 - Atlan...
 
Hello Cloud
Hello CloudHello Cloud
Hello Cloud
 
Infrastructure Is Code with the AWS Cloud Development Kit (DEV372) - AWS re:I...
Infrastructure Is Code with the AWS Cloud Development Kit (DEV372) - AWS re:I...Infrastructure Is Code with the AWS Cloud Development Kit (DEV372) - AWS re:I...
Infrastructure Is Code with the AWS Cloud Development Kit (DEV372) - AWS re:I...
 
AWS Startup Insights Singapore
AWS Startup Insights SingaporeAWS Startup Insights Singapore
AWS Startup Insights Singapore
 

More from Roy Braam

Happy Developers write better code
Happy Developers write better codeHappy Developers write better code
Happy Developers write better codeRoy Braam
 
End-2-End test environments, a dead End road
End-2-End test environments, a dead End roadEnd-2-End test environments, a dead End road
End-2-End test environments, a dead End roadRoy Braam
 
What being a Sensei taught me about improving
What being a Sensei taught me about improvingWhat being a Sensei taught me about improving
What being a Sensei taught me about improvingRoy Braam
 
End-to-End test architectures, a dead End road
End-to-End test architectures, a dead End roadEnd-to-End test architectures, a dead End road
End-to-End test architectures, a dead End roadRoy Braam
 
End-to-End test architectures, a dead End road
End-to-End test architectures, a dead End roadEnd-to-End test architectures, a dead End road
End-to-End test architectures, a dead End roadRoy Braam
 
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCFMigrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCFRoy Braam
 
End-to-End test environments, a dead End road
End-to-End test environments, a dead End roadEnd-to-End test environments, a dead End road
End-to-End test environments, a dead End roadRoy Braam
 
From nothing to production in 1 hour
From nothing to production in 1 hourFrom nothing to production in 1 hour
From nothing to production in 1 hourRoy Braam
 

More from Roy Braam (8)

Happy Developers write better code
Happy Developers write better codeHappy Developers write better code
Happy Developers write better code
 
End-2-End test environments, a dead End road
End-2-End test environments, a dead End roadEnd-2-End test environments, a dead End road
End-2-End test environments, a dead End road
 
What being a Sensei taught me about improving
What being a Sensei taught me about improvingWhat being a Sensei taught me about improving
What being a Sensei taught me about improving
 
End-to-End test architectures, a dead End road
End-to-End test architectures, a dead End roadEnd-to-End test architectures, a dead End road
End-to-End test architectures, a dead End road
 
End-to-End test architectures, a dead End road
End-to-End test architectures, a dead End roadEnd-to-End test architectures, a dead End road
End-to-End test architectures, a dead End road
 
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCFMigrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
 
End-to-End test environments, a dead End road
End-to-End test environments, a dead End roadEnd-to-End test environments, a dead End road
End-to-End test environments, a dead End road
 
From nothing to production in 1 hour
From nothing to production in 1 hourFrom nothing to production in 1 hour
From nothing to production in 1 hour
 

Recently uploaded

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 

Recently uploaded (20)

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 

Easily find your conference pictures using the power of the cloud

  • 1. EASILY FIND YOUR CONFERENCE PICTURES USING THE POWER OF THE CLOUD @TimvEijndhoven @RBraam
  • 2. Tim van Eijndhoven Roy Braam @TimvEijndhoven @RBraam
  • 3. JPOINT TEAM T O G E T H E R W I T H
  • 4. 4 CONFERENCE PHOTOGRAPHY W E L O V E SEARCHING FOR RELEVANT PHOTOS T I M E C O N S U M I N G
  • 5. 5 G O A L S AUTOMATE LEARN NEW FUN
  • 6. H O W IT S T A R T E D
  • 7. TECH WEEKEND J P O I N T WEEKEND CODING ON DIFFERENT PROJECTS
  • 10. O V E R V I E W
  • 11. SERVERLESS ARCHITECTURE ON AWS API’s to: - Manage events - Trigger album imports - Search based on photo AWS Rekognition does the heavy lifting in facial analysis. Only analysis results are stored, no pictures
  • 12. COMPONENTS We chose lambda for computation to ensure only costs for usage. LAMBDA Photo’s are downloaded to S3 as Rekognition needs this for indexing, they are removed when indexing is done. Also used for large SQS messages. S3 All events are communicated using SQS queues to reduce coupling. SQS We chose dynamo as datastore as we have a very simple datamodel. Dynamo appeared to be the cheapest solution for this. DYNAMODB Serverless architecture on AWS
  • 13. AMAZON REKOGNITION Image analysis using Image and video analysis based on deep learning technology from Amazon. Offers analysis functions such as: object detection, facial recognition, facial analysis, unsafe content detection, celebrity recognition and detecting text in images.
  • 14. USING REKOGNITION The way we are Each event gets its own collection. COLLECTION PER EVENT Each photo that is added to S3 triggers an import into a specific collection. IMAGE ADDED FROM S3 TRIGGER Rekognition response object is stored into dynamodb to be able to review the detected faces. STORED FOR DEBUGGING The original URL is added to the “image” in rekognition using the external id field, this requires the URL to be hex encoded. URL AS EXTERNAL IMAGE ID The SearchFacesByImage function is used to find the matching photos, we call this using the image binary data as payload. SEARCHFACESBYIMAGE
  • 16. GRAALVM GraalVM is a universal virtual machine for running applications VIRTUAL MACHINE Native images compiled with GraalVM ahead-of-time improve the startup time and reduce the memory footprint of JVM-based applications. NATIVE Zero overhead interoperability between programming languages allows you to write polyglot applications and select the best language for your task. POLYGLOT GraalVM can be embedded in both managed and native applications. There are existing integrations into OpenJDK, Node.js and Oracle Database. EMBEDDABLE Run Programs Faster Anywhere
  • 17. AOT vs JIT GraalVM STARTUP SPEED Cold lambda startup time reduced, lambda’s are billed by running time. LOW MEMORY FOOTPRINT SMALL PACKAGING REDUCED MAX LATENCY PEAK THROUGHPUT AOT JIT Lambda’s are priced by memory size.
  • 18. Jackson deserialization bit us hard Reflection is also in your dependencies Use the tracing agent to generate the configurations REFLECTION The native image did not do HTTPS out of the box. Quarkus has a guide on this, basically you provide your own copy of cacerts and bundle libsunec CRYPTO RESOURCES Building is slow but required to detect issues in the native image (reflection for example) First develop without AOT to establish correctness of the code, than deal with native image issues DEVELOPMENT SPEED CHALLENGES GraalVM
  • 19. QUARKUS A Kubernetes Native Java stack tailored for OpenJDK HotSpot and GraalVM, crafted from the best of breed Java libraries and standards Quarkus tailors your application for GraalVM and HotSpot. Amazingly fast boot time, and incredibly low RSS memory. CONTAINER FIRST A cohesive platform for optimized developer joy: Unified configuration, Zero config, live reload, Streamlined code, No hassle native executable generation DEVELOPER JOY Combine both the familiar imperative code and the non-blocking reactive style when developing applications. UNIFIES IMPERATIVE AND REACTIVE Quarkus brings a cohesive, fun to use full-stack framework by leveraging best of breed libraries you love and use wired on a standard backbone. BEST OF BREED LIBRARIES AND STANDARDS
  • 20. Build native images with Maven profile BUILD TOOLS FOR NATIVE IMAGES quarkus-amazon- lambda plugin LAMBDA USING NATIVE IMAGE
  • 21. CHALLENGES Quarkus Quarkus is the new kid on the block so there are not that many documentation resources available at this moment. DOCUMENTATION The quarkus-amazon-lambda library is used to run our natively compiled lambda in its own runtime like it would be run in the regular amazon lambda but subtle differences might present itself such as Jackson case sensitivity differences (fixed in a later release) LAMBDA COMPATIBILITY
  • 23. AWS Cloud Development KitDefine cloud infrastructure using familiar programming languages Apply your existing skills and tools to the task of building cloud infrastructure. Provides high-level components that preconfigure cloud resources with proven defaults EASIER CLOUD ONBOARDING The expressive power of programming languages for defining infrastructure. use your IDE to take advantage of existing productivity tools and testing frameworks FASTER DEVELOPMENT PROCESS Design your own reusable components that meet your requirements. Like with any other software library, you can easily share components. CUSTOMIZABLE AND SHAREABLE Enables you to build your cloud application without leaving your IDE. You can write your runtime code and define your AWS resources with the same programming language. No context switching
  • 24. Using code completion, object references and type safety in Java. INFRA AS “PROPER” CODE Use the CLI tools to see what infra changes will be made. DIFF VIEW BENEFITS AWS CDK
  • 25. When we started the CDK was missing some features for which we had to use cloudformation. Features were added in the next couple of weeks. MISSING FEATURES Development on the CDK is going fast, sometimes breaking backwards compatibility. Never cost us much time BREAKING COMPATIBILITY CHALLENGES AWS CDK
  • 26. D E M O
  • 27. G D P R
  • 28.
  • 29. FACE RECOGNITION AND GDPR PROCESSING IMAGES PHYSICAL CHARACTERISTICS BEHAVIORAL CHARACTERISTICS An image that contains recognizable people Mustage, eye color, hair, etc. Smiling, angry, sad
  • 30. 30 User consent and option to withdraw At its crux, GDPR is all about increasing transparency, control and letting the user know how their data will be used
  • 31.
  • 32.
  • 33.
  • 34.
  • 35. CONSENT BY PROJECT OWNER SEARCH WITHIN PROJECT NAMES ARE NOT CORRELATED We assume the project owner verified consent Searching is done in content of project only and not shared Names are not stored and/or correlated with images IMAGES ARE NOT STORED Images and matches are not stored GDPR COMPLIANT THE EFFORT TO MAKE IT
  • 36. E T H I C S
  • 37. 37 Making use of the fast growing amount of surveillance cameras CATCHING CRIMINALS Find the last location of a lost person FINDING MISSING PERSONS Dispense medication, monitor pain levels MEDICAL USE Pay with your face VALIDATING PURCHASE Personalized advertisements ADVERTISING IMAGE RECOGNITION IS POWERFUL
  • 38. 38 Accuracy, storage, big brother FALSE POSITIVES Not want to be found PRIVACY Provoke unnecessary health concerns. Wrong diagnostics HEALTH CONCERNS Can not replace the face used for identifying IDENTITY FRAUD No easy opt out. KEEP SECRETS IMAGE RECOGNITION IS DANGEROUS
  • 39. 39 "Make sure you can look in the mirror and tell yourself you are doing the right thing" Sensei Hoofdakker
  • 40. Q U E S T I O N S?
  • 41. SESSIONS AT DEVOXX QUARKUS & GRAALVM MONDAY WEDNESDAY TUESDAY THURSDAY Quarkus Community BOF Learn to build Cloud Native Java Applications with Quarkus Battle Of The Microservice Frameworks: Micronaut versus Quarkus edition! Quarkus why, how and what Everything you need to know about GraalVM GraalVM native images explained Optimizing the Performance of Machine Learning in Enterprise Java SaaS with GraalVM, Python and CUDA Secure your Quarkus Applications Abstractions Without Regret with GraalVM GraalVM native images explained Running Spring Boot applications as GraalVM native images Kubernetes Native Spring apps on Quarkus