Server to Server Communication Redis as an enabler Orion Free

Slides:



Advertisements
Similar presentations
How We Manage SaaS Infrastructure Knowledge Track
Advertisements

Tableau Software Australia
DIGIDOC A web based tool to Manage Documents. System Overview DigiDoc is a web-based customizable, integrated solution for Business Process Management.
SSRS 2008 Architecture Improvements Scale-out SSRS 2008 Report Engine Scalability Improvements.
EHarmony in Cloud Subtitle Brian Ko. eHarmony Online subscription-based matchmaking service Available in United States, Canada, Australia and United Kingdom.
Seeking prime numbers quickly through parallel-computing Daniel J. Wright.
Parasol Architecture A mild case of scary asynchronous system stuff.
Spark: Cluster Computing with Working Sets
Adding scalability to legacy PHP web applications Overview Mario A. Valdez-Ramirez.
Technical Architectures
490dp Synchronous vs. Asynchronous Invocation Robert Grimm.
Nikolay Tomitov Technical Trainer SoftAcad.bg.  What are Amazon Web services (AWS) ?  What’s cool when developing with AWS ?  Architecture of AWS 
Fundamentals of Python: From First Programs Through Data Structures
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.
How WebMD Maintains Operational Flexibility with NoSQL Rajeev Borborah, Sr. Director, Engineering Matt Wilson – Director, Production Engineering – Consumer.
Włodzimierz Funika, Filip Szura Automation of decision making for monitoring systems.
Distributed Data Stores – Facebook Presented by Ben Gooding University of Arkansas – April 21, 2015.
Introduction to Amazon Web Services (AWS)
VAP What is a Virtual Application ? A virtual application is an application that has been optimized to run on virtual infrastructure. The application software.
A Brief Overview by Aditya Dutt March 18 th ’ Aditya Inc.
Word Wide Cache Distributed Caching for the Distributed Enterprise.
Cloud Computing for the Enterprise November 18th, This work is licensed under a Creative Commons.
Research on cloud computing application in the peer-to-peer based video-on-demand systems Speaker : 吳靖緯 MA0G rd International Workshop.
© 2011 MindTree Limited CONFIDENTIAL: For limited circulation only e-Commerce web app Architecture and Scalability Srinivas Bhagavatula.
Cloud MapReduce : a MapReduce Implementation on top of a Cloud Operating System Speaker : 童耀民 MA1G Authors: Huan Liu, Dan Orban Accenture.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
 Cloud computing  Workflow  Workflow lifecycle  Workflow design  Workflow tools : xcp, eucalyptus, open nebula.
