Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ApiOps - Empower teams to manage their own API ...

DragonBe
October 14, 2023

ApiOps - Empower teams to manage their own API applications

Welcome to the world of ApiOps, where development teams are capable of managing the full SDLC of their applications in Azure API Management, without having to depend on operations or cloud teams to provision their services.

With ApiOps, cloud teams can define the boundaries in which an application can operate and assert that their governance policies are fulfilled while development teams have the freedom to create, update, and retire their own applications.

In this session I will present both the development side as the operational side, each with their own loosely coupled and independent workload to show how ApiOps can accelerate an organization delivering value faster to internal and external consumers of APIs.

DragonBe

October 14, 2023
Tweet

More Decks by DragonBe

Other Decks in Design

Transcript

  1. www.in2it.be - @in2itvof Problem statement Allow digital teams to self-manage

    the lifecycle of their applica ti ons while maintaining organisa ti onal governance and compliance in Azure API Management 2
  2. www.in2it.be - @in2itvof Azure API Management A central governance gateway

    to manage backend services (APIs) 3 APIM Access Control Tra ffi c Control Tes ti ng Versioning On-boarding Monitoring & Aler ti ng
  3. www.in2it.be - @in2itvof 4 Work fl ow constraint API Services

    API production API Management ! ! ! " Development Team # Apps & Services $ API Management % Application Publication & Developer Portal ' Application Gateway ( ) Backend Services Cloud & On-Premise Handover required to operations
  4. www.in2it.be - @in2itvof 7 APIM as internal self-service pla tf

    orm (Applying Team Topologies) Platform Team provides APIM integration as a service Stream aligned teams B2B Stream aligned teams B2C Stream aligned teams Internal Integrations Enablement of teams
  5. www.in2it.be - @in2itvof Opera ti ons Pipeline • Global APIM

    policies • Iden ti ty and governance requirements • High availability and scalability se tt i ngs • Integra ti on of self-service created services 11
  6. www.in2it.be - @in2itvof Development Template • Endpoint name, URI, and

    display label • Version, revision, and version set • Backend service endpoint and de fi ni ti on (OpenAPI, Swagger, WSDL, …) • Custom policies, subscrip ti ons, and mone ti sa ti on requirements • Health and status endpoints 12
  7. www.in2it.be - @in2itvof 13 Bene fi ts & tradeo ff

    s Bene fi ts Tradeo ff s Simpli fi ed pipelines for development and opera ti ons Single pipeline for all projects Standardisa ti on of API structures Mul ti repository applica ti on architecture Centralized governance & distributed publica ti on Global boundaries set by APIM Opera ti on teams Self-serviced publishing of applica ti ons Reduced cogni ti ve load
  8. www.in2it.be - @in2itvof Opera ti ons repositories • A repository

    for managing Azure API Management resource • A repository for integra ti ng Azure API Management endpoint resources • A repository for integra ti ng Development Portal publica ti ons 14
  9. www.in2it.be - @in2itvof Integra ti ng resources resources: repositories: -

    repository: b2b-ticket-authorization type: git name: B2B_DIGITAL/b2b-ticket-authorization ref: main trigger: - main - repository: b2b-ticket-sales type: git name: B2B_DIGITAL/b2b-ticket-sales ref: main trigger: - main - repository: b2b-ticket-event type: git name: B2B_DIGITAL/b2b-ticket-event ref: main trigger: - main 15
  10. www.in2it.be - @in2itvof Inclusion of stage steps stages: - stage:

    PrepareApimChange displayName: Prepare for APIM changes in ${{ parameters.targetEnv }} jobs: - job: prepareAllChanges displayName: Prepare all changes for APIM steps: - checkout: self displayName: Checkout APIM changes persistCredentials: true - checkout: B2B_DIGITAL/b2b-ticket-authorization displayName: Checkout B2B_DIGITAL/b2b-ticket-authorization changes - checkout: B2B_DIGITAL/b2b-ticket-sales displayName: Checkout B2B_DIGITAL/b2b-ticket-sales changes - checkout: B2B_DIGITAL/b2b-ticket-event displayName: Checkout B2B_DIGITAL/b2b-ticket-event changes 16
  11. www.in2it.be - @in2itvof Example endpoint con fi g apim_api_config =

    { employee_subscription = { name = "b2b_ticket_sales" display_name = "B2B Partner Subscription" endpoint_name = "partner-subscription" definition_format = "openapi+json-link" definition_value = "https://api.company.be/partner/subscription/openapi.json" service_url = "https://api.company.be/partner/subscription" revision = "3" } contract_billing = { name = "b2b_ticket_event" display_name = "B2B Partner Billing" endpoint_name = "partner-billing" definition_format = "openapi+json-link" definition_value = "https://api.company.be/partner/billing/openapi.json" service_url = "https://api.company.be/partner/billing" revision = "8" } } 18