SlideShare a Scribd company logo
Governing APIs at Scale
How can we help API platform teams ensure
that their organizations make and use
secure, reliable, and easy-to-use APIs?
Tim Burks / timburks@google.com / @timburks
About suffering they were never wrong,
The old masters: how well they understood
Its human position: how it takes place
While someone else is eating or opening a window
or just walking dully along;
How, when the aged are reverently, passionately waiting
For the miraculous birth, there always must be
Children who did not specially want it to happen, skating
On a pond at the edge of the wood: They never forgot
That even the dreadful martyrdom must run its course
Anyhow in a corner, some untidy spot
Where the dogs go on with their doggy life
and the torturer's horse
Scratches its innocent behind on a tree.
Landscape with the Fall of Icarus
Pieter Bruegel the Elder c. 1650
In Breughel's Icarus, for instance: how everything turns away
Quite leisurely from the disaster; the ploughman may
Have heard the splash, the forsaken cry,
But for him it was not an important failure; the sun shone
As it had to on the white legs disappearing into the green
Water, and the expensive delicate ship that must have seen
Something amazing, a boy falling out of the sky,
Had somewhere to get to and sailed calmly on.
Musee des Beaux Arts - W. H. Auden (1907-1973)
Governing helps people work together
1 2 3
Quality Consistency Productivity
12 Requirements for an
API Governance Platform
1. Inclusion
McNamara Fallacy
We have a tendency to make
the measurable important
rather than the important
measurable
2. Shared
Language
API Specifications
API Versions
Version 1 …
Spec 1
APIs
API 1 API 2 API n
…
API Deployments
Deployment 1 …
…
3. Revision Histories
Deployment 1@m Deployment 1@n …
Spec 1@i Spec 1@j Spec 1@k
…
…
4. Metadata (Labels and Artifacts)
Artifacts
1 2
n
…
…
5. Lifecycle Model
6. Search
7. Style Guides
name: google-aip
display_name: Google API Improvement Proposals
mime_types:
- application/x.protobuf
guidelines:
- name: aip126
display_name: Enumerations
description: This guideline governs enum objects in proto files.
rules:
- name: upperSnakeCaseEnumValues
description: All enum values must use UPPER_SNAKE_CASE.
linter: api-linter
linter_rulename: upper-snake-values
severity: ERROR
- name: unspecifiedEnumSuffix
description: >
The first value of the enum should be the name of the enum itself
followed by the suffix _UNSPECIFIED.
linter: api-linter
linter_rulename: unspecified
severity: WARNING
…
linters:
- name: api-linter
uri: https://github.com/googleapis/api-linter
8. Scoring
9. Policies and Controls
name: "test-manifest"
generated_resources:
- pattern: apis/-/versions/-/specs/-/artifacts/complexity
dependencies:
- pattern: $resource.spec
filter: "mime_type.contains('openapi')"
action: "registry compute complexity $resource.spec"
10. Integrations
11. Open Source
12. Enterprise-Readiness
1. Inclusion
2. Shared Language
3. Revision Histories
4. Metadata
5. Lifecycle Model
6. Search
12 Requirements for an API Governance Platform
7. Style Guides
8. Scoring
9. Policies and Controls
10. Integrations
11. Open Source
12. Enterprise-Readiness
github.com/apigee/registry

More Related Content

Similar to Governing APIs at Scale

Similar to Governing APIs at Scale (10)

Logos ethos-pathos-acme-gizmotronics
Logos ethos-pathos-acme-gizmotronicsLogos ethos-pathos-acme-gizmotronics
Logos ethos-pathos-acme-gizmotronics
 
Why Rust? by Edd Barrett (codeHarbour December 2019)
Why Rust? by Edd Barrett (codeHarbour December 2019)Why Rust? by Edd Barrett (codeHarbour December 2019)
Why Rust? by Edd Barrett (codeHarbour December 2019)
 
