1 of 84

Prepare to Perform with Backstage Software Templates

1

Ryan Jarvinen

ryanj@redhat.com

2 of 84

Agenda

  1. Application complexity in a CNCF world
  2. What is Backstage?
  3. Backstage Software Templates (“Golden Paths”):
    1. Inputs
    2. Scaffolding
    3. Outputs
  4. Q & A

2

3 of 84

Let’s build an app!

This shouldn’t be too hard…

3

4 of 84

I’ll just grab my editor and compiler…

This shouldn’t be too hard…

4

5 of 84

…and Podman (ok, probably Docker)

…and a container registry

…and a place to run containers

Hello [Cruel] World

5

6 of 84

…and CD to deploy it

…and a LOT of YAML

…and a place to store the code (and the YAML)

…and don’t forget to shift security “left”

Hello [Cruel] World

6

7 of 84

7

8 of 84

Just one more YAML?

This shouldn’t be too hard…

8

🫠

9 of 84

Found this posted at a tech conference:

9

10 of 84

Developers are under pressure: And their productivity is slowing down.

Organizations are looking for a platform to reduce toil and increase productivity.

10

39%

76%

37%

Increasing workload / demand from other teams lead to increased overhead.1

More than three-quarters of organizations say the cognitive load is so high that it is a source low productivity.1

Adapting to the pressures of digital transformation is third biggest challenge.1

35%

Learning skills to adapt to new technologies and approaches 1

What's Next in OpenShift Q2CY2023

11 of 84

Pillars of an Internal Development Platform (IDP)

11

80%

Onboarding

Code Time

Build Time

Run Time

12 of 84

Internal Developer Platform (IDP)

An Internal Developer Platform (IDP) is built by a platform team to build golden paths and enable developer self-service.

An IDP consists of many different techs and tools, glued together in a way that lowers cognitive load on developers without abstracting away context and underlying technologies.

Following best practices, platform teams treat their platform as a product and build it based on user research, maintain and continuously improve it.

13 of 84

What is

Backstage?

Introducing…

13

13

14 of 84

An open platform for building developer portals

Allowing developers to focus on coding, rather than navigating to all the different tools

Lowering the cognitive load and unlocking productivity

Happy developers make happy code!

15 of 84

Adopters of Backstage

16 of 84

Backstage Core Features

Search

Find the right information across your entire Backstage ecosystem

Tech Docs

Easily create, maintain, and find technical documentation using a “docs as code” approach

Software Templates (Golden Path Templates)

Quickly spin up new projects and standardize your tooling with your organization’s best practices

Plugins

Extend functionality and provide customization

Centralized Software Catalog

Keep track of application ownership and metadata for all the software in your organization (services, websites, libraries, data pipelines, etc.)

17 of 84

Plugins Enhance Developer Portals

MANY MORE

125+ community plugins, some examples:

  • SCM
  • CI/CD
  • Monitoring
  • Issue tracking
  • Code quality

18 of 84

Red Hat Developer Hub

18

an enterprise-grade, open developer platform for building developer portals,

containing a supported and opinionated framework

developers.redhat.com/rhdh

19 of 84

  • Secure build and distribution of Backstage by Red Hat
  • 24x7 Enterprise support
  • Simpler life cycle management via Helm Chart and Operator
  • Dynamic Plugin architecture to allow easier extensibility with plugins
  • Robust enterprise level RBAC for administration and user control
  • Growing set of plugins for extensibility (15+ including ArgoCD, Tekton, Quay, Artifactory, Application Topology, Multi-cluster view, etc)
  • Additional Certified Plugins from 3rd party ISVs
  • Orchestration capabilities

Red Hat Developer Hub - Enterprise IDP based on Backstage

Backstage OSS community

RHDH based on CNCF project backstage.io

developers.redhat.com/rhdh

20 of 84

Backstage Software Templates

Introducing…

20

https://backstage.io/docs/features/software-templates/

21 of 84

Q: What is a

“Golden Path”?

21

22 of 84

Golden Path: <undefined>

