SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
”services ARCHITECTURAL
Maturity Matrix, Token Based
Auth/z, API Gateway Mediation
{“quip”:“If I had more time I would have written less code.”}
iryanb@guarden.io
FOUNDER & CHIEF GUARDENER
GUARDEN.io
“Guard Roots Then Grow”
© 2017 Ryan Bagnulo All Rights Reserved guarden.io 1
”QA? Remember the VASA
(Virtualization As A Service)
The VASA took 2 years to build (1626 to 1628) at the
request of The King of Sweden Gustavus Adolphus
The ship was ordered to sail before proper QA testing
proved the ballasts seaworthy and that day Aug 10
1628 it capsized, sunk and 30 drowned
“Imprudence and negligence” was the King’s reply
when told of the 1400 yard catastrophic launch
witnessed by thousands of spectators
The King had approved all measurements and
armaments, and the ship was built according to the
instructions and loaded as specified. No-one was
punished or found guilty for negligence.
“Only God Knows” ~ Arendt de Groote
2© 2017 Ryan Bagnulo All Rights Reserved guarden.io
Docker now natively supports Kubernetes, be
aware that anonymous is enabled by default
starting in version 1.6+, read this https://
kubernetes.io/docs/admin/authentication/
#x509-client-certs
Beware of the side door that the kubelet opens
up with a built in http server on the container
processes, for example on port 10255/healthz
CONSIDER dedicated Bare Metal infrastructure
with minimal OS builds for ingress/egress
software virtualized API gateway facade
runtimes
Whilst containers speed deployment perhaps
they do NOT belong on shared infrastructure
for high risk use cases
Design a Balanced Architecture with Resiliency
prioritized above Time To Market
3© 2017 Ryan Bagnulo All Rights Reserved guarden.io
”services ARCHITECTURE
Perhaps a few design JIRAs before pushing agile code during the next sprint
4© 2017 Ryan Bagnulo All Rights Reserved guarden.io
Does anyone remember SCA?
SCA > SOA
Services Component Architecture
How are microservices different from service
components?
Swagger JSON, no XML no WSDLs
A decade ago there was an Apache project
called Tuscany, a year ago Apache retired it to
the attic http://attic.apache.org/projects/
tuscany.html
Apache ServiceMix became JBOSS Fuse and Camel
blurred the lines between API Gateway and ESB
Apache however is keeping OSGi alive with Felix
5.6.8 (Aug 25 2017) & Jetty 3.4.4 (July 14 2017)
http://felix.apache.org/
5© 2017 Ryan Bagnulo All Rights Reserved guarden.io
WSDLs WADLed, now YAML Swaggers JSON
Yesterday’s Technology Today With Tomorrow’s Stacks
Servlets, CORBA ORBs, DCOM, EJBs, POJOs, Portlets, Widgets,
AJAX
Message Queues, Multicast Topics
WS-*, SOAP, XML, namespaces, XSLT
Basic Auth, SAML, XACML, LDAP, AD
REST API path & query parameters for GETs, moving apikeys
to client ids and OAUTH tokens to the Authorization header
OpenID Connect facades to LDAP AD, & JWT / JWE tokens
Containerized REST API operations with less code
interdependency and more declarative descriptor definitions
for greater messaging integration as ”services
Distributed Caching, AMQP, Kafka Topics, messaging service
meshes
6© 2017 Ryan Bagnulo All Rights Reserved guarden.io
”services Complexity Matrix
READ ONLY GET Verbs that only serve relatively static (cacheable)
responses
WRITE ONCE POST Verbs that create objects synchronously
WRITE MANY PUT or DELETE Verbs that change or
remove data asynchronously
INTEGRATED GET Verbs that execute a transaction
synchronously or read from an IoT sensor or perform
an analog or digital write to an IoT device (light on/
off/luminosity, thermostat warmer/cooler, motor on/
off/velocity, haptic feedback devices such as wearables,
gaming controllers, car seats to wake the driver, etc
)
7© 2017 Ryan Bagnulo All Rights Reserved guarden.io
”services Security Matrix
Basic Auth and API keys in query or path parameters deprecated
and replaced by BEARER Tokens for AUTHENTICATION
HMAC Tokens with a nonce and digital signature are used for
transactional API operations and tokens are issued with scopes
for course grained entitlement AUTHORIZATION
Mutual TLS is required to even request authorization code, token and to use
the API facade via the gateway, if JSON Web Tokens are used, then protect the
PII by using an encrypted JWE token
If the microservices application runtime tier does not
integrate using an internal API Gateway, ESB, or
asynchronous messaging subsystem with an integrated policy
enforcement point then “sidecars” should minimally only
accept connections from mutual TLS connections with
certificates and keys that are replaced with each build
deployment from QA to Production
8© 2017 Ryan Bagnulo All Rights Reserved guarden.io
”services Mediation Matrix
VALIDATE INPUT: “Open APIs” accessible via shared public cloud
infrastructures minimally perform content type input validation for
path, query, header, and message scheme & fields
THROTTLE and FILTER: The mediation tier (API Gateway,
Sidecar, ESB) restricts request sizes (Kbytes per message, per
field), number of requests per minute, content types
302 TO A HONEYPOT: Either rejects or 302s malicious requests containing
well knowns patterns such as escape characters, SQL injections, to a
honeypot to build a blacklist of IP Addresses, Client IDs, User IDs, etc.
FILTER: To prevent accidental data breaches verify the data in the
response is of the expected type, size, and that the client requesting the
data is entitled to access the data using decorations on tokens such as an
account number, employee id, nonce
TRANSFORM: Normalize requests and responses with consistent field names
and data types as per Swagger documentation for each query, path, and
object and message body field
9© 2017 Ryan Bagnulo All Rights Reserved guarden.io
Pythagorean ”Service Maturity
Architectural Matrix
10
0
Squared = 9
Squared = 16
Squared = 25
3
4
5
API
DB
Dev
SIT UAT ‹
QA
LIVE
LIVE 2
LIVE 1
SIT UAT QA
Development
0 is the SecDevOps System Management subsystem,
people and processes (ITIL, CMDB, Registry,
Repository, Logs, Telemetry, Reports, Build & Deploy
Tools & Honeypots)
1 was Alpha
2 was Beta
3 is for low risk read only GETs from APIs
integrating with a ”S that may also be mediated with
a distributed object Cache or protocol / message
Transformation logic
4 is for GETs and POSTs, a messaging tier may also
be implemented for asynchronous PUT & DELETE
events and for large volumes of dynamic data, with
at least 2 LIVE sites geographically distributed for
increased resiliency and lower latency, the database
may be a RDBMS and/or a NoSQL distributed system
with a query router
5 is for GETs, POSTs, PUTs & DELETEs with increased
mediation for requests and responses, low latency
messaging, edge caching, and 3 or more LIVE sites
CT
”S
”S
”S
”S
”S
”S
”S
”S
”S
”S
”S
API DB
API
DB
CT
DB
”S
”SAPI
API
CT ”S DB
API
API
API
DB
DB
DBCT
CT
CT
CT ”S
Q
Q
Q
Q
Q
Q
Q
Q
DB
DB
DB
DB
CT
CT
CT
CT
API
API
API
API
CT
”S
”S
Q
SIT UAT QA
LIVE++
LIVE 1
LIVE 2
© 2017 Ryan Bagnulo All Rights Reserved guarden.io
API Gateway or Sidecar Proxy
DMZ or Message Queue / Topic
API Gateways vs the ESB vs
“service meshes” of sidecar
proxies
Are sidecars simply adding a
hop to publish to queues and to
subscribe to topics?
Are Sidecars destined to be
antiquated like agents or
bloated like buses with
features to transform protocols
(http/tls, protobufs, JMS, AMQP)
and to integrate with HSMs etc.
11© 2017 Ryan Bagnulo All Rights Reserved guarden.io
”With ”services our performance has gone plaid”
~ said nobody
The speed of the edge of the network will always be out of your control
The speed of the core of the network will always be bound by physics and the race
condition of update, sign, verify, authenticate & authorize events
Mgmt ”Services such as a lazy written logging tier will result in less CPU and IOPS
usage, improving performance and security compared to syslog to file then aggregation
Do the math, remember Little’s Law of Queueing Theory when sizing systems
Queue Length = Arrival rate * response time of Queue
Expected Peak Traffic = 10,000 Requests Per Second
Response Time SLA is 150 milliseconds per GET
10000 x 0.150 = a Queue Length of 1,500 Port 443 Socket Events
If 1 x 4 CPU Container with 4 GB of Memory supports 300 Concurrent Requests Per
Second
Then Each Production Site should have traffic load balanced to at least
1500/300 =
5 API Gateways integrating with 5 ”servers
12© 2017 Ryan Bagnulo All Rights Reserved guarden.io
Legacy API Anti-patterns: The “REST mullet”
Virtual APIs for ACCEPT JSON client apps in
front of the gateway & with the gateway
mediating protocol and message
transformation to content type XML request
and or responses from SOAP services
The gateway may have custom policies written
in JS, XSLT, Python, Jython, Java, or
Freemarker to handle field level data
mappings and namespaces
Be Aware of ns=http://tempuri.org (FACEPALM)
Be Aware of SOAP 1.0 vs SOAP 1.1 ns prefixes
for inner elements
13© 2017 Ryan Bagnulo All Rights Reserved guarden.io
đŸ˜±
JWT is not the logical replacement, albeit they are similar to
SAML with user data in XML attributes
Perhaps OAuth is appropriate, Bearer tokens < MAC tokens with
signatures and a NONCE
OpenID / Connect simplifies connectivity to the identity
provider and removes connection details and passwords from
code and config files
Legacy API Anti-patterns: the apikey query param, SAML, NTLM,
Kerberos, Basic Auth, LDAP, AD
14© 2017 Ryan Bagnulo All Rights Reserved guarden.io
Legacy API Anti-patterns: Yearly Pen Tests (Weak Shark Week)
Lesson Learned: Before a Jaguar Shark maybe hacks
your API there is usually a spike in traffic, often
the requests are unusual, for example a florescent
fish bot DDOS
Minimally look for the CWE Top 25 during the QA
code review and Test cases
The OWASP Top 10 are similar
And Truly, Do Stop checking in code to GitHub with
connection details and credentials to prod
subsystems in config files
Perhaps audit the key rotation credential refresh
people, process and tools quarterly so as to ensure
it is always expected, scheduled and made a
priority rather than a reaction to a surprise
15© 2017 Ryan Bagnulo All Rights Reserved guarden.io
Legacy API Anti-patterns: Inconsistent HTTP Response Codes
200 OK
201 PUT POST PATCH successful, resource(s) created. See
ETAG, Last-Modified Headers and message body with URI(s)
202 Asynchronous Request Accepted, contingent response.
204 No Content. Valid Request with an empty set response.
300 This is SPARTA!
302 FOUND, elsewhere. Redirect (perhaps per policy to honey)
401 Not Authenticated. (Either the client app or user)
403 Not Authorized. (Token with the wrong scope)
404 Resource not found.
418 This device is a tea kettle. Java not found.
500 Server Error. (Probably a Null Pointer Error, or
Connection Refused perhaps untrusted Mutual TLS client
certificate)
16
IoTea
TEA
© 2017 Ryan Bagnulo All Rights Reserved guarden.io
Mitigating IoT Controller APIs with
OAuth Entitlement Scopes
Private Tokens
Signed Nonced HMAC
Create New Devices
Update Device UUID
Delete Device
Show Local Devices
Claim Control of a Device
Get the IP Address of a Device
POST Data to a Device
17© 2017 Ryan Bagnulo All Rights Reserved guarden.io
Read Only IoT Sensor ”services
architectural patterns
Diamond Meshes (known for their heat conductivity, think
Thermostats) are the simplest and hence also the strongest building
blocks of ”services Meshes, for example streaming temperature
information and are distributed pervasively.
Graphite Meshes are very stable ”services distributed across
architectural layers with enclaves of sensors segmented on network
tiers: public edge, fog edge, fog core, private edge, private core
Lonsdaleite Meshes of ”services are integrated honeycombs of
Diamond Bots permitted to send and receive data to each other
across the layers of “Graphite” network enclaves, this is essentially
the suggestion regarding the use of sidecars instead of gateways,
ESBs, or messaging systems.
18© 2017 Ryan Bagnulo All Rights Reserved guarden.io
Transactional IoT ”services
architectural patterns
Buckminsterfullerene “Buckyball” meshes of ”services are
transactional bots that both sense analog and digital input, and
also react to analog write or digital write events to a connected
device. Each mesh is an autonomous disconnected caged enclave
in the fog tier segmented from the public cloud and the private
core networks.
Fullerite Buckyball meshes of ”services are built on solid state
technology and are designed to withstand the harshest physical
world conditions with automated node recovery and delegated
failover from node to node.
Rugbyball meshes of ”services are caged-fused rings of bots with
policy enforcement occurring within the cage and outside of the
cage.
19© 2017 Ryan Bagnulo All Rights Reserved guarden.io
Integrated IoT ”services
architectural patterns
Amorphous meshes of ”services are what happen
to ungoverned systems on public networks over
time, AKA a ‘Spaghetti MESSh’ that is impossible to
manage with chaotic bottlenecks and backdoors.
Integrated tubes of ”services connect
dimensions of big data globally with near real-
time latencies for the best performance
consistency, with the security and privacy of a
‘vacuum zone’ that also acts as a trap to
honeypot malicious activity.
20© 2017 Ryan Bagnulo All Rights Reserved guarden.io
“Everything should be as simple as possible, no simpler.”
Albert Einstein
21
”
”
”””
”
””
”
”
” ”
”
”
”
”
” ””” ”
” ”
”
””” ”””
© 2017 Ryan Bagnulo All Rights Reserved guarden.io

