SlideShare une entreprise Scribd logo
1  sur  40
JustGiving – Serverless Data Pipelines,
API, Messaging and Stream Processing
Richard Freeman, Ph.D. Lead Data Engineer and Architect
23rd March 2017
RAVEN data science platform in AWS
What to Expect from the Session
• Recap of some AWS services
• Event-driven data platform at JustGiving
• Serverless computing
• Six serverless patterns
• Serverless recommendations and best practices
Recap of Some AWS Services
Managed Services
Amazon S3
• Distributed web
scale object storage
• Highly scalable,
reliable, and secure
• Pay only for what
you use
• Supports encryption
AWS Lambda
• Runs code in
response to triggers
• Amazon API
Gateway requests
• Serverless
• Pay only when code
runs
• Automatically scales
and high availability
Amazon Simple
Notification Service (SNS)
• Set up, operate, and
send notifications
• Publish messages from
an application and
immediately deliver them
to subscribers or other
applications
• Push messages to
mobile devices
Amazon DynamoDB
• Fast, fully-managed
NoSQL Database
Service
• Capable of handling
any amount of data
• Durable and Highly
Available
• SSD storage
• Cost Effective
Amazon Kinesis
Amazon Kinesis
Firehose
Easily load massive volumes
of streaming data into S3,
Amazon Redshift, and
Amazon Elasticsearch
Service
Amazon Kinesis
Analytics
Easily analyze
streaming data with
standard SQL
Amazon Kinesis
Streams
Build your own custom
applications that
process or analyze
streaming data.
Scales out using
shards
Event-Driven Data Platform
at JustGiving
We are
A tech-for-good platform for
events based fundraising,
charities and crowdfunding
“Ensure no good cause
goes unfunded”
• The #1 platform for online social
giving in the world
• Raised $4.2bn in donations
• 28.5m users
• 196 countries
• 27,000 good causes
• Peaks in traffic: Ice bucket,
natural disasters
• GiveGraph
• 91 million nodes
• 0.53 billion relationships
Fundraising Page
Our Requirements
• Limitation in existing SQL Server data warehouse
• Long running and complex queries for data scientists
• New data sources: API, clickstream, unstructured, log, behavioural
data etc.
• Easy to add data sources and pipelines
• Reduce time spent on data preparation and experiments
Machine
learning
Graph
processing
Natural language
processing
Stream processing
Data ingestion
Data
preparation
Automated Pipelines
Insight
Predictions
Metrics
Inspire
Data-driven
Complex Impact
Event Driven Data Platform at JustGiving [1 of 2]
• JustGiving developed in-house analytics and data science
platform in AWS called RAVEN.
• Reporting, Analytics, Visualization, Experimental, Networks
• Uses event-driven and serverless pipelines rather than
directed acyclic graphs (DAGs) or Workflows
• Messaging, queues, pub/sub patterns
• Separate storage from compute
• Supports scalable event driven
• ETL / ELT
• Machine learning
• Natural language processing
• Graph processing
• Allows users to consume raw tables, data blocks, metrics,
KPIs, insight, reports, etc.
Event Driven Data Platform at JustGiving [2 of 2]
Event Driven ETL and Data Pipeline Patterns [1 of 2]
Event Driven ETL and Data Pipeline Patterns [2 of 2]
Pros
• Decouple the L in ETL / ELT
• Adds lots of flexibility to loading
• Supports incremental and multi-cluster loads
• Simple reload on failure, e.g., send an Amazon SNS/Amazon
SQS message
• Basic sequencing can be done within message
Cons:
• Does not support complex loading workflows
• No native FIFO support in SQS (support added Nov 17, 2016)
Serverless Computing
AWS Lambda Functions
EVENT SOURCE FUNCTION SERVICES (ANYTHING)
Data stores & streaming event sources
e.g. Amazon S3, Amazon DynamoDB,
Amazon Kinesis
Requests to endpoints
e.g. Amazon Alexa Skills, Amazon API Gateway
Changes in repositories and logs
e.g. AWS Code Commit, Amazon CloudWatch
Node.js
Python
Java
C#
Event & Message services
e.g. Amazon SNS, Cron events
Writing Lambda Functions
• The Basics
• AWS SDK, IAM Roles and Policies
• Python, Node.js, Java8, and C#
• Lambda handles inbound traffic and integration
• Stateless
• Use S3, DynamoDB, or other Internet storage for persistent data
• 128Mb and 1.5GB RAM
• Duration 100ms to 5min
• Runs your code in response to events or requests
• Pay for execution time in 100ms increments
• Familiar
• Use bash, processes, threads, /tmp, sockets, …
• Bring your own libraries, even native ones
AWS Lambda, container or EC2 instance?
Amazon EC2 Instance Containers AWS Lambda
Infrastructure You configure, maintain and
needs be built for HA
You configure, maintain
and needs be built for HA
Request-driven and AWS manages
Instance
Flexibility
Choose instance type, OS,
etc.
Choose instance type, OS,
etc.
Prioritises ease of use - one OS,
default hardware, no maintenance or
scheduled downtime
Scaling Provisioning instances and
configure auto-scaling
Provisioning containers and
configure auto-scaling
Implicit, based on requests
Launch Minutes Seconds Milliseconds to few seconds
State State or stateless State or stateless Stateless
AWS Integration Custom Custom Built-in triggers SNS, Kinesis Stream,
S3, API Gateway etc.
Cost EC2 per hour and spot Containers on EC2 clusters
per hour and spot
Per 100ms, invocation and RAM
Six Serverless Patterns
Pattern 1 – Serverless Message Bus [1 of 2]
Pattern 1 – Serverless Message Bus [2 of 2]
Pros
• Simple serverless and highly available service bus
• Centralised logic for transformation and routing
• Kinesis supports more than one Lambda per message
• Kinesis streams support replay
Cons:
• SNS - Scalability one lambda per SNS message
• Lambda limits: 500 MB disk, 1.5GB RAM, complete within
5min
Pattern 2 – Serverless Steaming Data Capture API [1 of 2]
Pattern 2 – Serverless Steaming Data Capture API [2 of 2]
Pros:
• Serverless real-time stream capture pipeline
• Managed API configuration and deployment
• Secure - IAM Roles
• Simple transformation
• Cost effective – pay for what you use
Cons:
• Complex transformation
• API Gateway and Kinesis soft limits need to be aligned
Pattern 3 - Serverless Small Data Pipeline [1 of 2]
Pattern 3 - Serverless Small Data Pipeline [2 of 2]
Pros:
• Batch and incremental possible
• Useful for small and infrequently added files
• Can preserve file name
• Can be used for projection, enrichment, parsing, etc.
Cons:
• Lambda limits: 500 MB disk, 1.5GB RAM, complete within 5min
• Complex joins
• One file on input and output
Pattern 4 - Serverless Streamify File and Merge into Larger Files [1 of 2]
Pattern 4 - Serverless Streamify File and Merge into Larger Files [2 of 2]
Pros:
• Batch and incremental possible
• Useful for small and frequently added files
• Lambda and Amazon Kinesis Firehose - Serverless way to
persist a stream
Cons:
• Lambda limits: 500 MB disk, 1.5GB RAM, complete within 5min
• Firehose limits: 15 min, 128 MB buffer
• Complex joins
Pattern 5 - Serverless Streaming Analytics and Persist Stream [1 of 2]
Pattern 5 - Serverless Streaming Analytics and Persist Stream [2 of 2]
Pros:
• Stream processing without a running cluster
• Lambda and Amazon Kinesis Analytics automatic scaling
• A static website can access DynamoDB metrics
• Choice of language: Python, SQL, Node.js, Java8, and C#
• Code can be changed without interruption
Cons:
• Lambda limits: 500 MB disk, 1.5GB RAM, complete within 5min
• Firehose limits: 15 min, 128 MB buffer
• Complex stream joins
Pattern 6 – Serverless Data and Process API [1 of 2]
Pattern 6 – Serverless Data and Process API [2 of 2]
Pros:
• Serverless data API
• DynamoDB uses IAM roles
• Choice of language: Python, Node.js, C#, and Java8
• Code can be changed without interruption
Cons:
• RDS needs encrypted user/pass and VPC
• Lambda limits: 500 MB disk, 1.5GB RAM, complete within 5min
• Complex or compute intensive queries
Serverless Recommendations
and Best Practices
Lambda Functions Are Good For…
• REST API micro-services backend
• Rows & events
• Parsing, projecting, enriching, filtering etc.
• REST and other AWS integration
• Built in triggers API Gateway, S3, SNS,
CloudWatch, Kinesis Streams etc.
• Secure
• IAM Roles, VPC and KMS
• Highly Available and auto-scaling
• Simple packaging and deployment
• For streams, easily modify code
Serverless Data Processing Patterns
Pattern Serverless Spark on EMR when …
Pattern 3 - Serverless
small data pipeline
• Small and infrequently added files
• Preserves existing file names
• Big files > 400MB
• Joining data sources
• Merge small files into one
Pattern 4 - Serverless
streamify file and
merge into larger files
• Merge small frequently added files
into a stream or larger ones in S3
• Streaming analytics and time series
• Big files > 400MB
• Joining streams or data
sources
Pattern 5 - Serverless
analytics and persist
stream
• Streaming analytics and time series
• Real-time dashboard
• Persist an Amazon Kinesis stream
• Joining streams or data
sources
Understand the Lambda limits
• Memory, local disk, execution time
• Limited Tooling – Improving
• Throttle – review the architecture and exception DLQ
• Concurrent Lambda functions execution
• AWS account
• DynamoDB and Amazon Kinesis shard iterators
• Complex joins harder to implement – better in Spark on EMR
• ORC and Parquet – better in Spark on EMR
Lambda Recommendations
• Test with production volumes
• Think deployment and version control
• Frameworks Serverless, Chalice etc.
• New
• AWS Serverless Application Model (SAM)
• Environment variables
• Dead Letter Queue
• Program defensively
Exceptions, e.g. invalid records
• Reduce execution time
• Minimize logging
• Optimize code, e.g. aggregate in memory to reduce writes
1-2-3 of Lambda
1. Create IAM Role
• Access resources, e.g. DynamoDB, Kinesis
Streams etc.
• Lambda execution
2. Create Lambda Function
• Configuration and function code
• Test manually
3. Deploy package
• Enable event Trigger
• Monitor
First 1 million
requests per
month are free !
Other Serverless Example Use Cases
Thumbnail Generation
• http://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html
Mobile Application Backend
• http://docs.aws.amazon.com/lambda/latest/dg/with-on-demand-custom-android-example.html
Authorizing Access Through a Proxy Resource
• https://aws.amazon.com/blogs/compute/authorizing-access-through-a-proxy-resource-to-amazon-api-gateway-and-aws-lambda-
using-amazon-cognito-user-pools/
Serverless IoT Back Ends
• https://www.slideshare.net/AmazonWebServices/aws-reinvent-2016-serverless-iot-back-ends-iot401
Creating Voice Experiences with Alexa Skills
• https://www.slideshare.net/AmazonWebServices/aws-reinvent-2016-workshop-creating-voice-experiences-with-alexa-skills-from-
idea-to-testing-in-two-hours-alx203
Lambda with AWS CloudTrail
• http://docs.aws.amazon.com/lambda/latest/dg/with-cloudtrail.html
Slack Integration for AWS Lambda
• https://aws.amazon.com/blogs/aws/new-slack-integration-blueprints-for-aws-lambda/
Dynamic GitHub Actions with AWS Lambda
• https://aws.amazon.com/blogs/compute/dynamic-github-actions-with-aws-lambda/
Lambda with Scheduled Events
• http://docs.aws.amazon.com/lambda/latest/dg/with-scheduled-events.html
Find Out More
Serverless Cross Account Stream Replication Using AWS Lambda, Amazon DynamoDB, and Amazon Kinesis
Firehose (AWS Compute Blog)
• https://aws.amazon.com/blogs/compute/serverless-cross-account-stream-replication-using-aws-lambda-
amazon-dynamodb-and-amazon-kinesis-firehose
Analyze a Time Series in Real Time with AWS Lambda, Amazon Kinesis and Amazon DynamoDB Streams (AWS Big
Data Blog)
• https://blogs.aws.amazon.com/bigdata/post/Tx148NMGPIJ6F6F/Analyze-a-Time-Series-in-Real-Time-with-AWS-Lambda-
Amazon-Kinesis-and-Amazon-Dyn
Serverless Dynamic Real-Time Dashboard with AWS DynamoDB, S3 and Cognito (Medium.com)
• https://medium.com/@rfreeman/serverless-dynamic-real-time-dashboard-with-aws-dynamodb-a1a7f8d3bc01
JustGiving Public Repository
• https://github.com/JustGiving
Serverless at re:Invent 2016 – Wrap-up (AWS Compute Blog)
• https://aws.amazon.com/blogs/compute/serverless-at-reinvent-2016-wrap-up/
Summary
• Challenges of existing big data pipelines
• Event-driven ETL and serverless pipelines at JustGiving
• Serverless computing
• Six patterns for scalable data pipelines
1. Serverless message bus
2. Serverless steaming data capture API
3. Serverless small data pipeline
4. Serverless streamify file and merge into larger files
5. Serverless streaming analytics and persist stream
6. Serverless data and process API
• Recommendations
• Using AWS managed services
• Understanding Lambda
Thank You!
“Ensure no good cause goes unfunded”
Contact
https://linkedin.com/in/drfreeman

