SlideShare a Scribd company logo
1 of 18
Backend & Cloud devs
kickoff meetup
2015-03-19
TRAFI
JURGIS@TRAFI.COM
Plan
1. About this meetup – why and what
2. TRAFI case
◦ Architecture overview
◦ Azure vs. AWS
◦ Queues and data streams (AWS Kinesis)
◦ Google BigQuery
Why meetup?
Community is good!
◦ Share knowledge
◦ Similar problems – someone else maybe solved it
◦ Different approaches – widens your view
◦ It’s fun
What is “backend developer”?
BEFORE NOW
ASP.NET
SQL
Mobile
API API
Load balancer
Queues
Cache
Logs
Metrics SQL NoSQL
Web JS
Worker
IAPI
Lots to learn
Can build a lot very easily… if you know how
Challenges
◦ Mobile, cloud, service-oriented architecture
◦ New tools every day (libraries, frameworks, cloud services)
◦ Agile, cross-functional teams
◦ No longer “C# devs”, “Java devs” and “SQL devs” – need to understand bigger picture
Meetup focus
Architecture & patterns
◦ How to build cloud (distributed) solutions
Tools & technologies
◦ Know what’s out there (right tool for the right job)
Possible topics
Architecture & patterns
◦ Service-oriented, queues, micro services
◦ Async, reactive programming
◦ Functional programming
◦ Domain driven design, hexagonal architecture
Languages
◦ C#, Scala, Go, Java8, C++11, Ruby, Node.js, …
NoSQL
◦ MongoDB, Redis, Firebase
Big data
◦ Hadoop, Spark, BigQuery
◦ Machine learning
Cloud services
◦ Amazon Web Services (38 services!)
◦ Microsoft Azure
◦ Google Cloud
Anything you’ve found out, you wished someone told you!
TRAFI
Use case
◦ Android, iOS, Web apps
◦ REST API (~100 reqs/sec)
◦ Memory & Compute intensive
◦ External data integrations
◦ Background jobs
Code
◦ C#, ASP.NET MVC
◦ Some Java
◦ Some Python
TRAFI architecture
Mobile
.NET API .NET API
Elastic Beanstalk
(load balancer)
Data streaming
(Kinesis)
ElastiCache
Logentries
(logs)
Librato
(metrics)
MS SQL BigQuery
Azure
Website
Background jobs
(Win VM)
Internal Java API
(Linux VM)
Infrastructure
◦ AWS Elastic Beanstalk
◦ AWS EC2 instances (c3.4xlarge)
◦ Azure websites
◦ Azure worker roles
Storage
◦ MS SQL server
◦ AWS Kinesis
◦ AWS ElastiCache
◦ Google BigQuery
Metrics & Logs
◦ Logentries
◦ Librato
Lesson #1: Azure vs AWS
Migrated .NET API
◦ Azure: Web roles + Azure SQL
◦ AWS: Elastic Beanstalk + RDS SQL
Advantages
◦ 2x faster CPU performance!
◦ Faster deployment (also “.NET-friendly”)
◦ More flexible load balancer, auto scaling
◦ Better metrics and logs
◦ SQL – faster, easier to manage, better metrics
Disadvantages
◦ No “staged rollout”, only swap
Lesson #2: use messaging
Use case: streaming data from external sources
Don’t reinvent the wheel – it’s not as easy as it looks!
External
integration
API 1
API 2
GPS
data DB
Background
External
integration
API 1
API 2
GPS
data
Background
Stream
Lesson #2: use messaging
Queues
◦ AWS SQS
◦ Azure storage queues
◦ RabbitMQ
Data streams (publish/subscribe)
◦ AWS Kinesis
◦ Azure Service bus
◦ Kafka
Queue
Worker 1
Worker 2
B
A
B
Stream
Listener 1
Listener 2
B
A
B
A
A
B
A
Lesson #3: storing logs
Use case: store insert-only data for later analysis
◦ Web server request logs
◦ App event logs
◦ GPS logs…
Storing logs attempt 1
Traditional SQL
◦ Good for small amount of data (<10 GB)
◦ Limited insert capacity
◦ Slow queries
◦ Expensive ($1.00 /GB/month)
Storing logs attempt 2
Azure table storage (NoSQL)
◦ Cheap ($0.07 /GB/month)
◦ Unlimited data (partitioning)
◦ Only simple queries, slow
Storing logs attempt 3
Google BigQuery (columnar store)
◦ Very Cheap ($0.02 /GB/month)*
◦ Unlimited data (partitioning)
◦ Fast advanced SQL queries!
◦ Structured data
Open questions
Websites
◦ Pretty nice in Azure – easy deployment, cheap
Background jobs
◦ No “worker roles” in AWS
◦ Running as “Windows Services” in custom EC2 VM
◦ Docker?
Thank you
Questions?
Your experience?
What’s next?
Beer time…

