SlideShare a Scribd company logo
1 of 35
Tracking and
Monitoring APIs
at Scale
Building a big-data pipeline
with Nginx
Cosmin Stanciu
Lead Software Engineer, Adobe I/O
2
#nginx #nginxconf3
Adobe API’s
Adobe
Document Cloud
Adobe
Creative Cloud
Adobe
Marketing Cloud
4
API Gateway
5
Adobe API Gateway
Validation Caching Throttling Logging
6
• apigateway
• api-gateway-request-validation
• api-gateway-cachemanager
• api-gateway-aws
• api-gateway-async-logger
Github
metadata
request
response
7
600M/day
API Gateway
Kinesis / Kafka
#nginx #nginxconf8
Data
Analytics
Debugging
Business model
Monitoring
9
10
#nginx #nginxconf
– Carl Sagan
If you wish to make an apple pie from scratch, you must
first invent the universe.
11
architecture
13
architecture
BatchServiceSpeed
HDFS SQLStreaming
{API}
Agg. Index
Speed IndexConsumers
Kinesis
S3
14
- Streaming layer
Kinesis
BatchServiceSpeed
HDFS SQLStreaming
{API}
Agg. Index
Speed IndexConsumers
S3
15
Kinesis Logger Config
1. local logger_module = “api-gateway.logger.BufferedAsyncLogger"
3. local logger_opts = {
4. flush_length = 500,
5. flush_interval = 5,
6. flush_concurrency = 16,
7. flush_throughput = 10000,
8. sharedDict = “stats_kinesis”
9. }
PutRecords - ever
request up to 500
records
5s - interval in
seconds to flush
regardless if the
buffer is full or not
Max parallel
threads used for
sending logs
max logs /
SECOND that can
be sent to the
Kinesis backend
dict for caching the
logs
16
Kinesis Logger Config
1. backend_opts = {
2. aws_region = ngx.var.aws_region or "us-east-1",
3. kinesis_stream_name = "api-gateway-stream",
4. aws_credentials = {
5. provider = "api-gateway.aws.AWSSTSCredentials",
6. role_ARN = "arn:aws:iam::123456789012:user/admin,
7. role_session_name = "kinesis-logger-session",
8. shared_cache_dict = “aws_credentials”
9. }
10. }
Security Token Service
AsumeRole returns a
set of temporary
security credentials
Cluster
18
Cluster deployment
VPC
PublicPrivate
Stateless
Body
Stateful
Body
Nucleus Membrane
Mesos Agents
HDFS NameNode
Zookeeper
Mesos master
Stateless
Workloads
Stateful Workloads
- HDFS
DataNodes
API Gateway
- Auto discover
- Load balancing
- Security
19
Speed
Speed IndexConsumers
Kinesis
BatchService
HDFS SQLStreaming
{API}
Agg. Index
S3
Real-time data
Kibana UI
Debugging
Monitoring
- Speed layer
20
- Batch layer
Batch
HDFS SQLStreaming
Agg. Index
ServiceSpeed
{API}
Speed IndexConsumers
Kinesis
S3
Docker / Marathon
Batch size
Checkpointing Kinesis /
Spark
Store in Parquet format
Temporary storage
Parquet files
S3 sync
Elasticsearch
Index
Docker / Chronos
Daily / Hourly
aggregation
Run job hourly or daily
#nginx #nginxconf21
OLAP Data Cube
count
time
consumer
service
The Elasticsearch aggregated
index can be represented as a
Data Cube
The cube is actually a hypercube
with more than 3 dimensions
Users can apply
filters, roll-ups or drill-downs
22
Service
{API}
Agg. Index
Speed Index
S3
BatchSpeed
HDFS SQLStreaming
Consumers
Kinesis
- Service layer
Testing
24
Performance testing
25
Functional testing
HDFS SQLStreaming
Kafka
Testing app
26
Canary testing
{API}
Agg. Index Speed Index
Canary traffic
Results
28
29
Results
30
Monitoring
0
1750
3500
5250
7000
8750
14 15 16 17 18 19 20
Realtime Forcast
Demo
32
Functional testing
HDFS SQLStreaming
Kafka
Testing app
33
Kafka Logger Config
1. local logger_module = “api-gateway.logger.BufferedAsyncLogger"
3. local logger_opts = {
4. flush_length = 500,
5. flush_interval = 1,
6. flush_concurrency = 16,
7. flush_throughput = 10000,
8. sharedDict = “stats_kafka”
9. }
34
#nginx #nginxconf
Thank You
35
facebook.com/selfxp
linkedin.com/in/cosminstanciu
@selfxp80

More Related Content

What's hot

Riga DevDays 2017 - Efficient AWS Lambda
Riga DevDays 2017 - Efficient AWS LambdaRiga DevDays 2017 - Efficient AWS Lambda
Riga DevDays 2017 - Efficient AWS LambdaAntons Kranga
 
Manage your APIs and Microservices with an API Gateway
Manage your APIs and Microservices with an API GatewayManage your APIs and Microservices with an API Gateway
Manage your APIs and Microservices with an API GatewayThibault Charbonnier
 
Microservices and Container Management with NGINX Plus and Mesosphere DC/OS
Microservices and Container Management with NGINX Plus and Mesosphere DC/OSMicroservices and Container Management with NGINX Plus and Mesosphere DC/OS
Microservices and Container Management with NGINX Plus and Mesosphere DC/OSNGINX, Inc.
 