Contenu connexe

Tendances

AWS re:Invent 2016: Enterprise Fundamentals: Design Your Account and VPC Arch...
AWS re:Invent 2016: Enterprise Fundamentals: Design Your Account and VPC Arch...AWS re:Invent 2016: Enterprise Fundamentals: Design Your Account and VPC Arch...
AWS re:Invent 2016: Enterprise Fundamentals: Design Your Account and VPC Arch...Amazon Web Services
 
AWS 201 - A Walk through the AWS Cloud: What's New with AWS
AWS 201 - A Walk through the AWS Cloud: What's New with AWSAWS 201 - A Walk through the AWS Cloud: What's New with AWS
AWS 201 - A Walk through the AWS Cloud: What's New with AWSAmazon Web Services
 
Apache Con 2021 Structured Data Streaming
Apache Con 2021 Structured Data StreamingApache Con 2021 Structured Data Streaming
Apache Con 2021 Structured Data StreamingShivji Kumar Jha
 
Bridging the Gap: Connecting AWS and Kafka
Bridging the Gap: Connecting AWS and KafkaBridging the Gap: Connecting AWS and Kafka
Bridging the Gap: Connecting AWS and KafkaPengfei (Jason) Li
 
Deep Dive on Amazon EFS (with Encryption) - AWS Online Tech Talks
Deep Dive on Amazon EFS (with Encryption) - AWS Online Tech TalksDeep Dive on Amazon EFS (with Encryption) - AWS Online Tech Talks
Deep Dive on Amazon EFS (with Encryption) - AWS Online Tech TalksAmazon Web Services
 
