19
Containers and Developers Tyler Jewell, Founder and CEO [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

WSO2Con EU 2015: Keynote - The Containerization of the Developer Workspace

  • Upload
    wso2

  • View
    131

  • Download
    1

Embed Size (px)

Citation preview

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

Containers and DevelopersCan containers improve productivity?

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 are ideal as service providers for repetitive tasks.

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 and ContainersMega workspaces, Docker containers & a cloud IDE

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

Thank You