Weitere Àhnliche Inhalte

Was ist angesagt?

Lessons Learned Deploying Modern Cloud Systems in Highly Regulated Environments
Lessons Learned Deploying Modern Cloud Systems in Highly Regulated EnvironmentsLessons Learned Deploying Modern Cloud Systems in Highly Regulated Environments
Lessons Learned Deploying Modern Cloud Systems in Highly Regulated EnvironmentsPuma Security, LLC
 
Best Practices of IoT Security in the Cloud
Best Practices of IoT Security in the CloudBest Practices of IoT Security in the Cloud
Best Practices of IoT Security in the CloudAmazon Web Services
 
Palo Alto Networks: Protection for Security & Compliance
Palo Alto Networks: Protection for Security & CompliancePalo Alto Networks: Protection for Security & Compliance
Palo Alto Networks: Protection for Security & ComplianceAmazon Web Services
 
KinomaJS on Microcontroller
KinomaJS on MicrocontrollerKinomaJS on Microcontroller
KinomaJS on MicrocontrollerRyuji Ishiguro
 
Amazon EKS - security best practices - 2022
Amazon EKS - security best practices - 2022 Amazon EKS - security best practices - 2022
Amazon EKS - security best practices - 2022 Jean-François LOMBARDO
 
Why Assertion-based Access Token is preferred to Handle-based one?
Why Assertion-based Access Token is preferred to Handle-based one?Why Assertion-based Access Token is preferred to Handle-based one?
Why Assertion-based Access Token is preferred to Handle-based one?Hitachi, Ltd. OSS Solution Center.
 