AWS re:Invent 2016: Workshop: AWS Professional Services Effective Architectin...
AWS re:Invent 2016: Workshop: AWS Professional Services Effective Architectin...AWS re:Invent 2016: Workshop: AWS Professional Services Effective Architectin...
AWS re:Invent 2016: Workshop: AWS Professional Services Effective Architectin...Amazon Web Services
 
AWS re:Invent 2016: Cloud Monitoring - Understanding, Preparing, and Troubles...
AWS re:Invent 2016: Cloud Monitoring - Understanding, Preparing, and Troubles...AWS re:Invent 2016: Cloud Monitoring - Understanding, Preparing, and Troubles...
AWS re:Invent 2016: Cloud Monitoring - Understanding, Preparing, and Troubles...Amazon Web Services
 
AWS 2016 re:Invent Launch Summary
AWS 2016 re:Invent Launch SummaryAWS 2016 re:Invent Launch Summary
AWS 2016 re:Invent Launch SummaryAmazon Web Services
 
Co 4, session 2, aws analytics services
Co 4, session 2, aws analytics servicesCo 4, session 2, aws analytics services
Co 4, session 2, aws analytics servicesm vaishnavi
 
Full Stack Analytics on AWS - AWS Summit Cape Town 2017
Full Stack Analytics on AWS - AWS Summit Cape Town 2017 Full Stack Analytics on AWS - AWS Summit Cape Town 2017
Full Stack Analytics on AWS - AWS Summit Cape Town 2017 Amazon Web Services
 
Infinite Scaling using Lambda and Aws - Atlogys Tech Talk
Infinite Scaling using Lambda and Aws - Atlogys Tech TalkInfinite Scaling using Lambda and Aws - Atlogys Tech Talk
Infinite Scaling using Lambda and Aws - Atlogys Tech TalkAtlogys Technical Consulting
 
AWS Cloud Kata | Manila - Getting to Scale on AWS
AWS Cloud Kata | Manila - Getting to Scale on AWSAWS Cloud Kata | Manila - Getting to Scale on AWS
AWS Cloud Kata | Manila - Getting to Scale on AWSAmazon Web Services
 
AWS re:Invent 2016: Big Data Mini Con State of the Union (BDM205)
AWS re:Invent 2016: Big Data Mini Con State of the Union (BDM205)AWS re:Invent 2016: Big Data Mini Con State of the Union (BDM205)
AWS re:Invent 2016: Big Data Mini Con State of the Union (BDM205)Amazon Web Services
 
Content Management and Running your Website on AWS
Content Management and Running your Website on AWSContent Management and Running your Website on AWS
Content Management and Running your Website on AWSAmazon Web Services
 
Hands On Lab: Introduction to Microsoft SQL Server in AWS - May 2017 AWS Onli...
Hands On Lab: Introduction to Microsoft SQL Server in AWS - May 2017 AWS Onli...Hands On Lab: Introduction to Microsoft SQL Server in AWS - May 2017 AWS Onli...
Hands On Lab: Introduction to Microsoft SQL Server in AWS - May 2017 AWS Onli...Amazon Web Services
 
Supercharging the Value of Your Data with Amazon S3
Supercharging the Value of Your Data with Amazon S3Supercharging the Value of Your Data with Amazon S3
Supercharging the Value of Your Data with Amazon S3Amazon Web Services
 
Change Data Capture using Kafka
Change Data Capture using KafkaChange Data Capture using Kafka
Change Data Capture using KafkaAkash Vacher
 
Continuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and DockerContinuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and DockerAmazon Web Services
 
Jump Start your First Hour with AWS
Jump Start your First Hour with AWSJump Start your First Hour with AWS
Jump Start your First Hour with AWSAmazon Web Services
 

Tendances (20)

AWS re:Invent 2016: Enterprise Fundamentals: Design Your Account and VPC Arch...
AWS re:Invent 2016: Enterprise Fundamentals: Design Your Account and VPC Arch...AWS re:Invent 2016: Enterprise Fundamentals: Design Your Account and VPC Arch...
AWS re:Invent 2016: Enterprise Fundamentals: Design Your Account and VPC Arch...
 
AWS Black Belt Tips
AWS Black Belt TipsAWS Black Belt Tips
AWS Black Belt Tips
 
AWS 201 - A Walk through the AWS Cloud: What's New with AWS
AWS 201 - A Walk through the AWS Cloud: What's New with AWSAWS 201 - A Walk through the AWS Cloud: What's New with AWS
AWS 201 - A Walk through the AWS Cloud: What's New with AWS
 
Apache Con 2021 Structured Data Streaming
Apache Con 2021 Structured Data StreamingApache Con 2021 Structured Data Streaming
Apache Con 2021 Structured Data Streaming
 
Bridging the Gap: Connecting AWS and Kafka
Bridging the Gap: Connecting AWS and KafkaBridging the Gap: Connecting AWS and Kafka
Bridging the Gap: Connecting AWS and Kafka
 
Deep Dive on Amazon EFS (with Encryption) - AWS Online Tech Talks
Deep Dive on Amazon EFS (with Encryption) - AWS Online Tech TalksDeep Dive on Amazon EFS (with Encryption) - AWS Online Tech Talks
Deep Dive on Amazon EFS (with Encryption) - AWS Online Tech Talks
 
AWS re:Invent 2016: Workshop: AWS Professional Services Effective Architectin...
AWS re:Invent 2016: Workshop: AWS Professional Services Effective Architectin...AWS re:Invent 2016: Workshop: AWS Professional Services Effective Architectin...
AWS re:Invent 2016: Workshop: AWS Professional Services Effective Architectin...
 
AWS re:Invent 2016: Cloud Monitoring - Understanding, Preparing, and Troubles...
AWS re:Invent 2016: Cloud Monitoring - Understanding, Preparing, and Troubles...AWS re:Invent 2016: Cloud Monitoring - Understanding, Preparing, and Troubles...
AWS re:Invent 2016: Cloud Monitoring - Understanding, Preparing, and Troubles...
 
AWS 2016 re:Invent Launch Summary
AWS 2016 re:Invent Launch SummaryAWS 2016 re:Invent Launch Summary
AWS 2016 re:Invent Launch Summary
 
Co 4, session 2, aws analytics services
Co 4, session 2, aws analytics servicesCo 4, session 2, aws analytics services
Co 4, session 2, aws analytics services
 
Full Stack Analytics on AWS - AWS Summit Cape Town 2017
Full Stack Analytics on AWS - AWS Summit Cape Town 2017 Full Stack Analytics on AWS - AWS Summit Cape Town 2017
Full Stack Analytics on AWS - AWS Summit Cape Town 2017
 
Infinite Scaling using Lambda and Aws - Atlogys Tech Talk
Infinite Scaling using Lambda and Aws - Atlogys Tech TalkInfinite Scaling using Lambda and Aws - Atlogys Tech Talk
Infinite Scaling using Lambda and Aws - Atlogys Tech Talk
 
AWS Cloud Kata | Manila - Getting to Scale on AWS
AWS Cloud Kata | Manila - Getting to Scale on AWSAWS Cloud Kata | Manila - Getting to Scale on AWS
AWS Cloud Kata | Manila - Getting to Scale on AWS
 
AWS re:Invent 2016: Big Data Mini Con State of the Union (BDM205)
AWS re:Invent 2016: Big Data Mini Con State of the Union (BDM205)AWS re:Invent 2016: Big Data Mini Con State of the Union (BDM205)
AWS re:Invent 2016: Big Data Mini Con State of the Union (BDM205)
 
Content Management and Running your Website on AWS
Content Management and Running your Website on AWSContent Management and Running your Website on AWS
Content Management and Running your Website on AWS
 
