Web-Services in C++ Building fast, memory-efficient and maintainable web-services in C++ Maximilian Haupt MUC /06/30

Size: px
Start display at page:

Download "Web-Services in C++ Building fast, memory-efficient and maintainable web-services in C++ Maximilian Haupt MUC /06/30"

Transcription

1 Web-Services in C++ Building fast, memory-efficient and maintainable web-services in C++ Maximilian Haupt MUC /06/30

2 Background Professional C/C++ developer since 2006 VR, Real-Time Audio, Game-Engine, Big-Data, Machine-Learning

3 When talking about web-services Plain REST-like HTTP APIs talking JSON a.k.a. Micro-Services No fully fledged web-stack à Ruby on Rails, Django, MEAN, No static file serving à nginx/apache No reverse proxy / load balancing à nginx/haproxy No SSL termination à nginx/haproxy No template rendering à frontend (Angular, React, )

4 RTB detour

5 mbr targeting bidder wrap-up Started as a research project written in python Small RTBkit Intermezzo Later, rewritten in node.js Performance issues due to increasing traffic

6 rtb stack before HTTP nginx Graphite HTTP bidder DB/ Cache Logging

7 rtb stack after HTTP nginx HTTP Graphite broker ZeroMQ (CBFC) bidder DB/ Cache Logging

8 More than HTTP Proxygen: lwan: Wt: http-parser: httpp: - Hi Thomas! :) served: libevhtp:

9 JSON JsonCpp RapidJSON Json11 yajl gason ArduinoJson For a more complete list, e.g.:

10 TODO: put some nice broker graphs here Linux, C++14 (g++ 4.8), boost::asio, httpp, JsonCpp, ZeroMQ, tcmalloc, Intel TBB Routing (expensive stuff) Adx/Adscale/ Adx/Adscale/ Request Augmentation Timeout Response Sanity Checks ZeroMQ + JSON JSON Dispatch

11 Btw: use latest JsonCpp and link it statically!

12 Broker evolution Augmentation with additional data Logging to Kafka QoS, load balancing, rate limiting Data scientists love data, i.e. traffic

13 JSON love & hate

14 Schemas to the rescue JsonSchema helps. a bit. maybe Typos are still an issue Knowledge about types still spread throughout the code Still accessing json members through strings Start writing you own serialization Structs plus hand-crafted de-/serialization code

15 Protobuf to the rescue!!!11elf

16 Protobuf to the rescue!!!11elf generated Classes

17 Protobuf to the rescue!!!11elf Reflection

18 Protobuf to the rescue!!!11elf Serialization

19 Protobuf to the rescue!!!11elf Message::Clear()

20 Protobuf to the rescue!!!11elf Documentation Thanks Google: openrtb.proto (github.com/google/openrtb)

21 Json to protobuf and back json-protobuf mapper using the generated reflection (RapidJSON based) (jansson based) (jansson based) (Java) (node.js) à Single place for schema validation and performance improvements

22 Json to protobuf and back

23 Drop the bass response times

24 Now ~3 billion requests/day

25 Let it sink

26 Use protobuf for all data structures!

27 Sky is the limit Still more memory used than needed (raw buffer + json + protobuf) Use event-based json parser (e.g. yajl or RapidJson) for memory-efficiency Get rid of reflection by also generating parser code

28 Generate json state machine from proto file <number> { key:"a" 2 null } key:"b" { key:"c" <string> }

29 protog A protobuf json-parser generator! $ protoc --cpp_out=. openrtb.proto $ protog -p openrtb.proto -i openrtb.pb.h \ -m com.google.openrtb.bidrequest Will generate openrtb.pb.{cc,h} and bidrequest_parser.pb.{cc,h}

30 Disclaimer protog is not ready for production! Prototype which contains bugs Does not support self-referencing messages Many rough edges

31 Benchmark preface Never trust benchmarks other people present to you Highly recommend Brendan Gregg s talks and blog: brendangregg.com All code is online: github.com/0x7f/cpp-meetup

32 httpp (raw) proxygen (raw) httpp + ganson httpp + protog httpp + jsoncpp httpp + rapidjson httpp + pbjson nodejs (raw) node.js + JSON node.js + ajv httpp + rapidjson + validation 0 0,5 1 1,5 2 2,5 3 EC2 c4.4xlarge (14.04 LTS), 4 threads, wrk(c=200,t=12,d=60s), POST bidrequest.2.json (~1.5kb)

33

34 There is no silver bullet Serialization vs meat Large vs small JSON Multi-purpose backend vs single task Green field vs existing code Standalone vs embedded http server Normal vs high throughput Hard memory constraints

35 Summary Measure! Measure! Measure! Web-services are more than HTTP+JSON Mastering JSON is hard Schemas and generated code helps C++ can be very fast when used correctly Which library/tool for which use-case

36 Thank you!

37 Questions? Maximilian Haupt github.com/0x7f

Web-Services in C++ Building fast, memory-efficient and maintainable web-services in C++ Maximilian Haupt C++ Meetup 2016/05/17

