we started with ror, c++, c#, nodejs and... at the end we chose go - maurizio de gregorio, emilio de...

25
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

Upload: codemotion

Post on 13-Jan-2017

63 views

Category:

Technology


2 download

TRANSCRIPT

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 AUDIENCECOLLECT DATA

5

Audience engagement and Data Mining

ENGAGE YOUR AUDIENCECOLLECT DATA

Millions of transactions

6

concentrated in spikes of almost 10K t/s

cloud load-balancerauto-scaling

DB RDScosts

High Performance

7

API Server

load-testcheck-performance

AWS bees

RoR

8

Powerful Framework Big Developers community

Transactions/s: Low

ThinUnicornnginx

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/xxxThis 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.euServer Port: 80

Document Length: 1086 bytes

Concurrency Level: 300Time taken for tests: 0.257 secondsComplete requests: 1000Failed requests: 0Total transferred: 1243000 bytesHTML transferred: 1086000 bytesRequests 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 maxConnect: 10 22 4.4 23 33Processing: 18 33 12.0 31 234Waiting: 18 33 12.0 31 234Total: 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 dependenciesIndifferent to updates

Strong Typed

17

Compiled LanguageCompile time error checking

IDE autocomplete suggestionRefactoring

Deployment

18

Machine stateAll dependencies inside

Single Executable

Fast

Cross Compile

19

MAC, Windows & Linux single executableTests and debugging

Compile for the target ready to deploy

Performance

20

Speed comparable to C++ codeExceptional 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 AUDIENCECOLLECT DATA

http://parterre.eu