Baratine Building high-performing resource services.

Slides:



Advertisements
Similar presentations
Running Your Startup on Amazon Web Services Alex Iskold Founder/CEO AdaptiveBlue Feature Writer ReadWriteWeb.
Advertisements

Multiple Processor Systems
Distributed Processing, Client/Server and Clusters
Database Architectures and the Web
Nam Nguyen Software Engineer Caucho Technology, Inc.
A Survey of Distributed Database Management Systems Brady Kyle CSC
Study of Hurricane and Tornado Operating Systems By Shubhanan Bakre.
Distributed Processing, Client/Server, and Clusters
 Java  Python  Bigtable(Bt) is a distributed storage system for managing structured data that is designed to scale to a very large size.  Query Language.
Microsoft Ignite /16/2017 2:42 PM
McGraw-Hill/Irwin Copyright © 2007 by The McGraw-Hill Companies, Inc. All rights reserved. Chapter 17 Client-Server Processing, Parallel Database Processing,
Nikolay Tomitov Technical Trainer SoftAcad.bg.  What are Amazon Web services (AWS) ?  What’s cool when developing with AWS ?  Architecture of AWS 
Advanced Distributed Software Architectures and Technology group ADSaT 1 Application Architectures Ian Gorton, Paul Greenfield.
Client/Server Architecture
Platform as a Service (PaaS)
Google AppEngine. Google App Engine enables you to build and host web apps on the same systems that power Google applications. App Engine offers fast.
Take An Internal Look at Hadoop Hairong Kuang Grid Team, Yahoo! Inc
Highly Available ACID Memory Vijayshankar Raman. Introduction §Why ACID memory? l non-database apps: want updates to critical data to be atomic and persistent.
Word Wide Cache Distributed Caching for the Distributed Enterprise.
Cloud Computing for the Enterprise November 18th, This work is licensed under a Creative Commons.
Lecture 8 – Platform as a Service. Introduction We have discussed the SPI model of Cloud Computing – IaaS – PaaS – SaaS.
PowerTier EJB in High-Performance Applications John Killoran European Technical Services Manager Persistence Software.
What is Architecture  Architecture is a subjective thing, a shared understanding of a system’s design by the expert developers on a project  In the.
Oracle Coherence Product Overview Raanan Dagan / Coherence Team.
M i SMob i S Mob i Store - Mobile i nternet File Storage Platform Chetna Kaur.
JBoss Cache. Cache A place to temporarily store data that is expensive or difficult to compute or retrieve. Caches should be fast to access. May or may.
— Build your own enterprise-class PaaS platform. Master Cloudset Cloudset1 Cloudset Resource Pool cloud Dedicated resource can be assigned to a cloudset.
DISTRIBUTED COMPUTING
GigaSpaces Global HTTP Session Sharing October 2013 Massive Web Application Scaling.
1 Moshe Shadmon ScaleDB Scaling MySQL in the Cloud.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
MapReduce and GFS. Introduction r To understand Google’s file system let us look at the sort of processing that needs to be done r We will look at MapReduce.
Baratine in Practice Nam Nguyen Software Engineer Caucho Technology, Inc. 1 Date: Location: San Diego JUG.
Server to Server Communication Redis as an enabler Orion Free
Distributed Information Systems. Motivation ● To understand the problems that Web services try to solve it is helpful to understand how distributed information.
Distributed Time Series Database
Cloud Computing Computer Science Innovations, LLC.
Microsoft Azure and DataStax: Start Anywhere and Scale to Any Size in the Cloud, On- Premises, or Both with a Leading Distributed Database MICROSOFT AZURE.
Lecture 27 Multiprocessor Scheduling. Last lecture: VMM Two old problems: CPU virtualization and memory virtualization I/O virtualization Today Issues.
EJB Enterprise Java Beans JAVA Enterprise Edition
Introduction to Node.js® Jitendra Kumar Patel Saturday, January 31, 2015.
Amazon Web Services. Amazon Web Services (AWS) - robust, scalable and affordable infrastructure for cloud computing. This session is about:
DreamFactory for Microsoft Azure Is an Open Source REST API Platform That Enables Mobilization of Data in Minutes across Frameworks and Storage Methods.
GENERAL SCALABILITY CONSIDERATIONS
The Holmes Platform and Applications
Platform as a Service (PaaS)
Sanjay Ghemawat, Howard Gobioff, Shun-Tak Leung
Ninja Azure Consultant
Build /26/2018 6:17 AM Building Resilient, Scalable Services with Microsoft Azure Service Fabric Érsek © 2015 Microsoft Corporation.
Platform as a Service (PaaS)
Platform as a Service (PaaS)
N-Tier Architecture.
Advanced Topics in Distributed and Reactive Programming
Platform as a Service.
Async or Parallel? No they aren’t the same thing!
Cloud Computing Platform as a Service
The Client/Server Database Environment
The Improvement of PaaS Platform ZENG Shu-Qing, Xu Jie-Bin 2010 First International Conference on Networking and Distributed Computing SQUARE.
CS5220 Advanced Topics in Web Programming Course Overview
Node.Js Server Side Javascript
Advanced Topics in Distributed and Reactive Programming
Logsign All-In-One Security Information and Event Management (SIEM) Solution Built on Azure Improves Security & Business Continuity MICROSOFT AZURE APP.
Dell Data Protection | Rapid Recovery: Simple, Quick, Configurable, and Affordable Cloud-Based Backup, Retention, and Archiving Powered by Microsoft Azure.
Lecture 1: Multi-tier Architecture Overview
Google App Engine Ying Zou 01/24/2016.
Last.Backend is a Continuous Delivery Platform for Developers and Dev Teams, Allowing Them to Manage and Deploy Applications Easier and Faster MICROSOFT.
Developing and testing enterprise Java applications
5 Azure Services Every .NET Developer Needs to Know
CS5220 Advanced Topics in Web Programming Course Overview
Presentation transcript:

Baratine Building high-performing resource services

Fast Resource Services In-memory services Batching CPU affinity/single-threaded Local persistent database Object Orientated Communication Resilience and Scalability Cloud/Failover Journaling Microservices

Microservice (noun) - ?

Baratine.io In-Memory Services

Baratine in the field

Multitasking Because we needed another word for “unable to focus on task at hand”

In-Memory Service Single threaded CPU affinity Batching Uninterrupted Performance

Batching Multithreaded: synchronized write() flush() synchronized write() flush() synchronized write() flush() Baratine: write() flush() Log Service Example Ex: TCP can send 100 bytes as fast as 1 byte Automatic batching! Where else can you get that?

Batching Single threaded Batching CPU affinity/single- threaded Uninterrupted Performance

Websocket (batched) = 500,000 r/s In-JVM messaging = 4,000,000 r/s Performance In Context Websocket (single) = 50,000 r/s

In-memory services Batching CPU affinity/single-threaded Resources Locally Owned Communication Resilience and Scalability Cloud/Failover Journaling Microservices Resources

Resources What are they? REST style URL-addressed service Objected Oriented: data + methods Auction Shopping Cart Atomic counter, list, queue /my- auction/23456

@ResourceService Def - Service that manages resources Each resource owned by one service Saved to local disk Replicated Partitioned by URL