Hands On Lab: Introduction to Microsoft SQL Server in AWS - May 2017 AWS Onli...
Hands On Lab: Introduction to Microsoft SQL Server in AWS - May 2017 AWS Onli...Hands On Lab: Introduction to Microsoft SQL Server in AWS - May 2017 AWS Onli...
Hands On Lab: Introduction to Microsoft SQL Server in AWS - May 2017 AWS Onli...
 
Supercharging the Value of Your Data with Amazon S3
Supercharging the Value of Your Data with Amazon S3Supercharging the Value of Your Data with Amazon S3
Supercharging the Value of Your Data with Amazon S3
 
Change Data Capture using Kafka
Change Data Capture using KafkaChange Data Capture using Kafka
Change Data Capture using Kafka
 
Continuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and DockerContinuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and Docker
 
Jump Start your First Hour with AWS
Jump Start your First Hour with AWSJump Start your First Hour with AWS
Jump Start your First Hour with AWS
 

En vedette

BEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA_es
 
JustGiving – Serverless Data Pipelines, API, Messaging and Stream Processing
JustGiving – Serverless Data Pipelines,  API, Messaging and Stream ProcessingJustGiving – Serverless Data Pipelines,  API, Messaging and Stream Processing
JustGiving – Serverless Data Pipelines, API, Messaging and Stream ProcessingLuis Gonzalez
 
Rafelinginzicht op basis van RSAT 3.0
Rafelinginzicht op basis van RSAT 3.0Rafelinginzicht op basis van RSAT 3.0
Rafelinginzicht op basis van RSAT 3.0Ton Kneepkens
 
Luxury flats in Nashik
Luxury flats in NashikLuxury flats in Nashik
Luxury flats in NashikPARKSYDE
 
공간정보 R&D 중장기 로드맵 수립 공청회
공간정보 R&D 중장기 로드맵 수립 공청회공간정보 R&D 중장기 로드맵 수립 공청회
공간정보 R&D 중장기 로드맵 수립 공청회기성 송
 
C6 3 Tables
C6 3 TablesC6 3 Tables
C6 3 Tablespapettas
 
3Com 3C0EP1500VCX
3Com 3C0EP1500VCX3Com 3C0EP1500VCX
3Com 3C0EP1500VCXsavomir
 
Convertidor mp3
Convertidor mp3Convertidor mp3
Convertidor mp3jearspack
 
Document complémentaire au Rapport 2016 du CICE
Document complémentaire au Rapport 2016 du CICEDocument complémentaire au Rapport 2016 du CICE
Document complémentaire au Rapport 2016 du CICEFrance Stratégie
 
Regolamento comunale per la partecipazione nel governo e nella cura dei beni ...
Regolamento comunale per la partecipazione nel governo e nella cura dei beni ...Regolamento comunale per la partecipazione nel governo e nella cura dei beni ...
Regolamento comunale per la partecipazione nel governo e nella cura dei beni ...3ferrara
 
3 essential features of dental practice management software
3 essential features of dental practice management software3 essential features of dental practice management software
3 essential features of dental practice management softwareShreya Roy
 
Fichas técnicas de productos químicos y recetas
Fichas técnicas de productos químicos  y recetasFichas técnicas de productos químicos  y recetas
Fichas técnicas de productos químicos y recetassegundo Echeverria Gariza
 

En vedette (15)

BEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA | Introducción a Docker
BEEVA | Introducción a Docker
 
JustGiving – Serverless Data Pipelines, API, Messaging and Stream Processing
JustGiving – Serverless Data Pipelines,  API, Messaging and Stream ProcessingJustGiving – Serverless Data Pipelines,  API, Messaging and Stream Processing
JustGiving – Serverless Data Pipelines, API, Messaging and Stream Processing
 
Rafelinginzicht op basis van RSAT 3.0
Rafelinginzicht op basis van RSAT 3.0Rafelinginzicht op basis van RSAT 3.0
Rafelinginzicht op basis van RSAT 3.0
 
Luxury flats in Nashik
Luxury flats in NashikLuxury flats in Nashik
Luxury flats in Nashik
 
공간정보 R&D 중장기 로드맵 수립 공청회
공간정보 R&D 중장기 로드맵 수립 공청회공간정보 R&D 중장기 로드맵 수립 공청회
공간정보 R&D 중장기 로드맵 수립 공청회
 
C6 3 Tables
C6 3 TablesC6 3 Tables
C6 3 Tables
 
3Com 3C0EP1500VCX
3Com 3C0EP1500VCX3Com 3C0EP1500VCX
3Com 3C0EP1500VCX
 
Convertidor mp3
Convertidor mp3Convertidor mp3
Convertidor mp3
 
Document complémentaire au Rapport 2016 du CICE
Document complémentaire au Rapport 2016 du CICEDocument complémentaire au Rapport 2016 du CICE
Document complémentaire au Rapport 2016 du CICE
 
ชุดการเรียนรู้ที่ 10
ชุดการเรียนรู้ที่ 10ชุดการเรียนรู้ที่ 10
ชุดการเรียนรู้ที่ 10
 
Regolamento comunale per la partecipazione nel governo e nella cura dei beni ...
Regolamento comunale per la partecipazione nel governo e nella cura dei beni ...Regolamento comunale per la partecipazione nel governo e nella cura dei beni ...
Regolamento comunale per la partecipazione nel governo e nella cura dei beni ...
 
Framing educational objectives
Framing educational objectivesFraming educational objectives
Framing educational objectives
 
Idents
IdentsIdents
Idents
 
3 essential features of dental practice management software
3 essential features of dental practice management software3 essential features of dental practice management software
3 essential features of dental practice management software
 
Fichas técnicas de productos químicos y recetas
Fichas técnicas de productos químicos  y recetasFichas técnicas de productos químicos  y recetas
Fichas técnicas de productos químicos y recetas
 

Similaire à JustGiving | Serverless Data Pipelines, API, Messaging and Stream Processing

AWS re:Invent 2016: JustGiving: Serverless Data Pipelines, Event-Driven ETL, ...
AWS re:Invent 2016: JustGiving: Serverless Data Pipelines, Event-Driven ETL, ...AWS re:Invent 2016: JustGiving: Serverless Data Pipelines, Event-Driven ETL, ...
AWS re:Invent 2016: JustGiving: Serverless Data Pipelines, Event-Driven ETL, ...Amazon Web Services
 
Building a Server-less Data Lake on AWS - Technical 301
Building a Server-less Data Lake on AWS - Technical 301Building a Server-less Data Lake on AWS - Technical 301
Building a Server-less Data Lake on AWS - Technical 301Amazon Web Services
 
AWS Summit Auckland - Building a Server-less Data Lake on AWS
AWS Summit Auckland - Building a Server-less Data Lake on AWSAWS Summit Auckland - Building a Server-less Data Lake on AWS
AWS Summit Auckland - Building a Server-less Data Lake on AWSAmazon Web Services
 
Ceate a Scalable Cloud Architecture
Ceate a Scalable Cloud ArchitectureCeate a Scalable Cloud Architecture
Ceate a Scalable Cloud ArchitectureAmazon Web Services
 
AWS re:Invent 2016: The State of Serverless Computing (SVR311)
AWS re:Invent 2016: The State of Serverless Computing (SVR311)AWS re:Invent 2016: The State of Serverless Computing (SVR311)
AWS re:Invent 2016: The State of Serverless Computing (SVR311)Amazon Web Services
 
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...Amazon Web Services
 
(BDT317) Building A Data Lake On AWS
(BDT317) Building A Data Lake On AWS(BDT317) Building A Data Lake On AWS
(BDT317) Building A Data Lake On AWSAmazon Web Services
 
