SlideShare a Scribd company logo
RAPID SYSTEMS GROWTH with a Design-First Approach
Cyndi Recker, Viasat Inc. 2018
INFLIGHT CONNECTIVITY
2
How many structures can you make with 6 Lego Bricks?
3
That depends…LEGO combinations of bricks
LEGO 1974
102,981,500
Søren Eilers 2004
computed
915,103,765!
4
What we do – https://viasat.com
5
Right now, in the sky how many airplanes? people?
https://flightaware.com
6
https://www.iata.org/pressroom/pr/Pages/2016-10-18-02.aspx
12,147 Planes on 26-Sep-18 0900 PST – flightradar24.com
The HEAVIEST air traffic day was August 5, 2016
when 12,856 PLANES carried 1,590,929 PEOPLE, they all soared at the same time!
7
PERSPECTIVE
Take everyone in the 5th LARGEST city
~ 1.6 Million Population of Phoenix
8
https://www.iata.org/pressroom/pr/Pages/2016-10-18-02.aspx
https://data.worldbank.org/indicator/IS.AIR.PSGR
20 Year
IATA Passenger Forecast
2016
In 2035
7.2 billion passengers will
travel by air.
2017 - ~ 4 billion
WHERE is the market HEADING?
9
https://wifirezone.com
10
11
MESSAGES = REST and AMQP
12
REST and AMQP
Ground
SpaceChange from String to Number
‘1537980241
’
1537980241
153798024
1
153798024
1
153798024
1
Errors can also be
introduced from the
opposite direction
13
Messaging Involves A LOT of DATA
curl -X POST "https://<server>/CMOB/CMOB-Platform-Ground-
RMQ/work/acct/start" -H "accept: application/json" -H "Content-
Type: application/json" -d "{ "endpoint": “acct/start", "data": {
"common": { "vesselId": "N5001", "eventTime": "2018-02-
13T19:08:46.503Z", "flightId": "N805JB_150122132435" },
"session_id": "123e4567-e89b-12d3-a456-426655440000",
"auth": { "type": "user", "uid": "joe_user@awesome.com"
}, “address": "08.37.96.40", “modem":
"00:A0:BC:DE:96:34", "serviceId": 71, "category": "PED" }}"
Difficult to spot errors and trends
14
Lets look at DATA & Super Mario
15
16
Not always EASY to see differences
Did anyone notice DIFFERENCES in the data?
17
13 differences
18
Sometimes DATA is CLOSE but not Quite…
00:A0:40:02:01:FC
00A0400201FC00:a0:40:02:01:fc
00a0400201fc
19
DATA – Other Challenges
RESOLUTION Mismatch
SAME Field copied in MESSAGE Duplicated Messages DATA Hard to Find
§ Aircraft ID
§ Tail ID
§ Vessel ID
§ Vehicle ID
EPOCH Time 1534786056
MILLISeconds
SECONDS
"data": {
"common": {
“aircraftId": "N999VX",
"eventTime": "2018-02-13T19:08:46.503Z",
"flightId": "N999VX"_150122132435"
},
“address": "08.37.96.40",
"aircraftNumber": "N999VX",
One field with MANY Names
20
If you deliver all over the world,
your data cannot be all over the map!
21
Inter-related DATA
22
23
ReTOOL – Design and Sustain in SwaggerHub
Sharepoint
24
API Message Hierarchy
FIELDS
Describes the basic
attributes as the building
blocks for objects and
messages.
OBJECTS
Used to collect fields (or
other objects) into new
objects for messages.
MESSAGES
Used to describe the
collection of fields and
objects that will actually be
transported
System engineering controls the data
fields
System engineers, architects and
developers all collaborate on objects
APIs and Messages are viewed,
commented and edited across the
entire DevOps Team. APIs are
versioned in multiple ways using
SwaggerHub and Git
Standards are enforced at all
levels
25
Increases your speed of execution – build collaborate review and update
Used to describe the collection of fields and objects that will actually be transported from at least one entity to
another and possible more. This is the data of the message without regard to any transport.
26
MARKUP Up Front for all Transport Information
The API can represent the interfaces we are tracking. The description includes the: General Description,
Technologies: (e.g. HTTP, RMQ, JSON, etc), Addressing Strategy and Security. For each "flow" on the
interface, a table can be populated to define triggers, latency, guaranteed delivery, etc.
Tables
Descriptions,
technologies, addressing,
security
27
LIFECYCLE
28
SwaggerHub Domain Models
A Source of Components for Creative Design
A single Domain Data Field = well engineered single unit
Six humble bricks are a lesson in the infinite creativity and imagination we possess
individually, and collectively. Samuel Williams
29
Scaling a company requires a fundamentally different set of business
mechanics than the startup phase.
In the startup phase, a group of people are
running around trying
1. to develop a vision
2. recruit an all-star team
3. find product/service-market fit
4. building great customer experiences
5. make everything repeatable and scalable.
In the scale-up phase, the quick, nimble, iterative approach begins to break down. The
problems you deal with begin growing increasingly complex and you’re not able to move
fast”
Khuram Zaman, CEO of Fifth Tribe
30
Backup
31
Reuse hierarchy of definitions
from data dictionary, objects and
messages from domains or APIs.
Reuse a definition in another API.
(back references do not resolve
through multiple documents.
Share APIs (ICDs) across teams
with version and access control.
N/A Infrastructure could be built for
access and version control.
Create global models and
reusable styles with style
validators used across all assets.
N/A Compliance could be
enforced through reviews.
Generate code for API consumers
(internal and external) to
download.
Yes with codegen
Mock API functionality to share
among stakeholders before
actual implementation is created
N/A
Integrate with code repository
(GitHub) so that data is stashed
with every ‘save’.
Manual process to stash code to
GitHub
Future goal to automatically
create and fun automated testing
(Jenkins).
N/A may be available outside the
environment
Code
Generation
Reuse Schema
$ref
Collaboration
Standardized
Models
Mock APIs
CM
Acceptance
Testing
Load Testing
Future goal to test how APIs
perform under load for scalability
N/A may be available outside the
environment
SmartBear Commercial Vs Swagger Open Source
Design and document REST APIs in an industry accepted, machine
and human readable format, Swagger 2.0 and OAS 3.0
Viasat CMOB C. Recker 20180725

More Related Content

Similar to Support Rapid Systems Growth with a Design-First Approach

Red Hat: Three Pillars of Integration
Red Hat:  Three Pillars of IntegrationRed Hat:  Three Pillars of Integration
Red Hat: Three Pillars of Integration
Judy Breedlove
 
Red Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform OverviewRed Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform Overview
James Falkner
 
The Three Pillars of Agile Integration: Connector, Container & API
The Three Pillars of Agile Integration: Connector, Container & APIThe Three Pillars of Agile Integration: Connector, Container & API
The Three Pillars of Agile Integration: Connector, Container & API
Judy Breedlove
 
Docker meetup - PaaS interoperability
Docker meetup - PaaS interoperabilityDocker meetup - PaaS interoperability
Docker meetup - PaaS interoperability
Ludovic Piot
 
The Enterprise Guide to Building a Data Mesh - Introducing SpecMesh
The Enterprise Guide to Building a Data Mesh - Introducing SpecMeshThe Enterprise Guide to Building a Data Mesh - Introducing SpecMesh
The Enterprise Guide to Building a Data Mesh - Introducing SpecMesh
IanFurlong4
 
Spark-MPI: Approaching the Fifth Paradigm with Nikolay Malitsky
Spark-MPI: Approaching the Fifth Paradigm with Nikolay MalitskySpark-MPI: Approaching the Fifth Paradigm with Nikolay Malitsky
Spark-MPI: Approaching the Fifth Paradigm with Nikolay Malitsky
Databricks
 
PSOCLD 1007 Cisco Hybrid Cloud Platform for Google Cloud
PSOCLD 1007 Cisco Hybrid Cloud Platform for Google CloudPSOCLD 1007 Cisco Hybrid Cloud Platform for Google Cloud
PSOCLD 1007 Cisco Hybrid Cloud Platform for Google Cloud
Rohit Agarwalla
 
8 - OpenShift - A look at a container platform: what's in the box
8 - OpenShift - A look at a container platform: what's in the box8 - OpenShift - A look at a container platform: what's in the box
8 - OpenShift - A look at a container platform: what's in the box
Kangaroot
 
PaaS for the New Cloud Era
PaaS for the New Cloud EraPaaS for the New Cloud Era
PaaS for the New Cloud Era
WSO2
 
Computer aided design, computer aided manufacturing, computer aided engineering
Computer aided design, computer aided manufacturing, computer aided engineeringComputer aided design, computer aided manufacturing, computer aided engineering
Computer aided design, computer aided manufacturing, computer aided engineeringuniversity of sust.
 
Enabling the digital thread using open OSLC standards
Enabling the digital thread using open OSLC standardsEnabling the digital thread using open OSLC standards
Enabling the digital thread using open OSLC standards
Axel Reichwein
 
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, SmileOCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware
 
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Marc Dutoo
 
Scaling frontend applications with micro-frontends Presentation.pdf
Scaling frontend applications with micro-frontends Presentation.pdfScaling frontend applications with micro-frontends Presentation.pdf
Scaling frontend applications with micro-frontends Presentation.pdf
KatamaRajuBandigari1
 
Report : Dpilot - A Cloud Based File Transfer Web Application
Report : Dpilot - A Cloud Based File Transfer Web ApplicationReport : Dpilot - A Cloud Based File Transfer Web Application
Report : Dpilot - A Cloud Based File Transfer Web Application
Nidhi Chauhan
 
Red Hat Openshift on Microsoft Azure
Red Hat Openshift on Microsoft AzureRed Hat Openshift on Microsoft Azure
Red Hat Openshift on Microsoft Azure
John Archer
 
CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018
Krishna-Kumar
 
Yohanes Widi Sono - Modern Development for Business Agility
Yohanes Widi Sono - Modern Development for Business AgilityYohanes Widi Sono - Modern Development for Business Agility
Yohanes Widi Sono - Modern Development for Business Agility
Agile Impact Conference
 
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation Ecosystem
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation EcosystemHow APIs are Transforming Cisco Solutions and Catalyzing an Innovation Ecosystem
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation Ecosystem
Cisco DevNet
 

Similar to Support Rapid Systems Growth with a Design-First Approach (20)

Red Hat: Three Pillars of Integration
Red Hat:  Three Pillars of IntegrationRed Hat:  Three Pillars of Integration
Red Hat: Three Pillars of Integration
 
Red Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform OverviewRed Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform Overview
 
The Three Pillars of Agile Integration: Connector, Container & API
The Three Pillars of Agile Integration: Connector, Container & APIThe Three Pillars of Agile Integration: Connector, Container & API
The Three Pillars of Agile Integration: Connector, Container & API
 
Docker meetup - PaaS interoperability
Docker meetup - PaaS interoperabilityDocker meetup - PaaS interoperability
Docker meetup - PaaS interoperability
 
The Enterprise Guide to Building a Data Mesh - Introducing SpecMesh
The Enterprise Guide to Building a Data Mesh - Introducing SpecMeshThe Enterprise Guide to Building a Data Mesh - Introducing SpecMesh
The Enterprise Guide to Building a Data Mesh - Introducing SpecMesh
 
Spark-MPI: Approaching the Fifth Paradigm with Nikolay Malitsky
Spark-MPI: Approaching the Fifth Paradigm with Nikolay MalitskySpark-MPI: Approaching the Fifth Paradigm with Nikolay Malitsky
Spark-MPI: Approaching the Fifth Paradigm with Nikolay Malitsky
 
PSOCLD 1007 Cisco Hybrid Cloud Platform for Google Cloud
PSOCLD 1007 Cisco Hybrid Cloud Platform for Google CloudPSOCLD 1007 Cisco Hybrid Cloud Platform for Google Cloud
PSOCLD 1007 Cisco Hybrid Cloud Platform for Google Cloud
 
8 - OpenShift - A look at a container platform: what's in the box
8 - OpenShift - A look at a container platform: what's in the box8 - OpenShift - A look at a container platform: what's in the box
8 - OpenShift - A look at a container platform: what's in the box
 
Cloud computing: highlights
Cloud computing: highlightsCloud computing: highlights
Cloud computing: highlights
 
PaaS for the New Cloud Era
PaaS for the New Cloud EraPaaS for the New Cloud Era
PaaS for the New Cloud Era
 
Computer aided design, computer aided manufacturing, computer aided engineering
Computer aided design, computer aided manufacturing, computer aided engineeringComputer aided design, computer aided manufacturing, computer aided engineering
Computer aided design, computer aided manufacturing, computer aided engineering
 
Enabling the digital thread using open OSLC standards
Enabling the digital thread using open OSLC standardsEnabling the digital thread using open OSLC standards
Enabling the digital thread using open OSLC standards
 
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, SmileOCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
 
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
 
Scaling frontend applications with micro-frontends Presentation.pdf
Scaling frontend applications with micro-frontends Presentation.pdfScaling frontend applications with micro-frontends Presentation.pdf
Scaling frontend applications with micro-frontends Presentation.pdf
 
Report : Dpilot - A Cloud Based File Transfer Web Application
Report : Dpilot - A Cloud Based File Transfer Web ApplicationReport : Dpilot - A Cloud Based File Transfer Web Application
Report : Dpilot - A Cloud Based File Transfer Web Application
 
Red Hat Openshift on Microsoft Azure
Red Hat Openshift on Microsoft AzureRed Hat Openshift on Microsoft Azure
Red Hat Openshift on Microsoft Azure
 
CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018
 
Yohanes Widi Sono - Modern Development for Business Agility
Yohanes Widi Sono - Modern Development for Business AgilityYohanes Widi Sono - Modern Development for Business Agility
Yohanes Widi Sono - Modern Development for Business Agility
 
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation Ecosystem
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation EcosystemHow APIs are Transforming Cisco Solutions and Catalyzing an Innovation Ecosystem
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation Ecosystem
 

More from SmartBear

Enforcing Your Organization's API Design Standards with SwaggerHub
Enforcing Your Organization's API Design Standards with SwaggerHubEnforcing Your Organization's API Design Standards with SwaggerHub
Enforcing Your Organization's API Design Standards with SwaggerHub
SmartBear
 
Introducing OpenAPI Version 3.1
Introducing OpenAPI Version 3.1Introducing OpenAPI Version 3.1
Introducing OpenAPI Version 3.1
SmartBear
 
IATA Open Air: How API Standardization Enables Innovation in the Airline Indu...
IATA Open Air: How API Standardization Enables Innovation in the Airline Indu...IATA Open Air: How API Standardization Enables Innovation in the Airline Indu...
IATA Open Air: How API Standardization Enables Innovation in the Airline Indu...
SmartBear
 
The State of API 2020 Webinar – Exploring Trends, Tools & Takeaways to Drive ...
The State of API 2020 Webinar – Exploring Trends, Tools & Takeaways to Drive ...The State of API 2020 Webinar – Exploring Trends, Tools & Takeaways to Drive ...
The State of API 2020 Webinar – Exploring Trends, Tools & Takeaways to Drive ...
SmartBear
 
How LISI Automotive Accelerated Application Delivery with SwaggerHub
How LISI Automotive Accelerated Application Delivery with SwaggerHubHow LISI Automotive Accelerated Application Delivery with SwaggerHub
How LISI Automotive Accelerated Application Delivery with SwaggerHub
SmartBear
 
Standardising APIs: Powering the Platform Economy in Financial Services
Standardising APIs: Powering the Platform Economy in Financial ServicesStandardising APIs: Powering the Platform Economy in Financial Services
Standardising APIs: Powering the Platform Economy in Financial Services
SmartBear
 
Getting Started with API Standardization in SwaggerHub
Getting Started with API Standardization in SwaggerHubGetting Started with API Standardization in SwaggerHub
Getting Started with API Standardization in SwaggerHub
SmartBear
 
Adopting a Design-First Approach to API Development with SwaggerHub
Adopting a Design-First Approach to API Development with SwaggerHubAdopting a Design-First Approach to API Development with SwaggerHub
Adopting a Design-First Approach to API Development with SwaggerHub
SmartBear
 
Standardizing APIs Across Your Organization with Swagger and OAS | A SmartBea...
Standardizing APIs Across Your Organization with Swagger and OAS | A SmartBea...Standardizing APIs Across Your Organization with Swagger and OAS | A SmartBea...
Standardizing APIs Across Your Organization with Swagger and OAS | A SmartBea...
SmartBear
 
Effective API Lifecycle Management
Effective API Lifecycle Management Effective API Lifecycle Management
Effective API Lifecycle Management
SmartBear
 
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
SmartBear
 
The API Lifecycle Series: Evolving API Development and Testing from Open Sour...
The API Lifecycle Series: Evolving API Development and Testing from Open Sour...The API Lifecycle Series: Evolving API Development and Testing from Open Sour...
The API Lifecycle Series: Evolving API Development and Testing from Open Sour...
SmartBear
 
Artificial intelligence for faster and smarter software testing - Galway Mee...
Artificial intelligence for faster and smarter software testing  - Galway Mee...Artificial intelligence for faster and smarter software testing  - Galway Mee...
Artificial intelligence for faster and smarter software testing - Galway Mee...
SmartBear
 
Successfully Implementing BDD in an Agile World
Successfully Implementing BDD in an Agile WorldSuccessfully Implementing BDD in an Agile World
Successfully Implementing BDD in an Agile World
SmartBear
 
The Best Kept Secrets of Code Review | SmartBear Webinar
The Best Kept Secrets of Code Review | SmartBear WebinarThe Best Kept Secrets of Code Review | SmartBear Webinar
The Best Kept Secrets of Code Review | SmartBear Webinar
SmartBear
 
How Capital One Scaled API Design to Deliver New Products Faster
How Capital One Scaled API Design to Deliver New Products FasterHow Capital One Scaled API Design to Deliver New Products Faster
How Capital One Scaled API Design to Deliver New Products Faster
SmartBear
 
Testing Without a GUI Using TestComplete
 Testing Without a GUI Using TestComplete Testing Without a GUI Using TestComplete
Testing Without a GUI Using TestComplete
SmartBear
 
Hidden Treasure - TestComplete Script Extensions
Hidden Treasure - TestComplete Script ExtensionsHidden Treasure - TestComplete Script Extensions
Hidden Treasure - TestComplete Script Extensions
SmartBear
 
How Bdd Can Save Agile
 How Bdd Can Save Agile How Bdd Can Save Agile
How Bdd Can Save Agile
SmartBear
 
API Automation and TDD to Implement Master Data Survivorship Rules
API Automation and TDD to Implement Master Data Survivorship RulesAPI Automation and TDD to Implement Master Data Survivorship Rules
API Automation and TDD to Implement Master Data Survivorship Rules
SmartBear
 

More from SmartBear (20)

Enforcing Your Organization's API Design Standards with SwaggerHub
Enforcing Your Organization's API Design Standards with SwaggerHubEnforcing Your Organization's API Design Standards with SwaggerHub
Enforcing Your Organization's API Design Standards with SwaggerHub
 
Introducing OpenAPI Version 3.1
Introducing OpenAPI Version 3.1Introducing OpenAPI Version 3.1
Introducing OpenAPI Version 3.1
 
IATA Open Air: How API Standardization Enables Innovation in the Airline Indu...
IATA Open Air: How API Standardization Enables Innovation in the Airline Indu...IATA Open Air: How API Standardization Enables Innovation in the Airline Indu...
IATA Open Air: How API Standardization Enables Innovation in the Airline Indu...
 
The State of API 2020 Webinar – Exploring Trends, Tools & Takeaways to Drive ...
The State of API 2020 Webinar – Exploring Trends, Tools & Takeaways to Drive ...The State of API 2020 Webinar – Exploring Trends, Tools & Takeaways to Drive ...
The State of API 2020 Webinar – Exploring Trends, Tools & Takeaways to Drive ...
 
How LISI Automotive Accelerated Application Delivery with SwaggerHub
How LISI Automotive Accelerated Application Delivery with SwaggerHubHow LISI Automotive Accelerated Application Delivery with SwaggerHub
How LISI Automotive Accelerated Application Delivery with SwaggerHub
 
Standardising APIs: Powering the Platform Economy in Financial Services
Standardising APIs: Powering the Platform Economy in Financial ServicesStandardising APIs: Powering the Platform Economy in Financial Services
Standardising APIs: Powering the Platform Economy in Financial Services
 
Getting Started with API Standardization in SwaggerHub
Getting Started with API Standardization in SwaggerHubGetting Started with API Standardization in SwaggerHub
Getting Started with API Standardization in SwaggerHub
 
Adopting a Design-First Approach to API Development with SwaggerHub
Adopting a Design-First Approach to API Development with SwaggerHubAdopting a Design-First Approach to API Development with SwaggerHub
Adopting a Design-First Approach to API Development with SwaggerHub
 
Standardizing APIs Across Your Organization with Swagger and OAS | A SmartBea...
Standardizing APIs Across Your Organization with Swagger and OAS | A SmartBea...Standardizing APIs Across Your Organization with Swagger and OAS | A SmartBea...
Standardizing APIs Across Your Organization with Swagger and OAS | A SmartBea...
 
Effective API Lifecycle Management
Effective API Lifecycle Management Effective API Lifecycle Management
Effective API Lifecycle Management
 
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
 
The API Lifecycle Series: Evolving API Development and Testing from Open Sour...
The API Lifecycle Series: Evolving API Development and Testing from Open Sour...The API Lifecycle Series: Evolving API Development and Testing from Open Sour...
The API Lifecycle Series: Evolving API Development and Testing from Open Sour...
 
Artificial intelligence for faster and smarter software testing - Galway Mee...
Artificial intelligence for faster and smarter software testing  - Galway Mee...Artificial intelligence for faster and smarter software testing  - Galway Mee...
Artificial intelligence for faster and smarter software testing - Galway Mee...
 
Successfully Implementing BDD in an Agile World
Successfully Implementing BDD in an Agile WorldSuccessfully Implementing BDD in an Agile World
Successfully Implementing BDD in an Agile World
 
The Best Kept Secrets of Code Review | SmartBear Webinar
The Best Kept Secrets of Code Review | SmartBear WebinarThe Best Kept Secrets of Code Review | SmartBear Webinar
The Best Kept Secrets of Code Review | SmartBear Webinar
 
How Capital One Scaled API Design to Deliver New Products Faster
How Capital One Scaled API Design to Deliver New Products FasterHow Capital One Scaled API Design to Deliver New Products Faster
How Capital One Scaled API Design to Deliver New Products Faster
 
Testing Without a GUI Using TestComplete
 Testing Without a GUI Using TestComplete Testing Without a GUI Using TestComplete
Testing Without a GUI Using TestComplete
 
Hidden Treasure - TestComplete Script Extensions
Hidden Treasure - TestComplete Script ExtensionsHidden Treasure - TestComplete Script Extensions
Hidden Treasure - TestComplete Script Extensions
 
How Bdd Can Save Agile
 How Bdd Can Save Agile How Bdd Can Save Agile
How Bdd Can Save Agile
 
API Automation and TDD to Implement Master Data Survivorship Rules
API Automation and TDD to Implement Master Data Survivorship RulesAPI Automation and TDD to Implement Master Data Survivorship Rules
API Automation and TDD to Implement Master Data Survivorship Rules
 

Recently uploaded

Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
Google
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Nidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, TipsNidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, Tips
vrstrong314
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
abdulrafaychaudhry
 

Recently uploaded (20)

Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Nidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, TipsNidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, Tips
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
 

Support Rapid Systems Growth with a Design-First Approach

  • 1. RAPID SYSTEMS GROWTH with a Design-First Approach Cyndi Recker, Viasat Inc. 2018 INFLIGHT CONNECTIVITY
  • 2. 2 How many structures can you make with 6 Lego Bricks?
  • 3. 3 That depends…LEGO combinations of bricks LEGO 1974 102,981,500 Søren Eilers 2004 computed 915,103,765!
  • 4. 4 What we do – https://viasat.com
  • 5. 5 Right now, in the sky how many airplanes? people? https://flightaware.com
  • 6. 6 https://www.iata.org/pressroom/pr/Pages/2016-10-18-02.aspx 12,147 Planes on 26-Sep-18 0900 PST – flightradar24.com The HEAVIEST air traffic day was August 5, 2016 when 12,856 PLANES carried 1,590,929 PEOPLE, they all soared at the same time!
  • 7. 7 PERSPECTIVE Take everyone in the 5th LARGEST city ~ 1.6 Million Population of Phoenix
  • 8. 8 https://www.iata.org/pressroom/pr/Pages/2016-10-18-02.aspx https://data.worldbank.org/indicator/IS.AIR.PSGR 20 Year IATA Passenger Forecast 2016 In 2035 7.2 billion passengers will travel by air. 2017 - ~ 4 billion WHERE is the market HEADING?
  • 10. 10
  • 11. 11 MESSAGES = REST and AMQP
  • 12. 12 REST and AMQP Ground SpaceChange from String to Number ‘1537980241 ’ 1537980241 153798024 1 153798024 1 153798024 1 Errors can also be introduced from the opposite direction
  • 13. 13 Messaging Involves A LOT of DATA curl -X POST "https://<server>/CMOB/CMOB-Platform-Ground- RMQ/work/acct/start" -H "accept: application/json" -H "Content- Type: application/json" -d "{ "endpoint": “acct/start", "data": { "common": { "vesselId": "N5001", "eventTime": "2018-02- 13T19:08:46.503Z", "flightId": "N805JB_150122132435" }, "session_id": "123e4567-e89b-12d3-a456-426655440000", "auth": { "type": "user", "uid": "joe_user@awesome.com" }, “address": "08.37.96.40", “modem": "00:A0:BC:DE:96:34", "serviceId": 71, "category": "PED" }}" Difficult to spot errors and trends
  • 14. 14 Lets look at DATA & Super Mario
  • 15. 15
  • 16. 16 Not always EASY to see differences Did anyone notice DIFFERENCES in the data?
  • 18. 18 Sometimes DATA is CLOSE but not Quite… 00:A0:40:02:01:FC 00A0400201FC00:a0:40:02:01:fc 00a0400201fc
  • 19. 19 DATA – Other Challenges RESOLUTION Mismatch SAME Field copied in MESSAGE Duplicated Messages DATA Hard to Find § Aircraft ID § Tail ID § Vessel ID § Vehicle ID EPOCH Time 1534786056 MILLISeconds SECONDS "data": { "common": { “aircraftId": "N999VX", "eventTime": "2018-02-13T19:08:46.503Z", "flightId": "N999VX"_150122132435" }, “address": "08.37.96.40", "aircraftNumber": "N999VX", One field with MANY Names
  • 20. 20 If you deliver all over the world, your data cannot be all over the map!
  • 22. 22
  • 23. 23 ReTOOL – Design and Sustain in SwaggerHub Sharepoint
  • 24. 24 API Message Hierarchy FIELDS Describes the basic attributes as the building blocks for objects and messages. OBJECTS Used to collect fields (or other objects) into new objects for messages. MESSAGES Used to describe the collection of fields and objects that will actually be transported System engineering controls the data fields System engineers, architects and developers all collaborate on objects APIs and Messages are viewed, commented and edited across the entire DevOps Team. APIs are versioned in multiple ways using SwaggerHub and Git Standards are enforced at all levels
  • 25. 25 Increases your speed of execution – build collaborate review and update Used to describe the collection of fields and objects that will actually be transported from at least one entity to another and possible more. This is the data of the message without regard to any transport.
  • 26. 26 MARKUP Up Front for all Transport Information The API can represent the interfaces we are tracking. The description includes the: General Description, Technologies: (e.g. HTTP, RMQ, JSON, etc), Addressing Strategy and Security. For each "flow" on the interface, a table can be populated to define triggers, latency, guaranteed delivery, etc. Tables Descriptions, technologies, addressing, security
  • 28. 28 SwaggerHub Domain Models A Source of Components for Creative Design A single Domain Data Field = well engineered single unit Six humble bricks are a lesson in the infinite creativity and imagination we possess individually, and collectively. Samuel Williams
  • 29. 29 Scaling a company requires a fundamentally different set of business mechanics than the startup phase. In the startup phase, a group of people are running around trying 1. to develop a vision 2. recruit an all-star team 3. find product/service-market fit 4. building great customer experiences 5. make everything repeatable and scalable. In the scale-up phase, the quick, nimble, iterative approach begins to break down. The problems you deal with begin growing increasingly complex and you’re not able to move fast” Khuram Zaman, CEO of Fifth Tribe
  • 31. 31 Reuse hierarchy of definitions from data dictionary, objects and messages from domains or APIs. Reuse a definition in another API. (back references do not resolve through multiple documents. Share APIs (ICDs) across teams with version and access control. N/A Infrastructure could be built for access and version control. Create global models and reusable styles with style validators used across all assets. N/A Compliance could be enforced through reviews. Generate code for API consumers (internal and external) to download. Yes with codegen Mock API functionality to share among stakeholders before actual implementation is created N/A Integrate with code repository (GitHub) so that data is stashed with every ‘save’. Manual process to stash code to GitHub Future goal to automatically create and fun automated testing (Jenkins). N/A may be available outside the environment Code Generation Reuse Schema $ref Collaboration Standardized Models Mock APIs CM Acceptance Testing Load Testing Future goal to test how APIs perform under load for scalability N/A may be available outside the environment SmartBear Commercial Vs Swagger Open Source Design and document REST APIs in an industry accepted, machine and human readable format, Swagger 2.0 and OAS 3.0 Viasat CMOB C. Recker 20180725