DevOps Days Tel Aviv - Serverless Architecture
DevOps Days Tel Aviv - Serverless ArchitectureDevOps Days Tel Aviv - Serverless Architecture
DevOps Days Tel Aviv - Serverless ArchitectureAntons Kranga
 
Kubernetes Meetup: CNI, Flex Volume, and Scheduler
Kubernetes Meetup: CNI, Flex Volume, and SchedulerKubernetes Meetup: CNI, Flex Volume, and Scheduler
Kubernetes Meetup: CNI, Flex Volume, and SchedulerKatie Crimi
 
Introduction to Google Cloud Platform
Introduction to Google Cloud PlatformIntroduction to Google Cloud Platform
Introduction to Google Cloud PlatformOpsta
 
Cncf event driven autoscaling with keda
Cncf   event driven autoscaling with kedaCncf   event driven autoscaling with keda
Cncf event driven autoscaling with kedaJurajHantk
 
Redis Streams for Event-Driven Microservices
Redis Streams for Event-Driven MicroservicesRedis Streams for Event-Driven Microservices
Redis Streams for Event-Driven MicroservicesRedis Labs
 
Riga dev day: Lambda architecture at AWS
Riga dev day: Lambda architecture at AWSRiga dev day: Lambda architecture at AWS
Riga dev day: Lambda architecture at AWSAntons Kranga
 
12.07.2017 Docker Meetup - POSTGRE SQL ON KUBERNETES
12.07.2017 Docker Meetup - POSTGRE SQL ON KUBERNETES12.07.2017 Docker Meetup - POSTGRE SQL ON KUBERNETES
12.07.2017 Docker Meetup - POSTGRE SQL ON KUBERNETESZalando adtech lab
 
From AWS to GCP, TABLEAPP Architecture Story
From AWS to GCP, TABLEAPP Architecture StoryFrom AWS to GCP, TABLEAPP Architecture Story
From AWS to GCP, TABLEAPP Architecture StoryYen-Wen Chen
 
Sf bay area Kubernetes meetup dec8 2016 - deployment models
Sf bay area Kubernetes meetup dec8 2016 - deployment modelsSf bay area Kubernetes meetup dec8 2016 - deployment models
Sf bay area Kubernetes meetup dec8 2016 - deployment modelsPeter Ss
 
Improve monitoring and observability for kubernetes with oss tools
Improve monitoring and observability for kubernetes with oss toolsImprove monitoring and observability for kubernetes with oss tools
Improve monitoring and observability for kubernetes with oss toolsNilesh Gule
 
MongoDB .local Bengaluru 2019: Lift & Shift MongoDB to Atlas
MongoDB .local Bengaluru 2019: Lift & Shift MongoDB to AtlasMongoDB .local Bengaluru 2019: Lift & Shift MongoDB to Atlas
MongoDB .local Bengaluru 2019: Lift & Shift MongoDB to AtlasMongoDB
 
Azure kubernetes service (aks) part 3
Azure kubernetes service (aks)   part 3Azure kubernetes service (aks)   part 3
Azure kubernetes service (aks) part 3Nilesh Gule
 
Putting Kafka Together with the Best of Google Cloud Platform
Putting Kafka Together with the Best of Google Cloud Platform Putting Kafka Together with the Best of Google Cloud Platform
Putting Kafka Together with the Best of Google Cloud Platform confluent
 
Shakr - Container CI/CD with Google Cloud Platform
Shakr - Container CI/CD with Google Cloud PlatformShakr - Container CI/CD with Google Cloud Platform
Shakr - Container CI/CD with Google Cloud PlatformMinku Lee
 
Serverless and Servicefull Applications - Where Microservices complements Ser...
Serverless and Servicefull Applications - Where Microservices complements Ser...Serverless and Servicefull Applications - Where Microservices complements Ser...
Serverless and Servicefull Applications - Where Microservices complements Ser...Red Hat Developers
 
Event driven workloads on Kubernetes with KEDA
Event driven workloads on Kubernetes with KEDAEvent driven workloads on Kubernetes with KEDA
Event driven workloads on Kubernetes with KEDANilesh Gule
 

What's hot (20)

Riga DevDays 2017 - Efficient AWS Lambda
Riga DevDays 2017 - Efficient AWS LambdaRiga DevDays 2017 - Efficient AWS Lambda
Riga DevDays 2017 - Efficient AWS Lambda
 
Manage your APIs and Microservices with an API Gateway
Manage your APIs and Microservices with an API GatewayManage your APIs and Microservices with an API Gateway
Manage your APIs and Microservices with an API Gateway
 
Microservices and Container Management with NGINX Plus and Mesosphere DC/OS
Microservices and Container Management with NGINX Plus and Mesosphere DC/OSMicroservices and Container Management with NGINX Plus and Mesosphere DC/OS
Microservices and Container Management with NGINX Plus and Mesosphere DC/OS
 
DevOps Days Tel Aviv - Serverless Architecture
DevOps Days Tel Aviv - Serverless ArchitectureDevOps Days Tel Aviv - Serverless Architecture
DevOps Days Tel Aviv - Serverless Architecture
 
Kubernetes Meetup: CNI, Flex Volume, and Scheduler
Kubernetes Meetup: CNI, Flex Volume, and SchedulerKubernetes Meetup: CNI, Flex Volume, and Scheduler
Kubernetes Meetup: CNI, Flex Volume, and Scheduler
 