AWS Webcast - Managing Big Data in the AWS Cloud_20140924
AWS Webcast - Managing Big Data in the AWS Cloud_20140924AWS Webcast - Managing Big Data in the AWS Cloud_20140924
AWS Webcast - Managing Big Data in the AWS Cloud_20140924Amazon Web Services
 
AWS re:Invent 2016: Accenture Cloud Platform Serverless Journey (ARC202)
AWS re:Invent 2016: Accenture Cloud Platform Serverless Journey (ARC202)AWS re:Invent 2016: Accenture Cloud Platform Serverless Journey (ARC202)
AWS re:Invent 2016: Accenture Cloud Platform Serverless Journey (ARC202)Amazon Web Services
 
AWS re:Invent 2016: Event Handling at Scale: Designing an Auditable Ingestion...
AWS re:Invent 2016: Event Handling at Scale: Designing an Auditable Ingestion...AWS re:Invent 2016: Event Handling at Scale: Designing an Auditable Ingestion...
AWS re:Invent 2016: Event Handling at Scale: Designing an Auditable Ingestion...Amazon Web Services
 
HSBC and AWS Day - Database Options on AWS
HSBC and AWS Day - Database Options on AWSHSBC and AWS Day - Database Options on AWS
HSBC and AWS Day - Database Options on AWSAmazon Web Services
 
AWS January 2016 Webinar Series - Getting Started with Big Data on AWS
AWS January 2016 Webinar Series - Getting Started with Big Data on AWSAWS January 2016 Webinar Series - Getting Started with Big Data on AWS
AWS January 2016 Webinar Series - Getting Started with Big Data on AWSAmazon Web Services
 
AWS re:Invent 2016: Big Data Architectural Patterns and Best Practices on AWS...
AWS re:Invent 2016: Big Data Architectural Patterns and Best Practices on AWS...AWS re:Invent 2016: Big Data Architectural Patterns and Best Practices on AWS...
AWS re:Invent 2016: Big Data Architectural Patterns and Best Practices on AWS...Amazon Web Services
 
Optimizing the Data Tier for Serverless Web Applications - March 2017 Online ...
Optimizing the Data Tier for Serverless Web Applications - March 2017 Online ...Optimizing the Data Tier for Serverless Web Applications - March 2017 Online ...
Optimizing the Data Tier for Serverless Web Applications - March 2017 Online ...Amazon Web Services
 
Getting Started with AWS Lambda and the Serverless Cloud - AWS Summit Cape T...
 Getting Started with AWS Lambda and the Serverless Cloud - AWS Summit Cape T... Getting Started with AWS Lambda and the Serverless Cloud - AWS Summit Cape T...
Getting Started with AWS Lambda and the Serverless Cloud - AWS Summit Cape T...Amazon Web Services
 
Serverless Architecture Patterns
Serverless Architecture PatternsServerless Architecture Patterns
Serverless Architecture PatternsAmazon Web Services
 

Similaire à JustGiving | Serverless Data Pipelines, API, Messaging and Stream Processing (20)

AWS re:Invent 2016: JustGiving: Serverless Data Pipelines, Event-Driven ETL, ...
AWS re:Invent 2016: JustGiving: Serverless Data Pipelines, Event-Driven ETL, ...AWS re:Invent 2016: JustGiving: Serverless Data Pipelines, Event-Driven ETL, ...
AWS re:Invent 2016: JustGiving: Serverless Data Pipelines, Event-Driven ETL, ...
 
Building a Server-less Data Lake on AWS - Technical 301
Building a Server-less Data Lake on AWS - Technical 301Building a Server-less Data Lake on AWS - Technical 301
Building a Server-less Data Lake on AWS - Technical 301
 
AWS Summit Auckland - Building a Server-less Data Lake on AWS
AWS Summit Auckland - Building a Server-less Data Lake on AWSAWS Summit Auckland - Building a Server-less Data Lake on AWS
AWS Summit Auckland - Building a Server-less Data Lake on AWS
 
Best of re:Invent
Best of re:InventBest of re:Invent
Best of re:Invent
 
Create cloud service on AWS
Create cloud service on AWSCreate cloud service on AWS
Create cloud service on AWS
 
Ceate a Scalable Cloud Architecture
Ceate a Scalable Cloud ArchitectureCeate a Scalable Cloud Architecture
Ceate a Scalable Cloud Architecture
 
The Best of re:invent 2016
The Best of re:invent 2016The Best of re:invent 2016
The Best of re:invent 2016
 
AWS re:Invent 2016: The State of Serverless Computing (SVR311)
AWS re:Invent 2016: The State of Serverless Computing (SVR311)AWS re:Invent 2016: The State of Serverless Computing (SVR311)
AWS re:Invent 2016: The State of Serverless Computing (SVR311)
 
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
 
(BDT317) Building A Data Lake On AWS
(BDT317) Building A Data Lake On AWS(BDT317) Building A Data Lake On AWS
(BDT317) Building A Data Lake On AWS
 
AWS Webcast - Managing Big Data in the AWS Cloud_20140924
AWS Webcast - Managing Big Data in the AWS Cloud_20140924AWS Webcast - Managing Big Data in the AWS Cloud_20140924
AWS Webcast - Managing Big Data in the AWS Cloud_20140924
 
AWS re:Invent 2016: Accenture Cloud Platform Serverless Journey (ARC202)
AWS re:Invent 2016: Accenture Cloud Platform Serverless Journey (ARC202)AWS re:Invent 2016: Accenture Cloud Platform Serverless Journey (ARC202)
AWS re:Invent 2016: Accenture Cloud Platform Serverless Journey (ARC202)
 
AWS re:Invent 2016: Event Handling at Scale: Designing an Auditable Ingestion...
AWS re:Invent 2016: Event Handling at Scale: Designing an Auditable Ingestion...AWS re:Invent 2016: Event Handling at Scale: Designing an Auditable Ingestion...
AWS re:Invent 2016: Event Handling at Scale: Designing an Auditable Ingestion...
 
HSBC and AWS Day - Database Options on AWS
HSBC and AWS Day - Database Options on AWSHSBC and AWS Day - Database Options on AWS
HSBC and AWS Day - Database Options on AWS
 
AWS January 2016 Webinar Series - Getting Started with Big Data on AWS
AWS January 2016 Webinar Series - Getting Started with Big Data on AWSAWS January 2016 Webinar Series - Getting Started with Big Data on AWS
AWS January 2016 Webinar Series - Getting Started with Big Data on AWS
 
AWS re:Invent 2016: Big Data Architectural Patterns and Best Practices on AWS...
AWS re:Invent 2016: Big Data Architectural Patterns and Best Practices on AWS...AWS re:Invent 2016: Big Data Architectural Patterns and Best Practices on AWS...
AWS re:Invent 2016: Big Data Architectural Patterns and Best Practices on AWS...
 
Optimizing the Data Tier for Serverless Web Applications - March 2017 Online ...
Optimizing the Data Tier for Serverless Web Applications - March 2017 Online ...Optimizing the Data Tier for Serverless Web Applications - March 2017 Online ...
Optimizing the Data Tier for Serverless Web Applications - March 2017 Online ...
 
Getting Started with AWS Lambda and the Serverless Cloud - AWS Summit Cape T...
 Getting Started with AWS Lambda and the Serverless Cloud - AWS Summit Cape T... Getting Started with AWS Lambda and the Serverless Cloud - AWS Summit Cape T...
Getting Started with AWS Lambda and the Serverless Cloud - AWS Summit Cape T...
 