22

  • a self-service workflow
  • a means of reducing cognitive load for developers
    • without abstracting away context and underlying tools and technologies
  • a way to get started with a new project while following existing best practices

23 of 84

Template Example 1

github.com/developer-hub-books/rhdh-book1-templates

23

24 of 84

25 of 84

26 of 84

  • Group, Version, Kind (OpenAPI spec)
  • Metadata
  • Spec
    • Parameters (paginated form inputs)
    • Steps (templating, registration, deployment)
    • Output (repos, catalog-info, yamls, links)

Template Attributes

27 of 84

28 of 84

29 of 84

30 of 84

31 of 84

32 of 84

33 of 84

34 of 84

34

35 of 84

35

36 of 84

  1. fetch:template
  2. publish:gitlab
  3. fetch:template
  4. publish:gitlab
  5. catalog:register
  6. catalog:register
  7. argocd:create-resources

Template step actions:

37 of 84

38 of 84

39 of 84

40 of 84

41 of 84

41

42 of 84

43 of 84

44 of 84

45 of 84

Continuous Developer Flow

Outer

loop

Inner

loop

Pull/Merge Request

Production

Build / Package

Code

Push

Debug

Code Review

Build

Deploy

Security

Tests

Compliance

Inner loop

Outer loop

Developer

Test

46 of 84

47 of 84

48 of 84

49 of 84

50 of 84

50

51 of 84

52 of 84

53 of 84

54 of 84

55 of 84

Search

56 of 84

Empowering engineering to deliver business value faster.

Multi Cluster View with OCM

Authentication & Authorization with Keycloak

Container Image Registry for Quay

Application Topology for Kubernetes

Pipelines with Tekton

GitOps with Argo CD

Dev Preview

GA

Self-service with guardrails for cloud-native development.

Best practices with GitOps and automation.

Real-time view of application and infrastructure health and security.

Single pane of glass to increase engineering productivity.

57 of 84

Includes supported

plugin bundle

Red Hat Developer Hub - supported when deployed on

Integrates with industry standards and technologies

through a broad ecosystem of community plugins.

Based on Backstage, an open source

platform for building developer portals.

MANY MORE

Managed Red Hat OpenShift services

Customer-managed Red Hat OpenShift

Managed Kubernetes Services

Authentication and Authorization with Keycloak

GitOps with Argo CD

Pipelines with Tekton

Application Topology for Kubernetes

Container Image Registry for Quay

Multi Cluster View with�Open Cluster Manager (OCM)

58 of 84

Template Example 2

Further down the path

https://github.com/developer-hub-books/rhdh-book1-templates

https://github.com/developer-hub-books/rhdh-book1-templates/blob/main/custom-component-patch/template.yaml

58

59 of 84

60 of 84

61 of 84

62 of 84

63 of 84

  • fetch:plain
  • roadiehq:utils:fs:replace
  • publish:gitlab:merge-request
  • debug:log

Template step actions:

64 of 84

64

65 of 84

66 of 84

67 of 84

67

68 of 84

69 of 84

69

70 of 84

Trusted Application Pipeline�Template output example

70

71 of 84

72 of 84

73 of 84

74 of 84

Summary

Red Hat Developer Hub

74

75 of 84

75

76 of 84

ONLY one more YAML?

?

77 of 84

78 of 84

Backstage helps answer two very important questions:

  1. What do I have running?
  2. How do I use it?

Summary

Backstage plugins help provide a real-time view of application & infrastructure health & security

79 of 84

Summary

Backstage Software Templates provide:

  • Best practices with GitOps & automation
  • Self-service with guardrails for cloud-native development
  • YAML for Platform Engineers to simplify SDLC for Developers

80 of 84

RHDH Template Library:

https://bit.ly/ibm4091

red.ht/software-templates

80

81 of 84

red.ht/backstage-book

82 of 84

developers.redhat.com/rhdh

83 of 84

Q&A

83

84 of 84

84

Thank You!

Ryan Jarvinen

ryanj@redhat.com