Web-Services in C++ Building fast, memory-efficient and maintainable web-services in C++ Maximilian Haupt C++ Meetup 2016/05/17 Web-Services in C++ Building fast, memory-efficient and maintainable web-services in C++ Maximilian Haupt C++ Meetup 2016/05/17 Summary The talk will cover best-practices and utilities for building fast

More information

Signals Documentation

Signals Documentation Signals Documentation Release 0.1 Yeti November 22, 2015 Contents 1 Quickstart 1 2 What is Signals? 3 3 Contents 5 3.1 Get Started................................................ 5 3.2 Try the Demo Server...........................................

More information

Transitioning from C# to Scala Using Apache Thrift. Twitter Finagle

Transitioning from C# to Scala Using Apache Thrift. Twitter Finagle Transitioning from C# to Scala Using Apache Thrift and Twitter Finagle Steven Skelton September 19, 2013 Empathica Empathica provides Customer Experience Management programs to more than 200 of the world's

More information

Deploying to the Edge CouchDB

Deploying to the Edge CouchDB Deploying to the Edge CouchDB Apache Relax Who s Talking? J Chris Anderson / jchris@apache.org / @jchris PHP -> Rails -> JSON -> CouchDB Director, couch.io And You? Web developers? JavaScript coders? CouchDB

More information

Microservices. SWE 432, Fall 2017 Design and Implementation of Software for the Web

Microservices. SWE 432, Fall 2017 Design and Implementation of Software for the Web Micros SWE 432, Fall 2017 Design and Implementation of Software for the Web Today How is a being a micro different than simply being ful? What are the advantages of a micro backend architecture over a

More information

Distributed Architectures & Microservices. CS 475, Spring 2018 Concurrent & Distributed Systems

Distributed Architectures & Microservices. CS 475, Spring 2018 Concurrent & Distributed Systems Distributed Architectures & Microservices CS 475, Spring 2018 Concurrent & Distributed Systems GFS Architecture GFS Summary Limitations: Master is a huge bottleneck Recovery of master is slow Lots of success

More information

Reactive Java: Promises and Streams with Reakt. Geoff Chandler and Rick Hightower

Reactive Java: Promises and Streams with Reakt. Geoff Chandler and Rick Hightower Reactive Java: Promises and Streams with Reakt Geoff Chandler and Rick Hightower What is Reakt in 30 seconds! Reakt General purpose library for callback coordination and streams Implements JavaScript

More information

grpc - A solution for RPCs by Google Distributed Systems Seminar at Charles University in Prague, Nov 2016 Jan Tattermusch - grpc Software Engineer

grpc - A solution for RPCs by Google Distributed Systems Seminar at Charles University in Prague, Nov 2016 Jan Tattermusch - grpc Software Engineer grpc - A solution for RPCs by Google Distributed Systems Seminar at Charles University in Prague, Nov 2016 Jan Tattermusch - grpc Software Engineer About me Software Engineer at Google (since 2013) Working

More information

Eduardo

Eduardo Eduardo Silva @edsiper eduardo@treasure-data.com About Me Eduardo Silva Github & Twitter Personal Blog @edsiper http://edsiper.linuxchile.cl Treasure Data Open Source Engineer Fluentd / Fluent Bit http://github.com/fluent

More information

The Future of the Realtime Web BETTER APIS WITH GRAPHQL. Josh

The Future of the Realtime Web BETTER APIS WITH GRAPHQL. Josh The Future of the Realtime Web BETTER APIS WITH GRAPHQL Josh Price @joshprice STEPPING STONES TO FP Language (Elixir) Strongly-Typed APIs (GraphQL) GRAPHQL WAS HERE? http://whiteafrican.com/2008/05/12/crossing-the-mapping-chasm/

More information

A Library and Proxy for SPDY

A Library and Proxy for SPDY A Library and Proxy for SPDY Interdisciplinary Project Andrey Uzunov Chair for Network Architectures and Services Department of Informatics Technische Universität München April 3, 2013 Andrey Uzunov (TUM)

More information

Backend Development. SWE 432, Fall Web Application Development

Backend Development. SWE 432, Fall Web Application Development Backend Development SWE 432, Fall 2018 Web Application Development Review: Async Programming Example 1 second each Go get a candy bar Go get a candy bar Go get a candy bar Go get a candy bar Go get a candy

More information

Fluentd. Open Source Data Collector. Eduardo Jan 23, 2016 Scale14x, Pasadena!

Fluentd. Open Source Data Collector. Eduardo Jan 23, 2016 Scale14x, Pasadena! Fluentd Open Source Data Collector Jan 23, 2016 Scale14x, Pasadena! Eduardo Silva eduardo@treasuredata.com @edsiper spread the word! #scale14x #fluentd @edsiper About Me Eduardo Silva Github & Twitter

More information

Introducing taocpp/json

Introducing taocpp/json Introducing taocpp/json https://github.com/taocpp/json Daniel Frey 2016-11-10 Disclaimer Opinions expressed are solely my own and do not express the views or opinions of my employer All mistakes are mine,