Serverless Architecture Patterns
Serverless Architecture PatternsServerless Architecture Patterns
Serverless Architecture Patterns
 
Deep Dive in Big Data
Deep Dive in Big DataDeep Dive in Big Data
Deep Dive in Big Data
 

Plus de BEEVA_es

BEEVA | The reality of IoT as of today
BEEVA | The reality of IoT as of todayBEEVA | The reality of IoT as of today
BEEVA | The reality of IoT as of todayBEEVA_es
 
BEEVA | Diseño UX para chatbots
BEEVA | Diseño UX para chatbotsBEEVA | Diseño UX para chatbots
BEEVA | Diseño UX para chatbotsBEEVA_es
 
BEEVA | Crear bots avanzados
BEEVA | Crear bots avanzadosBEEVA | Crear bots avanzados
BEEVA | Crear bots avanzadosBEEVA_es
 
BEEVA | Ruling the world galaxy with your voice and the cloud
 BEEVA | Ruling the world galaxy with your voice and the cloud BEEVA | Ruling the world galaxy with your voice and the cloud
BEEVA | Ruling the world galaxy with your voice and the cloudBEEVA_es
 
WORKSHOP II: API REST
WORKSHOP II: API RESTWORKSHOP II: API REST
WORKSHOP II: API RESTBEEVA_es
 
WORKSHOP I: Introducción a API REST
WORKSHOP I: Introducción a API RESTWORKSHOP I: Introducción a API REST
WORKSHOP I: Introducción a API RESTBEEVA_es
 
[API Days] Cooking with apis
[API Days] Cooking with apis[API Days] Cooking with apis
[API Days] Cooking with apisBEEVA_es
 
Como ganar un hackathon
Como ganar un hackathonComo ganar un hackathon
Como ganar un hackathonBEEVA_es
 
Bases de Datos No Relacionales
Bases de Datos No RelacionalesBases de Datos No Relacionales
Bases de Datos No RelacionalesBEEVA_es
 
Curso de Responsive Web Design de BEEVA
Curso de Responsive Web Design de BEEVACurso de Responsive Web Design de BEEVA
Curso de Responsive Web Design de BEEVABEEVA_es
 
Push comercial ANS BEEVA v1.0
Push comercial ANS BEEVA v1.0Push comercial ANS BEEVA v1.0
Push comercial ANS BEEVA v1.0BEEVA_es
 
Desmitificando un proyecto de Big Data
Desmitificando un proyecto de Big DataDesmitificando un proyecto de Big Data
Desmitificando un proyecto de Big DataBEEVA_es
 
Cómo empezar a implementar proyectos Big Data en tu organización
Cómo empezar a implementar proyectos Big Data en tu organizaciónCómo empezar a implementar proyectos Big Data en tu organización
Cómo empezar a implementar proyectos Big Data en tu organizaciónBEEVA_es
 
Hadoop en la nube: ETL a ELT
Hadoop en la nube: ETL a ELT Hadoop en la nube: ETL a ELT
Hadoop en la nube: ETL a ELT BEEVA_es
 
Siete "consejos" para abordar un proyecto con tecnologías Big Data
Siete "consejos" para abordar un proyecto con tecnologías Big DataSiete "consejos" para abordar un proyecto con tecnologías Big Data
Siete "consejos" para abordar un proyecto con tecnologías Big DataBEEVA_es
 
Bases de Datos no relacionales
Bases de Datos no relacionalesBases de Datos no relacionales
Bases de Datos no relacionalesBEEVA_es
 
Data Platform de BEEVA
Data Platform de BEEVAData Platform de BEEVA
Data Platform de BEEVABEEVA_es
 
Gestión del software con Maven y Jenkins
Gestión del software con Maven y JenkinsGestión del software con Maven y Jenkins
Gestión del software con Maven y JenkinsBEEVA_es
 
El presente del mundo del retail
El presente del mundo del retailEl presente del mundo del retail
El presente del mundo del retailBEEVA_es
 
El presente del mundo telco
El presente del mundo telcoEl presente del mundo telco
El presente del mundo telcoBEEVA_es
 

Plus de BEEVA_es (20)

BEEVA | The reality of IoT as of today
BEEVA | The reality of IoT as of todayBEEVA | The reality of IoT as of today
BEEVA | The reality of IoT as of today
 
BEEVA | Diseño UX para chatbots
BEEVA | Diseño UX para chatbotsBEEVA | Diseño UX para chatbots
BEEVA | Diseño UX para chatbots
 
BEEVA | Crear bots avanzados
BEEVA | Crear bots avanzadosBEEVA | Crear bots avanzados
BEEVA | Crear bots avanzados
 
BEEVA | Ruling the world galaxy with your voice and the cloud
 BEEVA | Ruling the world galaxy with your voice and the cloud BEEVA | Ruling the world galaxy with your voice and the cloud
BEEVA | Ruling the world galaxy with your voice and the cloud
 
WORKSHOP II: API REST
WORKSHOP II: API RESTWORKSHOP II: API REST
WORKSHOP II: API REST
 
WORKSHOP I: Introducción a API REST
WORKSHOP I: Introducción a API RESTWORKSHOP I: Introducción a API REST
WORKSHOP I: Introducción a API REST
 
[API Days] Cooking with apis
[API Days] Cooking with apis[API Days] Cooking with apis
[API Days] Cooking with apis
 
Como ganar un hackathon
Como ganar un hackathonComo ganar un hackathon
Como ganar un hackathon
 
Bases de Datos No Relacionales
Bases de Datos No RelacionalesBases de Datos No Relacionales
Bases de Datos No Relacionales
 
Curso de Responsive Web Design de BEEVA
Curso de Responsive Web Design de BEEVACurso de Responsive Web Design de BEEVA
Curso de Responsive Web Design de BEEVA
 
Push comercial ANS BEEVA v1.0
Push comercial ANS BEEVA v1.0Push comercial ANS BEEVA v1.0
Push comercial ANS BEEVA v1.0
 
Desmitificando un proyecto de Big Data
Desmitificando un proyecto de Big DataDesmitificando un proyecto de Big Data
Desmitificando un proyecto de Big Data
 
Cómo empezar a implementar proyectos Big Data en tu organización
Cómo empezar a implementar proyectos Big Data en tu organizaciónCómo empezar a implementar proyectos Big Data en tu organización
Cómo empezar a implementar proyectos Big Data en tu organización
 
Hadoop en la nube: ETL a ELT
Hadoop en la nube: ETL a ELT Hadoop en la nube: ETL a ELT
Hadoop en la nube: ETL a ELT
 
Siete "consejos" para abordar un proyecto con tecnologías Big Data
Siete "consejos" para abordar un proyecto con tecnologías Big DataSiete "consejos" para abordar un proyecto con tecnologías Big Data
Siete "consejos" para abordar un proyecto con tecnologías Big Data
 
Bases de Datos no relacionales
Bases de Datos no relacionalesBases de Datos no relacionales
Bases de Datos no relacionales
 
Data Platform de BEEVA
Data Platform de BEEVAData Platform de BEEVA
Data Platform de BEEVA
 
Gestión del software con Maven y Jenkins
Gestión del software con Maven y JenkinsGestión del software con Maven y Jenkins
Gestión del software con Maven y Jenkins
 
El presente del mundo del retail
El presente del mundo del retailEl presente del mundo del retail
El presente del mundo del retail
 
El presente del mundo telco
El presente del mundo telcoEl presente del mundo telco
El presente del mundo telco
 

Dernier

Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsyncWhy does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsyncssuser2ae721
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AIabhishek36461
 