Introduction to Google Cloud Platform
Introduction to Google Cloud PlatformIntroduction to Google Cloud Platform
Introduction to Google Cloud Platform
 
Cncf event driven autoscaling with keda
Cncf   event driven autoscaling with kedaCncf   event driven autoscaling with keda
Cncf event driven autoscaling with keda
 
Redis Streams for Event-Driven Microservices
Redis Streams for Event-Driven MicroservicesRedis Streams for Event-Driven Microservices
Redis Streams for Event-Driven Microservices
 
Riga dev day: Lambda architecture at AWS
Riga dev day: Lambda architecture at AWSRiga dev day: Lambda architecture at AWS
Riga dev day: Lambda architecture at AWS
 
12.07.2017 Docker Meetup - POSTGRE SQL ON KUBERNETES
12.07.2017 Docker Meetup - POSTGRE SQL ON KUBERNETES12.07.2017 Docker Meetup - POSTGRE SQL ON KUBERNETES
12.07.2017 Docker Meetup - POSTGRE SQL ON KUBERNETES
 
From AWS to GCP, TABLEAPP Architecture Story
From AWS to GCP, TABLEAPP Architecture StoryFrom AWS to GCP, TABLEAPP Architecture Story
From AWS to GCP, TABLEAPP Architecture Story
 
Sf bay area Kubernetes meetup dec8 2016 - deployment models
Sf bay area Kubernetes meetup dec8 2016 - deployment modelsSf bay area Kubernetes meetup dec8 2016 - deployment models
Sf bay area Kubernetes meetup dec8 2016 - deployment models
 
Improve monitoring and observability for kubernetes with oss tools
Improve monitoring and observability for kubernetes with oss toolsImprove monitoring and observability for kubernetes with oss tools
Improve monitoring and observability for kubernetes with oss tools
 
MongoDB .local Bengaluru 2019: Lift & Shift MongoDB to Atlas
MongoDB .local Bengaluru 2019: Lift & Shift MongoDB to AtlasMongoDB .local Bengaluru 2019: Lift & Shift MongoDB to Atlas
MongoDB .local Bengaluru 2019: Lift & Shift MongoDB to Atlas
 
Azure kubernetes service (aks) part 3
Azure kubernetes service (aks)   part 3Azure kubernetes service (aks)   part 3
Azure kubernetes service (aks) part 3
 
Putting Kafka Together with the Best of Google Cloud Platform
Putting Kafka Together with the Best of Google Cloud Platform Putting Kafka Together with the Best of Google Cloud Platform
Putting Kafka Together with the Best of Google Cloud Platform
 
Crafting Kubernetes Operators
Crafting Kubernetes OperatorsCrafting Kubernetes Operators
Crafting Kubernetes Operators
 
Shakr - Container CI/CD with Google Cloud Platform
Shakr - Container CI/CD with Google Cloud PlatformShakr - Container CI/CD with Google Cloud Platform
Shakr - Container CI/CD with Google Cloud Platform
 
Serverless and Servicefull Applications - Where Microservices complements Ser...
Serverless and Servicefull Applications - Where Microservices complements Ser...Serverless and Servicefull Applications - Where Microservices complements Ser...
Serverless and Servicefull Applications - Where Microservices complements Ser...
 
Event driven workloads on Kubernetes with KEDA
Event driven workloads on Kubernetes with KEDAEvent driven workloads on Kubernetes with KEDA
Event driven workloads on Kubernetes with KEDA
 

Viewers also liked

Scala from the Trenches - Java One 2016
Scala from the Trenches - Java One 2016Scala from the Trenches - Java One 2016
Scala from the Trenches - Java One 2016Kfir Bloch
 
GAM Competences Overview
GAM Competences OverviewGAM Competences Overview
GAM Competences OverviewGabriel Mangano
 
Вебинар "Эффективное чтение": вопросы из зала
Вебинар "Эффективное чтение": вопросы из залаВебинар "Эффективное чтение": вопросы из зала
Вебинар "Эффективное чтение": вопросы из залаMaxim Dranko
 
Jakob Johansson (Gleechi AB) Hand Interaction in Virtual Environments
Jakob Johansson (Gleechi AB) Hand Interaction in Virtual Environments Jakob Johansson (Gleechi AB) Hand Interaction in Virtual Environments
Jakob Johansson (Gleechi AB) Hand Interaction in Virtual Environments AugmentedWorldExpo
 
AR and Big Data: Interoperable Data Repositories for Collaborative Work Envir...
AR and Big Data: Interoperable Data Repositories for Collaborative Work Envir...AR and Big Data: Interoperable Data Repositories for Collaborative Work Envir...
AR and Big Data: Interoperable Data Repositories for Collaborative Work Envir...AugmentedWorldExpo
 
Sally Martir (Huawei) Augmented Reality in Technical Communication
Sally Martir (Huawei) Augmented Reality in Technical CommunicationSally Martir (Huawei) Augmented Reality in Technical Communication
Sally Martir (Huawei) Augmented Reality in Technical CommunicationAugmentedWorldExpo
 
Eva Jensterle (ORBIRAMA) Start Up Pitch
Eva Jensterle (ORBIRAMA) Start Up PitchEva Jensterle (ORBIRAMA) Start Up Pitch
Eva Jensterle (ORBIRAMA) Start Up PitchAugmentedWorldExpo
 