Cloud Conversations: Giving Business Transformation a Voice_AWSPSSummit_Singa...
Cloud Conversations: Giving Business Transformation a Voice_AWSPSSummit_Singa...Cloud Conversations: Giving Business Transformation a Voice_AWSPSSummit_Singa...
Cloud Conversations: Giving Business Transformation a Voice_AWSPSSummit_Singa...Amazon Web Services
 
TADHack Oracle Alerant Optare Webinar
TADHack Oracle Alerant Optare WebinarTADHack Oracle Alerant Optare Webinar
TADHack Oracle Alerant Optare WebinarAlan Quayle
 
Shmat ccs12
Shmat ccs12Shmat ccs12
Shmat ccs12Rahul Sule
 
AWS Frederick Meetup 07192016
AWS Frederick Meetup 07192016AWS Frederick Meetup 07192016
AWS Frederick Meetup 07192016Gaurav "GP" Pal
 

Was ist angesagt? (11)

Lessons Learned Deploying Modern Cloud Systems in Highly Regulated Environments
Lessons Learned Deploying Modern Cloud Systems in Highly Regulated EnvironmentsLessons Learned Deploying Modern Cloud Systems in Highly Regulated Environments
Lessons Learned Deploying Modern Cloud Systems in Highly Regulated Environments
 
Best Practices of IoT Security in the Cloud
Best Practices of IoT Security in the CloudBest Practices of IoT Security in the Cloud
Best Practices of IoT Security in the Cloud
 
Palo Alto Networks: Protection for Security & Compliance
Palo Alto Networks: Protection for Security & CompliancePalo Alto Networks: Protection for Security & Compliance
Palo Alto Networks: Protection for Security & Compliance
 
KinomaJS on Microcontroller
KinomaJS on MicrocontrollerKinomaJS on Microcontroller
KinomaJS on Microcontroller
 
Amazon EKS - security best practices - 2022
Amazon EKS - security best practices - 2022 Amazon EKS - security best practices - 2022
Amazon EKS - security best practices - 2022
 
Incorporating OAuth
Incorporating OAuthIncorporating OAuth
Incorporating OAuth
 
Why Assertion-based Access Token is preferred to Handle-based one?
Why Assertion-based Access Token is preferred to Handle-based one?Why Assertion-based Access Token is preferred to Handle-based one?
Why Assertion-based Access Token is preferred to Handle-based one?
 
Cloud Conversations: Giving Business Transformation a Voice_AWSPSSummit_Singa...
Cloud Conversations: Giving Business Transformation a Voice_AWSPSSummit_Singa...Cloud Conversations: Giving Business Transformation a Voice_AWSPSSummit_Singa...
Cloud Conversations: Giving Business Transformation a Voice_AWSPSSummit_Singa...
 
TADHack Oracle Alerant Optare Webinar
TADHack Oracle Alerant Optare WebinarTADHack Oracle Alerant Optare Webinar
TADHack Oracle Alerant Optare Webinar
 
Shmat ccs12
Shmat ccs12Shmat ccs12
Shmat ccs12
 
AWS Frederick Meetup 07192016
AWS Frederick Meetup 07192016AWS Frederick Meetup 07192016
AWS Frederick Meetup 07192016
 

Ähnlich wie Microservices Architectural Maturity Matrix, Token Based Authority, API Gateway Mediation

Getting Started with AWS IoT
Getting Started with AWS IoTGetting Started with AWS IoT
Getting Started with AWS IoTAmazon Web Services
 