More information

Masters in Web Development

Masters in Web Development Masters in Web Development Accelerate your carrer by learning Web Development from Industry Experts. www.techgrad.in India s Leading Digital marketing Institute India s Leading Accademy 12,234+ Trainees

More information

Scaling DreamFactory

Scaling DreamFactory Scaling DreamFactory This white paper is designed to provide information to enterprise customers about how to scale a DreamFactory Instance. The sections below talk about horizontal, vertical, and cloud

More information

Quick housekeeping Last Two Homeworks Extra Credit for demoing project prototypes Reminder about Project Deadlines/specifics Class on April 12th Resul

Quick housekeeping Last Two Homeworks Extra Credit for demoing project prototypes Reminder about Project Deadlines/specifics Class on April 12th Resul CIS192 Python Programming Web Frameworks and Web APIs Harry Smith University of Pennsylvania March 29, 2016 Harry Smith (University of Pennsylvania) CIS 192 March 29, 2016 1 / 25 Quick housekeeping Last

More information

the road to cloud native applications Fabien Hermenier

the road to cloud native applications Fabien Hermenier the road to cloud native applications Fabien Hermenier 1 cloud ready applications single-tiered monolithic hardware specific cloud native applications leverage cloud services scalable reliable 2 Agenda

More information

Motivations. Luigi De Russis. Why Ruby (on Rails)?

Motivations. Luigi De Russis. Why Ruby (on Rails)? Motivations Luigi De Russis 2 Disclaimer YES course-specific value open mind NO general value extremism 3 4 Course requirements Goal and context 5 Goal design and implement a Social Network site 6 credits

More information

Oracle. NoSQL Database Concepts Manual. 12c Release 1

Oracle. NoSQL Database Concepts Manual. 12c Release 1 Oracle NoSQL Database Concepts Manual 12c Release 1 Library Version 12.1.3.3 Legal Notice Copyright 2011, 2012, 2013, 2014, 2015 Oracle and/or its affiliates. All rights reserved. This software and related

More information

Unifying Events & Logs into the Cloud

Unifying Events & Logs into the Cloud Unifying Events & Logs into the Cloud October 05, 2015 CloudOpen/LinuxCon, Dublin Eduardo Silva eduardo@treasuredata.com @edsiper About Me Eduardo Silva Github & Twitter Personal Blog @edsiper http://edsiper.linuxchile.cl

More information

Continuous performance monitoring. Vassil Vassilev

Continuous performance monitoring. Vassil Vassilev Continuous performance monitoring Vassil Vassilev Motivation Enabling performance optimization contributions (often external) to ROOT Making sure these contributions are sustainable (i.e. once the money

More information

Why I still develop synchronous web in the asyncio era. April 7th, 2017 Giovanni Barillari - pycon otto - Firenze, Italy

Why I still develop synchronous web in the asyncio era. April 7th, 2017 Giovanni Barillari - pycon otto - Firenze, Italy Why I still develop synchronous web in the asyncio era April 7th, 2017 Giovanni Barillari - pycon otto - Firenze, Italy Who am I? I m Gio! pronounced as Joe trust me, I m a physicist :) code principally

More information

Learn to Code with C#

Learn to Code with C# Learn to Code with C# Getting Started with Microsoft's Cross-Platform, Open Source Language Who am I? Jeff Ammons Microsoft MVP Pluralsight Author CEO/Chief Instructor at Code Career Academy 25 Years Professional

More information

Copyright 2014 Blue Net Corporation. All rights reserved

Copyright 2014 Blue Net Corporation. All rights reserved a) Abstract: REST is a framework built on the principle of today's World Wide Web. Yes it uses the principles of WWW in way it is a challenge to lay down a new architecture that is already widely deployed

More information

SCALE AND SECURE MOBILE / IOT MQTT TRAFFIC

SCALE AND SECURE MOBILE / IOT MQTT TRAFFIC APPLICATION NOTE SCALE AND SECURE MOBILE / IOT TRAFFIC Connecting millions of devices requires a simple implementation for fast deployments, adaptive security for protection against hacker attacks, and

More information

Backend Web Frameworks

Backend Web Frameworks Backend Web Frameworks How do we: inspect the requested URL and return the appropriate page? deal with POST requests? handle more advanced concepts like sessions and cookies? scale the application to

More information

Distil Networks & HAProxy Integration Guide

Distil Networks & HAProxy Integration Guide INTEGRATIONGUIDE Distil Networks & HAProxy Integration Guide (w) www.distilnetworks.com (e) sales@distilnetworks.com (US) 415.423.0831 (UK) +44.203.3184751 Table of Contents INTRODUCTION 3 HAPROXY 3 Testing

More information

Performance Case Study

Performance Case Study Performance Case Study @Fabian_Frank Yahoo! Search, Engineer Youthmedia.eu, Volunteer A Dynamic Website self-contained App self-contained App self-contained App node v0.4.x multi-core

More information

Full Stack Developer with Java