Cyber Analysts: who they are, what they do, where they are - Marco Ramilli - ...
Cyber Analysts: who they are, what they do, where they are - Marco Ramilli - ...Cyber Analysts: who they are, what they do, where they are - Marco Ramilli - ...
Cyber Analysts: who they are, what they do, where they are - Marco Ramilli - ...Codemotion
 
Lo sviluppo di Edge Guardian VR - Maurizio Tatafiore - Codemotion Milan 2016
Lo sviluppo di Edge Guardian VR - Maurizio Tatafiore - Codemotion Milan 2016Lo sviluppo di Edge Guardian VR - Maurizio Tatafiore - Codemotion Milan 2016
Lo sviluppo di Edge Guardian VR - Maurizio Tatafiore - Codemotion Milan 2016Codemotion
 
Developing Microservices with Apache Camel
Developing Microservices with Apache CamelDeveloping Microservices with Apache Camel
Developing Microservices with Apache CamelClaus Ibsen
 
Setup 3 Node Kafka Cluster on AWS - Hands On
Setup 3 Node Kafka Cluster on AWS - Hands OnSetup 3 Node Kafka Cluster on AWS - Hands On
Setup 3 Node Kafka Cluster on AWS - Hands Onhkbhadraa
 
Cortana Analytics Suite
Cortana Analytics SuiteCortana Analytics Suite
Cortana Analytics SuiteJames Serra
 

Viewers also liked (15)

Scala from the Trenches - Java One 2016
Scala from the Trenches - Java One 2016Scala from the Trenches - Java One 2016
Scala from the Trenches - Java One 2016
 
Teste
TesteTeste
Teste
 
GAM Competences Overview
GAM Competences OverviewGAM Competences Overview
GAM Competences Overview
 
Вебинар "Эффективное чтение": вопросы из зала
Вебинар "Эффективное чтение": вопросы из залаВебинар "Эффективное чтение": вопросы из зала
Вебинар "Эффективное чтение": вопросы из зала
 
Jakob Johansson (Gleechi AB) Hand Interaction in Virtual Environments
Jakob Johansson (Gleechi AB) Hand Interaction in Virtual Environments Jakob Johansson (Gleechi AB) Hand Interaction in Virtual Environments
Jakob Johansson (Gleechi AB) Hand Interaction in Virtual Environments
 
AR and Big Data: Interoperable Data Repositories for Collaborative Work Envir...
AR and Big Data: Interoperable Data Repositories for Collaborative Work Envir...AR and Big Data: Interoperable Data Repositories for Collaborative Work Envir...
AR and Big Data: Interoperable Data Repositories for Collaborative Work Envir...
 
Es3
Es3Es3
Es3
 
Sally Martir (Huawei) Augmented Reality in Technical Communication
Sally Martir (Huawei) Augmented Reality in Technical CommunicationSally Martir (Huawei) Augmented Reality in Technical Communication
Sally Martir (Huawei) Augmented Reality in Technical Communication
 
Eva Jensterle (ORBIRAMA) Start Up Pitch
Eva Jensterle (ORBIRAMA) Start Up PitchEva Jensterle (ORBIRAMA) Start Up Pitch
Eva Jensterle (ORBIRAMA) Start Up Pitch
 
Cyber Analysts: who they are, what they do, where they are - Marco Ramilli - ...
Cyber Analysts: who they are, what they do, where they are - Marco Ramilli - ...Cyber Analysts: who they are, what they do, where they are - Marco Ramilli - ...
Cyber Analysts: who they are, what they do, where they are - Marco Ramilli - ...
 
Lo sviluppo di Edge Guardian VR - Maurizio Tatafiore - Codemotion Milan 2016
Lo sviluppo di Edge Guardian VR - Maurizio Tatafiore - Codemotion Milan 2016Lo sviluppo di Edge Guardian VR - Maurizio Tatafiore - Codemotion Milan 2016
Lo sviluppo di Edge Guardian VR - Maurizio Tatafiore - Codemotion Milan 2016
 
Developing Microservices with Apache Camel
Developing Microservices with Apache CamelDeveloping Microservices with Apache Camel
Developing Microservices with Apache Camel
 
Setup 3 Node Kafka Cluster on AWS - Hands On
Setup 3 Node Kafka Cluster on AWS - Hands OnSetup 3 Node Kafka Cluster on AWS - Hands On
Setup 3 Node Kafka Cluster on AWS - Hands On
 
Cortana Analytics Suite
Cortana Analytics SuiteCortana Analytics Suite
Cortana Analytics Suite
 
The State of Linux Containers
The State of Linux ContainersThe State of Linux Containers
The State of Linux Containers
 

Similar to Tracking and Monitoring APIs at Scale

Toyko azure meetup # 1 azure paa s overview
Toyko azure meetup # 1   azure paa s overviewToyko azure meetup # 1   azure paa s overview
Toyko azure meetup # 1 azure paa s overviewTokyo Azure Meetup
 
AWS as platform for scalable applications
AWS as platform for scalable applicationsAWS as platform for scalable applications
AWS as platform for scalable applicationsRoman Gomolko
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop OverviewShubhra Kar
 
Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetesBen Hall
 
AWS re:Invent 2016 Day 2 Keynote re:Cap
AWS re:Invent 2016 Day 2 Keynote re:CapAWS re:Invent 2016 Day 2 Keynote re:Cap
AWS re:Invent 2016 Day 2 Keynote re:CapAdrian Hornsby
 
AWS re:Invent 2016 Day 2 Keynote re:Cap
AWS re:Invent 2016 Day 2 Keynote re:CapAWS re:Invent 2016 Day 2 Keynote re:Cap
AWS re:Invent 2016 Day 2 Keynote re:CapIan Massingham
 