Applying principles of chaos engineering to serverless (ServerlessCPH)
Applying principles of chaos engineering to serverless (ServerlessCPH)Applying principles of chaos engineering to serverless (ServerlessCPH)
Applying principles of chaos engineering to serverless (ServerlessCPH)
 
Applying principles of chaos engineering to Serverless
Applying principles of chaos engineering to ServerlessApplying principles of chaos engineering to Serverless
Applying principles of chaos engineering to Serverless
 
ReDesigning Eros - Love All Beings 2a
ReDesigning Eros - Love All Beings 2aReDesigning Eros - Love All Beings 2a
ReDesigning Eros - Love All Beings 2a
 
THE FUTURE OF AI SPACIAL PROJECTIONZ.docx
THE FUTURE OF AI SPACIAL PROJECTIONZ.docxTHE FUTURE OF AI SPACIAL PROJECTIONZ.docx
THE FUTURE OF AI SPACIAL PROJECTIONZ.docx
 
Erlang sucks. EUC 2012
Erlang sucks. EUC 2012Erlang sucks. EUC 2012
Erlang sucks. EUC 2012
 
Artificial Intelligence for Undergrads
Artificial Intelligence for UndergradsArtificial Intelligence for Undergrads
Artificial Intelligence for Undergrads
 
NATURAL OBJECT ORIENTED PROGRAMMING USING ELICA
NATURAL OBJECT ORIENTED PROGRAMMING USING ELICANATURAL OBJECT ORIENTED PROGRAMMING USING ELICA
NATURAL OBJECT ORIENTED PROGRAMMING USING ELICA
 
API Security: Assume Possible Interference
API Security: Assume Possible InterferenceAPI Security: Assume Possible Interference
API Security: Assume Possible Interference
 

More from Tim Burks

Enforcing API Design Rules for High Quality Code Generation
Enforcing API Design Rules for High Quality Code GenerationEnforcing API Design Rules for High Quality Code Generation
Enforcing API Design Rules for High Quality Code Generation
Tim Burks
 

More from Tim Burks (15)

Usable APIs at Scale
Usable APIs at ScaleUsable APIs at Scale
Usable APIs at Scale
 
Build your next REST API with gRPC
Build your next REST API with gRPCBuild your next REST API with gRPC
Build your next REST API with gRPC
 
Implementing OpenAPI and GraphQL services with gRPC
Implementing OpenAPI and GraphQL services with gRPCImplementing OpenAPI and GraphQL services with gRPC
Implementing OpenAPI and GraphQL services with gRPC
 
Creating Great REST and gRPC API Experiences (in Swift)
Creating Great REST and gRPC API Experiences (in Swift)Creating Great REST and gRPC API Experiences (in Swift)
Creating Great REST and gRPC API Experiences (in Swift)
 
Networked APIs with swift
Networked APIs with swiftNetworked APIs with swift
Networked APIs with swift
 
Enforcing API Design Rules for High Quality Code Generation
Enforcing API Design Rules for High Quality Code GenerationEnforcing API Design Rules for High Quality Code Generation
Enforcing API Design Rules for High Quality Code Generation
 
Taming Cloud APIs with Swift
Taming Cloud APIs with SwiftTaming Cloud APIs with Swift
Taming Cloud APIs with Swift
 
OpenAPI and gRPC Side by-Side
OpenAPI and gRPC Side by-SideOpenAPI and gRPC Side by-Side
OpenAPI and gRPC Side by-Side
 
Fast and Reliable Swift APIs with gRPC
Fast and Reliable Swift APIs with gRPCFast and Reliable Swift APIs with gRPC
Fast and Reliable Swift APIs with gRPC
 
Build Great Networked APIs with Swift, OpenAPI, and gRPC
Build Great Networked APIs with Swift, OpenAPI, and gRPCBuild Great Networked APIs with Swift, OpenAPI, and gRPC
Build Great Networked APIs with Swift, OpenAPI, and gRPC
 
What I learned about APIs in my first year at Google
What I learned about APIs in my first year at GoogleWhat I learned about APIs in my first year at Google
What I learned about APIs in my first year at Google
 
