30
Your systems. Working as one. Top 10 Ways to Mess Up your Distributed System Stan Schneider, PhD

Top 10 Ways to Mess Up Your Distributed System

Embed Size (px)

DESCRIPTION

View On-Demand http://ecast.opensystemsmedia.com/331Learn how to avoid commonly made mistakes when designing your distributed system. Whether it's misunderstanding your data flow or underestimating scale – learn from and apply real-world technical experience to your project.RTI is the world's leading vendor of real-time middleware. We have direct experience with hundreds of teams building thousands of complex distributed systems. These range from a few computers to thousands, and soon, millions. We have seen, across the dozens of industries we engage, patterns of use, and critical mistakes, that even the best designers can make.This webinar targets chief engineers and software architects for high-performance distributed systems. It captures some of our experience with these types of systems.

Citation preview

Page 1: Top 10 Ways to Mess Up Your Distributed System

Your systems. Working as one.

Top 10 Ways to Mess Up your Distributed System

Stan Schneider, PhD

Page 2: Top 10 Ways to Mess Up Your Distributed System

Distributed Systems Experience

Page 3: Top 10 Ways to Mess Up Your Distributed System

Trend: Scale

• More things producing and consuming data

• Greater volume of data• System of systems

integrationSystem of systems

Page 4: Top 10 Ways to Mess Up Your Distributed System

Problem

By the time you find out if your infrastructure is good, it’s too late

04/13/2023 4

Page 5: Top 10 Ways to Mess Up Your Distributed System

Top 10 Ways to Mess Up Your Distributed System

04/13/2023 5

Page 6: Top 10 Ways to Mess Up Your Distributed System

Gloss over your data model

04/13/2023 6

1

Page 7: Top 10 Ways to Mess Up Your Distributed System

7

Who uses the FACE Data Model?

System IntegrationFACE Definition (Standards)

Software Development

OTS Portable

Components

Core Data Model

Compliant To

System Data Model

Integrator

Definitions

Associations

Data Descriptions

Packaging

Constraints

Proposed Updates

Supplier Develops

Use

s

Page 8: Top 10 Ways to Mess Up Your Distributed System

Misunderstand your data flow

04/13/2023 8

2

Page 9: Top 10 Ways to Mess Up Your Distributed System

Data Flow Models

Point-to-Point Client/Server Publish/Subscribe

BrokeredESB

Daemon

Pub/Sub Messaging

Data-CentricPublish/Subscribe (DCPS)

Data-Centric

9

Page 10: Top 10 Ways to Mess Up Your Distributed System

Allow uncontrolled state

04/13/2023 10

3

Page 11: Top 10 Ways to Mess Up Your Distributed System

Controlled State

• Data centric– Single source of truth– Known structure– Clear rules for access, changes, updates

• Technologies– Database– Data-centric middleware

04/13/2023 11

Page 12: Top 10 Ways to Mess Up Your Distributed System

Ignore evolution

04/13/2023 12

4

Page 13: Top 10 Ways to Mess Up Your Distributed System

Evolve Models & Behaviors

• Extensible infrastructure• Routing

– Connect data models: guarding, transformation• Service bus

– Match behaviors and patterns between components04/13/2023 13

Page 14: Top 10 Ways to Mess Up Your Distributed System

Make all communications reliable

04/13/2023 14

5

Page 15: Top 10 Ways to Mess Up Your Distributed System

Asset Tracking Example

Transactional design:• 12,000 tracks• 11 servers with 88 cores• Poor reliability and uptime• 1.5M SLOC• 2-8 years to develop• Custom, proprietary

DDS design:• 250,000 tracks• 80% of a single core• Full redundancy• 50k SLOC• Proof of concept in under a week• 100% standards based

04/13/2023 15

Page 16: Top 10 Ways to Mess Up Your Distributed System

Save system integration strategy for the end

04/13/2023 16

6

Page 17: Top 10 Ways to Mess Up Your Distributed System

Example: Naval Integration

• Systems of systems become exponentially complex

• Reduce coupling to reduce complexity

• Define interfaces early and carefully

04/13/2023 17

Page 18: Top 10 Ways to Mess Up Your Distributed System

Think performance or scale isn’t important, or can be done “later”

04/13/2023 18

7

Page 19: Top 10 Ways to Mess Up Your Distributed System

04/13/2023 19

• Tuning a slow system doesn’t work

• Building a fast system takes design

Page 20: Top 10 Ways to Mess Up Your Distributed System

Don’t anticipate business drivers

04/13/2023 20

8

Page 21: Top 10 Ways to Mess Up Your Distributed System

21

Wind Power

• Grid control– Continuous performance

tuning of turbines

• Business control– Predictive and preventive

maintenance– Smart diagnostics– Production planning

Page 22: Top 10 Ways to Mess Up Your Distributed System

Assume all implementations of the standard are the same

04/13/2023 © 2012 RTI • COMPANY CONFIDENTIAL 22

9

Page 23: Top 10 Ways to Mess Up Your Distributed System

04/13/2023 © 2012 RTI • COMPANY CONFIDENTIAL 23

Page 24: Top 10 Ways to Mess Up Your Distributed System

Go it alone

04/13/2023 © 2012 RTI • COMPANY CONFIDENTIAL 24

10

Page 25: Top 10 Ways to Mess Up Your Distributed System

• Hawaii warning signs

04/13/2023 25

Page 26: Top 10 Ways to Mess Up Your Distributed System

Believe there are only 10 ways to mess up

04/13/2023 26

11

Page 27: Top 10 Ways to Mess Up Your Distributed System

RTI Overview

• Market Leader– Over 70% DDS mw market share1

– Largest embedded middleware vendor2

• Standards Leader– Supported Standards: DDS, JMS, RTPS, SQL,

WSDL/SOAP, HTTP/Rest, C, Java, C++, .net– OMG Board of Directors

• Maturity Leader– 15+ years of commercial availability– Diverse industries: defense, finance, medical,

industrial control, power generation, communications

– 500+ design wins– 350,000+ licensed copies– TRL 9

1Embedded Market Forecasters2VDC Analyst Report

Page 28: Top 10 Ways to Mess Up Your Distributed System

Top 10 Ways to Mess Up

• Gloss over your data model• Misunderstand your data flow• Allow uncontrolled state• Ignore evolution• Make all communications reliable• Save system integration strategy for the end• Think performance or scale isn’t important, or can be done

“later”• Don’t anticipate business drivers• Assume all implementations of the standard are the same• Go it alone

04/13/2023 28

Page 29: Top 10 Ways to Mess Up Your Distributed System

04/13/2023 29

Summary

• Problem: By the time you find out if your infrastructure is good, it’s too late

• Solution: Proactively manage complexity– Complexity must exist somewhere; choose where– Data centric infrastructure pulls complexity out of

every application– Leverage proven technology & experience

Page 30: Top 10 Ways to Mess Up Your Distributed System

Your Systems.Working as OneSM