More Related Content

Viewers also liked

Succeeding in College
Succeeding in CollegeSucceeding in College
Succeeding in CollegeMeghan10
 
centurylink-business-technology-2020-ebook-br141403
centurylink-business-technology-2020-ebook-br141403centurylink-business-technology-2020-ebook-br141403
centurylink-business-technology-2020-ebook-br141403Pam Andersen, MBA
 
Windows server 2003 "end of life"
Windows server 2003 "end of life"Windows server 2003 "end of life"
Windows server 2003 "end of life"Idenet
 
Mit érdemes tudni a magáncsődről? - Jogi képzés
Mit érdemes tudni a magáncsődről? - Jogi képzésMit érdemes tudni a magáncsődről? - Jogi képzés
Mit érdemes tudni a magáncsődről? - Jogi képzésSystem Media Kft.
 
Ajándéksorsolások, nyereményjátékok, promóciók, bónuszakciók adózása - Szja, ...
Ajándéksorsolások, nyereményjátékok, promóciók, bónuszakciók adózása - Szja, ...Ajándéksorsolások, nyereményjátékok, promóciók, bónuszakciók adózása - Szja, ...
Ajándéksorsolások, nyereményjátékok, promóciók, bónuszakciók adózása - Szja, ...System Media Kft.
 
Ether pad i klasserommet
Ether pad i klasserommetEther pad i klasserommet
Ether pad i klasserommetToneSchjelstad
 

Viewers also liked (8)

Succeeding in College
Succeeding in CollegeSucceeding in College
Succeeding in College
 
centurylink-business-technology-2020-ebook-br141403
centurylink-business-technology-2020-ebook-br141403centurylink-business-technology-2020-ebook-br141403
centurylink-business-technology-2020-ebook-br141403
 
Windows server 2003 "end of life"
Windows server 2003 "end of life"Windows server 2003 "end of life"
Windows server 2003 "end of life"
 
Mit érdemes tudni a magáncsődről? - Jogi képzés
Mit érdemes tudni a magáncsődről? - Jogi képzésMit érdemes tudni a magáncsődről? - Jogi képzés
Mit érdemes tudni a magáncsődről? - Jogi képzés
 
Ajándéksorsolások, nyereményjátékok, promóciók, bónuszakciók adózása - Szja, ...
Ajándéksorsolások, nyereményjátékok, promóciók, bónuszakciók adózása - Szja, ...Ajándéksorsolások, nyereményjátékok, promóciók, bónuszakciók adózása - Szja, ...
Ajándéksorsolások, nyereményjátékok, promóciók, bónuszakciók adózása - Szja, ...
 
Ether pad i klasserommet
Ether pad i klasserommetEther pad i klasserommet
Ether pad i klasserommet
 
antes que muera
antes que mueraantes que muera
antes que muera
 
bucket list
bucket listbucket list
bucket list
 

Recently uploaded

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 

Recently uploaded (20)

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

