How to run incident response with Port and incident.io

March 31, 2025

Ready to start?

How to run incident response with Port and incident.io

Few incidents occur in isolation. As a site reliability engineer, you know that understanding the context in which an incident or outage occurred is often the key to identifying the issue’s root cause — and resolving it. 

Tools like Port, an open internal developer portal, help centralize the context of your entire production environment. When you integrate Port with incident.io, you unlock structured workflows for on-call teams and dedicated workspaces for incident management — which can improve your incident management culture from end to end.

In this article, we’ll talk about how these tools combine to supercharge your incident management and review protocols, make incident management faster and more coordinated, and help you build better and more reliable services during your post-incident review.

Using Port to centralize context

When incidents happen, services may degrade in quality in ways your team either can’t or isn’t able to predict. This can be for many reasons — because the data you rely on is found in various places and isn’t always up-to-date, your dependencies aren’t documented, or service ownership isn’t clear. 

An internal developer portal like Port turns your software stack into a searchable, trackable, and real-time metadata repository for your entire software development lifecycle. Port integrates with:

  • Git providers, like Jenkins or GitHub Actions
  • Cloud management tools, like AWS and Kubernetes
  • Alerting tools, like Incident.io
  • Project and task management tools, like Linear or Jira
  • Communication tools, like Slack or Teams

Rather than switching between all of these tools during an incident, which can be stressful and time-consuming, you can use Port on its own to navigate all of these tools from one place. By unifying your entire tech stack and deployment pipeline into a single place, Port enables you to trace upstream and downstream dependencies, find details about each service (such as ownership and health metrics), and configure alerts to notify you when these things change.

To trace dependencies, Port offers blueprints to help you visualize how all of your services relate to each other:

Scorecards, which indicate the health of your running services:

Service ownership dashboards, which make it clear which teams own which services:

This saves you a lot of time and reduces the need to switch tools or compare results from multiple sources and make assumptions. 

Port also offers many integrations to help make your portal as comprehensive as possible. If you need to build one of your own, Port also offers Ocean, an open-source framework for building your own custom plugins. These tools can be helpful if you’re just starting to migrate to a portal from a piecemeal service catalog or manually written documentation and want to integrate quickly.

Using incident.io to improve incident management

Locating incidents and tracking down their root causes is undeniably the most important part of incident management. But creating a high-quality incident management culture across your organization is also important. 

This is where incident.io comes in, providing structured workflows for on-call teams and dedicated workspaces for incident management. Rather than having teams memorize a workflow, ownership chart, or the steps to updating a status page, incident.io standardizes your desired workflow and automates incident response with one click. 

incident.io helps your team respond to incidents more effectively by providing all that you need to organize your response team. The platform offers:

  • Streamlined, standardized on-call workflows: Each incident deserves its own, fresh workspace for troubleshooting. When you declare an incident, incident.io will open a new Slack channel, Teams chat, or other collaboration space for you and invite the relevant team members to it based on your configurations.
  • Clear ownership: Using incident.io’s Roles, you can easily assemble the cross-functional team you need to resolve your incident. Roles can also help you select an Incident Lead, who is responsible for communicating about the incident, driving it to resolution, and closing the incident out, instead of coding and troubleshooting.
  • Improved customer communication: With dynamic status pages, Incident.io can provide real-time updates to your customers who were affected by the outage or incident. Status updates can be written by your team and pushed live quickly, and can be tailored to the impacted customers specifically, to avoid confusion for anyone not affected.
  • Documentation: The Slack channel you created is important not only for communication, but for keeping an accurate record of all that you and your team have done to attempt to resolve the incident. Once you’ve gathered evidence of the incident and shared it with the Slack channel, the channel becomes your incident log, which can be reviewed at a later time once you’ve rolled back to a secure version and are preparing for new deployments.
  • Deeply integrated AI: Leverage incident.io’s AI to accelerate incident response with capabilities such as real-time summarization, drafting clear and concise incident communications, detecting and suggesting actions, and conducting full root cause analysis. With AI embedded directly into your workflows, your team can focus on resolution while AI handles documentation, insights, and critical follow-up tasks.

Speed can be just as crucial to resolving the incident quickly as clear documentation and service dependencies. Similarly, post-incident review can be just as important as incident management in the present. With a well-rounded incident response built on Incident.io, you can create a holistic, end-to-end response workflow that streamlines incident management.

Connecting Port and incident.io for seamless incident response

Integrating Port and incident.io brings the best of both worlds to your incident response team. Let’s take an example use case of resolving a critical checkout service outage using both Port and incident.io.

A P1 incident occurs during a holiday weekend while you’re on call. You see it’s a high-priority incident (P1) because your incident.io notification tells you:

  • This outage involves a high-value workflow in your application (the checkout flow)
  • This outage is affecting your company during a known busy period
  • The outage is negatively impacting your customers on a wide scale

