SlideShare a Scribd company logo
We started with RoR, C++, C#, nodeJS and...
at the end we chose GO
Maurizio de Gregorio
Emilio de Lazzari
MILAN 25-26 NOVEMBER 2016
Agenda
What to expect from this speech
What is Parterre
The Platform Story
Current Platform
Future Development
2
The Platform Story
Maurizio de Gregorio
CEO & Founder, Parterre

Business Development & Data Scientist
4
Audience engagement and Data Mining
ENGAGE YOUR AUDIENCE
COLLECT DATA
5
Audience engagement and Data Mining
ENGAGE YOUR AUDIENCE
COLLECT DATA
Millions of 

transactions
6
concentrated in spikes of almost 10K t/s
cloud load-balancer
auto-scaling
DB RDScosts
High
Performance
7
API Server
load-test
check-performance
AWS bees
RoR
8
Powerful Framework
Big Developers community
Transactions/s: Low
Thin
Unicorn
nginx
C++
9
Performance: Highest
Know how: Low level programming interface
Deployment: dependencies -> complex
Troubleshooting: memory leak -> complex
C# mono
10
Performance: High
Know how: easy to find developers
Deployment: dependencies -> complex
Troubleshooting: complex
Load Test
11
Current Implementation
Test Results - Apache AB
12
server@social:~$ ab -n 1000 -c 300 http://parterre.eu/api3/xxx
This is ApacheBench, Version 2.3 <$Revision: 1528965 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Server Software:
Server Hostname: parterre.eu
Server Port: 80
Document Length: 1086 bytes
Concurrency Level: 300
Time taken for tests: 0.257 seconds
Complete requests: 1000
Failed requests: 0
Total transferred: 1243000 bytes
HTML transferred: 1086000 bytes
Requests per second: 3891.55 [#/sec] (mean)
Time per request: 77.090 [ms] (mean)
Time per request: 0.257 [ms] (mean, across all concurrent requests)
Transfer rate: 4723.83 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 10 22 4.4 23 33
Processing: 18 33 12.0 31 234
Waiting: 18 33 12.0 31 234
Total: 34 55 12.1 55 254
Test Results - Amazon Bees
13
$ bees up -s 5
$ bees attack -n 20000 -c 4500 -u “http://parterre.eu/api3/xxx“
Read 5 bees from the roster.
Connecting to the hive.
Assembling bees.
Each of 5 bees will fire 4000 rounds, 900 at a time.
Stinging URL so it will be cached for the attack.
Organizing the swarm.
Bee 0 is firing his machine gun. Bang bang!
Bee 2 is firing his machine gun. Bang bang!
Bee 1 is firing his machine gun. Bang bang!
Bee 4 is firing his machine gun. Bang bang!
Bee 3 is firing his machine gun. Bang bang!
Bee 2 is out of ammo.
Bee 0 is out of ammo.
Bee 1 is out of ammo.
Bee 4 is out of ammo.
Bee 3 is out of ammo.
Offensive complete.
Complete requests: 20000
Requests per second: 9650.760000 [#/sec] (mean)
Time per request: 62.9969400 [ms] (mean)
50% response time: 56.6800000 [ms] (mean)
90% response time: 67.7800000 [ms] (mean)
Mission Assessment: Target successfully fended off the swarm.
The swarm is awaiting new orders.
multi instance generator
Resources Monitor
14
NANO machines @ < 10% CPU
Case Study: GO Platform
Emilio De Lazzari
CTO & Founder
Backend Architect & Developer
Golang why? 

Environment
16
Least dependencies
Indifferent to updates
Strong Typed
17
Compiled Language
Compile time error checking
IDE autocomplete suggestion
Refactoring
Deployment
18
Machine state
All dependencies inside
Single Executable
Fast
Cross Compile
19
MAC, Windows & Linux single executable
Tests and debugging
Compile for the target ready to deploy
Performance
20
Speed comparable to C++ code
Exceptional use of machine resources
IMPROVEMENT of the PLATFORM
21
Parterre platform
22
Parterre Team
Maurizio de Gregorio
CEO & Founder
Business Development & 

Data Scientist
Emilio De Lazzari
CTO & Founder
Backend Architect & Developer
23
Claudio Bonucci
Junior Developer
Riccardo Pizzoni
Senior Developer
Summary and Q&A
24
STRONG TYPED LANGUAGE
PRODUCTION DEPENDENCY FREE
FAST DEPLOYMENT
CROSS COMPILE
PERFORMANCE
Thank you.
ENGAGE YOUR AUDIENCE
COLLECT DATA
http://parterre.eu

More Related Content

PDF
AWS Serverless 활용 네트워크 보안 아키텍처::함인용 실장, 이성현 매니저, 솔트웨어::AWS Summit Seoul 2018
PDF
국내 미디어 고객사의 AWS 활용 사례 - POOQ 서비스, 콘텐츠연합플랫폼::조휘열::AWS Summit Seoul 2018
PDF
Chaos Engineering with Kubernetes
PDF
Firecracker, 서버리스 컴퓨팅을 위한 오픈소스 microVM 기술 :: 류한진 - AWS ...
PDF
Amazon SageMaker 推論エンドポイントを利用したアプリケーション開発
PDF
개발자가 알아두면 좋은 5가지 AWS 인공 지능 서비스 깨알 지식 (윤석찬, AWS 테크에반젤리스트) :: AWS DevDay 2018
PDF
Cloud Native Cost Optimization
PDF
Microxchg Analyzing Response Time Distributions for Microservices
AWS Serverless 활용 네트워크 보안 아키텍처::함인용 실장, 이성현 매니저, 솔트웨어::AWS Summit Seoul 2018
국내 미디어 고객사의 AWS 활용 사례 - POOQ 서비스, 콘텐츠연합플랫폼::조휘열::AWS Summit Seoul 2018
Chaos Engineering with Kubernetes
Firecracker, 서버리스 컴퓨팅을 위한 오픈소스 microVM 기술 :: 류한진 - AWS ...
Amazon SageMaker 推論エンドポイントを利用したアプリケーション開発
개발자가 알아두면 좋은 5가지 AWS 인공 지능 서비스 깨알 지식 (윤석찬, AWS 테크에반젤리스트) :: AWS DevDay 2018
Cloud Native Cost Optimization
Microxchg Analyzing Response Time Distributions for Microservices

Viewers also liked (20)

PDF
Bias Driven Development - Mario Fusco - Codemotion Milan 2016
PDF
Reactive Thinking in iOS Development - Pedro Piñera Buendía - Codemotion Amst...
PDF
Coding Culture - Sven Peters - Codemotion Milan 2016
PDF
Graph databases and the Panama Papers - Stefan Armbruster - Codemotion Milan ...
PDF
Un anno di Front End Meetup! Gioie, dolori e festeggiamenti! - Giacomo Zinett...
PDF
Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterda...
PPTX
Impostor syndrome and individual competence - Jessica Rose - Codemotion Amste...
PDF
UGIdotNET Meetup - Andrea Saltarello - Codemotion Milan 2016
PDF
Living on the Edge (Service): Bundling Microservices to Optimize Consumption ...
PPTX
Can Super Coders be a reality? - Atreyam Sharma - Codemotion Milan 2016
PDF
Build Apps for Apple Watch - Francesco Novelli - Codemotion Milan 2016
PDF
Outthink: machines coping with humans. A journey into the cognitive world - E...
PDF
Angular Rebooted: Components Everywhere - Carlo Bonamico, Sonia Pini - Codemo...
PDF
SASI, Cassandra on the full text search ride - DuyHai Doan - Codemotion Milan...
PDF
Higher order infrastructure: from Docker basics to cluster management - Nicol...
PPTX
Sviluppare applicazioni cross-platform con Xamarin Forms e il framework Prism...
PPTX
Cross-platform Apps using Xamarin and MvvmCross - Martijn van Dijk - Codemoti...
PDF
Il Bot di Codemotion - Emanuele Capparelli - Codemotion Milan 2016
PDF
Large Scale Refactoring at Trivago - Christoph Reinartz - Codemotion Amsterda...
PPTX
Search on the fly: how to lighten your Big Data - Simona Russo, Auro Rolle - ...
Bias Driven Development - Mario Fusco - Codemotion Milan 2016
Reactive Thinking in iOS Development - Pedro Piñera Buendía - Codemotion Amst...
Coding Culture - Sven Peters - Codemotion Milan 2016
Graph databases and the Panama Papers - Stefan Armbruster - Codemotion Milan ...
Un anno di Front End Meetup! Gioie, dolori e festeggiamenti! - Giacomo Zinett...
Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterda...
Impostor syndrome and individual competence - Jessica Rose - Codemotion Amste...
UGIdotNET Meetup - Andrea Saltarello - Codemotion Milan 2016
Living on the Edge (Service): Bundling Microservices to Optimize Consumption ...
Can Super Coders be a reality? - Atreyam Sharma - Codemotion Milan 2016
Build Apps for Apple Watch - Francesco Novelli - Codemotion Milan 2016
Outthink: machines coping with humans. A journey into the cognitive world - E...
Angular Rebooted: Components Everywhere - Carlo Bonamico, Sonia Pini - Codemo...
SASI, Cassandra on the full text search ride - DuyHai Doan - Codemotion Milan...
Higher order infrastructure: from Docker basics to cluster management - Nicol...
Sviluppare applicazioni cross-platform con Xamarin Forms e il framework Prism...
Cross-platform Apps using Xamarin and MvvmCross - Martijn van Dijk - Codemoti...
Il Bot di Codemotion - Emanuele Capparelli - Codemotion Milan 2016
Large Scale Refactoring at Trivago - Christoph Reinartz - Codemotion Amsterda...
Search on the fly: how to lighten your Big Data - Simona Russo, Auro Rolle - ...
Ad

Similar to We started with RoR, C++, C#, nodeJS and... at the end we chose GO - Maurizio De Gregorio, Emilio de Lazzari - Codemotion Milan 2016 (20)

PDF
Dustin Whittle - Performance Testing Crash Course - code.talks 2015
PDF
Mobile Performance Testing Crash Course
PDF
Performance testing crash course (Dustin Whittle)
PPTX
Back to Basics Spanish Webinar 3 - Introducción a los replica sets
PDF
Алексей Петров "Dockerize Me: Distributed PHP applications with Symfony, Dock...
PPTX
Dockerize Me: Distributed PHP applications with Symfony, Docker, Consul and A...
PPTX
Kubernetes Navigation Stories – DevOpsStage 2019, Kyiv
PDF
FreeSWITCH as a Microservice
PPTX
G3t R00t at IUT
PPTX
Apache Beam (incubating)
PDF
Techniques for Agile Performance Testing
PDF
Port scan is not for pussies, Know yourself, know your enemy
PDF
A hitchhiker‘s guide to the cloud native stack
PDF
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
PDF
theVIVI-AD-Security-Workshop_AfricaHackon2019.pdf
PDF
Advertising Fraud Detection at Scale at T-Mobile
PDF
Celery: The Distributed Task Queue
PDF
Scylla db deck, july 2017
PPTX
Low latency microservices in java QCon New York 2016
PDF
Cryptographic Protocols: Practical revocation and key rotation
Dustin Whittle - Performance Testing Crash Course - code.talks 2015
Mobile Performance Testing Crash Course
Performance testing crash course (Dustin Whittle)
Back to Basics Spanish Webinar 3 - Introducción a los replica sets
Алексей Петров "Dockerize Me: Distributed PHP applications with Symfony, Dock...
Dockerize Me: Distributed PHP applications with Symfony, Docker, Consul and A...
Kubernetes Navigation Stories – DevOpsStage 2019, Kyiv
FreeSWITCH as a Microservice
G3t R00t at IUT
Apache Beam (incubating)
Techniques for Agile Performance Testing
Port scan is not for pussies, Know yourself, know your enemy
A hitchhiker‘s guide to the cloud native stack
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
theVIVI-AD-Security-Workshop_AfricaHackon2019.pdf
Advertising Fraud Detection at Scale at T-Mobile
Celery: The Distributed Task Queue
Scylla db deck, july 2017
Low latency microservices in java QCon New York 2016
Cryptographic Protocols: Practical revocation and key rotation
Ad

More from Codemotion (20)

PDF
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
PDF
Pompili - From hero to_zero: The FatalNoise neverending story
PPTX
Pastore - Commodore 65 - La storia
PPTX
Pennisi - Essere Richard Altwasser
PPTX
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
PPTX
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
PPTX
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
PPTX
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
PDF
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
PDF
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
PDF
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
PDF
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
PDF
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
PDF
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
PPTX
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
PPTX
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
PDF
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
PDF
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
PDF
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
PDF
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Pompili - From hero to_zero: The FatalNoise neverending story
Pastore - Commodore 65 - La storia
Pennisi - Essere Richard Altwasser
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019

Recently uploaded (20)

PDF
Heart disease approach using modified random forest and particle swarm optimi...
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Approach and Philosophy of On baking technology
PDF
Mushroom cultivation and it's methods.pdf
PPTX
A Presentation on Artificial Intelligence
PDF
1 - Historical Antecedents, Social Consideration.pdf
PPTX
Chapter 5: Probability Theory and Statistics
PDF
A novel scalable deep ensemble learning framework for big data classification...
PDF
WOOl fibre morphology and structure.pdf for textiles
PDF
Web App vs Mobile App What Should You Build First.pdf
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
Assigned Numbers - 2025 - Bluetooth® Document
Heart disease approach using modified random forest and particle swarm optimi...
A comparative analysis of optical character recognition models for extracting...
MIND Revenue Release Quarter 2 2025 Press Release
NewMind AI Weekly Chronicles - August'25-Week II
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
Unlocking AI with Model Context Protocol (MCP)
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Approach and Philosophy of On baking technology
Mushroom cultivation and it's methods.pdf
A Presentation on Artificial Intelligence
1 - Historical Antecedents, Social Consideration.pdf
Chapter 5: Probability Theory and Statistics
A novel scalable deep ensemble learning framework for big data classification...
WOOl fibre morphology and structure.pdf for textiles
Web App vs Mobile App What Should You Build First.pdf
Group 1 Presentation -Planning and Decision Making .pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
Assigned Numbers - 2025 - Bluetooth® Document

We started with RoR, C++, C#, nodeJS and... at the end we chose GO - Maurizio De Gregorio, Emilio de Lazzari - Codemotion Milan 2016

  • 1. We started with RoR, C++, C#, nodeJS and... at the end we chose GO Maurizio de Gregorio Emilio de Lazzari MILAN 25-26 NOVEMBER 2016
  • 2. Agenda What to expect from this speech What is Parterre The Platform Story Current Platform Future Development 2
  • 3. The Platform Story Maurizio de Gregorio CEO & Founder, Parterre
 Business Development & Data Scientist
  • 4. 4 Audience engagement and Data Mining ENGAGE YOUR AUDIENCE COLLECT DATA
  • 5. 5 Audience engagement and Data Mining ENGAGE YOUR AUDIENCE COLLECT DATA
  • 6. Millions of 
 transactions 6 concentrated in spikes of almost 10K t/s cloud load-balancer auto-scaling DB RDScosts
  • 8. RoR 8 Powerful Framework Big Developers community Transactions/s: Low Thin Unicorn nginx
  • 9. C++ 9 Performance: Highest Know how: Low level programming interface Deployment: dependencies -> complex Troubleshooting: memory leak -> complex
  • 10. C# mono 10 Performance: High Know how: easy to find developers Deployment: dependencies -> complex Troubleshooting: complex
  • 12. Test Results - Apache AB 12 server@social:~$ ab -n 1000 -c 300 http://parterre.eu/api3/xxx This is ApacheBench, Version 2.3 <$Revision: 1528965 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Server Software: Server Hostname: parterre.eu Server Port: 80 Document Length: 1086 bytes Concurrency Level: 300 Time taken for tests: 0.257 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 1243000 bytes HTML transferred: 1086000 bytes Requests per second: 3891.55 [#/sec] (mean) Time per request: 77.090 [ms] (mean) Time per request: 0.257 [ms] (mean, across all concurrent requests) Transfer rate: 4723.83 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 10 22 4.4 23 33 Processing: 18 33 12.0 31 234 Waiting: 18 33 12.0 31 234 Total: 34 55 12.1 55 254
  • 13. Test Results - Amazon Bees 13 $ bees up -s 5 $ bees attack -n 20000 -c 4500 -u “http://parterre.eu/api3/xxx“ Read 5 bees from the roster. Connecting to the hive. Assembling bees. Each of 5 bees will fire 4000 rounds, 900 at a time. Stinging URL so it will be cached for the attack. Organizing the swarm. Bee 0 is firing his machine gun. Bang bang! Bee 2 is firing his machine gun. Bang bang! Bee 1 is firing his machine gun. Bang bang! Bee 4 is firing his machine gun. Bang bang! Bee 3 is firing his machine gun. Bang bang! Bee 2 is out of ammo. Bee 0 is out of ammo. Bee 1 is out of ammo. Bee 4 is out of ammo. Bee 3 is out of ammo. Offensive complete. Complete requests: 20000 Requests per second: 9650.760000 [#/sec] (mean) Time per request: 62.9969400 [ms] (mean) 50% response time: 56.6800000 [ms] (mean) 90% response time: 67.7800000 [ms] (mean) Mission Assessment: Target successfully fended off the swarm. The swarm is awaiting new orders. multi instance generator
  • 15. Case Study: GO Platform Emilio De Lazzari CTO & Founder Backend Architect & Developer
  • 16. Golang why? 
 Environment 16 Least dependencies Indifferent to updates
  • 17. Strong Typed 17 Compiled Language Compile time error checking IDE autocomplete suggestion Refactoring
  • 18. Deployment 18 Machine state All dependencies inside Single Executable Fast
  • 19. Cross Compile 19 MAC, Windows & Linux single executable Tests and debugging Compile for the target ready to deploy
  • 20. Performance 20 Speed comparable to C++ code Exceptional use of machine resources
  • 21. IMPROVEMENT of the PLATFORM 21
  • 23. Parterre Team Maurizio de Gregorio CEO & Founder Business Development & 
 Data Scientist Emilio De Lazzari CTO & Founder Backend Architect & Developer 23 Claudio Bonucci Junior Developer Riccardo Pizzoni Senior Developer
  • 24. Summary and Q&A 24 STRONG TYPED LANGUAGE PRODUCTION DEPENDENCY FREE FAST DEPLOYMENT CROSS COMPILE PERFORMANCE
  • 25. Thank you. ENGAGE YOUR AUDIENCE COLLECT DATA http://parterre.eu