AWS Espressif Amazon FreeRTOS
AWS Espressif Amazon FreeRTOSAWS Espressif Amazon FreeRTOS
AWS Espressif Amazon FreeRTOSAmazon Web Services
 
Cwin16 tls-a micro-service deployment - v1.0
Cwin16 tls-a micro-service deployment - v1.0Cwin16 tls-a micro-service deployment - v1.0
Cwin16 tls-a micro-service deployment - v1.0Capgemini
 
WSO2Con 2011: Introduction to Stratos
WSO2Con 2011: Introduction to StratosWSO2Con 2011: Introduction to Stratos
WSO2Con 2011: Introduction to StratosAfkham Azeez
 
WSO2con 2011: Introduction to Stratos
WSO2con 2011:  Introduction to StratosWSO2con 2011:  Introduction to Stratos
WSO2con 2011: Introduction to StratosAfkham Azeez
 
From Open Source to Open API with Restlet
From Open Source to Open API with RestletFrom Open Source to Open API with Restlet
From Open Source to Open API with RestletRestlet
 
Iot platform supporting million requests per second
Iot platform supporting million requests per secondIot platform supporting million requests per second
Iot platform supporting million requests per secondAbinasha Karana
 
Next-Generation Security Operations with AWS
Next-Generation Security Operations with AWSNext-Generation Security Operations with AWS
Next-Generation Security Operations with AWSAmazon Web Services
 
Using Istio to Secure & Monitor Your Services
Using Istio to Secure & Monitor Your ServicesUsing Istio to Secure & Monitor Your Services
Using Istio to Secure & Monitor Your ServicesAlcide
 
Essential Capabilities of an IoT Cloud Platform - AWS Online Tech Talks
Essential Capabilities of an IoT Cloud Platform - AWS Online Tech TalksEssential Capabilities of an IoT Cloud Platform - AWS Online Tech Talks
Essential Capabilities of an IoT Cloud Platform - AWS Online Tech TalksAmazon Web Services
 
Role of cloud and analytics in IoT
Role of cloud and analytics in IoTRole of cloud and analytics in IoT
Role of cloud and analytics in IoTSelvaraj Kesavan
 
Blockchain and IAM for IOT Edge Authentication
Blockchain and IAM for IOT Edge AuthenticationBlockchain and IAM for IOT Edge Authentication
Blockchain and IAM for IOT Edge Authenticationdsapps
 
Introducing AWS IoT - Interfacing with the Physical World - Technical 101
Introducing AWS IoT - Interfacing with the Physical World - Technical 101Introducing AWS IoT - Interfacing with the Physical World - Technical 101
Introducing AWS IoT - Interfacing with the Physical World - Technical 101Amazon Web Services
 
Amazon EKS ê·žëŠŹêł  Service Mesh (êč€ì„ží˜ž ì†”ëŁšì…˜ìŠˆ 아킀텍튞, AWS) :: Gaming on AWS 2018
Amazon EKS ê·žëŠŹêł  Service Mesh (êč€ì„ží˜ž ì†”ëŁšì…˜ìŠˆ 아킀텍튞, AWS) :: Gaming on AWS 2018Amazon EKS ê·žëŠŹêł  Service Mesh (êč€ì„ží˜ž ì†”ëŁšì…˜ìŠˆ 아킀텍튞, AWS) :: Gaming on AWS 2018
Amazon EKS ê·žëŠŹêł  Service Mesh (êč€ì„ží˜ž ì†”ëŁšì…˜ìŠˆ 아킀텍튞, AWS) :: Gaming on AWS 2018Amazon Web Services Korea
 
What Can Your Logs Tell You? (ANT215) - AWS re:Invent 2018
What Can Your Logs Tell You? (ANT215) - AWS re:Invent 2018What Can Your Logs Tell You? (ANT215) - AWS re:Invent 2018
What Can Your Logs Tell You? (ANT215) - AWS re:Invent 2018Amazon Web Services
 
Aerospike Today and Tomorrow Product Roadmap 2023_Lenley Hensarling.pdf
Aerospike Today and Tomorrow Product Roadmap 2023_Lenley Hensarling.pdfAerospike Today and Tomorrow Product Roadmap 2023_Lenley Hensarling.pdf
Aerospike Today and Tomorrow Product Roadmap 2023_Lenley Hensarling.pdfAerospike, Inc.
 
Instrumenting and Scaling Databases with Envoy
Instrumenting and Scaling Databases with EnvoyInstrumenting and Scaling Databases with Envoy
Instrumenting and Scaling Databases with EnvoyDaniel Hochman
 
Open APIs - Risks and Rewards (Øredev 2013)
Open APIs - Risks and Rewards (Øredev 2013)Open APIs - Risks and Rewards (Øredev 2013)
Open APIs - Risks and Rewards (Øredev 2013)Nordic APIs
 
2024 February 28 - NYC - Meetup Unlocking Financial Data with Real-Time Pipel...
2024 February 28 - NYC - Meetup Unlocking Financial Data with Real-Time Pipel...2024 February 28 - NYC - Meetup Unlocking Financial Data with Real-Time Pipel...
2024 February 28 - NYC - Meetup Unlocking Financial Data with Real-Time Pipel...Timothy Spann
 
3 Software Stacks for IoT Solutions
3 Software Stacks for IoT Solutions3 Software Stacks for IoT Solutions
3 Software Stacks for IoT SolutionsIan Skerrett
 

Ähnlich wie Microservices Architectural Maturity Matrix, Token Based Authority, API Gateway Mediation (20)

Getting Started with AWS IoT
Getting Started with AWS IoTGetting Started with AWS IoT
Getting Started with AWS IoT
 
AWS Espressif Amazon FreeRTOS
AWS Espressif Amazon FreeRTOSAWS Espressif Amazon FreeRTOS
AWS Espressif Amazon FreeRTOS
 
Cwin16 tls-a micro-service deployment - v1.0
Cwin16 tls-a micro-service deployment - v1.0Cwin16 tls-a micro-service deployment - v1.0
Cwin16 tls-a micro-service deployment - v1.0
 
WSO2Con 2011: Introduction to Stratos
WSO2Con 2011: Introduction to StratosWSO2Con 2011: Introduction to Stratos
WSO2Con 2011: Introduction to Stratos
 
WSO2con 2011: Introduction to Stratos
WSO2con 2011:  Introduction to StratosWSO2con 2011:  Introduction to Stratos
WSO2con 2011: Introduction to Stratos
 