incident.io’s workflow automation automatically opens a Slack channel dedicated to the incident that includes you, your other on-call engineers, and the owner of the service. A Slack notification triggered by Port confirms that this outage is impacting the checkout service. 

With this in place, you can open your computer and immediately begin working to resolve the incident instead of notifying other engineers.

Opening Port, you can locate the affected service and quickly access:

  • Any integrated tools (Datadog, Git, CD pipelines)
  • The latest deployments to the service 
  • Error trends

With this information, you can quickly find a dependency failure in the inventory API that caused the cascade issue. Port’s self-service actions give you an easy way to identify your most recent stable version and rollback the faulty deployment according to your golden paths. This helps you avoid rolling back to a potentially faulty deployment. 

After you’ve rolled back, you can sift through Port’s scorecards to locate whether:

  • The affected service lacks a runbook, and the deployment team missed something important during deployment.
  • The affected service had a recent, untested deployment, which may provide crucial context into why it happened. 
  • Other production readiness standards were met, and if new ones need to be established or enforced
  • You need to announce new deployment practices, preventing future risks.

This integration ensures faster resolution, better visibility, and smoother incident management.

Benefits of combining Port and incident.io

Using Port and incident.io together, you can reduce your mean time to recovery (MTTR) and enhance developer workflows — which ultimately means reducing outage durations and pushing better code. Some specific benefits include:

  • Bringing centralized context from Port into incident.io leads to faster incident resolution due to improved context and visibility.
  • Reducing on-call fatigue by streamlining processes and reducing time spent searching for information.
  • Improving transparency and collaboration across teams.
  • Enhancing system reliability through better response practices.
  • Giving on-call engineers immediate access to service dependencies, owners, and health metrics directly within incident.io.
  • Enabling faster, informed decision-making during incidents.

Conclusion

Port and incident.io together enhance incident response by ensuring that the right context is available at the right time. This integration transforms incident management, reduces stress, and improves overall engineering performance.

With a full view into your software development pipeline, the Port x Incident.io integration makes it possible to not only improve incident response, but to further improve the reliability of your services earlier in deployment by ensuring standards are met, code reviews and tests are completed, and everyone has equal access to the context they need to write better code.

{{roadmap}}

Free Roadmap planner for Platform Engineering teams

  • Set Clear Goals for Your Portal

  • Define Features and Milestones

  • Stay Aligned and Keep Moving Forward

{{rfp}}

Free RFP template for Internal Developer Portal

Creating an RFP for an internal developer portal doesn’t have to be complex. Our template gives you a streamlined path to start strong and ensure you’re covering all the key details.

{{ai_jq}}

Leverage AI to generate optimized JQ commands

test them in real-time, and refine your approach instantly. This powerful tool lets you experiment, troubleshoot, and fine-tune your queries—taking your development workflow to the next level.

{{cta_1}}

Check out Port's pre-populated demo and see what it's all about.

Check live demo

No email required

{{cta_survey}}

Check out the 2025 State of Internal Developer Portals report

See the full report

No email required

{{cta_2}}

Contact sales for a technical product walkthrough

Let’s start
{{cta_3}}

Open a free Port account. No credit card required

Let’s start
{{cta_4}}

Watch Port live coding videos - setting up an internal developer portal & platform

{{cta_5}}

Check out Port's pre-populated demo and see what it's all about.

(no email required)

Let’s start
{{cta_6}}

Contact sales for a technical walkthrough of Port

Let’s start
{{cta_7}}

Open a free Port account. No credit card required

Let’s start
{{cta_8}}

Watch Port live coding videos - setting up an internal developer portal & platform

{{cta-demo}}
{{reading-box-backstage-vs-port}}
{{cta-backstage-docs-button}}

Example JSON block

{
  "foo": "bar"
}

Order Domain

{
  "properties": {},
  "relations": {},
  "title": "Orders",
  "identifier": "Orders"
}

Cart System

{
  "properties": {},
  "relations": {
    "domain": "Orders"
  },
  "identifier": "Cart",
  "title": "Cart"
}

Products System

{
  "properties": {},
  "relations": {
    "domain": "Orders"
  },
  "identifier": "Products",
  "title": "Products"
}

Cart Resource

{
  "properties": {
    "type": "postgress"
  },
  "relations": {},
  "icon": "GPU",
  "title": "Cart SQL database",
  "identifier": "cart-sql-sb"
}

Cart API

{
 "identifier": "CartAPI",
 "title": "Cart API",
 "blueprint": "API",
 "properties": {
   "type": "Open API"
 },
 "relations": {
   "provider": "CartService"
 },
 "icon": "Link"
}

Core Kafka Library

{
  "properties": {
    "type": "library"
  },
  "relations": {
    "system": "Cart"
  },
  "title": "Core Kafka Library",
  "identifier": "CoreKafkaLibrary"
}

Core Payment Library

{
  "properties": {
    "type": "library"
  },
  "relations": {
    "system": "Cart"
  },
  "title": "Core Payment Library",
  "identifier": "CorePaymentLibrary"
}

