23
Accelerating Developer Experiences at PayPal

Accelerating Developer Experiences at PayPal...service tools in PayPal • It makes Node.js, Java, etc. development lifecycle super easy • It provides inner source model to extend

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Accelerating Developer Experiences at PayPal...service tools in PayPal • It makes Node.js, Java, etc. development lifecycle super easy • It provides inner source model to extend

Accelerating Developer Experiences at PayPal

Page 2: Accelerating Developer Experiences at PayPal...service tools in PayPal • It makes Node.js, Java, etc. development lifecycle super easy • It provides inner source model to extend

About us

© 2019 PayPal Inc. Confidential and proprietary. 2

• Lead Product Manager, Developer Platforms &

Experiences at PayPal

• Focus: Developer console platform, developer

productivity & insights

• Master’s in IT – eBusiness Technologies, Carnegie

Mellon University

• Engineering and Product Management experience

working in enterprise, education and fintech

domains

Pooja Reddivari [email protected]

Vladimir Bacvanski [email protected]

• Principal Architect, Strategic Architecture at PayPal

• Lead Architect for Developer Experience

• In previous life: CTO of a development and consulting firm

• Technologist, consultant, mentor

• PhD in Computer Science from RWTH Aachen, Germany

• O’Reilly author: Big Data, Kafka

• Passionate about:

• Better ways to develop software

• Developer productivity

• Delighting customers, reliability, performance

Page 3: Accelerating Developer Experiences at PayPal...service tools in PayPal • It makes Node.js, Java, etc. development lifecycle super easy • It provides inner source model to extend

The developer’s ecosystem…

© 2019 PayPal Inc. Confidential and proprietary.

Page 4: Accelerating Developer Experiences at PayPal...service tools in PayPal • It makes Node.js, Java, etc. development lifecycle super easy • It provides inner source model to extend

… And the reality!

Altus

CAL

ECD

© 2019 PayPal Inc. Confidential and proprietary.

Page 5: Accelerating Developer Experiences at PayPal...service tools in PayPal • It makes Node.js, Java, etc. development lifecycle super easy • It provides inner source model to extend

… And the reality!

CAL

ECD Altus

© 2019 PayPal Inc. Confidential and proprietary.

Page 6: Accelerating Developer Experiences at PayPal...service tools in PayPal • It makes Node.js, Java, etc. development lifecycle super easy • It provides inner source model to extend

© 2018 PayPal Inc. Confidential and proprietary.

Altus – Accelerating the Software Development Lifecycle

© 2018 PayPal Inc. Confidential and proprietary.

UX

App O

nboard

ing

•Create Repo

•Create CI

•Create Test Env

App M

anagem

ent

•Manage Dependency

•Manage Keys

Deplo

y t

o P

rod

•Policy Enforcement

•Approvals

•Exception Management

•Change Management

App M

onitoring &

Ops

•Observability

•Firewall Management

•DNS Management

•Failed Developer Interactions

Code Build Test

Provision Test

Deploy Manifest Approval

Prod Deploy

• Altus is one of the most used self-

service tools in PayPal

• It makes Node.js, Java, etc.

development lifecycle super easy

• It provides inner source model to

extend its capabilities beyond

lifecycle

Page 7: Accelerating Developer Experiences at PayPal...service tools in PayPal • It makes Node.js, Java, etc. development lifecycle super easy • It provides inner source model to extend

Altus – Limitations

• Not easily extensible – bottleneck on business velocity

• Software Component-centric information architecture

• Does not easily accommodate all needed functionality, personas and use cases

• Currently the focus is on delivering web and micro-services applications

• Not built for federated development ground up

App Not Platform

• Does not support Mobile, Data apps SDLC

• Limited reporting capabilities

• Not all developer services are discoverable and usable through it

• Not yet fulfilling vision as one-stop shop for developers

Significant Functional Gaps

© 2019 PayPal Inc. Confidential and proprietary.

Velocity

Scope

Discovery

Page 8: Accelerating Developer Experiences at PayPal...service tools in PayPal • It makes Node.js, Java, etc. development lifecycle super easy • It provides inner source model to extend

© 2019 PayPal Inc. Confidential and proprietary.

Self-service Embedded Intelligence Building a community

• Usability

• Extensibility

• Reliability

• Smart contextual insights

• Personalization

• Recommendations

• Developer ecosystem

• Collaboration

• Application marketplace

Console

A natural workspace that empowers developers to discover, create