From Open Source to Open API with Restlet
From Open Source to Open API with RestletFrom Open Source to Open API with Restlet
From Open Source to Open API with Restlet
 
Iot platform supporting million requests per second
Iot platform supporting million requests per secondIot platform supporting million requests per second
Iot platform supporting million requests per second
 
Next-Generation Security Operations with AWS
Next-Generation Security Operations with AWSNext-Generation Security Operations with AWS
Next-Generation Security Operations with AWS
 
Using Istio to Secure & Monitor Your Services
Using Istio to Secure & Monitor Your ServicesUsing Istio to Secure & Monitor Your Services
Using Istio to Secure & Monitor Your Services
 
Essential Capabilities of an IoT Cloud Platform - AWS Online Tech Talks
Essential Capabilities of an IoT Cloud Platform - AWS Online Tech TalksEssential Capabilities of an IoT Cloud Platform - AWS Online Tech Talks
Essential Capabilities of an IoT Cloud Platform - AWS Online Tech Talks
 
Role of cloud and analytics in IoT
Role of cloud and analytics in IoTRole of cloud and analytics in IoT
Role of cloud and analytics in IoT
 
Blockchain and IAM for IOT Edge Authentication
Blockchain and IAM for IOT Edge AuthenticationBlockchain and IAM for IOT Edge Authentication
Blockchain and IAM for IOT Edge Authentication
 
Introducing AWS IoT - Interfacing with the Physical World - Technical 101
Introducing AWS IoT - Interfacing with the Physical World - Technical 101Introducing AWS IoT - Interfacing with the Physical World - Technical 101
Introducing AWS IoT - Interfacing with the Physical World - Technical 101
 
Amazon EKS ê·žëŠŹêł  Service Mesh (êč€ì„ží˜ž ì†”ëŁšì…˜ìŠˆ 아킀텍튞, AWS) :: Gaming on AWS 2018
Amazon EKS ê·žëŠŹêł  Service Mesh (êč€ì„ží˜ž ì†”ëŁšì…˜ìŠˆ 아킀텍튞, AWS) :: Gaming on AWS 2018Amazon EKS ê·žëŠŹêł  Service Mesh (êč€ì„ží˜ž ì†”ëŁšì…˜ìŠˆ 아킀텍튞, AWS) :: Gaming on AWS 2018
Amazon EKS ê·žëŠŹêł  Service Mesh (êč€ì„ží˜ž ì†”ëŁšì…˜ìŠˆ 아킀텍튞, AWS) :: Gaming on AWS 2018
 
What Can Your Logs Tell You? (ANT215) - AWS re:Invent 2018
What Can Your Logs Tell You? (ANT215) - AWS re:Invent 2018What Can Your Logs Tell You? (ANT215) - AWS re:Invent 2018
What Can Your Logs Tell You? (ANT215) - AWS re:Invent 2018
 
Aerospike Today and Tomorrow Product Roadmap 2023_Lenley Hensarling.pdf
Aerospike Today and Tomorrow Product Roadmap 2023_Lenley Hensarling.pdfAerospike Today and Tomorrow Product Roadmap 2023_Lenley Hensarling.pdf
Aerospike Today and Tomorrow Product Roadmap 2023_Lenley Hensarling.pdf
 
Instrumenting and Scaling Databases with Envoy
Instrumenting and Scaling Databases with EnvoyInstrumenting and Scaling Databases with Envoy
Instrumenting and Scaling Databases with Envoy
 
Open APIs - Risks and Rewards (Øredev 2013)
Open APIs - Risks and Rewards (Øredev 2013)Open APIs - Risks and Rewards (Øredev 2013)
Open APIs - Risks and Rewards (Øredev 2013)
 
2024 February 28 - NYC - Meetup Unlocking Financial Data with Real-Time Pipel...
2024 February 28 - NYC - Meetup Unlocking Financial Data with Real-Time Pipel...2024 February 28 - NYC - Meetup Unlocking Financial Data with Real-Time Pipel...
2024 February 28 - NYC - Meetup Unlocking Financial Data with Real-Time Pipel...
 
3 Software Stacks for IoT Solutions
3 Software Stacks for IoT Solutions3 Software Stacks for IoT Solutions
3 Software Stacks for IoT Solutions
 

Mehr von JoAnna Cheshire

The Future of Work
The Future of WorkThe Future of Work
The Future of WorkJoAnna Cheshire
 
Catching the Next Train
Catching the Next TrainCatching the Next Train
Catching the Next TrainJoAnna Cheshire
 
The SharePoint Migration Playbook
The SharePoint Migration PlaybookThe SharePoint Migration Playbook
The SharePoint Migration PlaybookJoAnna Cheshire
 
Introduction to SharePoint Framework
Introduction to SharePoint FrameworkIntroduction to SharePoint Framework
Introduction to SharePoint FrameworkJoAnna Cheshire
 
PowerShell + SharePoint Online - An Admin's Guide
PowerShell + SharePoint Online - An Admin's GuidePowerShell + SharePoint Online - An Admin's Guide
PowerShell + SharePoint Online - An Admin's GuideJoAnna Cheshire
 
Artificial Intelligence & Machine Learning - A CIOs Perspective
Artificial Intelligence & Machine Learning - A CIOs PerspectiveArtificial Intelligence & Machine Learning - A CIOs Perspective
Artificial Intelligence & Machine Learning - A CIOs PerspectiveJoAnna Cheshire
 
Modernizing Data Management
Modernizing Data Management Modernizing Data Management
Modernizing Data Management JoAnna Cheshire
 
Microsoft and Enterprise Search
Microsoft and Enterprise Search Microsoft and Enterprise Search
Microsoft and Enterprise Search JoAnna Cheshire
 
Introduction to Microsoft Teams and Office 365 groups
Introduction to Microsoft Teams and Office 365 groupsIntroduction to Microsoft Teams and Office 365 groups
Introduction to Microsoft Teams and Office 365 groupsJoAnna Cheshire
 
Cybersecurity crisis management a prep guide
Cybersecurity crisis management   a prep guideCybersecurity crisis management   a prep guide
Cybersecurity crisis management a prep guideJoAnna Cheshire
 
Accelerate your business with flow
Accelerate your business with flowAccelerate your business with flow
Accelerate your business with flowJoAnna Cheshire
 