Cart Service JSON

{
 "identifier": "CartService",
 "title": "Cart Service",
 "blueprint": "Component",
 "properties": {
   "type": "service"
 },
 "relations": {
   "system": "Cart",
   "resources": [
     "cart-sql-sb"
   ],
   "consumesApi": [],
   "components": [
     "CorePaymentLibrary",
     "CoreKafkaLibrary"
   ]
 },
 "icon": "Cloud"
}

Products Service JSON

{
  "identifier": "ProductsService",
  "title": "Products Service",
  "blueprint": "Component",
  "properties": {
    "type": "service"
  },
  "relations": {
    "system": "Products",
    "consumesApi": [
      "CartAPI"
    ],
    "components": []
  }
}

Component Blueprint

{
 "identifier": "Component",
 "title": "Component",
 "icon": "Cloud",
 "schema": {
   "properties": {
     "type": {
       "enum": [
         "service",
         "library"
       ],
       "icon": "Docs",
       "type": "string",
       "enumColors": {
         "service": "blue",
         "library": "green"
       }
     }
   },
   "required": []
 },
 "mirrorProperties": {},
 "formulaProperties": {},
 "calculationProperties": {},
 "relations": {
   "system": {
     "target": "System",
     "required": false,
     "many": false
   },
   "resources": {
     "target": "Resource",
     "required": false,
     "many": true
   },
   "consumesApi": {
     "target": "API",
     "required": false,
     "many": true
   },
   "components": {
     "target": "Component",
     "required": false,
     "many": true
   },
   "providesApi": {
     "target": "API",
     "required": false,
     "many": false
   }
 }
}

Resource Blueprint

{
 “identifier”: “Resource”,
 “title”: “Resource”,
 “icon”: “DevopsTool”,
 “schema”: {
   “properties”: {
     “type”: {
       “enum”: [
         “postgress”,
         “kafka-topic”,
         “rabbit-queue”,
         “s3-bucket”
       ],
       “icon”: “Docs”,
       “type”: “string”
     }
   },
   “required”: []
 },
 “mirrorProperties”: {},
 “formulaProperties”: {},
 “calculationProperties”: {},
 “relations”: {}
}

API Blueprint

{
 "identifier": "API",
 "title": "API",
 "icon": "Link",
 "schema": {
   "properties": {
     "type": {
       "type": "string",
       "enum": [
         "Open API",
         "grpc"
       ]
     }
   },
   "required": []
 },
 "mirrorProperties": {},
 "formulaProperties": {},
 "calculationProperties": {},
 "relations": {
   "provider": {
     "target": "Component",
     "required": true,
     "many": false
   }
 }
}

Domain Blueprint

{
 "identifier": "Domain",
 "title": "Domain",
 "icon": "Server",
 "schema": {
   "properties": {},
   "required": []
 },
 "mirrorProperties": {},
 "formulaProperties": {},
 "calculationProperties": {},
 "relations": {}
}

System Blueprint

{
 "identifier": "System",
 "title": "System",
 "icon": "DevopsTool",
 "schema": {
   "properties": {},
   "required": []
 },
 "mirrorProperties": {},
 "formulaProperties": {},
 "calculationProperties": {},
 "relations": {
   "domain": {
     "target": "Domain",
     "required": true,
     "many": false
   }
 }
}
{{tabel-1}}

Microservices SDLC

  • Scaffold a new microservice

  • Deploy (canary or blue-green)

  • Feature flagging

  • Revert

  • Lock deployments

  • Add Secret

  • Force merge pull request (skip tests on crises)

  • Add environment variable to service

  • Add IaC to the service

  • Upgrade package version

Development environments

  • Spin up a developer environment for 5 days

  • ETL mock data to environment

  • Invite developer to the environment

  • Extend TTL by 3 days

Cloud resources

  • Provision a cloud resource

  • Modify a cloud resource

  • Get permissions to access cloud resource

SRE actions

  • Update pod count

  • Update auto-scaling group

  • Execute incident response runbook automation

Data Engineering

  • Add / Remove / Update Column to table

  • Run Airflow DAG

  • Duplicate table

Backoffice

  • Change customer configuration

  • Update customer software version

  • Upgrade - Downgrade plan tier

  • Create - Delete customer

Machine learning actions

  • Train model

  • Pre-process dataset

  • Deploy

  • A/B testing traffic route

  • Revert

  • Spin up remote Jupyter notebook

{{tabel-2}}

Engineering tools

  • Observability

  • Tasks management

  • CI/CD

  • On-Call management

  • Troubleshooting tools

  • DevSecOps

  • Runbooks

Infrastructure

  • Cloud Resources

  • K8S

  • Containers & Serverless

  • IaC

  • Databases

  • Environments

  • Regions

Software and more

  • Microservices

  • Docker Images

  • Docs

  • APIs

  • 3rd parties

  • Runbooks

  • Cron jobs

Starting with Port is simple, fast and free.

Let’s start