computer application and construction management
computer application and construction managementcomputer application and construction management
computer application and construction managementMariconPadriquez1
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...121011101441
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxk795866
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfme23b1001
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvLewisJB
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...asadnawaz62
 
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)Dr SOUNDIRARAJ N
 
Class 1 | NFPA 72 | Overview Fire Alarm System
Class 1 | NFPA 72 | Overview Fire Alarm SystemClass 1 | NFPA 72 | Overview Fire Alarm System
Class 1 | NFPA 72 | Overview Fire Alarm Systemirfanmechengr
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
Solving The Right Triangles PowerPoint 2.ppt
Solving The Right Triangles PowerPoint 2.pptSolving The Right Triangles PowerPoint 2.ppt
Solving The Right Triangles PowerPoint 2.pptJasonTagapanGulla
 
Piping Basic stress analysis by engineering
Piping Basic stress analysis by engineeringPiping Basic stress analysis by engineering
Piping Basic stress analysis by engineeringJuanCarlosMorales19600
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfROCENODodongVILLACER
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catcherssdickerson1
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerAnamika Sarkar
 
welding defects observed during the welding
welding defects observed during the weldingwelding defects observed during the welding
welding defects observed during the weldingMuhammadUzairLiaqat
 

Dernier (20)

Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsyncWhy does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AI
 
computer application and construction management
computer application and construction managementcomputer application and construction management
computer application and construction management
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptx
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdf
 
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvv
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...
 
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
 
Class 1 | NFPA 72 | Overview Fire Alarm System
Class 1 | NFPA 72 | Overview Fire Alarm SystemClass 1 | NFPA 72 | Overview Fire Alarm System
Class 1 | NFPA 72 | Overview Fire Alarm System
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 
Solving The Right Triangles PowerPoint 2.ppt
Solving The Right Triangles PowerPoint 2.pptSolving The Right Triangles PowerPoint 2.ppt
Solving The Right Triangles PowerPoint 2.ppt
 
Piping Basic stress analysis by engineering
Piping Basic stress analysis by engineeringPiping Basic stress analysis by engineering
Piping Basic stress analysis by engineering
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdf
 
Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdfDesign and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
 
welding defects observed during the welding
welding defects observed during the weldingwelding defects observed during the welding
welding defects observed during the welding
 