Full Stack Developer with Java Full Stack Developer with Java Full Stack Developer (Java) MVC, Databases and ORMs, API Backend Frontend Fundamentals - HTML, CSS, JS Unit Testing Advanced Full Stack Developer (Java) UML, Distributed

More information

Elliotte Rusty Harold August From XML to Flat Buffers: Markup in the Twenty-teens

Elliotte Rusty Harold August From XML to Flat Buffers: Markup in the Twenty-teens Elliotte Rusty Harold elharo@ibiblio.org August 2018 From XML to Flat Buffers: Markup in the Twenty-teens Warning! The Contenders XML JSON YAML EXI Protobufs Flat Protobufs XML JSON YAML EXI Protobuf Flat

More information

Developer Internship Opportunity at I-CC

Developer Internship Opportunity at I-CC Developer Internship Opportunity at I-CC Who We Are: Technology company building next generation publishing and e-commerce solutions Aiming to become a leading European Internet technology company by 2015

More information

MySQL X Protocol Talking to MySQL Directly over the Wire

MySQL X Protocol Talking to MySQL Directly over the Wire MySQL X Protocol Talking to MySQL Directly over the Wire Simon J Mudd Percona Live Europe Amsterdam 5 th October 2016 Content What is MySQL X protocol How does it work Building

More information

Upload to your web space (e.g., UCSC) Due this Thursday 4/8 in class Deliverable: Send me an with the URL Grading:

Upload to your web space (e.g., UCSC) Due this Thursday 4/8 in class Deliverable: Send me an  with the URL Grading: CS 183 4/6/2010 Build a simple HTML page, topic of your choice Will use this as a basis and gradually and add more features as the class progresses Need to be done with your favorite text editor, no visual

More information

