SlideShare a Scribd company logo
1 of 40
Download to read offline
Weightlifting
@
@bogdan
@SIMPLYSOCIAL
+ =
+ =
+ =?
+ =
ARCHITECTURE
api.gosimplysocial.com
app.gosimplysocial.com
API 01 API 02 API N...
APP 01 APP 02 APP N...
BACKEND
01
BACKEND
02
BACKEND
N...
DBs
LIFE OF A REQUEST
api.gosimplysocial.com
app.gosimplysocial.com
API 01 API 01 API N...
APP 01 APP 01 APP N...
BACKEND
01
BACKEND
02
BACKEND
N...
DBs
API 02
APP 02
api.gosimplysocial.com
app.gosimplysocial.com
API 01 API 02 API N...
APP 01 APP 02 APP N...
BACKEND
01
BACKEND
02
BACKEND
N...
DBs
LIFE OF A REQUEST
api.gosimplysocial.com
app.gosimplysocial.com
API 01 API 02 API N...
APP 01 APP 02 APP N...
BACKEND
01
BACKEND
02
BACKEND
N...
DBs
LIFE OF A REQUEST
api.gosimplysocial.com
app.gosimplysocial.com
API 01 API 02 API N...
APP 01 APP 02 APP N...
BACKEND
01
BACKEND
02
BACKEND
N...
DBs
LIFE OF A REQUEST
2M x
api.gosimplysocial.com
app.gosimplysocial.com
API 01 API 02 API N...
APP 01 APP 02 APP N...
BACKEND
01
BACKEND
02
BACKEND
N...
DBs
LIFE OF A REQUEST
USE OF PYTHON
api.gosimplysocial.com
app.gosimplysocial.com
API 01 API 02 API N...
APP 01 APP 02 APP N...
BACKEND
01
BACKEND
02
BACKEND
N...
DBs
api.gosimplysocial.com
app.gosimplysocial.com
API 01 API 02 API N...
APP 01 APP 02 APP N...
BACKEND
01
BACKEND
02
BACKEND
N...
DBs
USE OF PYTHON
api.gosimplysocial.com
app.gosimplysocial.com
API 01 API 02 API N...
APP 01 APP 02 APP N...
BACKEND
01
BACKEND
02
BACKEND
N...
DBs
USE OF PYTHON
api.gosimplysocial.com
app.gosimplysocial.com
API 01 API 02 API N...
APP 01 APP 02 APP N...
BACKEND
01
BACKEND
02
BACKEND
N...
DBs
USE OF PYTHON
api.gosimplysocial.com
app.gosimplysocial.com
API 01 API 02 API N...
APP 01 APP 02 APP N...
BACKEND
01
BACKEND
02
BACKEND
N...
DBs
USE OF PYTHON
CAN I HEAR A
BOOO FOR ?
api.gosimplysocial.com
app.gosimplysocial.com
API 01 API 02 API N...
APP 01 APP 02 APP N...
BACKEND
01
BACKEND
02
BACKEND
N...
DBs
USE OF PYTHON
api.gosimplysocial.com
app.gosimplysocial.com
API 01 API 02 API N...
APP 01 APP 02 APP N...
BACKEND
01
BACKEND
02
BACKEND
N...
DBs
USE OF PYTHON
PYTHON ON APPSERVERS
AWS EC2
Ubuntu 12.04
Chef
NGINX + PHP FPM
FABRIC
DEPLOYMENT
Metrics
Logging
USE OF PYTHON
METRICS
AWS EC2
Ubuntu 12.04
Chef
NGINX + PHP FPM
FABRIC
Metrics
Logging
INTRODUCING OSSIE
METRICS GATHERING
REPORTING STATS THROUGH A SIMPLE
WEB INTERFACE
INTERACTION WITH RUNNING PROcesses
BACKEND BY STATSD and GRAPHITE
INTRODUCING OSSIE
import ossie
stat = ossie.Client("arcade.random_worker")
stat.gauge("a_metric", 256)
stat.timer("random.metric", 1.28)
with stat.timer("random.metric.with"):
# do something that requires an amount of time
# ossie client will report the right time
USE OF PYTHON
logging
AWS EC2
Ubuntu 12.04
Chef
NGINX + PHP FPM
FABRIC
Metrics
Logging
logginG
FULL JSON logging
EVEN nginx logs json
powered by fluentd + S3
FUTURE: Logs can be searched by
elasticsearch + kibana
api.gosimplysocial.com
app.gosimplysocial.com
API 01 API 02 API N...
APP 01 APP 02 APP N...
BACKEND
01
BACKEND
02
BACKEND
N...
DBs
USE OF PYTHON
AWS EC2
Ubuntu 12.04
Chef
FABRIC
SUPERVISORD
Metrics
SUPERVISORD
Workers
Logging
AWS EC2
Ubuntu 12.04
Chef
FABRIC
WORKERS
Metrics
SUPERVISORD
Workers
Logging
INTRODUCING ARCADE
queue based workers framework
Convention over configuration
simple deployment
detailed logging and monitoring
INTRODUCING ARCADE
CRAWL INSIGHTS
CRAWL PAGES
CRAWL EVENTS
ARCADE
FACEBOOK
CRAWL
INTRODUCING ARCADE
CRAWL INSIGHTS
CRAWL PAGES
CRAWL EVENTS
ARCADE
FACEBOOK
CRAWL
queue python
workers
job types
INTRODUCING ARCADE
facebook/
!"" __init__.py
!"" common
#   !"" __init__.py
#   !"" crawler/
#   !"" exception.py
#   !"" facebook_model.py
#   !"" helper.py
#   !"" indexer/
#   !"" ...
!"" config
#   !"" __init__.py
#   !"" config.yml
#   $"" env
#   !"" __init__.py
#   !"" crawler.py
#   !"" ...
...
!"" tests
#   !"" __init__.py
#   !"" fixtures
#   #   !"" crawler_feed.yml
#   #   !"" ...
#   #   $"" stream_routing.yml
#   !"" test_crawler_feed.py
#   !"" ...
#   $"" test_stream_worker.py
$"" workers
!"" __init__.py
!"" crawler.py
!"" ...
from arcade.worker import TaskWorker
from arcade.helper import retry, task
# [...]
class FacebookCrawler(TaskWorker):
def __init__(self, dependencies):
super(FacebookCrawler, self).__init__(dependencies)
@task("default", "crawl")
def crawl_feed(self, data):
"""
Job type:
* uid
* last_crawl
"""
feed = CrawlerFeedModel(self)
feed.crawl(data)
def before_each(self, data):
# [...]
def run(dependencies):
try:
FacebookCrawler(dependencies).run()
except:
dependencies.get("exception").capture_exception()
AND MANY MORE:
continuous integration
RELIABLE ALERTING
CLOUDWATCH to STATSD
REAL USER MONITORING
Q/A
Thanks!