Monitoring docker, k8s and your applications with the elastic stack
Monitoring docker, k8s and your applications with the elastic stackMonitoring docker, k8s and your applications with the elastic stack
Monitoring docker, k8s and your applications with the elastic stackSmartWave
 
Delivering High-Availability Web Services with NGINX Plus on AWS
Delivering High-Availability Web Services with NGINX Plus on AWSDelivering High-Availability Web Services with NGINX Plus on AWS
Delivering High-Availability Web Services with NGINX Plus on AWSNGINX, Inc.
 
Using Apache as an Application Server
Using Apache as an Application ServerUsing Apache as an Application Server
Using Apache as an Application ServerPhil Windley
 
Chalice microframework 101 (eng)
Chalice microframework 101 (eng)Chalice microframework 101 (eng)
Chalice microframework 101 (eng)Maciej Dziergwa
 
AWS re:Invent 2016: Deep-Dive: Native, Hybrid and Web patterns with Serverles...
AWS re:Invent 2016: Deep-Dive: Native, Hybrid and Web patterns with Serverles...AWS re:Invent 2016: Deep-Dive: Native, Hybrid and Web patterns with Serverles...
AWS re:Invent 2016: Deep-Dive: Native, Hybrid and Web patterns with Serverles...Amazon Web Services
 
Logging, Metrics, and APM: The Operations Trifecta (P)
Logging, Metrics, and APM: The Operations Trifecta (P)Logging, Metrics, and APM: The Operations Trifecta (P)
Logging, Metrics, and APM: The Operations Trifecta (P)Elasticsearch
 
DEVNET-1140 InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
DEVNET-1140	InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...DEVNET-1140	InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
DEVNET-1140 InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...Cisco DevNet
 
[DevDay 2017] OpenShift Enterprise - Speaker: Linh Do - DevOps Engineer at Ax...
[DevDay 2017] OpenShift Enterprise - Speaker: Linh Do - DevOps Engineer at Ax...[DevDay 2017] OpenShift Enterprise - Speaker: Linh Do - DevOps Engineer at Ax...
[DevDay 2017] OpenShift Enterprise - Speaker: Linh Do - DevOps Engineer at Ax...DevDay.org
 
Xander Harris Résumé
Xander Harris RésuméXander Harris Résumé
Xander Harris RésuméXander Harris
 
Kubernetes: Container Orchestration for Production-grade People
Kubernetes: Container Orchestration for Production-grade PeopleKubernetes: Container Orchestration for Production-grade People
Kubernetes: Container Orchestration for Production-grade PeopleASPEX_BE
 
PHP on Windows 2008
PHP on Windows 2008PHP on Windows 2008
PHP on Windows 2008jorke
 
Data / Streaming / Microservices Platform with Devops
Data / Streaming / Microservices Platform with DevopsData / Streaming / Microservices Platform with Devops
Data / Streaming / Microservices Platform with DevopsKidong Lee
 
Load Balancing in the Cloud using Nginx & Kubernetes
Load Balancing in the Cloud using Nginx & KubernetesLoad Balancing in the Cloud using Nginx & Kubernetes
Load Balancing in the Cloud using Nginx & KubernetesLee Calcote
 

Similar to Tracking and Monitoring APIs at Scale (20)

Toyko azure meetup # 1 azure paa s overview
Toyko azure meetup # 1   azure paa s overviewToyko azure meetup # 1   azure paa s overview
Toyko azure meetup # 1 azure paa s overview
 
AWS as platform for scalable applications
AWS as platform for scalable applicationsAWS as platform for scalable applications
AWS as platform for scalable applications
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop Overview
 
Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetes
 
AWS re:Invent 2016 Day 2 Keynote re:Cap
AWS re:Invent 2016 Day 2 Keynote re:CapAWS re:Invent 2016 Day 2 Keynote re:Cap
AWS re:Invent 2016 Day 2 Keynote re:Cap
 
AWS re:Invent 2016 Day 2 Keynote re:Cap
AWS re:Invent 2016 Day 2 Keynote re:CapAWS re:Invent 2016 Day 2 Keynote re:Cap
AWS re:Invent 2016 Day 2 Keynote re:Cap
 
Monitoring docker, k8s and your applications with the elastic stack
Monitoring docker, k8s and your applications with the elastic stackMonitoring docker, k8s and your applications with the elastic stack
Monitoring docker, k8s and your applications with the elastic stack
 
Delivering High-Availability Web Services with NGINX Plus on AWS
Delivering High-Availability Web Services with NGINX Plus on AWSDelivering High-Availability Web Services with NGINX Plus on AWS
Delivering High-Availability Web Services with NGINX Plus on AWS
 
Using Apache as an Application Server
Using Apache as an Application ServerUsing Apache as an Application Server
Using Apache as an Application Server
 
Amazed by AWS Series #4
Amazed by AWS Series #4Amazed by AWS Series #4
Amazed by AWS Series #4
 
Chalice microframework 101 (eng)
Chalice microframework 101 (eng)Chalice microframework 101 (eng)
Chalice microframework 101 (eng)
 
AWS re:Invent 2016: Deep-Dive: Native, Hybrid and Web patterns with Serverles...
AWS re:Invent 2016: Deep-Dive: Native, Hybrid and Web patterns with Serverles...AWS re:Invent 2016: Deep-Dive: Native, Hybrid and Web patterns with Serverles...
AWS re:Invent 2016: Deep-Dive: Native, Hybrid and Web patterns with Serverles...
 