Surrogate Dependencies (in

Surrogate Dependencies (in Surrogate Dependencies (in NodeJS) @DinisCruz London, 29th Sep 2016 Me Developer for 25 years AppSec for 13 years Day jobs: Leader OWASP O2 Platform project Application Security Training JBI Training,

More information

/ Cloud Computing. Recitation 5 February 14th, 2017

/ Cloud Computing. Recitation 5 February 14th, 2017 15-319 / 15-619 Cloud Computing Recitation 5 February 14th, 2017 1 Overview Administrative issues Office Hours, Piazza guidelines Last week s reflection Project 2.1, OLI Unit 2 modules 5 and 6 This week

More information

Rethinking monitoring with Prometheus

Rethinking monitoring with Prometheus Rethinking monitoring with Prometheus Martín Ferrari Štefan Šafár http://tincho.org @som_zlo Who is Prometheus? A dude who stole fire from Mt. Olympus and gave it to humanity http://prometheus.io/ What

More information

Using the SDACK Architecture to Build a Big Data Product. Yu-hsin Yeh (Evans Ye) Apache Big Data NA 2016 Vancouver

Using the SDACK Architecture to Build a Big Data Product. Yu-hsin Yeh (Evans Ye) Apache Big Data NA 2016 Vancouver Using the SDACK Architecture to Build a Big Data Product Yu-hsin Yeh (Evans Ye) Apache Big Data NA 2016 Vancouver Outline A Threat Analytic Big Data product The SDACK Architecture Akka Streams and data

More information

CocoaHeads Aachen Server-side Swift

CocoaHeads Aachen Server-side Swift Server-side Swift 2016-08-25 Ullrich Platt, Michael Plagge Agenda Motivation for Server-side Swift Concepts / Architecture(s) Pros & Cons Requirements Status In depth: Frameworks Overview Swift@IBM / Kitura

More information

GroupWise Architecture and Best Practices. WebAccess. Kiran Palagiri Team Lead GroupWise WebAccess

GroupWise Architecture and Best Practices. WebAccess. Kiran Palagiri Team Lead GroupWise WebAccess GroupWise Architecture and Best Practices WebAccess Kiran Palagiri Team Lead GroupWise WebAccess kpalagiri@novell.com Ed Hanley Senior Architect ed.hanley@novell.com Agenda Kiran Palagiri Architectural

More information

Foundations of Python

Foundations of Python Foundations of Python Network Programming The comprehensive guide to building network applications with Python Second Edition Brandon Rhodes John Goerzen Apress Contents Contents at a Glance About the

More information

"Stupid Easy" Scaling Tweaks and Settings. AKA Scaling for the Lazy

Stupid Easy Scaling Tweaks and Settings. AKA Scaling for the Lazy "Stupid Easy" Scaling Tweaks and Settings AKA Scaling for the Lazy I'm Lazy (and proud of it) The Benefits of "Lazy" Efficiency is king Dislike repetition Avoid spending a lot of time on things A Lazy

More information

PostgreSQL as REST API Server without coding. Priya

PostgreSQL as REST API Server without coding. Priya PostgreSQL as REST API Server without coding Priya Ranjan @ranjanprj API Future of Application Development APIs are prerequisite for innovation Microservices provide APIs in a bounded context Existing

More information

How to store millions metrics per second. Vladimir Smirnov System Administrator. SREcon17 Asia/Australia 22 May 2017

How to store millions metrics per second. Vladimir Smirnov System Administrator. SREcon17 Asia/Australia 22 May 2017 Graphite@Scale: How to store millions metrics per second Vladimir Smirnov System Administrator SREcon17 Asia/Australia 22 May 2017 Why you might need to store your metrics? Most common cases: Capacity

More information

Design and Architecture. Derek Collison

Design and Architecture. Derek Collison Design and Architecture Derek Collison What is Cloud Foundry? 2 The Open Platform as a Service 3 4 What is PaaS? Or more specifically, apaas? 5 apaas Application Platform as a Service Applications and

More information

Basic Concepts of the Energy Lab 2.0 Co-Simulation Platform

Basic Concepts of the Energy Lab 2.0 Co-Simulation Platform Basic Concepts of the Energy Lab 2.0 Co-Simulation Platform Jianlei Liu KIT Institute for Applied Computer Science (Prof. Dr. Veit Hagenmeyer) KIT University of the State of Baden-Wuerttemberg and National

More information

Web Applications. Software Engineering 2017 Alessio Gambi - Saarland University

Web Applications. Software Engineering 2017 Alessio Gambi - Saarland University Web Applications Software Engineering 2017 Alessio Gambi - Saarland University Based on the work of Cesare Pautasso, Christoph Dorn, Andrea Arcuri, and others ReCap Software Architecture A software system

More information

CS193X: Web Programming Fundamentals

CS193X: Web Programming Fundamentals CS193X: Web Programming Fundamentals Spring 2017 Victoria Kirst (vrk@stanford.edu) CS193X schedule Today - Middleware and Routes - Single-page web app - More MongoDB examples - Authentication - Victoria

More information

Angular 2 and Hexo. Static Meets Dynamic For the Best of Both Worlds! Copyright 2016 Code Career Academy

Angular 2 and Hexo. Static Meets Dynamic For the Best of Both Worlds! Copyright 2016 Code Career Academy Angular 2 and Hexo Static Meets Dynamic For the Best of Both Worlds! Who am I? Jeff Ammons Microsoft MVP Pluralsight Author CEO/Chief Instructor at Code Career Academy 25 Years Professional Experience

More information

ArcGIS Enterprise: An Introduction. Philip Heede

ArcGIS Enterprise: An Introduction. Philip Heede Enterprise: An Introduction Philip Heede Online Enterprise Hosted by Esri (SaaS) - Upgraded automatically (by Esri) - Esri controls SLA Core Web GIS functionality (Apps, visualization, smart mapping, analysis

More information

Cross-Platform Data Models and API Using grpc

Cross-Platform Data Models and API Using grpc Cross-Platform Data Models and API Using grpc Sebastian Hagedorn, Felix Lamouroux Outline 1. Motivation & Goals 2. Choosing the Right Cross-Platform Technology 3. Introduction to Protocol Buffers and grpc

More information

Reconstructive API for the DOM

Reconstructive API for the DOM Reconstructive API for the DOM 281 Bloomfield Ave, Verona, NJ 07044 it s here and it changes everything Reconstructive API for the DOM, RAPID, is an add-on for Adobe Experience Manager (AEM) that finally

More information

Which application/messaging protocol is right for me?

Which application/messaging protocol is right for me? Which application/messaging protocol is right for me? Building a connected device solution calls for several design and architectural decisions. Which protocol(s) should you use to connect your devices

More information

How to store millions metrics per second. Vladimir Smirnov System Administrator

How to store millions metrics per second. Vladimir Smirnov System Administrator Graphite@Scale: How to store millions metrics per second Vladimir Smirnov System Administrator FOSDEM 2017 5 February 2017 Why you might need to store your metrics? Most common cases: Capacity planning

More information

Large-Scale Web Applications

Large-Scale Web Applications Large-Scale Web Applications Mendel Rosenblum Web Application Architecture Web Browser Web Server / Application server Storage System HTTP Internet CS142 Lecture Notes - Intro LAN 2 Large-Scale: Scale-Out

More information

Cloud platforms. T Mobile Systems Programming

Cloud platforms. T Mobile Systems Programming Cloud platforms T-110.5130 Mobile Systems Programming Agenda 1. Motivation 2. Different types of cloud platforms 3. Popular cloud services 4. Open-source cloud 5. Cloud on this course 6. Mobile Edge Computing

More information

Zero to Microservices in 5 minutes using Docker Containers. Mathew Lodge Weaveworks

Zero to Microservices in 5 minutes using Docker Containers. Mathew Lodge Weaveworks Zero to Microservices in 5 minutes using Docker Containers Mathew Lodge (@mathewlodge) Weaveworks (@weaveworks) https://www.weave.works/ 2 Going faster with software delivery is now a business issue Software

More information

Make your application real-time with PubSubHubbub. Brett Slatkin May 19th, 2010

Make your application real-time with PubSubHubbub. Brett Slatkin May 19th, 2010 Make your application real-time with PubSubHubbub Brett Slatkin May 19th, 2010 View live notes and ask questions about this session on Google Wave http://tinyurl.com/push-io2010 Me http://onebigfluke.com

More information

Real-Time & Big Data GIS: Best Practices. Josh Joyner Adam Mollenkopf

Real-Time & Big Data GIS: Best Practices. Josh Joyner Adam Mollenkopf Real-Time & Big Data GIS: Best Practices Josh Joyner Adam Mollenkopf ArcGIS Enterprise with real-time capabilities Desktop Apps APIs live features stream services live & historic aggregates & features

More information

/ Cloud Computing. Recitation 5 September 26 th, 2017

/ Cloud Computing. Recitation 5 September 26 th, 2017 15-319 / 15-619 Cloud Computing Recitation 5 September 26 th, 2017 1 Overview Administrative issues Office Hours, Piazza guidelines Last week s reflection Project 2.1, OLI Unit 2 modules 5 and 6 This week

More information

Backend Development. SWE 432, Fall 2017 Design and Implementation of Software for the Web

Backend Development. SWE 432, Fall 2017 Design and Implementation of Software for the Web Backend Development SWE 432, Fall 2017 Design and Implementation of Software for the Web Real World Example https://qz.com/1073221/the-hackers-who-broke-into-equifax-exploited-a-nine-year-old-security-flaw/

More information

A Brief Introduction of TiDB. Dongxu (Edward) Huang CTO, PingCAP

A Brief Introduction of TiDB. Dongxu (Edward) Huang CTO, PingCAP A Brief Introduction of TiDB Dongxu (Edward) Huang CTO, PingCAP About me Dongxu (Edward) Huang, Cofounder & CTO of PingCAP PingCAP, based in Beijing, China. Infrastructure software engineer, open source

More information

Deploying and Using ArcGIS Enterprise in the Cloud. Bill Major

Deploying and Using ArcGIS Enterprise in the Cloud. Bill Major Deploying and Using ArcGIS Enterprise in the Cloud Bill Major Quick Survey Your role in your organization - Developer? - Cloud Admin? Already a cloud user Running Esri deployment on AWS Running Esri deployment

More information

Think Small to Scale Big

Think Small to Scale Big Think Small to Scale Big Intro to Containers for the Datacenter Admin Pete Zerger Principal Program Manager, MVP pete.zerger@cireson.com Cireson Lee Berg Blog, e-mail address, title Company Pete Zerger

More information

Django Test Utils Documentation

Django Test Utils Documentation Django Test Utils Documentation Release 0.3 Eric Holscher July 22, 2016 Contents 1 Source Code 3 2 Contents 5 2.1 Django Testmaker............................................ 5 2.2 Django Crawler.............................................

More information

This release of Micro Focus Fortify Software includes the following new functions and features. Micro Focus Fortify Software Security Center

This release of Micro Focus Fortify Software includes the following new functions and features. Micro Focus Fortify Software Security Center Fortify Software What s New in Micro Focus Fortify Software 18.20 November 2018 This release of Micro Focus Fortify Software includes the following new functions and features. Micro Focus Fortify Software

More information

Prototyping Data Intensive Apps: TrendingTopics.org

Prototyping Data Intensive Apps: TrendingTopics.org Prototyping Data Intensive Apps: TrendingTopics.org Pete Skomoroch Research Scientist at LinkedIn Consultant at Data Wrangling @peteskomoroch 09/29/09 1 Talk Outline TrendingTopics Overview Wikipedia Page

More information

Design and development of a distributed, secure and resilient vault management system

Design and development of a distributed, secure and resilient vault management system Design and development of a distributed, secure and resilient vault management system Mathonet G. University of Liège, Belgium June 2017 Mathonet G. (University of Liège, Belgium) Design and development

More information

Server-Side Web Programming: Python (Part 2) Copyright 2017 by Robert M. Dondero, Ph.D Princeton University

Server-Side Web Programming: Python (Part 2) Copyright 2017 by Robert M. Dondero, Ph.D Princeton University Server-Side Web Programming: Python (Part 2) Copyright 2017 by Robert M. Dondero, Ph.D Princeton University 1 Objectives You will learn about: Python WSGI programming Web app frameworks in general (briefly)

More information

{ REST } vs. Battle of API s

{ REST } vs. Battle of API s { REST } vs Battle of API s Software Engineer at Sensedia Who am I? MBA in java projects Java and microservice enthusiastic Microservices Agenda REST grpc Demo Questions Moving to Microservices Monolith

More information

WORKLOAD CHARACTERIZATION OF INTERACTIVE CLOUD SERVICES BIG AND SMALL SERVER PLATFORMS

WORKLOAD CHARACTERIZATION OF INTERACTIVE CLOUD SERVICES BIG AND SMALL SERVER PLATFORMS WORKLOAD CHARACTERIZATION OF INTERACTIVE CLOUD SERVICES ON BIG AND SMALL SERVER PLATFORMS Shuang Chen*, Shay Galon**, Christina Delimitrou*, Srilatha Manne**, and José Martínez* *Cornell University **Cavium

More information

Introduction to GraphQL and Relay. Presenter: Eric W. Greene

Introduction to GraphQL and Relay. Presenter: Eric W. Greene Introduction to GraphQL and Relay Presenter: Eric W. Greene Welcome to the Webinar! Welcome to the webinar on GraphQL and Relay!!! We will review a few slides, then experiment with GraphQL and review GraphQL

More information

Asema IoT Central Integration and migration. English

Asema IoT Central Integration and migration. English Asema IoT Central English Table of Contents 1. Introduction... 1 2. alternatives... 2 2.1. Simply move and run... 2 2.2. Asema IoT Central as a proxy for other systems... 5 2.2.1. Proxied HTTP requests...

More information

Protocol Buffers, grpc

Protocol Buffers, grpc Protocol Buffers, grpc Szolgáltatásorientált rendszerintegráció Service-Oriented System Integration Dr. Balázs Simon BME, IIT Outline Remote communication application level vs. transport level protocols

More information

Staggeringly Large File Systems. Presented by Haoyan Geng

Staggeringly Large File Systems. Presented by Haoyan Geng Staggeringly Large File Systems Presented by Haoyan Geng Large-scale File Systems How Large? Google s file system in 2009 (Jeff Dean, LADIS 09) - 200+ clusters - Thousands of machines per cluster - Pools

More information

ProxySQL's Internals

ProxySQL's Internals ProxySQL's Internals What is ProxySQL? A "Layer 7" database proxy MySQL / ClickHouse protocol aware High Performance High Availability Architecture Overview Clients connect to ProxySQL Requests are evaluated

More information

Using Opengl Es 2.0 For Android Development Develop And Design Pdf

Using Opengl Es 2.0 For Android Development Develop And Design Pdf Using Opengl Es 2.0 For Android Development Develop And Design Pdf Using OpenGL ES Design and implementation. Testing and results Develop. Requirements. App design. Benchmark scene design. Test Install

More information

Review. Fundamentals of Website Development. Web Extensions Server side & Where is your JOB? The Department of Computer Science 11/30/2015

Review. Fundamentals of Website Development. Web Extensions Server side & Where is your JOB? The Department of Computer Science 11/30/2015 Fundamentals of Website Development CSC 2320, Fall 2015 The Department of Computer Science Review Web Extensions Server side & Where is your JOB? 1 In this chapter Dynamic pages programming Database Others

More information

Architecting for Scale

Architecting for Scale Armin Balalaie and Abbas Heydarnoori, Sharif University of Technology Pooyan Jamshidi, Imperial College London // This article reports on experiences and lessons learned during incremental migration and

More information

利用 Mesos 打造高延展性 Container 環境. Frank, Microsoft MTC

利用 Mesos 打造高延展性 Container 環境. Frank, Microsoft MTC 利用 Mesos 打造高延展性 Container 環境 Frank, Microsoft MTC About Me Developer @ Yahoo! DevOps @ HTC Technical Architect @ MSFT Agenda About Docker Manage containers Apache Mesos Mesosphere DC/OS application = application

More information

.., 2017. 09.03.01,.....,,,,,..,.., 2017 .................................... 4 1......... 6 2.......................... 8 2.1................... 8 2.2................... 9 2.2.1...........................

More information

Byte Academy. Python Fullstack

Byte Academy. Python Fullstack Byte Academy Python Fullstack 06/30/2017 Introduction Byte Academy pioneered industry-focused programs beginning with the launch of our FinTech course, the first of its type. Our educational programs bridge

More information

Elasticsearch. Presented by: Steve Mayzak, Director of Systems Engineering Vince Marino, Account Exec

Elasticsearch. Presented by: Steve Mayzak, Director of Systems Engineering Vince Marino, Account Exec Elasticsearch Presented by: Steve Mayzak, Director of Systems Engineering Vince Marino, Account Exec What about Elasticsearch the Company?! Support 100s of Companies in Production environments Training

More information

Exploring the Nuxeo REST API

Exploring the Nuxeo REST API Exploring the Nuxeo REST API Enabling Rapid Content Application Craftsmanship Copyright 2018 Nuxeo. All rights reserved. Copyright 2017 Nuxeo. All rights reserved. Chapter 1 The Nuxeo REST API What do

More information

Future Web App Technologies

Future Web App Technologies Future Web App Technologies Mendel Rosenblum MEAN software stack Stack works but not the final say in web app technologies Angular.js Browser-side JavaScript framework HTML Templates with two-way binding

More information

Open Data Standards for Administrative Data Processing

Open Data Standards for Administrative Data Processing University of Pennsylvania ScholarlyCommons 2018 ADRF Network Research Conference Presentations ADRF Network Research Conference Presentations 11-2018 Open Data Standards for Administrative Data Processing

More information

Data Acquisition. The reference Big Data stack

Data Acquisition. The reference Big Data stack Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica Data Acquisition Corso di Sistemi e Architetture per Big Data A.A. 2017/18 Valeria Cardellini The reference

More information

Building Scalable and Extendable Data Pipeline for Call of Duty Games: Lessons Learned. Yaroslav Tkachenko Senior Data Engineer at Activision

Building Scalable and Extendable Data Pipeline for Call of Duty Games: Lessons Learned. Yaroslav Tkachenko Senior Data Engineer at Activision Building Scalable and Extendable Data Pipeline for Call of Duty Games: Lessons Learned Yaroslav Tkachenko Senior Data Engineer at Activision 1+ PB Data lake size (AWS S3) Number of topics in the biggest

More information

BespoKV: Application Tailored Scale-Out Key-Value Stores

BespoKV: Application Tailored Scale-Out Key-Value Stores BespoKV: Application Tailored Scale-Out Key-Value Stores Ali Anwar, Yue Cheng, Hai Huang, Jingoo Han, Hyogi Sim, Dongyoon Lee, Fred Douglis, and Ali R. Butt BespoKV Role of Distributed KV stores in HPC

More information

Learn Ruby On Rails For Web Development Learn Rails The Fast And Easy Way

Learn Ruby On Rails For Web Development Learn Rails The Fast And Easy Way Learn Ruby On Rails For Web Development Learn Rails The Fast And Easy Way Learn Ruby on Rails by following along and building a Pinterest Clone website. Rails book Learn Ruby On Rails For Web Development

More information

WhoWhenWhere. Project: WhoWhenWhere Date:

WhoWhenWhere. Project: WhoWhenWhere Date: WhoWhenWhere Introduction: Authentication has always been a challenge. In case of passwords hashes are used for securing, but there were cases where hashes collide. When finger print based authentication

More information

Security. SWE 432, Fall 2017 Design and Implementation of Software for the Web

Security. SWE 432, Fall 2017 Design and Implementation of Software for the Web Security SWE 432, Fall 2017 Design and Implementation of Software for the Web Today Security What is it? Most important types of attacks Authorization oauth 2 Security Why is it important? Users data is

More information

Four times Microservices: REST, Kubernetes, UI Integration, Async. Eberhard Fellow

Four times Microservices: REST, Kubernetes, UI Integration, Async. Eberhard  Fellow Four times Microservices: REST, Kubernetes, UI Integration, Async Eberhard Wolff @ewolff http://ewolff.com Fellow http://continuous-delivery-buch.de/ http://continuous-delivery-book.com/ http://microservices-buch.de/

More information

Rails on HBase. Zachary Pinter and Tony Hillerson RailsConf 2011

Rails on HBase. Zachary Pinter and Tony Hillerson RailsConf 2011 Rails on HBase Zachary Pinter and Tony Hillerson RailsConf 2011 What we will cover What is it? What are the tradeoffs that HBase makes? Why HBase is probably the wrong choice for your app Why HBase might

More information

TLDK Overview. Transport Layer Development Kit Keith Wiles April Contributions from Ray Kinsella & Konstantin Ananyev

TLDK Overview. Transport Layer Development Kit Keith Wiles April Contributions from Ray Kinsella & Konstantin Ananyev TLDK Overview Transport Layer Development Kit Keith Wiles April 2017 Contributions from Ray Kinsella & Konstantin Ananyev Notices and Disclaimers Intel technologies features and benefits depend on system

More information

THE FULCRUM SOFTWARE STACK. A Look Inside

THE FULCRUM SOFTWARE STACK. A Look Inside THE FULCRUM SOFTWARE STACK A Look Inside Core Components Classic API Query API Web App Mobile Apps Tile Server DB Server 3 The Web App Ruby on Rails Application CoffeeScript / JavaScript Sass for CSS Preprocessing

More information

The Idiot s Guide to Quashing MicroServices. Hani Suleiman

The Idiot s Guide to Quashing MicroServices. Hani Suleiman The Idiot s Guide to Quashing MicroServices Hani Suleiman The Promised Land Welcome to Reality Logging HA/DR Monitoring Provisioning Security Debugging Enterprise frameworks Don t Panic WHOAMI I wrote

More information

Node.js Vulnerabilities

Node.js Vulnerabilities Node.js Vulnerabilities Amadou Crookes December 13th, 2013 Abstract Node.js is a fresh take on building fast, scalable network applications in the form of a server side framework. There are two main differences

More information

Powerful application delivery, security, performance and reliability

Powerful application delivery, security, performance and reliability Powerful application delivery, security, performance and reliability Snapt Summary Snapt develops high-end solutions for application delivery. We provide load balancing, web acceleration, caching and security

More information

ENERGYPLUS PERFORMANCE IMPROVEMENTS VIA JSON INPUT REFACTORING

ENERGYPLUS PERFORMANCE IMPROVEMENTS VIA JSON INPUT REFACTORING 2018 Building Performance Modeling Conference and SimBuild co-organized by ASHRAE and IBPSA-USA Chicago, IL September 26-28, 2018 ENERGYPLUS PERFORMANCE IMPROVEMENTS VIA JSON INPUT REFACTORING ABSTRACT

More information