and manage application resources in a seamless manner in order to

create the best possible end user experiences for PayPal’s customers

Page 9: Accelerating Developer Experiences at PayPal...service tools in PayPal • It makes Node.js, Java, etc. development lifecycle super easy • It provides inner source model to extend

Console User Experience

© 2019 PayPal Inc. Confidential and proprietary. 9

Page 10: Accelerating Developer Experiences at PayPal...service tools in PayPal • It makes Node.js, Java, etc. development lifecycle super easy • It provides inner source model to extend

10

Console: What’s in it for the Developers?

The central place to go to

Marketplace of tools

News & Notifications

Self service

Speed & Reliability

Intelligence & Analytics

UI & CLI Experience Contextual Help, Guides, Docs

Page 11: Accelerating Developer Experiences at PayPal...service tools in PayPal • It makes Node.js, Java, etc. development lifecycle super easy • It provides inner source model to extend

11

UI SDK

CLI SDK API SDK

Console: What’s in it for the Service Providers?

Security

Notifications

Search

UX Standards and Guidelines

Observability

Auditability & Governance

Analytics Documentation

Page 12: Accelerating Developer Experiences at PayPal...service tools in PayPal • It makes Node.js, Java, etc. development lifecycle super easy • It provides inner source model to extend

© 2019 PayPal Inc. Confidential and proprietary.

From Innersource to Federated Development

One code base

Ownership is centralized

SDLC tightly coupled

Velocity limited by platform team size

Design is tightly controlled and reviewed

Multiple code bases

Ownership is distributed

SDLC of platform and providers decoupled

Velocity limited by number of platform extension teams

Design is governed through standards

Innersource Federated Development

Page 13: Accelerating Developer Experiences at PayPal...service tools in PayPal • It makes Node.js, Java, etc. development lifecycle super easy • It provides inner source model to extend

Console Building Blocks: Extensions

• Users can create multiple extensions that build the Console

• Extensions can communicate using APIs and events

• Extensions contribute CLI

• The content and arrangement of a Console UI can be customized

• Examples of extensions:

• Kafka management and insights

• Database as a service

• Servers load visualizations

• …

• Teams can create custom experiences

• Getting started, documentation, tutorials, how-to videos

• Incorporate custom workflows or pipeline tools

• Custom domain workflows (e.g. Risk Simulations with Big Data)

© 2019 PayPal Inc. Confidential and proprietary.

Think of LEGOs…

13

Page 14: Accelerating Developer Experiences at PayPal...service tools in PayPal • It makes Node.js, Java, etc. development lifecycle super easy • It provides inner source model to extend

Console as a Platform: High-Level Architectural Overview

© 2019 PayPal Inc. Confidential and proprietary.

“A platform: a set of stable components that supports variety and evolvability in a system by constraining the linkages among the other components”

Web UI CLI External Systems

Console

requests updates &

notifications

interactive config

files

APIs events

Console Internals

Infrastructure

• All Console tasks can be

performed through the UI,

command line, and API

• Common services supporting

the clients:

• Auth/Autz/RBAC

• Logging

• …

• External systems can listen

to events that carry the

information about the

relevant changes

• Slackbot

integration

Extensions

14

Page 15: Accelerating Developer Experiences at PayPal...service tools in PayPal • It makes Node.js, Java, etc. development lifecycle super easy • It provides inner source model to extend

Console Internals and Extensions

© 2019 PayPal Inc. Confidential and proprietary.

15

Kafka MySQL

Jenkins

Pipeline …

Exte

nsio

n M

an

age

r

Extensions

Extension Package

Extensio

n

Manifest

YAML file

Extension

Extension API

Extension API

Implementation

CLI Plugin

Web UI UI elements

for Console

which are

visible even if

the extension

is not running

Documentation

Extensions

are dynamically

added to the

Extension

Manager

Extensions

are language and

Dev stack

independent

Extensions are

deployed in the

space defined by

their owners

An extension can

carry its own help

and

documentation Console DB

ConsoleStore GraphQL API

inserts

updates

queries

register notifications

Common Platform Services

Security (RBAC) Observability

Notifications Search

Analytics …

Page 16: Accelerating Developer Experiences at PayPal...service tools in PayPal • It makes Node.js, Java, etc. development lifecycle super easy • It provides inner source model to extend

Responsibilities and Ownership – Kafka Extension Example

© 2019 PayPal Inc. Confidential and proprietary. 16

Clear and Separate Responsibilities for Owners of Console, Extensions, and External Services

