Accelerating Developer Experiences at PayPal
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
The developer’s ecosystem…
© 2019 PayPal Inc. Confidential and proprietary.
… And the reality!
Altus
CAL
ECD
© 2019 PayPal Inc. Confidential and proprietary.
… And the reality!
CAL
ECD Altus
© 2019 PayPal Inc. Confidential and proprietary.
© 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
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
© 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
Console User Experience
© 2019 PayPal Inc. Confidential and proprietary. 9
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
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
© 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
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
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
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 …
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
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
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…
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
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
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