2. 2
Contents
• Purpose
• Developer Experience Charter
• Mantra
• DevEx Stack
− Web Sites / Apps
− Command Line Interfaces
− Language Bindings
− Technical Documentation
− Developer Outreach / Evangelism
• Measuring Success
Developer Experience – HP Cloud Services
3. 3
Purpose
To Answer
Simple Questions
Who is DevEx ?
What does DevEx Believe in ?
What does DevEx Do ?
How does DevEx Do It ?
How does DevEx help HPCS
Succeed?
Developer Experience
4. 4
Developer Experience – HP Cloud Services
Mantra
Developers first.
Simplicity in interaction.
Interfaces that exude Transparency.
Consistency in experience.
Personal relationships developer to
developer.
6. 6
Community & Documentation
Enabling HP Cloud Services
Developer Experience Charter:
Enabling the Public Cloud Experience by
providing proprietary and open source User
Interfaces, Community features, Developer
Tools and Technical Documentation that
provide strategic differentiation for HP Cloud
Services.
• Sites/Apps (hpcloud.com, manage.hpcloud.com)
• Community Features (forums.hpcloud.com)
• Command Line Interfaces (Unix,Mac,Win)
• Language Bindings (libraries)
• API Documentation
• Developer Outreach & Evangelism
Language Bindings (Libraries)
Command
Line Interfaces
Web Sites /
Apps
APIs (Documentation)
Developer Outreach & Evangelism
Developer Experience
Dependencies
7. 7
Overview & Strategy
APIs Documentation
“Primary Interface for HPCS Services”
• API Documentation First – Prior to
Bindings/CLI/UI
• cURL Video Examples
• Web based Documentation & Examples
• PDF based Documentation & Examples
• Future: Interactive API Test Harness
Language Bindings (Libraries)
Command
Line Interfaces
Web Sites /
Apps
APIs (Documentation)
Identity Service
Compute
Block Storage
Object Storage
CDN
Developer Outreach & Evangelism
Community & Documentation
Developer Experience
8. 8
Overview & Strategy
APIs Documentation
Language Bindings (Libraries)
Command
Line Interfaces
Web Sites /
Apps
APIs (Documentation)
Identity Service
Compute
Block Storage
Object Storage
CDN
Developer Outreach & Evangelism
Community & Documentation
Developer Experience
9. 9
Overview & Strategy
Language Bindings (Libraries)
“x-Provider and Community Engaged”
Language Bindings (Libraries)
Command
Line Interfaces
Web Sites /
Apps
APIs (Documentation)
Ruby - Fog Project
Java – jClouds Project
PHP (stand-alone)
.NET (stand-alone)
• Contribute to Existing x-Provider Projects
• Avoids vendor lock-in by providing portable
abstractions for common cloud services,
allowing for greater flexibility in choosing and
changing providers.
• DevEx invests in Bindings that are used for
derivative works
• Ruby, .NET, PHP
• Stand-alone Bindings released Open Source
• Community Engagement / Outreach for other
Lang
Developer Outreach & Evangelism
Community & Documentation
Developer Experience
Dependencies
10. 10
HPCS Target Languages & Current Status
Target Communities and Languages
In order of Priority
1. Java DevEx DevEx DevEx DevEx Communit
y
2. JavaScript DevEx DevEx
3. Python
4. PHP DevEx DevEx DevEx DevEx
5. Ruby DevEx DevEx DevEx DevEx DevEx
6. Objective-C
7. .NET* DevEx DevEx DevEx DevEx
8. Perl
9. C *
Identity
Service
Compute
Object
Storage
CDN
Block
Storage
DBaaS
MySQL
Done
In
Progress
Not
Started
11. 11
Ruby Binding – Fog Project
Language Bindings (Libraries)
Language Bindings (Libraries)
Command
Line Interfaces
Web Sites /
Apps
APIs (Documentation)
Ruby - Fog Project
Java – jClouds Project
PHP (stand-alone)
.NET (stand-alone)
Developer Outreach & Evangelism
Community & Documentation
Developer Experience
Dependencies
• Leveraged by HPCS Management Console & HP
Unified Unix/Mac CLI
• Provider Support: HP Cloud, AWS, linode, joyent,
rackspace cloud, gogrid, cloudstack
12. 12
Java Binding – jclouds Project
Language Bindings (Libraries)
Language Bindings (Libraries)
Command
Line Interfaces
Web Sites /
Apps
APIs (Documentation)
Ruby - Fog Project
Java – jclouds Project
PHP (stand-alone)
.NET (stand-alone)
Developer Outreach & Evangelism
Community & Documentation
Developer Experience
Dependencies
• Fall ‘11
• DevEx establishes a relationship with the jclouds
community (multi-cloud Java library)
• Submits Object Storage and CDN code to them
• March ‘12
• Other HP developers and the jclouds community complete
the Compute work he started
• April
• Block Storage beta starts
• DevEx gets the jclouds community early access, they
just complete it on their own
13. 13
Java Binding – jclouds Project
Language Bindings (Libraries)
Language Bindings (Libraries)
Command
Line Interfaces
Web Sites /
Apps
APIs (Documentation)
Ruby - Fog Project
Java – jclouds Project
PHP (stand-alone)
.NET (stand-alone)
Developer Outreach & Evangelism
Community & Documentation
Developer Experience
Dependencies
• Storage, CDN, Identity
• Created to utilized on hpcloud.com (marketing site)
• Release as OpenSource to PHP Community on GitHub
14. 14
Java Binding – jclouds Project
Language Bindings (Libraries)
Language Bindings (Libraries)
Command
Line Interfaces
Web Sites /
Apps
APIs (Documentation)
Ruby - Fog Project
Java – jclouds Project
PHP (stand-alone)
.NET (stand-alone)
Developer Outreach & Evangelism
Community & Documentation
Developer Experience
Dependencies
• Storage, Compute, Identity
• Released as OpenSource to .net community on CodePlex
• Utilized by HP Unified Windows CLI
15. 15
Overview & Strategy
Command Line Interfaces
“Developers Love CLIs”
Language Bindings (Libraries)
Command
Line Interfaces
Web Sites /
Apps
APIs (Documentation)
HP Cloud Unix/Mac CLI
HP Cloud PowerShell CLI
(Windows)
• Strategic Differentiator
• Provide Unified CLIs
“One CLI that works with all HP Cloud Services
• CLI’s provide Scriptable interface for
Developers
• Developers who use Command Line heavy
OS’s often prefer CLIs (Unix/Linux/Mac)
• Value Added Functionality – Recursive Copy,
xProvider Capabilities etc.
Developer Outreach & Evangelism
Community & Documentation
Developer Experience
Dependencies
16. 16
HP Unified Unix/Mac CLI
Command Line Interfaces
“The HP Cloud CLI”
Language Bindings (Libraries)
Command
Line Interfaces
Web Sites /
Apps
APIs (Documentation)
HP Cloud Unix/Mac CLI
HP Cloud PowerShell CLI
(Windows)
• Ruby FOG based
• Easy to Script and Schedule
Developer Outreach & Evangelism
Community & Documentation
Developer Experience
Dependencies
17. 17
Overview & Strategy
Command Line Interfaces
“The Windows CLI”
Language Bindings (Libraries)
APIs (Documentation)
HP Cloud Unix/Mac CLI
HP Cloud PowerShell CLI
(Windows)
• Based on .NET API
• Easy to Script and Schedule
• Recursive copy
Command
Line Interfaces
Web Sites /
Apps
Developer Outreach & Evangelism
Community & Documentation
Developer Experience
Dependencies
18. 18
Overview & Strategy
Web Sites / Apps
Language Bindings (Libraries)
Command
Line Interfaces
Web Sites /
Apps
APIs (Documentation)
http://hpcloud.com
http://build.hpcloud.com
http://manage.hpcloud.com
http://connect.hpcloud.com
from mantra:
Simplicity in interaction.
Interfaces that exude Transparency.
Consistency in experience.
• UI/UEX as a Differentiator.
• Simple, yet functional Design.
• Marketing Sites focused on enabling content
changes by Business.
• Spirit of HP brand without being held hostage
to it.
• Responsive Design goal (not completed).
• HTML 5 / Standards Compliant.
Developer Outreach & Evangelism
Community & Documentation
Developer Experience
Dependencies
http://blog.hpcloud.com
19. 19
Developer Experience – Marketing Site
Web Sites / Apps
Language Bindings (Libraries)
Command
Line Interfaces
Web Sites /
Apps
APIs (Documentation)
http://hpcloud.com
http://build.hpcloud.com
http://manage.hpcloud.com
http://connect.hpcloud.com
Developer Outreach & Evangelism
Community & Documentation
Developer Experience
Dependencies
http://blog.hpcloud.com
20. 20
Marketing Site – Technology
Web Sites / Apps
Platform: Drupal
Technology: PHP
• Drupal on bare metal in Vegas
DC
• HP Cloud Drupal Module
• Backup/restore
• File asset hosting
• Links to Vimeo for embedded
video
• Posts data to SFDC for Contact
Us and Leads
• SFDC Reactive Chat
• Logged In users: Support
Explore hpcloud.com
• Home
• Products
• Sign Up
Leads
+
Contact Us
+
Chat
Video
Internal
Service
External
Service
21. 21
Developer Experience – Documentation Site
Web Sites / Apps
Language Bindings (Libraries)
Command
Line Interfaces
Web Sites /
Apps
APIs (Documentation)
http://hpcloud.com
http://build.hpcloud.com
http://manage.hpcloud.com
http://connect.hpcloud.com
Developer Outreach & Evangelism
Community & Documentation
Developer Experience
Dependencies
http://blog.hpcloud.com
22. 22
Documentation Site – Technology
Web Sites / Apps
Platform: Drupal +
Apache
Technology: PHP
• Drupal on bare metal in Vegas
DC
• HP Cloud Drupal Module
• Backup/restore
• File asset hosting
• Links to Vimeo for embedded
video
• SFDC Reactive Chat
• Logged In users: Support
• Anonymous users: Sales
• Original REST API behind
Build
• Overview
• Services
• Bindings
• CLI
Original
REST
API Docs
Internal
Service
External
Service
23. 23
Developer Experience – Community / Forum / KB
Web Sites / Apps
Language Bindings (Libraries)
Command
Line Interfaces
Web Sites /
Apps
APIs (Documentation)
http://hpcloud.com
http://build.hpcloud.com
http://manage.hpcloud.com
http://connect.hpcloud.com
Developer Outreach & Evangelism
Community & Documentation
Developer Experience
Dependencies
http://blog.hpcloud.com
24. 24
Community, Forum, Knowledge Base– Technology
Web Sites / Apps
Platform: Drupal
Technology: PHP
• Drupal on bare metal in Vegas
DC
• HP Cloud Drupal Module
• Backup/restore
• File asset hosting
• Posts data to SFDC for Support
Tickets
• SFDC Reactive Chat
• Logged In users: Support
• Anonymous users: Sales
• Requires Console login to view
Connect
Status
SSO
Forum
SSO
Knowledge
Base
SSO
Support
Tickets
SSO
Internal
Service
External
Service
25. 25
Blog
Web Sites / Apps
Language Bindings (Libraries)
Command
Line Interfaces
Web Sites /
Apps
APIs (Documentation)
http://hpcloud.com
http://build.hpcloud.com
http://manage.hpcloud.com
http://connect.hpcloud.com
Developer Outreach & Evangelism
Community & Documentation
Developer Experience
Dependencies
http://blog.hpcloud.com
26. 26
Blog
Web Sites / Apps
Platform: Drupal
Technology: PHP
• Moving to Drupal on
Cloud Compute (Nova)
• DBaaS early adopter
• HP Cloud Drupal Module
• Backup/restore to Cloud
Storage
• File asset hosting to CDN
User
Nova
Instance 1
Nova
Instance 2
DBaaS
Instance
Backups &
Images to Swift
via HP Cloud
Drupal Plug-in
Internal
Service
External
Service
27. 27
Developer Experience – Management Console
Web Sites / Apps
Language Bindings (Libraries)
Command
Line Interfaces
Web Sites /
Apps
APIs (Documentation)
http://hpcloud.com
http://build.hpcloud.com
http://console.hpcloud.com
http://connect.hpcloud.com
Developer Outreach & Evangelism
Community & Documentation
Developer Experience
Dependencies
http://blog.hpcloud.com
28. 28
Management Console – Technology
Web Sites / Apps
Platform: Custom
Technology: Ruby on
Rails
• Clean, uncluttered UI
• Optimized for scale
• HTML5 Compliant
• Uses our HP FOG bindings
under the hood
• Extensible architecture
• Intelligent Agents (IA’s)
• Proprietary Platform Access
Optimizations (PPAO’s)
Management Console UI
APIs
HPCS Services (IaaS/PaaS)
PPAO
Indicates Future State
Integration Services
External
Services
HPCS
IA’s
HP FOG
DevEx MQ
Service
29. 29
Overview & Strategy
Community & Documentation
“Rich Documentation and Technical Content”
Language Bindings (Libraries)
Command
Line Interfaces
Web Sites /
Apps
APIs (Documentation)
Technical Documentation
Technical Videos
Forum
Knowledge Base
Developer Outreach & Evangelism
Community & Documentation
Developer Experience
Dependencies
• API Technical Documentation
• Documentation Searchable
• Binding/CLI Coding Examples
• Knowledge Base – Formal Support Articles
• Forum – Customer Questions/Feedback
• Technical Videos along with Documentation
30. 30
Overview & Strategy
Developer Outreach & Evangelism
Language Bindings (Libraries)
Command
Line Interfaces
Web Sites /
Apps
APIs (Documentation)
Social Media Outreach,
Present, Train, Speak, Collect
Feedback, Contribute and
Participate, Create Example
Code & Documentation
from mantra:
Developers first.
Personal relationships developer to
developer.
• Developer Engagement a Priority
• Social Media Participation – Individual and
@hpcloud
• Open Source Community Engagement
Developer Outreach & Evangelism
Community & Documentation
Developer Experience
31. 31
What is it ?
Developer Outreach & Evangelism
“ Developers helping Developers ”
• Presenting/Training development topics
• Writing sample code for customers and community
• Writing Technical Blog posts on important topics or
examples
• Working with and reaching out to influential technical
people and developer/platform communities
• Social Media engagement
• Participate and Help Manage Developer events
• Collect developer feedback on all things related to
software development on the HP Cloud
• Contribute and Participate in Open Source projects
(bindings, platforms) to leverage or enable HP Cloud
Language Bindings (Libraries)
Command
Line Interfaces
Web Sites /
Apps
APIs (Documentation)
Social Media Outreach,
Present, Train, Speak, Collect
Feedback, Contribute and
Participate, Create Example
Code & Documentation
Developer Outreach & Evangelism
Community & Documentation
Developer Experience
32. 32
Social Media Outreach
Developer Outreach & Evangelism
Language Bindings (Libraries)
Command
Line Interfaces
Web Sites /
Apps
APIs (Documentation)
Social Media Outreach,
Present, Train, Speak, Collect
Feedback, Contribute and
Participate, Create Example
Code & Documentation
Developer Outreach & Evangelism
Community & Documentation
Developer Experience
34. 34
Engineering Iterations
Measuring Success
•Agile Approach to Development
•FastTrack Deployment Process
•Disciplined TDD Culture
•Fast Cycles to Facilitate
Frequent Product Enhancement
•Active Enhancement of MC
Platform Architecture
•Active Engagement with HPCS
Services to Advance Overall
HPCS Engineering Performance
35. 35
Measuring Success – Site / API Performance
• API/Function Call Level Instrumentation
• Broad Distribution of Platform Performance Data (Available in RT to NOC, Support and Prod Mgm
• Continuous Action Cycle of Performance Assessment to Improvement
•Global / Unified View of Site Performance
First Consumers of HP Cloud Services
Most like our Customers who Consume our Services
http://h30529.www3.hp.com/t5/HP-Scaling-the-Cloud-Blog/Developer-Experience/ba-p/373
Target Languages defined by using scoring based on:
Volume rankings from: Tiobe.com
Velocity rankings from: Github.com/languages
* .NET not represented in GITHUB rankings, however, historically .net developers do not utilize GITHUB as there are .net specific services like codeplex