Logging, Metrics, and APM: The Operations Trifecta (P)
Logging, Metrics, and APM: The Operations Trifecta (P)Logging, Metrics, and APM: The Operations Trifecta (P)
Logging, Metrics, and APM: The Operations Trifecta (P)
 
DEVNET-1140 InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
DEVNET-1140	InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...DEVNET-1140	InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
DEVNET-1140 InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
 
[DevDay 2017] OpenShift Enterprise - Speaker: Linh Do - DevOps Engineer at Ax...
[DevDay 2017] OpenShift Enterprise - Speaker: Linh Do - DevOps Engineer at Ax...[DevDay 2017] OpenShift Enterprise - Speaker: Linh Do - DevOps Engineer at Ax...
[DevDay 2017] OpenShift Enterprise - Speaker: Linh Do - DevOps Engineer at Ax...
 
Xander Harris Résumé
Xander Harris RésuméXander Harris Résumé
Xander Harris Résumé
 
Kubernetes: Container Orchestration for Production-grade People
Kubernetes: Container Orchestration for Production-grade PeopleKubernetes: Container Orchestration for Production-grade People
Kubernetes: Container Orchestration for Production-grade People
 
PHP on Windows 2008
PHP on Windows 2008PHP on Windows 2008
PHP on Windows 2008
 
Data / Streaming / Microservices Platform with Devops
Data / Streaming / Microservices Platform with DevopsData / Streaming / Microservices Platform with Devops
Data / Streaming / Microservices Platform with Devops
 
Load Balancing in the Cloud using Nginx & Kubernetes
Load Balancing in the Cloud using Nginx & KubernetesLoad Balancing in the Cloud using Nginx & Kubernetes
Load Balancing in the Cloud using Nginx & Kubernetes
 

Recently uploaded

Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...Klinik kandungan
 
Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...gajnagarg
 
Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...nirzagarg
 
Statistics notes ,it includes mean to index numbers
Statistics notes ,it includes mean to index numbersStatistics notes ,it includes mean to index numbers
Statistics notes ,it includes mean to index numberssuginr1
 
DATA SUMMIT 24 Building Real-Time Pipelines With FLaNK
DATA SUMMIT 24  Building Real-Time Pipelines With FLaNKDATA SUMMIT 24  Building Real-Time Pipelines With FLaNK
DATA SUMMIT 24 Building Real-Time Pipelines With FLaNKTimothy Spann
 
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...gajnagarg
 
Case Study 4 Where the cry of rebellion happen?
Case Study 4 Where the cry of rebellion happen?Case Study 4 Where the cry of rebellion happen?
Case Study 4 Where the cry of rebellion happen?RemarkSemacio
 
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi ArabiaIn Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabiaahmedjiabur940
 
Nirala Nagar / Cheap Call Girls In Lucknow Phone No 9548273370 Elite Escort S...
Nirala Nagar / Cheap Call Girls In Lucknow Phone No 9548273370 Elite Escort S...Nirala Nagar / Cheap Call Girls In Lucknow Phone No 9548273370 Elite Escort S...
Nirala Nagar / Cheap Call Girls In Lucknow Phone No 9548273370 Elite Escort S...HyderabadDolls
 
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...nirzagarg
 
