wso2con eu 2015: keynote - the containerization of the developer workspace
TRANSCRIPT
Containers and Developers
Tyler Jewell, Founder and [email protected]
June 2015
The continuous nature of web-scale software deployment requires development teams to become part of a seamless flow of functionality from idea to production code.
- Nathan Wilson, Gartner, 2014
Management
Tyler Jewell: CEO, Board Member
Brad Micklea: Operations
Gennady Azarenkov: R&D
Board
Benjamin Mestrallet
Byron Sebastian
Investors
Toba Capital
Auriga Ventures
Bob Bickel
Sacha LaBourey
My Background
GP @ Toba CapitalSauce Labs
WSO2
Cloudant - Acquired by IBM, 2014
AngelInfoQ
ZeroTurnaround
SourceGraph
AuthorJava Web Services, O’Reilly
Mastering EJBs, Wiley
Java Server Programming, Wrox
AdvisorSD Elements
ShiftMobility
Tomitribe
The Application TrinitySystem to Continuously Deliver AppsPlatform to Develop Apps
issue mgmt
Platform to Host Apps
source code repo
agile ide
workspace?
check out & build code
unit test quality control
package & archiving
integration testing
deploy to test environment
deploy to pre-production
acceptance testing
deploy to production
continuous integration
testing frameworks
artifact repository
build tools
release mgmt
code quality
analysis
test
pre-production
production
100 firms including Atlassian, JetBrains, Puppet, Chef, Ansible, ZeroTurnaround, IBM, Electric Cloud,
Coverity, Sonatype, JFrog, and so on...
Responsible For
Your Targets
Toolchain Integration | Resource Management | Security | IsolationLocal Edit / Build / Run Cycle | Packaging and Dependencies | Reporting
Developer WorkspaceYour Editors
developer cycle
edit build
run
transition
commit deploy
sync ftp
configuration
importcreate
git svn
Your Toolchain
Code Repository | Asset Repository | CI / CD | Issue Management System | LDAP / Active Directory
APIsMiddlewareDatabases
PaaS
The Developer Workspace
Localhost is not cloneable, shareable, scalable or compliant
Reality: Wikis For Workspace ConfigurationDjango and
PHP with Eclipse
Tomcat with IntelliJ
Compile and install
Ruby
Mozilla Webmaker
with Vagrant
Continuous delivery demands repeatability - but developer workspace configuration is individual & complex.
Input: IDC 2014 Report w/ # of hobbyist / professional devs world wide through 2020Input: BLS statistics on growth of developersAverage RAM per dev desktop: http://www.quepublishing.com/articles/article.aspx?p=1941419 Assumption: Hobbyist RAM is 50% of professionalAssumption: Pro works 2600 hours / year; hobbyist is 1040Assumption: 100% of non-configuration work time is compiling + debuggingAssumption: Compiling + debugging time consumes 100% of available RAM
Configuration Wastes Time and Compute
2007 2010 2013 2016 2019
20
40
60
80
100
140
160
200
180
120
billion gb hours Resources Wasted From Developer Config
Developers Config HoursResources
Wasted
Value of Wasted Idle
Compute
18.5M 15.7B 99B $1.98B2014:
22.8M 19.3B 213B2020: $3.45B
3.5% 3.5%
Configuration is constant and pervasive, costing organizations time and money.
13.6%CAGR: 9.7%
Private & Confidential
Qualities of Containers
DevOpsDevelopersMultiple containers execute in parallel with separate copies of code stack.Boots in milliseconds.
IsolationSpeed
DevOpsDevelopers
Multiple containers can be connected.Dockerfiles create repeatability.
NetworkedRecipes
DevOpsDevelopers
Containers can have their state saved.Tasks can be sent into the container.
SnapshotsCommand Injection
Containers Shift Burdens Away From DevOpsContainersRepos Libraries NodesFolders & Files
how to maintain
versionable mapping?
Containers and Composition
Imagine a developer working on a 3-tier application using containers. The container configuration changes based upon need of developer.
Web Client
API Microservice
Local Database
Web Client
API Microservice
Shared, Central Database
Web Client
API Microservice
Database
Rapid Authoring Are Compose & Pods a solution?Staged Data Networked
Codenvy
Developer workspace cloud that eliminates configuration hell. Develop in mega workspaces with unlimited resources. Use your tools or ours - no compromises.
DevOpsDevelopers
Repeatable, Shareable, Scalable, and Compliant
Automation and GovernanceWorkspaces, Web IDE and Offline SyncProvision developer workspaces that are simply shareable and securely managed.
Craft code anywhere in non-thrashing mega workspaces that never run out of resources.
Codenvy Offerings
Codenvy On-Prem
Workspaces behind your firewall connected to your systems with
custom Che extensions.
Private & Confidential
Open source SDK for creating custom workspaces supported by Codenvy, IBM, SAP, and WSO2.
Eclipse Che
built on
Multi-user, multi-tenant, secure, scalable, and compliant.
Single user for desktop, embedded, or hosted workspaces.
Codenvy SaaS
Self-service workspaces with 150K users and 400K projects.
Codenvy Makes Development Boundless
Machines Your SystemsYour Tools Microservices Nodes
Web IDE
CLI
Eclipse
IntelliJ
Sublime Text
Emacs
vi
Co
den
vy P
rovi
ded
Yo
u P
rovi
de
syntax
refactor
clone
build
package
run
debug
query
merge
compile
Middleware
APIs
Code Repo
Artifact Repo
CI / CD
Issue Mgmt
LDAP
Targets
To
ol C
hain
Databases
PaaS
Workflow
contribute
pull request
corporate
hack
Codenvy Workspace
Codenvy Makes Development FrictionlessManual Codenvy
1. Setup project
2. Gain access rights
3. Fork / clone project
4. Checkout branch
5. Install compiler
6. Configure unit test
7. Install packager
8. Install dependencies
1. Edit, compile and debug
2. Make pull request
Developer Responsibilities
14 DaysAvg. time to configure
developer VM / desktop
2 HoursAvg. time to configure
each contribution
SecondsAvg. time to configure
a workspace or contribution
9. Install environment stack
10. Configure IDE for project
11. Install debugger
12. Edit, compile and debug
13. Synchronize master deltas
14. Package contribution
15. Make pull request
Source: Voke media survey, Dec. 2014 Source: David Blevins, TomEE Project Lead, Dec. 2014
Eclipse Che Extensibility
Che Kernel
Java Extension(you author)
deploysas
GWT Extension(you author)
compiles into
Che REST Services
Workspace Project Builder
+ many more...
loads
Cross-Browser JavaScript App
Codenvy IDE Wizard
Panels Editors
Che combines a kernel, developer REST services, machines and a JavaScript cloud IDE.
Developers customize Che by writing extensions at any tier, overriding any behavior.
Codenvy is a multi-tenant system that runs Eclipse Che extensions.
Browser
Desktop IDE CLI
Rich Clients
runs in
Servlet Runtime SDK
uses
Custom Clients(you author)
Custom Machines(you author)
invokes, registers, listens
Machines
Dockerdeploys as
Process
reuses
launches
Eclipse Che Codenvy Platform Distribution
Plu
g-In
Plu
g-In
Plu
g-In
Plu
g-In
Plu
g-In
IDE + SDK
Elastic Docker Machine Pool
Code
Developer Microservice Plug-Ins
Build Run Source Query
Source
External Integration Plug-Ins
CI PaaS Issue Identity
Languages
Eclipse Che ExtensionsEditors Projects
OperationsHA Tenancy Metering Security
API CLI Browser Mobile
Automation ManagementFactories Contrib Admin Analytics
The Codenvy IP Stack
Installation
update.codenvy.comNotices Accounts Binaries Installers
OfferingsSaaS @ On-Prem @ Managed @
codenvy.com Your Datacenter Any Datacenter
1-Node n-Node CentOS 6 CentOS 7
Cloud MarketplacesIBM AWS Google ...
Kernel
java javascript c++
maven gradle 55+
Your Extensions
Che Extensions
project builder
REST APIrunner
auth factory analytics