Building applications for your business using power apps and flow
Building applications for your business using power apps and flowBuilding applications for your business using power apps and flow
Building applications for your business using power apps and flowJoAnna Cheshire
 
The Decomposition Dilemma
The Decomposition DilemmaThe Decomposition Dilemma
The Decomposition DilemmaJoAnna Cheshire
 
Not "If" but "When"
Not "If" but "When"Not "If" but "When"
Not "If" but "When"JoAnna Cheshire
 
Defending against Ransomware and what you can do about it
Defending against Ransomware and what you can do about itDefending against Ransomware and what you can do about it
Defending against Ransomware and what you can do about itJoAnna Cheshire
 
The New Convergence of Data; the Next Strategic Business Advantage
The New Convergence of Data; the Next Strategic Business AdvantageThe New Convergence of Data; the Next Strategic Business Advantage
The New Convergence of Data; the Next Strategic Business AdvantageJoAnna Cheshire
 
Healthcare - An Identity Thief's SuperStore
Healthcare - An Identity Thief's SuperStoreHealthcare - An Identity Thief's SuperStore
Healthcare - An Identity Thief's SuperStoreJoAnna Cheshire
 
Define Yourself! Crafting a Wonder Woman's Brand
Define Yourself! Crafting a Wonder Woman's BrandDefine Yourself! Crafting a Wonder Woman's Brand
Define Yourself! Crafting a Wonder Woman's BrandJoAnna Cheshire
 
Today's Cyber Challenges: Methodology to Secure Your Business
Today's Cyber Challenges: Methodology to Secure Your BusinessToday's Cyber Challenges: Methodology to Secure Your Business
Today's Cyber Challenges: Methodology to Secure Your BusinessJoAnna Cheshire
 
A UX first approach to Office 365 migrations
A UX first approach to Office 365 migrationsA UX first approach to Office 365 migrations
A UX first approach to Office 365 migrationsJoAnna Cheshire
 

Mehr von JoAnna Cheshire (20)

The Future of Work
The Future of WorkThe Future of Work
The Future of Work
 
Catching the Next Train
Catching the Next TrainCatching the Next Train
Catching the Next Train
 
The SharePoint Migration Playbook
The SharePoint Migration PlaybookThe SharePoint Migration Playbook
The SharePoint Migration Playbook
 
Introduction to SharePoint Framework
Introduction to SharePoint FrameworkIntroduction to SharePoint Framework
Introduction to SharePoint Framework
 
PowerShell + SharePoint Online - An Admin's Guide
PowerShell + SharePoint Online - An Admin's GuidePowerShell + SharePoint Online - An Admin's Guide
PowerShell + SharePoint Online - An Admin's Guide
 
Artificial Intelligence & Machine Learning - A CIOs Perspective
Artificial Intelligence & Machine Learning - A CIOs PerspectiveArtificial Intelligence & Machine Learning - A CIOs Perspective
Artificial Intelligence & Machine Learning - A CIOs Perspective
 
Modernizing Data Management
Modernizing Data Management Modernizing Data Management
Modernizing Data Management
 
Microsoft and Enterprise Search
Microsoft and Enterprise Search Microsoft and Enterprise Search
Microsoft and Enterprise Search
 
Introduction to Microsoft Teams and Office 365 groups
Introduction to Microsoft Teams and Office 365 groupsIntroduction to Microsoft Teams and Office 365 groups
Introduction to Microsoft Teams and Office 365 groups
 
Cybersecurity crisis management a prep guide
Cybersecurity crisis management   a prep guideCybersecurity crisis management   a prep guide
Cybersecurity crisis management a prep guide
 
Accelerate your business with flow
Accelerate your business with flowAccelerate your business with flow
Accelerate your business with flow
 
Building applications for your business using power apps and flow
Building applications for your business using power apps and flowBuilding applications for your business using power apps and flow
Building applications for your business using power apps and flow
 
The Decomposition Dilemma
The Decomposition DilemmaThe Decomposition Dilemma
The Decomposition Dilemma
 
Not "If" but "When"
Not "If" but "When"Not "If" but "When"
Not "If" but "When"
 
Defending against Ransomware and what you can do about it
Defending against Ransomware and what you can do about itDefending against Ransomware and what you can do about it
Defending against Ransomware and what you can do about it
 
The New Convergence of Data; the Next Strategic Business Advantage
The New Convergence of Data; the Next Strategic Business AdvantageThe New Convergence of Data; the Next Strategic Business Advantage
The New Convergence of Data; the Next Strategic Business Advantage
 
Healthcare - An Identity Thief's SuperStore
Healthcare - An Identity Thief's SuperStoreHealthcare - An Identity Thief's SuperStore
Healthcare - An Identity Thief's SuperStore
 
Define Yourself! Crafting a Wonder Woman's Brand
Define Yourself! Crafting a Wonder Woman's BrandDefine Yourself! Crafting a Wonder Woman's Brand
Define Yourself! Crafting a Wonder Woman's Brand
 
Today's Cyber Challenges: Methodology to Secure Your Business
Today's Cyber Challenges: Methodology to Secure Your BusinessToday's Cyber Challenges: Methodology to Secure Your Business
Today's Cyber Challenges: Methodology to Secure Your Business
 
A UX first approach to Office 365 migrations
A UX first approach to Office 365 migrationsA UX first approach to Office 365 migrations
A UX first approach to Office 365 migrations
 

KĂŒrzlich hochgeladen

Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Navi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel AraĂșjo
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 

KĂŒrzlich hochgeladen (20)

Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Navi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot Model
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 