More Related Content

What's hot

ICGIS 2018 - Cloud-powered Machine Learnings on Geospactial Services (Channy ...
ICGIS 2018 - Cloud-powered Machine Learnings on Geospactial Services (Channy ...ICGIS 2018 - Cloud-powered Machine Learnings on Geospactial Services (Channy ...
ICGIS 2018 - Cloud-powered Machine Learnings on Geospactial Services (Channy ...
Channy Yun
 

What's hot (19)

How to make GAE adapt the Great Firewall
How to make GAE adapt the Great FirewallHow to make GAE adapt the Great Firewall
How to make GAE adapt the Great Firewall
 
.NET Fest 2018. Vagif Abilov. Akka + F# = Akkling
.NET Fest 2018. Vagif Abilov. Akka + F# = Akkling.NET Fest 2018. Vagif Abilov. Akka + F# = Akkling
.NET Fest 2018. Vagif Abilov. Akka + F# = Akkling
 
(ENT302) Cost Optimization on AWS | AWS re:Invent 2014
(ENT302) Cost Optimization on AWS | AWS re:Invent 2014(ENT302) Cost Optimization on AWS | AWS re:Invent 2014
(ENT302) Cost Optimization on AWS | AWS re:Invent 2014
 
Spark Your Legacy (Spark Summit 2016)
Spark Your Legacy (Spark Summit 2016)Spark Your Legacy (Spark Summit 2016)
Spark Your Legacy (Spark Summit 2016)
 
Libcloud presentation
Libcloud presentationLibcloud presentation
Libcloud presentation
 
Nils Mohr & Jake Pearce - 100 years of flight data at British Airways. Past, ...
Nils Mohr & Jake Pearce - 100 years of flight data at British Airways. Past, ...Nils Mohr & Jake Pearce - 100 years of flight data at British Airways. Past, ...
Nils Mohr & Jake Pearce - 100 years of flight data at British Airways. Past, ...
 
Illustrator_Sample
Illustrator_SampleIllustrator_Sample
Illustrator_Sample
 
The State of the Developer Ecosystem - .NET Conf Barcelona 2018
The State of the Developer Ecosystem - .NET Conf Barcelona 2018The State of the Developer Ecosystem - .NET Conf Barcelona 2018
The State of the Developer Ecosystem - .NET Conf Barcelona 2018
 
Knockout extender
Knockout extenderKnockout extender
Knockout extender
 
AWS Dublin Briefing - Cool AWS Use Cases
AWS Dublin Briefing - Cool AWS Use CasesAWS Dublin Briefing - Cool AWS Use Cases
AWS Dublin Briefing - Cool AWS Use Cases
 
Altitude San Francisco 2018: WebAssembly Tools & Applications
Altitude San Francisco 2018: WebAssembly Tools & ApplicationsAltitude San Francisco 2018: WebAssembly Tools & Applications
Altitude San Francisco 2018: WebAssembly Tools & Applications
 
Art Data Hackathon - Klima iOS app
Art Data Hackathon - Klima iOS appArt Data Hackathon - Klima iOS app
Art Data Hackathon - Klima iOS app
 
Cypher for Gremlin
Cypher for GremlinCypher for Gremlin
Cypher for Gremlin
 
TensorFlow on GCP
TensorFlow on GCPTensorFlow on GCP
TensorFlow on GCP
 
Lettuce example using scenarios outline
Lettuce example using scenarios outlineLettuce example using scenarios outline
Lettuce example using scenarios outline
 
Business Dashboards using Bonobo ETL, Grafana and Apache Airflow
Business Dashboards using Bonobo ETL, Grafana and Apache AirflowBusiness Dashboards using Bonobo ETL, Grafana and Apache Airflow
Business Dashboards using Bonobo ETL, Grafana and Apache Airflow
 
Device status anomaly detection
Device status anomaly detectionDevice status anomaly detection
Device status anomaly detection
 
Asynchronous Python at Kumparan
Asynchronous Python at KumparanAsynchronous Python at Kumparan
Asynchronous Python at Kumparan
 
ICGIS 2018 - Cloud-powered Machine Learnings on Geospactial Services (Channy ...
ICGIS 2018 - Cloud-powered Machine Learnings on Geospactial Services (Channy ...ICGIS 2018 - Cloud-powered Machine Learnings on Geospactial Services (Channy ...
ICGIS 2018 - Cloud-powered Machine Learnings on Geospactial Services (Channy ...
 

Viewers also liked (8)

Selenium2 and Jenkins: Almost pain-free UI Testing
Selenium2 and Jenkins: Almost pain-free UI TestingSelenium2 and Jenkins: Almost pain-free UI Testing
Selenium2 and Jenkins: Almost pain-free UI Testing
 
Web Application Testing with Selenium
Web Application Testing with Selenium Web Application Testing with Selenium
Web Application Testing with Selenium
 
Understanding and measuring web performance
Understanding and measuring web performanceUnderstanding and measuring web performance
Understanding and measuring web performance
 
Automation Framework 042009 V2
Automation Framework   042009  V2Automation Framework   042009  V2
Automation Framework 042009 V2
 
ATLAS Automation POC
ATLAS Automation POCATLAS Automation POC
ATLAS Automation POC
 
test_automation_POC
test_automation_POCtest_automation_POC
test_automation_POC
 
Understanding Selenium/RC, Webdriver Architecture and developing the page obj...
Understanding Selenium/RC, Webdriver Architecture and developing the page obj...Understanding Selenium/RC, Webdriver Architecture and developing the page obj...
Understanding Selenium/RC, Webdriver Architecture and developing the page obj...
 
Keyword-driven Test Automation Framework
Keyword-driven Test Automation FrameworkKeyword-driven Test Automation Framework
Keyword-driven Test Automation Framework
 

Similar to Weightlifting at SimplySocial

Similar to Weightlifting at SimplySocial (20)

AWS re:Invent re:Cap - 데이터 분석: Amazon EC2 C4 Instance + Amazon EBS - 김일호
AWS re:Invent re:Cap - 데이터 분석: Amazon EC2 C4 Instance + Amazon EBS - 김일호AWS re:Invent re:Cap - 데이터 분석: Amazon EC2 C4 Instance + Amazon EBS - 김일호
AWS re:Invent re:Cap - 데이터 분석: Amazon EC2 C4 Instance + Amazon EBS - 김일호
 
How to build a social network on Serverless (AWS Community Summit)
How to build a social network on Serverless (AWS Community Summit)How to build a social network on Serverless (AWS Community Summit)
How to build a social network on Serverless (AWS Community Summit)
 
How to build a social network on serverless | Yan Cui
How to build a social network on serverless | Yan CuiHow to build a social network on serverless | Yan Cui
How to build a social network on serverless | Yan Cui
 
Amazed by AWS Series #4
Amazed by AWS Series #4Amazed by AWS Series #4
Amazed by AWS Series #4
 
How to build a social network on serverless
How to build a social network on serverlessHow to build a social network on serverless
How to build a social network on serverless
 
Itb 2021 - Bulding Quick APIs by Gavin Pickin
Itb 2021 - Bulding Quick APIs by Gavin PickinItb 2021 - Bulding Quick APIs by Gavin Pickin
Itb 2021 - Bulding Quick APIs by Gavin Pickin
 
大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度
大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度
大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度
 
Getting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesGetting Started with Serverless Architectures
Getting Started with Serverless Architectures
 
Serverless in production, an experience report
Serverless in production, an experience reportServerless in production, an experience report
Serverless in production, an experience report
 
Serveless design patterns
Serveless design patternsServeless design patterns
Serveless design patterns
 
How to build a social network on serverless
How to build a social network on serverlessHow to build a social network on serverless
How to build a social network on serverless
 
Serverless Design Patterns
Serverless Design PatternsServerless Design Patterns
Serverless Design Patterns
 
Serveless design patterns (VoxxedDays Luxembourg)
Serveless design patterns (VoxxedDays Luxembourg)Serveless design patterns (VoxxedDays Luxembourg)
Serveless design patterns (VoxxedDays Luxembourg)
 
Serverless in production, an experience report (FullStack 2018)
Serverless in production, an experience report (FullStack 2018)Serverless in production, an experience report (FullStack 2018)
Serverless in production, an experience report (FullStack 2018)
 
Serverless Design Patterns
Serverless Design PatternsServerless Design Patterns
Serverless Design Patterns
 
Data analytics master class: predict hotel revenue
Data analytics master class: predict hotel revenueData analytics master class: predict hotel revenue
Data analytics master class: predict hotel revenue
 
GPSWKS401_Designing a Cloud Enterprise Data Warehouse
GPSWKS401_Designing a Cloud Enterprise Data WarehouseGPSWKS401_Designing a Cloud Enterprise Data Warehouse
GPSWKS401_Designing a Cloud Enterprise Data Warehouse
 
20141021 AWS Cloud Taekwon - Big Data on AWS
20141021 AWS Cloud Taekwon - Big Data on AWS20141021 AWS Cloud Taekwon - Big Data on AWS
20141021 AWS Cloud Taekwon - Big Data on AWS
 
Serverless in Production, an experience report (AWS UG South Wales)
Serverless in Production, an experience report (AWS UG South Wales)Serverless in Production, an experience report (AWS UG South Wales)
Serverless in Production, an experience report (AWS UG South Wales)
 
The Azure Cognitive Services on Spark: Clusters with Embedded Intelligent Ser...
The Azure Cognitive Services on Spark: Clusters with Embedded Intelligent Ser...The Azure Cognitive Services on Spark: Clusters with Embedded Intelligent Ser...
The Azure Cognitive Services on Spark: Clusters with Embedded Intelligent Ser...
 

More from Bogdan Gaza (7)

[CLIW] Web testing
[CLIW] Web testing[CLIW] Web testing
[CLIW] Web testing
 
[TW] Node.js
[TW] Node.js[TW] Node.js
[TW] Node.js
 
[TW] CSS Files Optimization
[TW] CSS Files Optimization[TW] CSS Files Optimization
[TW] CSS Files Optimization
 
Fosdem2011
Fosdem2011Fosdem2011
Fosdem2011
 
RailsAdmin - the right way of doing data administration with Rails 3
RailsAdmin - the right way of doing data administration with Rails 3RailsAdmin - the right way of doing data administration with Rails 3
RailsAdmin - the right way of doing data administration with Rails 3
 
De ce sa nu folosim Ruby On Rails?
De ce sa nu folosim Ruby On Rails?De ce sa nu folosim Ruby On Rails?
De ce sa nu folosim Ruby On Rails?
 
NoSQL in the context of Social Web
NoSQL in the context of Social WebNoSQL in the context of Social Web
NoSQL in the context of Social Web
 

Recently uploaded

“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
Muhammad Subhan
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc
 

Recently uploaded (20)

Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development Companies
 
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
 
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
 
Vector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptxVector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptx
 
JavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuideJavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate Guide
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
Event-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingEvent-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream Processing
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data Science
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & Ireland
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 

Weightlifting at SimplySocial