Pepper: An Elastic Web Server Farm for Cloud based on Hadoop Author : S. Krishnan, J.-S. Counio Date : Speaker : Sian-Lin Hong IEEE International.
Oracle10g RAC Service Architecture Overview of Real Application Cluster Ready Services, Nodeapps, and User Defined Services.
Mechanism to support establishment of charging policies Group Name: WG2-ARC Source: InterDigital Meeting Date: TP8 Agenda Item:
Performance Concepts Mark A. Magumba. Introduction Research done on 1058 correspondents in 2006 found that 75% OF them would not return to a website that.
Cluster Reliability Project ISIS Vanderbilt University.
Introduction to Hadoop and HDFS
Module 10: Monitoring ISA Server Overview Monitoring Overview Configuring Alerts Configuring Session Monitoring Configuring Logging Configuring.
DCE (distributed computing environment) DCE (distributed computing environment)
Uncovering the Multicore Processor Bottlenecks Server Design Summit Shay Gal-On Director of Technology, EEMBC.
Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila.
IMDGs An essential part of your architecture. About me
Frontiers in Massive Data Analysis Chapter 3.  Difficult to include data from multiple sources  Each organization develops a unique way of representing.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
© 2006 IBM Corporation Agile Planning Web UI. © 2006 IBM Corporation Agenda  Overview of APT Web UI  Current Issues  Required Infrastructure  API.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Issues Autonomic operation (fault tolerance) Minimize interference to applications Hardware support for new operating systems Resource management (global.
SPECULATIVE EXECUTION IN A DISTRIBUTED FILE SYSTEM E. B. Nightingale P. M. Chen J. Flint University of Michigan.
The Alternative Larry Moore. 5 Nodes and Variant Input File Sizes Hadoop Alternative.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
Process Architecture Process Architecture - A portion of a program that can run independently of and concurrently with other portions of the program. Some.
Computing Simulation in Orders Based Transparent Parallelizing Pavlenko Vitaliy Danilovich, Odessa National Polytechnic University Burdeinyi Viktor Viktorovych,
Parallelizing Spacetime Discontinuous Galerkin Methods Jonathan Booth University of Illinois at Urbana/Champaign In conjunction with: L. Kale, R. Haber,
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Expense Tracking System Developed by: Ardhita Maharindra Muskan Regmi Nir Gurung Sudeep Karki Tikaprem Gurung Date: December 05 th, 2008.
E-commerce Architecture Ayşe Başar Bener. Client Server Architecture E-commerce is based on client/ server architecture –Client processes requesting service.
Introduction to Node.js® Jitendra Kumar Patel Saturday, January 31, 2015.
Improve the Performance, Scalability, and Reliability of Applications in the Cloud with jetNEXUS Load Balancer for Microsoft Azure MICROSOFT AZURE ISV.
Cofax Scalability Document Version Scaling Cofax in General The scalability of Cofax is directly related to the system software, hardware and network.
Amazon Web Services. Amazon Web Services (AWS) - robust, scalable and affordable infrastructure for cloud computing. This session is about:
Connected Infrastructure
Remote execution of long-running CGIs
Google App Engine Mandeep Singh (37926)
Self Healing and Dynamic Construction Framework:
Connected Infrastructure
#01 Client/Server Computing
Exploring Azure Event Grid
Azure Event Grid with Custom Events
Distributed computing deals with hardware
Design Components are Code Components
Data Grid Patterns Brian Oliver | Global Solutions Architect | Oracle Corporation | JBFOne 2008.
Long Running Umbraco Tasks With Azure Service Bus and functions
#01 Client/Server Computing
Presentation transcript:

Server to Server Communication Redis as an enabler Orion Free

What we did Parallel Compute, Flow Control, Resource Offloading

Parallel Computation  Run many jobs concurrently  Separation of job concerns

Flow Control  Event based processing  Manage distributed and decentralized data  Coordination of messages and flow state

Resource Offloading  Free up threads on key servers  Mitigate thread blocking on single-threaded architectures

Architecture Event-Driven Isolate Parallel Processing

Why you should care Cost, Scale, Speed, Resourcing, Flexibility

Cost  Minimal Overhead  Possibility for cost-effective, cutting-edge framework

Scale  Simple, Managed Horizontal Scale  Parallel and Isolated Computations

Speed  Fast spin-up and completion  Parallel separation of concerns reduces overall compute time

Resourcing  Reduces load on core actors in architecture  For single-threaded platforms, open thread for essential tasks

Flexibility  High availability of tools in many languages  Implementation of separate or shared resource nodes

How we did it Hands-off Infrastructure, Third Party Tools

Hands-off Infrastructure  Managed Servers  Cloud-based Services

Third Party Services  Amazon Lambda  Redis

What is Lambda?  Amazon’s in-preview compute service  Parallel and isolated compute processes  Billing by the 100ms – we care about cycles

Why use it?  Highly cost-effective. Fully on-demand.  Parallel processing and high speed  Shared modules and re-use of code

So what’s the problem?  One way invocation. Low state visibility.  Lack of failure management.  Limited trigger and invocation access.

How did we solve the problem?  Redis!  Redis as a tool to alleviate the limitations of lambda  Event management separation

Why use Redis?  Low latency and quick connection  Speed of transactions  Robust Messaging pattern

Why use Redis? (Cont.)  Flexible and Plentiful Datatypes  Ease of Key Value Model

How it works Events, Compute, Messaging

Triggering an event The calling server sends the event profile to the Event Handler The Event Handler stores the event profile in the Redis Retry Node The Event Handler sends an Invoke Request to Lambda with the event data

When it fails The Lambda Compute instance sends a failure publish message with its Retry node profile key The Event Handler receives the failure publish message through channel subscription and increments the retry counter in the event profile The Event Handler checks the retry counter and invokes the Lambda function again, if able

When it completes The Lambda Compute instance stores resulting data to the Redis Data Node store The Lambda Compute instance sends a success publish message The originating server receives the success message through subscription channel, and synchronizes and takes any additional action with the resulting data

How we used it Marketing Rules, Notification Management

Marketing Rules  Rules Document Conversion  Minimal Development Oversight  Realtime Business Rule Synchronization

Marketing Business Rules  Content Rule Document  Human Readable  Testable for the cheer page in group test CheerTeamA for 50% show when the url is cheer.url.com the query string q is cheer the user self-identifies with Ready, Set, Organize! as header a program to help you succeed faster as subheader cheerleader as background (We hope)

User Flow 1. User modifies Rules document and uploads to S3 2. S3 Triggers a Lambda Event 3. Lambda Converts the Rules document 1. Lambda Stores result in Redis 2. Lambda publishes Success 4. Marketing Server observes Success 5. Marketing Server Synchronizes data

Notification Management  Realtime communication to users  Trigger from any event  Client connection status

Infrastructure  Observer Node  Observer Node server  subscribed to Redis Notifications Channel  socket connected to user clients and rooms

Message Flow 1. Event sends message 2. Message stored in Redis node 3. Message Publish to Channel 4. Observer observes message 5. Observer checks intended Client connectivity 6. Observer pushes message to Client if connected 7. Message left for recovery on Client connection if intended Client offline

What we gained Less Oversight, Real-time service-to-user, Scalability

Oversight  Less administrative oversight on conversion and transformation tasks  Automated messaging system triggered directly from events

Real-time Responsivity  Instantaneous synchronization between  Compute  Jobs  Client and Application Servers  Clients  Message handling from Events

Scalability  Separation of one-shot jobs from Queues  Scalable Infrastructure management with Lambda and Redis  Cost-effective event scaling

What was the impact Setup, Architecture, Cost Overhead

Setup  Usage of third party Services  Cost of Scale for additional Redis Nodes and Instances  Management of Infrastructure

Infrastructure  Ideally, 5 additional actors  Event Server  Observer Server  Redis Data Server  Redis Retry Server  Compute Stack

Overheads  Cost of Running additional Event and Observer Worker Servers  Cost of Running additional Redis Nodes  Cost of Lambda  Billing every 100ms  Impact of Redis Connection on Lambda cycles

Overhead - Lambda  30 million computations  548ms average  Estimates  Utilizing Redis to control Event Flow has a ~14.5% chance of pushing Lambda into the next billing cycle Cycles without Redis Redis Additional Cycles Cost without Redis $6.86 Redis Additional Cost $0.18 Total Cycles Total Cost $7.04

Conventional Queue  Also possible with Conventional Queue  Conventional Queue control flow impact is a time consideration  How much process time is dedicated to Redis connection?

Overhead - Queue  30 million computations  Estimates  Around 8 hours per month paid time dedicated to control flow Per Conversion ~10ms Overhead 30,000 seconds ~8 Hours Per Month

What are the possibilities Image and data processing, database cleanup, multiplicative tasks

Processing  Can offload single directional event flows easily  Trigger on data streams to transform and analyze data on demand  Process image and file conversions and production

Cleanup  Can run timed or triggered cleanup of objects or whole databases  Signal acting servers to synchronize data and states with database changes

Tasking  User or Internally defined Tasks  Multiple Asynchronous tasks with Response to Client  Uploading multiple files  Adding multiple records  Sending messages with receipt  Scripting possibilities for rote tasks  Generating rules, JSON, analytics, cache

How we move forward Testing, Supportive Scaling

Testing  Proof of Concept  Still in preview  Needs robust testing and benchmarking

Bottlenecks  Scaling of Lambda is mostly self-sufficient  Bottleneck in Supporting Actors  Redis  Event and Observer Servers

Supportive Scaling  Redis Cluster  Horizontal and Vertical Event Server Scaling  Event Server Separation

Questions? Thank you!

For these slides and more Check out