JustGiving | Serverless Data Pipelines, API, Messaging and Stream Processing

  • 1. JustGiving – Serverless Data Pipelines, API, Messaging and Stream Processing Richard Freeman, Ph.D. Lead Data Engineer and Architect 23rd March 2017 RAVEN data science platform in AWS
  • 2. What to Expect from the Session • Recap of some AWS services • Event-driven data platform at JustGiving • Serverless computing • Six serverless patterns • Serverless recommendations and best practices
  • 3. Recap of Some AWS Services
  • 4. Managed Services Amazon S3 • Distributed web scale object storage • Highly scalable, reliable, and secure • Pay only for what you use • Supports encryption AWS Lambda • Runs code in response to triggers • Amazon API Gateway requests • Serverless • Pay only when code runs • Automatically scales and high availability Amazon Simple Notification Service (SNS) • Set up, operate, and send notifications • Publish messages from an application and immediately deliver them to subscribers or other applications • Push messages to mobile devices Amazon DynamoDB • Fast, fully-managed NoSQL Database Service • Capable of handling any amount of data • Durable and Highly Available • SSD storage • Cost Effective
  • 5. Amazon Kinesis Amazon Kinesis Firehose Easily load massive volumes of streaming data into S3, Amazon Redshift, and Amazon Elasticsearch Service Amazon Kinesis Analytics Easily analyze streaming data with standard SQL Amazon Kinesis Streams Build your own custom applications that process or analyze streaming data. Scales out using shards
  • 7. We are A tech-for-good platform for events based fundraising, charities and crowdfunding “Ensure no good cause goes unfunded” • The #1 platform for online social giving in the world • Raised $4.2bn in donations • 28.5m users • 196 countries • 27,000 good causes • Peaks in traffic: Ice bucket, natural disasters • GiveGraph • 91 million nodes • 0.53 billion relationships
  • 9. Our Requirements • Limitation in existing SQL Server data warehouse • Long running and complex queries for data scientists • New data sources: API, clickstream, unstructured, log, behavioural data etc. • Easy to add data sources and pipelines • Reduce time spent on data preparation and experiments Machine learning Graph processing Natural language processing Stream processing Data ingestion Data preparation Automated Pipelines Insight Predictions Metrics Inspire Data-driven Complex Impact
  • 10. Event Driven Data Platform at JustGiving [1 of 2] • JustGiving developed in-house analytics and data science platform in AWS called RAVEN. • Reporting, Analytics, Visualization, Experimental, Networks • Uses event-driven and serverless pipelines rather than directed acyclic graphs (DAGs) or Workflows • Messaging, queues, pub/sub patterns • Separate storage from compute • Supports scalable event driven • ETL / ELT • Machine learning • Natural language processing • Graph processing • Allows users to consume raw tables, data blocks, metrics, KPIs, insight, reports, etc.
  • 11. Event Driven Data Platform at JustGiving [2 of 2]
  • 12. Event Driven ETL and Data Pipeline Patterns [1 of 2]
  • 13. Event Driven ETL and Data Pipeline Patterns [2 of 2] Pros • Decouple the L in ETL / ELT • Adds lots of flexibility to loading • Supports incremental and multi-cluster loads • Simple reload on failure, e.g., send an Amazon SNS/Amazon SQS message • Basic sequencing can be done within message Cons: • Does not support complex loading workflows • No native FIFO support in SQS (support added Nov 17, 2016)
  • 15. AWS Lambda Functions EVENT SOURCE FUNCTION SERVICES (ANYTHING) Data stores & streaming event sources e.g. Amazon S3, Amazon DynamoDB, Amazon Kinesis Requests to endpoints e.g. Amazon Alexa Skills, Amazon API Gateway Changes in repositories and logs e.g. AWS Code Commit, Amazon CloudWatch Node.js Python Java C# Event & Message services e.g. Amazon SNS, Cron events
  • 16. Writing Lambda Functions • The Basics • AWS SDK, IAM Roles and Policies • Python, Node.js, Java8, and C# • Lambda handles inbound traffic and integration • Stateless • Use S3, DynamoDB, or other Internet storage for persistent data • 128Mb and 1.5GB RAM • Duration 100ms to 5min • Runs your code in response to events or requests • Pay for execution time in 100ms increments • Familiar • Use bash, processes, threads, /tmp, sockets, … • Bring your own libraries, even native ones
  • 17. AWS Lambda, container or EC2 instance? Amazon EC2 Instance Containers AWS Lambda Infrastructure You configure, maintain and needs be built for HA You configure, maintain and needs be built for HA Request-driven and AWS manages Instance Flexibility Choose instance type, OS, etc. Choose instance type, OS, etc. Prioritises ease of use - one OS, default hardware, no maintenance or scheduled downtime Scaling Provisioning instances and configure auto-scaling Provisioning containers and configure auto-scaling Implicit, based on requests Launch Minutes Seconds Milliseconds to few seconds State State or stateless State or stateless Stateless AWS Integration Custom Custom Built-in triggers SNS, Kinesis Stream, S3, API Gateway etc. Cost EC2 per hour and spot Containers on EC2 clusters per hour and spot Per 100ms, invocation and RAM
  • 19. Pattern 1 – Serverless Message Bus [1 of 2]
  • 20. Pattern 1 – Serverless Message Bus [2 of 2] Pros • Simple serverless and highly available service bus • Centralised logic for transformation and routing • Kinesis supports more than one Lambda per message • Kinesis streams support replay Cons: • SNS - Scalability one lambda per SNS message • Lambda limits: 500 MB disk, 1.5GB RAM, complete within 5min
  • 21. Pattern 2 – Serverless Steaming Data Capture API [1 of 2]
  • 22. Pattern 2 – Serverless Steaming Data Capture API [2 of 2] Pros: • Serverless real-time stream capture pipeline • Managed API configuration and deployment • Secure - IAM Roles • Simple transformation • Cost effective – pay for what you use Cons: • Complex transformation • API Gateway and Kinesis soft limits need to be aligned
  • 23. Pattern 3 - Serverless Small Data Pipeline [1 of 2]
  • 24. Pattern 3 - Serverless Small Data Pipeline [2 of 2] Pros: • Batch and incremental possible • Useful for small and infrequently added files • Can preserve file name • Can be used for projection, enrichment, parsing, etc. Cons: • Lambda limits: 500 MB disk, 1.5GB RAM, complete within 5min • Complex joins • One file on input and output
  • 25. Pattern 4 - Serverless Streamify File and Merge into Larger Files [1 of 2]
  • 26. Pattern 4 - Serverless Streamify File and Merge into Larger Files [2 of 2] Pros: • Batch and incremental possible • Useful for small and frequently added files • Lambda and Amazon Kinesis Firehose - Serverless way to persist a stream Cons: • Lambda limits: 500 MB disk, 1.5GB RAM, complete within 5min • Firehose limits: 15 min, 128 MB buffer • Complex joins
  • 27. Pattern 5 - Serverless Streaming Analytics and Persist Stream [1 of 2]
  • 28. Pattern 5 - Serverless Streaming Analytics and Persist Stream [2 of 2] Pros: • Stream processing without a running cluster • Lambda and Amazon Kinesis Analytics automatic scaling • A static website can access DynamoDB metrics • Choice of language: Python, SQL, Node.js, Java8, and C# • Code can be changed without interruption Cons: • Lambda limits: 500 MB disk, 1.5GB RAM, complete within 5min • Firehose limits: 15 min, 128 MB buffer • Complex stream joins
  • 29. Pattern 6 – Serverless Data and Process API [1 of 2]
  • 30. Pattern 6 – Serverless Data and Process API [2 of 2] Pros: • Serverless data API • DynamoDB uses IAM roles • Choice of language: Python, Node.js, C#, and Java8 • Code can be changed without interruption Cons: • RDS needs encrypted user/pass and VPC • Lambda limits: 500 MB disk, 1.5GB RAM, complete within 5min • Complex or compute intensive queries
  • 32. Lambda Functions Are Good For… • REST API micro-services backend • Rows & events • Parsing, projecting, enriching, filtering etc. • REST and other AWS integration • Built in triggers API Gateway, S3, SNS, CloudWatch, Kinesis Streams etc. • Secure • IAM Roles, VPC and KMS • Highly Available and auto-scaling • Simple packaging and deployment • For streams, easily modify code
  • 33. Serverless Data Processing Patterns Pattern Serverless Spark on EMR when … Pattern 3 - Serverless small data pipeline • Small and infrequently added files • Preserves existing file names • Big files > 400MB • Joining data sources • Merge small files into one Pattern 4 - Serverless streamify file and merge into larger files • Merge small frequently added files into a stream or larger ones in S3 • Streaming analytics and time series • Big files > 400MB • Joining streams or data sources Pattern 5 - Serverless analytics and persist stream • Streaming analytics and time series • Real-time dashboard • Persist an Amazon Kinesis stream • Joining streams or data sources
  • 34. Understand the Lambda limits • Memory, local disk, execution time • Limited Tooling – Improving • Throttle – review the architecture and exception DLQ • Concurrent Lambda functions execution • AWS account • DynamoDB and Amazon Kinesis shard iterators • Complex joins harder to implement – better in Spark on EMR • ORC and Parquet – better in Spark on EMR
  • 35. Lambda Recommendations • Test with production volumes • Think deployment and version control • Frameworks Serverless, Chalice etc. • New • AWS Serverless Application Model (SAM) • Environment variables • Dead Letter Queue • Program defensively Exceptions, e.g. invalid records • Reduce execution time • Minimize logging • Optimize code, e.g. aggregate in memory to reduce writes
  • 36. 1-2-3 of Lambda 1. Create IAM Role • Access resources, e.g. DynamoDB, Kinesis Streams etc. • Lambda execution 2. Create Lambda Function • Configuration and function code • Test manually 3. Deploy package • Enable event Trigger • Monitor First 1 million requests per month are free !
  • 37. Other Serverless Example Use Cases Thumbnail Generation • http://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html Mobile Application Backend • http://docs.aws.amazon.com/lambda/latest/dg/with-on-demand-custom-android-example.html Authorizing Access Through a Proxy Resource • https://aws.amazon.com/blogs/compute/authorizing-access-through-a-proxy-resource-to-amazon-api-gateway-and-aws-lambda- using-amazon-cognito-user-pools/ Serverless IoT Back Ends • https://www.slideshare.net/AmazonWebServices/aws-reinvent-2016-serverless-iot-back-ends-iot401 Creating Voice Experiences with Alexa Skills • https://www.slideshare.net/AmazonWebServices/aws-reinvent-2016-workshop-creating-voice-experiences-with-alexa-skills-from- idea-to-testing-in-two-hours-alx203 Lambda with AWS CloudTrail • http://docs.aws.amazon.com/lambda/latest/dg/with-cloudtrail.html Slack Integration for AWS Lambda • https://aws.amazon.com/blogs/aws/new-slack-integration-blueprints-for-aws-lambda/ Dynamic GitHub Actions with AWS Lambda • https://aws.amazon.com/blogs/compute/dynamic-github-actions-with-aws-lambda/ Lambda with Scheduled Events • http://docs.aws.amazon.com/lambda/latest/dg/with-scheduled-events.html
  • 38. Find Out More Serverless Cross Account Stream Replication Using AWS Lambda, Amazon DynamoDB, and Amazon Kinesis Firehose (AWS Compute Blog) • https://aws.amazon.com/blogs/compute/serverless-cross-account-stream-replication-using-aws-lambda- amazon-dynamodb-and-amazon-kinesis-firehose Analyze a Time Series in Real Time with AWS Lambda, Amazon Kinesis and Amazon DynamoDB Streams (AWS Big Data Blog) • https://blogs.aws.amazon.com/bigdata/post/Tx148NMGPIJ6F6F/Analyze-a-Time-Series-in-Real-Time-with-AWS-Lambda- Amazon-Kinesis-and-Amazon-Dyn Serverless Dynamic Real-Time Dashboard with AWS DynamoDB, S3 and Cognito (Medium.com) • https://medium.com/@rfreeman/serverless-dynamic-real-time-dashboard-with-aws-dynamodb-a1a7f8d3bc01 JustGiving Public Repository • https://github.com/JustGiving Serverless at re:Invent 2016 – Wrap-up (AWS Compute Blog) • https://aws.amazon.com/blogs/compute/serverless-at-reinvent-2016-wrap-up/
  • 39. Summary • Challenges of existing big data pipelines • Event-driven ETL and serverless pipelines at JustGiving • Serverless computing • Six patterns for scalable data pipelines 1. Serverless message bus 2. Serverless steaming data capture API 3. Serverless small data pipeline 4. Serverless streamify file and merge into larger files 5. Serverless streaming analytics and persist stream 6. Serverless data and process API • Recommendations • Using AWS managed services • Understanding Lambda
  • 40. Thank You! “Ensure no good cause goes unfunded” Contact https://linkedin.com/in/drfreeman