Console

Extension Mgr

ConsoleStore

Kafka Infrastructure

Kafka Extension

CLI

Web

Health

Run and operated by the

Console team.

Run and operated by the Kafka

Extension builder.

A failure of an extension can

never compromise the Console

Run and operated by the Kafka

Infrastructure team. This is an

”external service” for the

extension.

A failure of an external service

should never compromise the

Console or the extensions.

Console Deployment Extension Deployment External Service Deployment

cmd

events

cmd

events

This Photo by Unknown Author is licensed under CC BY-SA

This Photo by Unknown Author is licensed under CC BY-SA

Responsibilit ies and Ownership – Kafka Extension Example

© 2019 PayPal Inc. Conf ident ial and propriet ary. 14

Clear and Separat e Responsibilit ies for Owners of Console, Ext ensions, and Ext ernal Services

Console

Extension Mgr

ConsoleStore

Kafka Infrast ructureKafka Extension

CLI

Web

Health

Run and operated by the Console

team.

Run and operated by the Kafka

Extension builder.

A failure of an extension can

never compromise the Console

Run and operated by the Kafka

Infrastructure team. This is an

”external service” for the

extension.

A failure of an external service

should never compromise the

Console or the extensions.

Console Deployment Extension Deployment External Service Deployment

cmd

events

cmd

events

This Photo by Unknown Author is licensed under CC BY-SA

Page 17: Accelerating Developer Experiences at PayPal...service tools in PayPal • It makes Node.js, Java, etc. development lifecycle super easy • It provides inner source model to extend

Console CLI: Extensible Command Architecture

• A self-discoverable, uniform syntax

• Features:

• Auto-completion on the command line

• CLI widgets

• Prompts, Wizards, Selections, Progress bars, …

• Self updates

• Shortcuts for opening the full documentation in a browser

• CLI Plugins

© 2019 PayPal Inc. Confidential and proprietary. 17

• Console provides a uniform and extensible command line experience

• Example:

> console extension:install kafka.yaml kafka extension installed in Console > console extension:list kafka 1.0 > console kafka:status up 1 minute – healthy > console kafka:createtopic example-topic > console kafka:list example-topic

Page 18: Accelerating Developer Experiences at PayPal...service tools in PayPal • It makes Node.js, Java, etc. development lifecycle super easy • It provides inner source model to extend

Tool UI Prototyping with UX Pin

© 2019 PayPal Inc. Confidential and proprietary. 18

UI Components sourced in prototyping tool prevent design drift

Visually

prototype the

tool UI…

Page 19: Accelerating Developer Experiences at PayPal...service tools in PayPal • It makes Node.js, Java, etc. development lifecycle super easy • It provides inner source model to extend

Tool UI Prototyping with UX Pin

© 2019 PayPal Inc. Confidential and proprietary. 19

React source used in prototypes

… then get theReact

code to speed

up the UI

development

Page 20: Accelerating Developer Experiences at PayPal...service tools in PayPal • It makes Node.js, Java, etc. development lifecycle super easy • It provides inner source model to extend

Console: The Summary

• For Developers:

• Speed and reliability

• All tools exposed in one place + notifications + intelligence

• Need a new tool? Build it yourself!

• For Tool Builders / Service Providers

• Expose the capabilities in a well-known place with little friction, CLI, UI

• Provide your functionality through extensions

• Benefit from the common functionality, security (RBAC), UI and CLI libraries

• You own the extensions: from code to deployment, release at your own pace

• Focus on the tool functionality

• … and developers

© 2019 PayPal Inc. Confidential and proprietary. 20

Page 21: Accelerating Developer Experiences at PayPal...service tools in PayPal • It makes Node.js, Java, etc. development lifecycle super easy • It provides inner source model to extend

Key Learnings

• Agility over perfection

• Don’t reinvent the wheel

• Power of consistency is the key

• The fine balance between governance and freedom

• What customers’ want is not always what they need!

© 2019 PayPal Inc. Confidential and proprietary. 21

Page 22: Accelerating Developer Experiences at PayPal...service tools in PayPal • It makes Node.js, Java, etc. development lifecycle super easy • It provides inner source model to extend

Thank You!

Pooja Reddivari | [email protected]

Vladimir Bacvanski | [email protected]

Page 23: Accelerating Developer Experiences at PayPal...service tools in PayPal • It makes Node.js, Java, etc. development lifecycle super easy • It provides inner source model to extend