Backend & Cloud devs kickoff meetup

  • 1. Backend & Cloud devs kickoff meetup 2015-03-19 TRAFI JURGIS@TRAFI.COM
  • 2. Plan 1. About this meetup – why and what 2. TRAFI case ◦ Architecture overview ◦ Azure vs. AWS ◦ Queues and data streams (AWS Kinesis) ◦ Google BigQuery
  • 3. Why meetup? Community is good! ◦ Share knowledge ◦ Similar problems – someone else maybe solved it ◦ Different approaches – widens your view ◦ It’s fun
  • 4. What is “backend developer”? BEFORE NOW ASP.NET SQL Mobile API API Load balancer Queues Cache Logs Metrics SQL NoSQL Web JS Worker IAPI
  • 5. Lots to learn Can build a lot very easily… if you know how Challenges ◦ Mobile, cloud, service-oriented architecture ◦ New tools every day (libraries, frameworks, cloud services) ◦ Agile, cross-functional teams ◦ No longer “C# devs”, “Java devs” and “SQL devs” – need to understand bigger picture
  • 6. Meetup focus Architecture & patterns ◦ How to build cloud (distributed) solutions Tools & technologies ◦ Know what’s out there (right tool for the right job)
  • 7. Possible topics Architecture & patterns ◦ Service-oriented, queues, micro services ◦ Async, reactive programming ◦ Functional programming ◦ Domain driven design, hexagonal architecture Languages ◦ C#, Scala, Go, Java8, C++11, Ruby, Node.js, … NoSQL ◦ MongoDB, Redis, Firebase Big data ◦ Hadoop, Spark, BigQuery ◦ Machine learning Cloud services ◦ Amazon Web Services (38 services!) ◦ Microsoft Azure ◦ Google Cloud Anything you’ve found out, you wished someone told you!
  • 8. TRAFI Use case ◦ Android, iOS, Web apps ◦ REST API (~100 reqs/sec) ◦ Memory & Compute intensive ◦ External data integrations ◦ Background jobs Code ◦ C#, ASP.NET MVC ◦ Some Java ◦ Some Python
  • 9. TRAFI architecture Mobile .NET API .NET API Elastic Beanstalk (load balancer) Data streaming (Kinesis) ElastiCache Logentries (logs) Librato (metrics) MS SQL BigQuery Azure Website Background jobs (Win VM) Internal Java API (Linux VM) Infrastructure ◦ AWS Elastic Beanstalk ◦ AWS EC2 instances (c3.4xlarge) ◦ Azure websites ◦ Azure worker roles Storage ◦ MS SQL server ◦ AWS Kinesis ◦ AWS ElastiCache ◦ Google BigQuery Metrics & Logs ◦ Logentries ◦ Librato
  • 10. Lesson #1: Azure vs AWS Migrated .NET API ◦ Azure: Web roles + Azure SQL ◦ AWS: Elastic Beanstalk + RDS SQL Advantages ◦ 2x faster CPU performance! ◦ Faster deployment (also “.NET-friendly”) ◦ More flexible load balancer, auto scaling ◦ Better metrics and logs ◦ SQL – faster, easier to manage, better metrics Disadvantages ◦ No “staged rollout”, only swap
  • 11. Lesson #2: use messaging Use case: streaming data from external sources Don’t reinvent the wheel – it’s not as easy as it looks! External integration API 1 API 2 GPS data DB Background External integration API 1 API 2 GPS data Background Stream
  • 12. Lesson #2: use messaging Queues ◦ AWS SQS ◦ Azure storage queues ◦ RabbitMQ Data streams (publish/subscribe) ◦ AWS Kinesis ◦ Azure Service bus ◦ Kafka Queue Worker 1 Worker 2 B A B Stream Listener 1 Listener 2 B A B A A B A
  • 13. Lesson #3: storing logs Use case: store insert-only data for later analysis ◦ Web server request logs ◦ App event logs ◦ GPS logs…
  • 14. Storing logs attempt 1 Traditional SQL ◦ Good for small amount of data (<10 GB) ◦ Limited insert capacity ◦ Slow queries ◦ Expensive ($1.00 /GB/month)
  • 15. Storing logs attempt 2 Azure table storage (NoSQL) ◦ Cheap ($0.07 /GB/month) ◦ Unlimited data (partitioning) ◦ Only simple queries, slow
  • 16. Storing logs attempt 3 Google BigQuery (columnar store) ◦ Very Cheap ($0.02 /GB/month)* ◦ Unlimited data (partitioning) ◦ Fast advanced SQL queries! ◦ Structured data
  • 17. Open questions Websites ◦ Pretty nice in Azure – easy deployment, cheap Background jobs ◦ No “worker roles” in AWS ◦ Running as “Windows Services” in custom EC2 VM ◦ Docker?

Editor's Notes

  1. To kick off discussion
  2. Not enough in-company knowledge sharing you’ve spent some time learning something – let others know!
  3. Such architecture used to be “enterprise” – now you can do it alone in a startup – most pieces are there, you just build it like Lego. So what kind of developers do you need to build such system? Can’t have one per box. Need a “cloud developer”.
  4. Exciting times to be a developer – can build systems really fast But need to always be learning. And need to think. That’s why a meetup like this is especially needed
  5. Not a “C# meetup” or “Java meetup”
  6. My biased view – you might have somehing else on your mind And again – the goal is not to become expert in everything (you can’t!), but to know what’s out there, what tools are available. So that you can pick it up when you need it.