CocoaConf: The Language of Mobile Software is APIs
CocoaConf: The Language of Mobile Software is APIsCocoaConf: The Language of Mobile Software is APIs
CocoaConf: The Language of Mobile Software is APIs
 
Interpreting Objective C
Interpreting Objective CInterpreting Objective C
Interpreting Objective C
 
Deep Geek Diving into the iPhone OS and Frameworks
Deep Geek Diving into the iPhone OS and FrameworksDeep Geek Diving into the iPhone OS and Frameworks
Deep Geek Diving into the iPhone OS and Frameworks
 
Building Open Radar
Building Open RadarBuilding Open Radar
Building Open Radar
 

Recently uploaded

Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 

Recently uploaded (20)

To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG Evaluation
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 

Governing APIs at Scale

  • 1. Governing APIs at Scale How can we help API platform teams ensure that their organizations make and use secure, reliable, and easy-to-use APIs? Tim Burks / timburks@google.com / @timburks
  • 2.
  • 3. About suffering they were never wrong, The old masters: how well they understood Its human position: how it takes place While someone else is eating or opening a window or just walking dully along; How, when the aged are reverently, passionately waiting For the miraculous birth, there always must be Children who did not specially want it to happen, skating On a pond at the edge of the wood: They never forgot That even the dreadful martyrdom must run its course Anyhow in a corner, some untidy spot Where the dogs go on with their doggy life and the torturer's horse Scratches its innocent behind on a tree. Landscape with the Fall of Icarus Pieter Bruegel the Elder c. 1650 In Breughel's Icarus, for instance: how everything turns away Quite leisurely from the disaster; the ploughman may Have heard the splash, the forsaken cry, But for him it was not an important failure; the sun shone As it had to on the white legs disappearing into the green Water, and the expensive delicate ship that must have seen Something amazing, a boy falling out of the sky, Had somewhere to get to and sailed calmly on. Musee des Beaux Arts - W. H. Auden (1907-1973)
  • 4.
  • 5.
  • 6. Governing helps people work together 1 2 3 Quality Consistency Productivity
  • 7. 12 Requirements for an API Governance Platform
  • 8. 1. Inclusion McNamara Fallacy We have a tendency to make the measurable important rather than the important measurable
  • 9. 2. Shared Language API Specifications API Versions Version 1 … Spec 1 APIs API 1 API 2 API n … API Deployments Deployment 1 … …
  • 10. 3. Revision Histories Deployment 1@m Deployment 1@n … Spec 1@i Spec 1@j Spec 1@k … …
  • 11. 4. Metadata (Labels and Artifacts) Artifacts 1 2 n … …
  • 14. 7. Style Guides name: google-aip display_name: Google API Improvement Proposals mime_types: - application/x.protobuf guidelines: - name: aip126 display_name: Enumerations description: This guideline governs enum objects in proto files. rules: - name: upperSnakeCaseEnumValues description: All enum values must use UPPER_SNAKE_CASE. linter: api-linter linter_rulename: upper-snake-values severity: ERROR - name: unspecifiedEnumSuffix description: > The first value of the enum should be the name of the enum itself followed by the suffix _UNSPECIFIED. linter: api-linter linter_rulename: unspecified severity: WARNING … linters: - name: api-linter uri: https://github.com/googleapis/api-linter
  • 16. 9. Policies and Controls name: "test-manifest" generated_resources: - pattern: apis/-/versions/-/specs/-/artifacts/complexity dependencies: - pattern: $resource.spec filter: "mime_type.contains('openapi')" action: "registry compute complexity $resource.spec"
  • 20. 1. Inclusion 2. Shared Language 3. Revision Histories 4. Metadata 5. Lifecycle Model 6. Search 12 Requirements for an API Governance Platform 7. Style Guides 8. Scoring 9. Policies and Controls 10. Integrations 11. Open Source 12. Enterprise-Readiness