Microservices Architectural Maturity Matrix, Token Based Authority, API Gateway Mediation

  • 1. ”services ARCHITECTURAL Maturity Matrix, Token Based Auth/z, API Gateway Mediation {“quip”:“If I had more time I would have written less code.”} iryanb@guarden.io FOUNDER & CHIEF GUARDENER GUARDEN.io “Guard Roots Then Grow” © 2017 Ryan Bagnulo All Rights Reserved guarden.io 1
  • 2. ”QA? Remember the VASA (Virtualization As A Service) The VASA took 2 years to build (1626 to 1628) at the request of The King of Sweden Gustavus Adolphus The ship was ordered to sail before proper QA testing proved the ballasts seaworthy and that day Aug 10 1628 it capsized, sunk and 30 drowned “Imprudence and negligence” was the King’s reply when told of the 1400 yard catastrophic launch witnessed by thousands of spectators The King had approved all measurements and armaments, and the ship was built according to the instructions and loaded as specified. No-one was punished or found guilty for negligence. “Only God Knows” ~ Arendt de Groote 2© 2017 Ryan Bagnulo All Rights Reserved guarden.io
  • 3. Docker now natively supports Kubernetes, be aware that anonymous is enabled by default starting in version 1.6+, read this https:// kubernetes.io/docs/admin/authentication/ #x509-client-certs Beware of the side door that the kubelet opens up with a built in http server on the container processes, for example on port 10255/healthz CONSIDER dedicated Bare Metal infrastructure with minimal OS builds for ingress/egress software virtualized API gateway facade runtimes Whilst containers speed deployment perhaps they do NOT belong on shared infrastructure for high risk use cases Design a Balanced Architecture with Resiliency prioritized above Time To Market 3© 2017 Ryan Bagnulo All Rights Reserved guarden.io
  • 4. ”services ARCHITECTURE Perhaps a few design JIRAs before pushing agile code during the next sprint 4© 2017 Ryan Bagnulo All Rights Reserved guarden.io
  • 5. Does anyone remember SCA? SCA > SOA Services Component Architecture How are microservices different from service components? Swagger JSON, no XML no WSDLs A decade ago there was an Apache project called Tuscany, a year ago Apache retired it to the attic http://attic.apache.org/projects/ tuscany.html Apache ServiceMix became JBOSS Fuse and Camel blurred the lines between API Gateway and ESB Apache however is keeping OSGi alive with Felix 5.6.8 (Aug 25 2017) & Jetty 3.4.4 (July 14 2017) http://felix.apache.org/ 5© 2017 Ryan Bagnulo All Rights Reserved guarden.io
  • 6. WSDLs WADLed, now YAML Swaggers JSON Yesterday’s Technology Today With Tomorrow’s Stacks Servlets, CORBA ORBs, DCOM, EJBs, POJOs, Portlets, Widgets, AJAX Message Queues, Multicast Topics WS-*, SOAP, XML, namespaces, XSLT Basic Auth, SAML, XACML, LDAP, AD REST API path & query parameters for GETs, moving apikeys to client ids and OAUTH tokens to the Authorization header OpenID Connect facades to LDAP AD, & JWT / JWE tokens Containerized REST API operations with less code interdependency and more declarative descriptor definitions for greater messaging integration as ”services Distributed Caching, AMQP, Kafka Topics, messaging service meshes 6© 2017 Ryan Bagnulo All Rights Reserved guarden.io
  • 7. ”services Complexity Matrix READ ONLY GET Verbs that only serve relatively static (cacheable) responses WRITE ONCE POST Verbs that create objects synchronously WRITE MANY PUT or DELETE Verbs that change or remove data asynchronously INTEGRATED GET Verbs that execute a transaction synchronously or read from an IoT sensor or perform an analog or digital write to an IoT device (light on/ off/luminosity, thermostat warmer/cooler, motor on/ off/velocity, haptic feedback devices such as wearables, gaming controllers, car seats to wake the driver, etc
) 7© 2017 Ryan Bagnulo All Rights Reserved guarden.io
  • 8. ”services Security Matrix Basic Auth and API keys in query or path parameters deprecated and replaced by BEARER Tokens for AUTHENTICATION HMAC Tokens with a nonce and digital signature are used for transactional API operations and tokens are issued with scopes for course grained entitlement AUTHORIZATION Mutual TLS is required to even request authorization code, token and to use the API facade via the gateway, if JSON Web Tokens are used, then protect the PII by using an encrypted JWE token If the microservices application runtime tier does not integrate using an internal API Gateway, ESB, or asynchronous messaging subsystem with an integrated policy enforcement point then “sidecars” should minimally only accept connections from mutual TLS connections with certificates and keys that are replaced with each build deployment from QA to Production 8© 2017 Ryan Bagnulo All Rights Reserved guarden.io
  • 9. ”services Mediation Matrix VALIDATE INPUT: “Open APIs” accessible via shared public cloud infrastructures minimally perform content type input validation for path, query, header, and message scheme & fields THROTTLE and FILTER: The mediation tier (API Gateway, Sidecar, ESB) restricts request sizes (Kbytes per message, per field), number of requests per minute, content types 302 TO A HONEYPOT: Either rejects or 302s malicious requests containing well knowns patterns such as escape characters, SQL injections, to a honeypot to build a blacklist of IP Addresses, Client IDs, User IDs, etc. FILTER: To prevent accidental data breaches verify the data in the response is of the expected type, size, and that the client requesting the data is entitled to access the data using decorations on tokens such as an account number, employee id, nonce TRANSFORM: Normalize requests and responses with consistent field names and data types as per Swagger documentation for each query, path, and object and message body field 9© 2017 Ryan Bagnulo All Rights Reserved guarden.io
  • 10. Pythagorean ”Service Maturity Architectural Matrix 10 0 Squared = 9 Squared = 16 Squared = 25 3 4 5 API DB Dev SIT UAT ‹ QA LIVE LIVE 2 LIVE 1 SIT UAT QA Development 0 is the SecDevOps System Management subsystem, people and processes (ITIL, CMDB, Registry, Repository, Logs, Telemetry, Reports, Build & Deploy Tools & Honeypots) 1 was Alpha 2 was Beta 3 is for low risk read only GETs from APIs integrating with a ”S that may also be mediated with a distributed object Cache or protocol / message Transformation logic 4 is for GETs and POSTs, a messaging tier may also be implemented for asynchronous PUT & DELETE events and for large volumes of dynamic data, with at least 2 LIVE sites geographically distributed for increased resiliency and lower latency, the database may be a RDBMS and/or a NoSQL distributed system with a query router 5 is for GETs, POSTs, PUTs & DELETEs with increased mediation for requests and responses, low latency messaging, edge caching, and 3 or more LIVE sites CT ”S ”S ”S ”S ”S ”S ”S ”S ”S ”S ”S API DB API DB CT DB ”S ”SAPI API CT ”S DB API API API DB DB DBCT CT CT CT ”S Q Q Q Q Q Q Q Q DB DB DB DB CT CT CT CT API API API API CT ”S ”S Q SIT UAT QA LIVE++ LIVE 1 LIVE 2 © 2017 Ryan Bagnulo All Rights Reserved guarden.io
  • 11. API Gateway or Sidecar Proxy DMZ or Message Queue / Topic API Gateways vs the ESB vs “service meshes” of sidecar proxies Are sidecars simply adding a hop to publish to queues and to subscribe to topics? Are Sidecars destined to be antiquated like agents or bloated like buses with features to transform protocols (http/tls, protobufs, JMS, AMQP) and to integrate with HSMs etc. 11© 2017 Ryan Bagnulo All Rights Reserved guarden.io
  • 12. ”With ”services our performance has gone plaid” ~ said nobody The speed of the edge of the network will always be out of your control The speed of the core of the network will always be bound by physics and the race condition of update, sign, verify, authenticate & authorize events Mgmt ”Services such as a lazy written logging tier will result in less CPU and IOPS usage, improving performance and security compared to syslog to file then aggregation Do the math, remember Little’s Law of Queueing Theory when sizing systems Queue Length = Arrival rate * response time of Queue Expected Peak Traffic = 10,000 Requests Per Second Response Time SLA is 150 milliseconds per GET 10000 x 0.150 = a Queue Length of 1,500 Port 443 Socket Events If 1 x 4 CPU Container with 4 GB of Memory supports 300 Concurrent Requests Per Second Then Each Production Site should have traffic load balanced to at least 1500/300 = 5 API Gateways integrating with 5 ”servers 12© 2017 Ryan Bagnulo All Rights Reserved guarden.io
  • 13. Legacy API Anti-patterns: The “REST mullet” Virtual APIs for ACCEPT JSON client apps in front of the gateway & with the gateway mediating protocol and message transformation to content type XML request and or responses from SOAP services The gateway may have custom policies written in JS, XSLT, Python, Jython, Java, or Freemarker to handle field level data mappings and namespaces Be Aware of ns=http://tempuri.org (FACEPALM) Be Aware of SOAP 1.0 vs SOAP 1.1 ns prefixes for inner elements 13© 2017 Ryan Bagnulo All Rights Reserved guarden.io đŸ˜±
  • 14. JWT is not the logical replacement, albeit they are similar to SAML with user data in XML attributes Perhaps OAuth is appropriate, Bearer tokens < MAC tokens with signatures and a NONCE OpenID / Connect simplifies connectivity to the identity provider and removes connection details and passwords from code and config files Legacy API Anti-patterns: the apikey query param, SAML, NTLM, Kerberos, Basic Auth, LDAP, AD 14© 2017 Ryan Bagnulo All Rights Reserved guarden.io
  • 15. Legacy API Anti-patterns: Yearly Pen Tests (Weak Shark Week) Lesson Learned: Before a Jaguar Shark maybe hacks your API there is usually a spike in traffic, often the requests are unusual, for example a florescent fish bot DDOS Minimally look for the CWE Top 25 during the QA code review and Test cases The OWASP Top 10 are similar And Truly, Do Stop checking in code to GitHub with connection details and credentials to prod subsystems in config files Perhaps audit the key rotation credential refresh people, process and tools quarterly so as to ensure it is always expected, scheduled and made a priority rather than a reaction to a surprise 15© 2017 Ryan Bagnulo All Rights Reserved guarden.io
  • 16. Legacy API Anti-patterns: Inconsistent HTTP Response Codes 200 OK 201 PUT POST PATCH successful, resource(s) created. See ETAG, Last-Modified Headers and message body with URI(s) 202 Asynchronous Request Accepted, contingent response. 204 No Content. Valid Request with an empty set response. 300 This is SPARTA! 302 FOUND, elsewhere. Redirect (perhaps per policy to honey) 401 Not Authenticated. (Either the client app or user) 403 Not Authorized. (Token with the wrong scope) 404 Resource not found. 418 This device is a tea kettle. Java not found. 500 Server Error. (Probably a Null Pointer Error, or Connection Refused perhaps untrusted Mutual TLS client certificate) 16 IoTea TEA © 2017 Ryan Bagnulo All Rights Reserved guarden.io
  • 17. Mitigating IoT Controller APIs with OAuth Entitlement Scopes Private Tokens Signed Nonced HMAC Create New Devices Update Device UUID Delete Device Show Local Devices Claim Control of a Device Get the IP Address of a Device POST Data to a Device 17© 2017 Ryan Bagnulo All Rights Reserved guarden.io
  • 18. Read Only IoT Sensor ”services architectural patterns Diamond Meshes (known for their heat conductivity, think Thermostats) are the simplest and hence also the strongest building blocks of ”services Meshes, for example streaming temperature information and are distributed pervasively. Graphite Meshes are very stable ”services distributed across architectural layers with enclaves of sensors segmented on network tiers: public edge, fog edge, fog core, private edge, private core Lonsdaleite Meshes of ”services are integrated honeycombs of Diamond Bots permitted to send and receive data to each other across the layers of “Graphite” network enclaves, this is essentially the suggestion regarding the use of sidecars instead of gateways, ESBs, or messaging systems. 18© 2017 Ryan Bagnulo All Rights Reserved guarden.io
  • 19. Transactional IoT ”services architectural patterns Buckminsterfullerene “Buckyball” meshes of ”services are transactional bots that both sense analog and digital input, and also react to analog write or digital write events to a connected device. Each mesh is an autonomous disconnected caged enclave in the fog tier segmented from the public cloud and the private core networks. Fullerite Buckyball meshes of ”services are built on solid state technology and are designed to withstand the harshest physical world conditions with automated node recovery and delegated failover from node to node. Rugbyball meshes of ”services are caged-fused rings of bots with policy enforcement occurring within the cage and outside of the cage. 19© 2017 Ryan Bagnulo All Rights Reserved guarden.io
  • 20. Integrated IoT ”services architectural patterns Amorphous meshes of ”services are what happen to ungoverned systems on public networks over time, AKA a ‘Spaghetti MESSh’ that is impossible to manage with chaotic bottlenecks and backdoors. Integrated tubes of ”services connect dimensions of big data globally with near real- time latencies for the best performance consistency, with the security and privacy of a ‘vacuum zone’ that also acts as a trap to honeypot malicious activity. 20© 2017 Ryan Bagnulo All Rights Reserved guarden.io
  • 21. “Everything should be as simple as possible, no simpler.” Albert Einstein 21 ” ” ””” ” ”” ” ” ” ” ” ” ” ” ” ””” ” ” ” ” ””” ””” © 2017 Ryan Bagnulo All Rights Reserved guarden.io