Atomic public class CounterServiceImpl { private long _id; private long public long incrementAndGet() { return ++_counter; }

@ResourceService asy nc

Store and retrieve resources > key-value store Async, implemented in Baratine services Journaled for performance & reliability Replicated Fast Local Database

Resources In-memory services Batching CPU affinity/single-threaded Resources Locally Owned Communication Resilience and Scalability Cloud/Failover Journaling Microservices

Using a Service? REST – For simple client (like Curl), Baratine provides a REST interface. Ajax RPC style – Simple RPC queries, can use a HTTP request where the payload is the query and the response is the result. WebSockets – when websockets is available, provides better performance HTTP long polling – as a WebSocket fallback, Baratine/JAMP can fallback to HTTP long polling. Protocols Python Nodej s Java ee PHP

Communicate! Jamp/Hamp JAMP (JSON Active Message Protocol)

Gateway Service Interfacing with existing data Analytics/ Archive: streaming data for later processing Loading data: using relational databases Examples: Hibernate / JPA, Hadoop, SAP, etc…

Resources In-memory services Batching CPU affinity/single-threaded Resources Locally Owned Communication Resilience and Scalability Cloud/Failover Journaling Microservices

Scaling & Failover Client Resource partitioning by URL Replicated Data Backup servers

Bartender Manages failover and scaling Baratine within a cluster Symmetrical, gossip protocol Heartbeat Service pod topology Cloud/Dynamic Server (EC2)

Service Journaling Saves inbox method calls Checkpointing Recovers on restart Replicated for failover

Services In-memory services Batching CPU affinity/single-threaded Resources Locally Owned Communication Resilience and Scalability Cloud/Failover Journaling Microservices

Overview 1.Key-value Store 2.Journal 3.Jamp 4.Bartender 5.Baratine File System 6.Service Registry 7.Web Server 7 MB (No external dependencies)

Amdahl’s Law Amdahl’s Law: The speedup of a program using multiple processors in parallel computing is limited by the sequential fraction of the program. For example, if 95% of the program can be parallelized, the theoretical maximum speedup using parallel computing would be 20× as shown in the diagram, no matter how many processors are used.

Serial & Parallel Partition resources for parallelism single CPU efficiencies CPU affinity Batching A simple way to build high-performing resource services The same hardware can handle 10x to 100x the number of requests, so you have less vertical scaling to manage. To put it simply: Do more with less.

Baratine Services Loosely Coupled Event-Driven Asynchronous Pub/Sub Non-Blocking AGILE!

Microservices In-memory services Batching CPU affinity/single-threaded Resources Locally Owned Communication Resilience and Scalability Cloud/Failover Journaling Microservices

Microservices Code that adheres to the principles of SOA Faster Development Less Hardware True Scalability Easier to debug Marton Abbott & Michael Fisher

Where are we now? Microservices vs SOA SOA 2.0 Domain Driven Design Reactive Manifesto Silo’d Development Synonyms… ? 2006! Steve Jones

Example Code Implementation Interfac e request (s)

Baratine Benefits Combining data + service = resource service Flexible REST/HTTP based communication - Do not need dedicated client library! Writing a non-blocking, asynchronous RPC service is as simple as writing a Java class. Can communicate with (Ruby, Go, C#, Java, Python, JavaScript, etc…). A simple way to build high-performing resource services

Example Code Server: Service Inbox batc h reque st Does not need to lock* Outbox reuse thread futur e wak e resul t (Blocking Integration)

Future(blocking) = 186,000 r/s In-JVM messaging = 4,000,000 r/s Performance In Context

Related Architectures No architecture specifically designed for Microservices

Related Architectures EJB, JPA, JSF, Jcache, Jax- RS ESB + Datagrid + Cache + NoSQL db + Asynch API Gridgain Redis MongoDB Terracotta Can integrate with Java EE

Baratine + Existing Browser/ Client Load Balancer MySQL File System App Server war Service UI Familiarity Deployable Maintainable? Testable Scalable? Cache

Transition… Beer Break!

BACKUP

Baratine Baratine is a new GPL distributed in-memory Java architecture for building high-performance web services. Baratine presents a unification of application and data within the same JVM in a single- threaded model that goes above and beyond caching and NoSQL databases. Its actor-based non-blocking architecture ushers in a new wave of agile microservices that can be quickly built to be inherently scalable. Baratine allows users to build new resilient services or integrate their current services into a platform that can be deployed to hundreds or thousands of servers.

Traditional Problems… Modify one => Modify all Long release cycles Code Complexity A/B, UI testing Overloaded IDE/Container DB synchronization Cache Coherency Migration Schema Unable to update one end without updating another

Decoupling legacy systems is not easy and still reliant around DB Try to avoid distributed transactions? Traditional Problems…

Architecture Details Performance -Single threaded + In- Memory Future(blocking) = 186,000 r/s Websocket remoting = 500,000 r/s Service messaging = 4,000,000 r/s Traditional (Queue): Ask queue for work Does 1 unit of work Ask queue for work … Baratine: Ask inbox for work Does 10 units of work Ask inbox for work … Needs to block (context switch)Does not need to block

Baratine In-memory services Batching CPU affinity/single-threaded Local persistent database Object Orientated Communication Resilience Cloud/Failover Journaling Microservices

C+ + Jav a EJ B A HISTORY OF EVENTS

Traditional Architecture

Need to store and retrieve data > key-value store JVM restarts and you need a way to recover > Journal Need efficient communication across services > Jamp/ Web Server Management within cloud environment > Bartender Architecture …

Deployment in the cloud > Baratine File System Need to identify services > Service Registry 7 MB! Architecture Details

Baratine Baratine is a new distributed in-memory Java architecture for building high- performance web services. Baratine presents a unification of application and data in a single- threaded model that goes beyond caching and NoSQL databases. Its actor-based architecture ushers in a new wave of agile microservices that are built to be inherently scalable. Baratine allows users to build new resilient services or integrate their current services into a platform that can be deployed to hundreds or thousands of servers. Single-threaded in-memory services

Example Programs Real-Time National Debate Program Tailored Coupon App Authentication Clustered Performance Responsive Scalable Deployable Can be achieved with a Baratine