Top profile Call Girls In Latur [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Latur [ 7014168258 ] Call Me For Genuine Models We ...Top profile Call Girls In Latur [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Latur [ 7014168258 ] Call Me For Genuine Models We ...gajnagarg
 
Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...
Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...
Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...gajnagarg
 
Identify Customer Segments to Create Customer Offers for Each Segment - Appli...
Identify Customer Segments to Create Customer Offers for Each Segment - Appli...Identify Customer Segments to Create Customer Offers for Each Segment - Appli...
Identify Customer Segments to Create Customer Offers for Each Segment - Appli...ThinkInnovation
 
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...nirzagarg
 
Digital Transformation Playbook by Graham Ware
Digital Transformation Playbook by Graham WareDigital Transformation Playbook by Graham Ware
Digital Transformation Playbook by Graham WareGraham Ware
 
Call Girls In GOA North Goa +91-8588052666 Direct Cash Escorts Service
Call Girls In GOA North Goa +91-8588052666 Direct Cash Escorts ServiceCall Girls In GOA North Goa +91-8588052666 Direct Cash Escorts Service
Call Girls In GOA North Goa +91-8588052666 Direct Cash Escorts Servicenishakur201
 
TrafficWave Generator Will Instantly drive targeted and engaging traffic back...
TrafficWave Generator Will Instantly drive targeted and engaging traffic back...TrafficWave Generator Will Instantly drive targeted and engaging traffic back...
TrafficWave Generator Will Instantly drive targeted and engaging traffic back...SOFTTECHHUB
 
Vastral Call Girls Book Now 7737669865 Top Class Escort Service Available
Vastral Call Girls Book Now 7737669865 Top Class Escort Service AvailableVastral Call Girls Book Now 7737669865 Top Class Escort Service Available
Vastral Call Girls Book Now 7737669865 Top Class Escort Service Availablegargpaaro
 
Introduction to Statistics Presentation.pptx
Introduction to Statistics Presentation.pptxIntroduction to Statistics Presentation.pptx
Introduction to Statistics Presentation.pptxAniqa Zai
 
Kalyani ? Call Girl in Kolkata | Service-oriented sexy call girls 8005736733 ...
Kalyani ? Call Girl in Kolkata | Service-oriented sexy call girls 8005736733 ...Kalyani ? Call Girl in Kolkata | Service-oriented sexy call girls 8005736733 ...
Kalyani ? Call Girl in Kolkata | Service-oriented sexy call girls 8005736733 ...HyderabadDolls
 

Recently uploaded (20)

Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
 
Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...
 
Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...
 
Statistics notes ,it includes mean to index numbers
Statistics notes ,it includes mean to index numbersStatistics notes ,it includes mean to index numbers
Statistics notes ,it includes mean to index numbers
 
DATA SUMMIT 24 Building Real-Time Pipelines With FLaNK
DATA SUMMIT 24  Building Real-Time Pipelines With FLaNKDATA SUMMIT 24  Building Real-Time Pipelines With FLaNK
DATA SUMMIT 24 Building Real-Time Pipelines With FLaNK
 
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
 
Case Study 4 Where the cry of rebellion happen?
Case Study 4 Where the cry of rebellion happen?Case Study 4 Where the cry of rebellion happen?
Case Study 4 Where the cry of rebellion happen?
 
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi ArabiaIn Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
 
Nirala Nagar / Cheap Call Girls In Lucknow Phone No 9548273370 Elite Escort S...
Nirala Nagar / Cheap Call Girls In Lucknow Phone No 9548273370 Elite Escort S...Nirala Nagar / Cheap Call Girls In Lucknow Phone No 9548273370 Elite Escort S...
Nirala Nagar / Cheap Call Girls In Lucknow Phone No 9548273370 Elite Escort S...
 
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
 
Top profile Call Girls In Latur [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Latur [ 7014168258 ] Call Me For Genuine Models We ...Top profile Call Girls In Latur [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Latur [ 7014168258 ] Call Me For Genuine Models We ...
 
Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...
Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...
Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...
 
Identify Customer Segments to Create Customer Offers for Each Segment - Appli...
Identify Customer Segments to Create Customer Offers for Each Segment - Appli...Identify Customer Segments to Create Customer Offers for Each Segment - Appli...
Identify Customer Segments to Create Customer Offers for Each Segment - Appli...
 
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
 
Digital Transformation Playbook by Graham Ware
Digital Transformation Playbook by Graham WareDigital Transformation Playbook by Graham Ware
Digital Transformation Playbook by Graham Ware
 
Call Girls In GOA North Goa +91-8588052666 Direct Cash Escorts Service
Call Girls In GOA North Goa +91-8588052666 Direct Cash Escorts ServiceCall Girls In GOA North Goa +91-8588052666 Direct Cash Escorts Service
Call Girls In GOA North Goa +91-8588052666 Direct Cash Escorts Service
 
TrafficWave Generator Will Instantly drive targeted and engaging traffic back...
TrafficWave Generator Will Instantly drive targeted and engaging traffic back...TrafficWave Generator Will Instantly drive targeted and engaging traffic back...
TrafficWave Generator Will Instantly drive targeted and engaging traffic back...
 
Vastral Call Girls Book Now 7737669865 Top Class Escort Service Available
Vastral Call Girls Book Now 7737669865 Top Class Escort Service AvailableVastral Call Girls Book Now 7737669865 Top Class Escort Service Available
Vastral Call Girls Book Now 7737669865 Top Class Escort Service Available
 
Introduction to Statistics Presentation.pptx
Introduction to Statistics Presentation.pptxIntroduction to Statistics Presentation.pptx
Introduction to Statistics Presentation.pptx
 
Kalyani ? Call Girl in Kolkata | Service-oriented sexy call girls 8005736733 ...
Kalyani ? Call Girl in Kolkata | Service-oriented sexy call girls 8005736733 ...Kalyani ? Call Girl in Kolkata | Service-oriented sexy call girls 8005736733 ...
Kalyani ? Call Girl in Kolkata | Service-oriented sexy call girls 8005736733 ...
 

Tracking and Monitoring APIs at Scale

Editor's Notes

  1. My names is Cosmin Stanciu, I work for Adobe, and today, I’d like to encourage you to think big, big as in big-data, and I’ll try to give you an example that in a short period of time, leveraging today’s technologies you can very fast develop solutions that could highly impact your business.
  2. How many of you have heard about Creative Cloud, Document Cloud Adobe I/O?
  3. Besides applications, adobe provides API that you can use with you own application. As a developer you can incorporate Adobe technologies into your application using APIs Adobe IO provides documentation and developer tools to interact with Adobe’s API’s Ex.: if you develop mobile applications, use the Creative SDK to power you application you can use PDF services to programmatically create PDFs, just uploading the assets and retrieving the PDFs once the conversion is done.
  4. Adobe IO is the entry point / the gateway for all these APIs API gateway is powered by NGINX.
  5. - Authorizes applications. Doing request validations - Caching for faster response. - Service throttling / Rate limiting (Presented by Dragos) - Tracking and monitoring.
  6. We understand the power of the bazar comparison cathedral - open sourced our modules. Of the OpenResty and so all our modules are written in Lua. Api gateway-which is the core request validation - for validating requests / api-gateway-aws - which allows integrations with the AWS apis / api-gateway-async-logger- which allows to send logs and metrics in an async manner.
  7. The gateway proxies around 600Mil requests a day and that number will rise considerably in the months to come. Metadata of the request is being sent to Kinesis.
  8. Entire ecosystem around data: debugging, analytics, notifications, and ideas of a new business model. Adobe evolved - given the technology evolution and competitive marketing. Migrated from a license based model to a subscription based model. And that has been an incredible beneficial for us. But now we talk about a new model which is consumption / usage based
  9. Nowadays you have a lot of tools to process big-data. So it’s a much easier problem to solve that it has been in the past. But every tool come with it’s flavor and set of options. You need to chose those that best fit you needs.
  10. Nowadays you have a lot of tools to process big-data. So it’s a much easier problem to solve that it has been in the past. But every tool come with it’s flavor and set of options. You need to chose those that best fit you needs.
  11. To process Nginx data you must first invent the Big Data ecosystem. The streaming application is easy but make it production ready presents some challenges: architect the cluster, setup of the applications, performance tuning these applications is tricky.
  12. In the few slides I will describe how the entire architecture looks like starting with the Nginx and ending with fancy charts. I don’t believe in perfect solutions. Silver bullet for any requirement.
  13. We have decided for kinesis because: It’s a managed service, relatively cheap, deployed in all regions You need to have a low latency between your producer and your message bus. Total number of records failed and retried represents 0.0048% of the entire traffic.
  14. K: putRecords up to 500 each shard up to 1000/s Records sent when: buffer is full, seconds since last flush, available threads, throughput not exceeded
  15. You can’t communicate with kinesis cross account. STS AsumeRole Returns a set of temporary security credentials. We have kinesis in our insights account, and we can control who which gateway collections can send us records.
  16. We run our service in AWS and we need flexibility into running our applications. Be able to scale up / down on demand. Run stageful / stateless applications.
  17. Cell-OS cluster - Operating system for the datacenter in AWS Explain the most important elements of the cluster. It automatically creates VPC, subnets, ELBs, Internet Gateway, Security groups
  18. Kinesis consumers that read data in real time and send that data to ES. Can be a spark applications that send data to ES but does other tasks such as monitoring and anomaly detection Store every record in ES
  19. Read with spark and write to parquet in HDFS Sync parquet to S3 Run Spark aggregation jobs Store aggregated records into Elastic Writes to HDFS in batches, gather all the requests and stores them temporarily in HDFS in parquet format. Then we have jobs that syncs the data to s3. May wonder why not directly write to S3. Library incompatibility (see email to Martin). And end up with data inconsistency when Spark writes multiple times in the same location. This we’ve learned: checkpointing checkpointing checkpointing, in kinesis and in spark. Why parquet format? The problem with small files: http://www.infoworld.com/article/3004460/application-development/5-things-we-hate-about-spark.html Write bigger files on s3, you’ll thank me later. Every file is an RDD, shuffling is expensive. Having bigger files will help you manage resources better. Spark batch aggregating result and sending them to ES (diagram with the cube and all the dimensions) We run batches every 1/h but we’ll upgrade the api to read from both realtime and aggregated index. Kinesis and storing it to S3 in a parquet format.  The problem is that the hadoop-aws jar depends on aws-sdk 1.7.4 which is incompatible with the kinesis library (the kinesis library requires a more recent version of the aws-sdk lib 1.10.x+). This means that we can’t use kinesis and s3a with hadoop-aws version 2.7.2 which is actually the last available version.
  20. At the end of the batch layer we end up with our OLAP Hypercube We can do all kind of operations in order provide data to users.
  21. Api provides data to 3rd party systems.
  22. Performance / Functional testing
  23. Average throughput - 80 000 req / sec Max throughput - 110,000 / sec Metrics delay < 1 sec ES - 10 cluster node - r3.8xl
  24. Spins locally all modules as docker containers, docker compose Send records to Nginx and expects the aggregation to be correct
  25. Canary traffic - send records in all regions in production. Expect Canary is a microservice test the tester with runscope. Don’t put the canary app in the same cluster.
  26. - Debugging Analytics service providers / end users Consumption billing reports at the end of month - bill clients Change the way we do business At the end of the day we can provide debugging and analytics features to the service provides. And also we can provide them usage numbers / consumption numbers. How many calls have been made for a service by this client. Changing the entire business model from subscription based to consumption based. Users can see their usage. And can track in realtime the requests they make. Publishers can troubleshoot by searching the logs in Kibana. Same they would do with splunk or sumo logic.
  27. Why build this solution? We’ve been using and still are using Sumo and Splunk. Not just a debugging, primary an analytics solution. - We’ve tried meany solutions. We’ve been using Graphite. (send longs directly to graphite) Any component can die, you can still recover. In much more efficient, you have control over data. No solution is perfect, it has to fit your needs.
  28. Analyze traffic pattern - send notification What is normal. Forecasting methods - moving avg. (naive method) More complex, taking into account seasonality and historical data implemented using machine learning. Analyze traffic and send notifications in case pattern is different. Forecasting methods. What is the expected value of the number of requests. Or the proportion between success and client or server errors? We could use a naive method of forecasting these values by calculating the Moving average / weighted moving average / exponential moving average. Machine learning to understand what’s normal. You need to take into consideration the historical data and seasonality. Make a forecast and then calculate the deviation with the expected value.
  29. Local testing environment Kibana
  30. Spins locally all modules as docker containers, docker compose Send records to Nginx and expects the aggregation to be correct
  31. K: putRecords up to 500 each shard up to 1000/s Records sent when: buffer is full, seconds since last flush, available threads, throughput not exceeded
  32. Kibana dashboard.