From Friction to Flow

Enabling Collaboration and
Developer Experience at Scale



Niek Palm

How do you picture Philips?

Probably this?

Not this

Philips is a health technology company improving people's health and well-being through meaningful innovation

Our purpose is to improve people’s health and well-being. We aim to improve 2.5 billion lives per year by 2030

Software in Philips

  • 8000+ software professionals

  • Global organisation

  • Regulated medical software

  • 100s millions lines of code

Challenges πŸ€” πŸ€” πŸ€”

  • Hard to collaborate
  • Hard to start and deliver
  • Hard to unlock new features
  • Hard to automate common tasks

Adopting InnerSource

  • Collaborate at Scale

  • Build on top of GitHub (SaaS)

Enable InnerSource

  • One source code platform

  • InnerSource as default

  • Control by the owning team

Atumation as a habit

  • CI/CD a First-class citizen

  • As easy as for Open Source

  • But with enterprise needs

Enable CI/CD

with GitHub Actions

on: [push]
jobs:
  check-bats-version:
    runs-on: [ubuntu-latest]
    container: node:20
    steps:
      - uses: actions/checkout@v3
      - run: npx bats -v

But how can we connect

to our network?

hosted runners

self-hosted runners

Why self-hosted?

How to bring same DevX to self-hosted runners?

Manual?

Ask AI?

Event based

Scale based on workflow jobs

Serverless

low cost / low maintenance control plane

Treat as Cattle

Secure and no firefighting

Networking

Bring your own connection

πŸ’‘ Scalable self-hosted πŸ’‘

πŸ“’ DEMO

Open Source

✨ ARM | Windows | GHES | Security

⭐ ThoughtWorks Radar Tools Assess

πŸ† Recommended by GitHub

Running at Scale

πŸ§‘β€πŸ’» 4K+ developers

πŸ—ƒοΈ 8K+ repositories

πŸš€ 30K+ jobs / day

Lessons learned

πŸš€πŸ’¨

speed

🚫 Limits 🚫

πŸ”₯ πŸ”₯ πŸ”₯ πŸ”₯ πŸ”₯

πŸš€ Developer Experience πŸš€

  • Productivity - Am I enabled?
  • Impact - Can I focus on my job?
  • Statisfaction - Do I have the right environment?

Developer Portal

Build an ecosystem, not a wilderness

  • Software Catalogus
  • Bootstrap / Scaffolding
  • TechDocs

πŸ“™ Software Catalogus

β›­ Scaffolding / Automation

πŸ“š TechDocs

πŸš€ Enable via configuration

  • Define software assets as code (catalog file)
  • Enable plugins via annotation
  • Default integrations enabled
  • No extra development effort required

✨ Contribution

  • Open for extension via InnerSource
  • Developer guide for extension
  • Enable via DevContainers / CodeSpaces

πŸš€ also serverless

  • ALB to enforce SSO login
  • Fargate to serve Backstage
  • OpenSearch to speed up searches
  • S3 to serve TechDocs

Compliance

  • Assist to do it right - scaffolding
  • Avoid shadow IT - e.g. runners
  • Continuous compliance - rule based
# Resources

resource "website" "github_runners" {
  url = "github.com/philips-labs/terraform-aws-github-runner"
}

resource "website" "github_oidc" {
  url = "github.com/philips-labs/terraform-aws-github-oidc"
}

resource "website" "slides" {
  url = "https://npalm.github.io/2023-10-06-devopsdays-madrid"
}

resource "contact" "niek" {
  github   = "@npalm"
  linkedin = "in/niekpalm/"
  twitter  = "@niekos77"
}



Questions

Thank You




What are we doing here? Philips is a worldwide recognisable brand almost everyone in the world has heard of Philips. But you don't think of software. How do you picture philips?

We build a lot of software in philips We have a lot of different business units that historically have little alignment

InnerSource is key to our software strategy In Philips we combine world class tools to enable teams to focus on meaningful innovation to improve people lives. InnerSource is a development methodology where engineers build proprietary software using best practices from large-scale open source projects.

NOTES

NOTES

- Scale? - Sustainable? - Maintenance?

Connectivity is abstract of the end solution. You bring the solution to your network and take advantage of it

--- <!-- _backgroundColor: #269A91 _color: #244C5D

topics we could cover - PR checks automated - Automated release - Slack - Build a community # Contribution - Support windows - Support ARM - Support GHES - Better docs - Security improvements - Upgrades

* Caching GitHub runner binary * Pre-build AMI * Utilize Insance store