White Paper: Localhost is Killing Software Delivery



Similar documents
@CodenvyHQ

Azure Day Application Development

DevOps Course Content

ORACLE APPLICATION EXPRESS 5.0

The Virtualization Practice

Jenkins World Tour 2015 Santa Clara, CA, September 2-3

Load and Performance Load Testing. RadView Software October

OpenShift. OpenShift platform features. Benefits Document. openshift. Feature Benefit OpenShift. Enterprise

A new era of PaaS. ericsson White paper Uen February 2015

Application Release Automation (ARA) Vs. Continuous Delivery

White Paper. The Importance of Automating the End to End Pipeline for Continuous Delivery

Jenkins on Windows with StreamBase

Building a Continuous Integration Pipeline with Docker

Nexus Professional Whitepaper. Repository Management: Stages of Adoption

Software Development In the Cloud Cloud management and ALM

Enabling Continuous Delivery for Java Projects with Oracle Cloud Services (Oracle PaaS) Siva Rama Krishna Oracle India

STRATEGIC WHITE PAPER. The next step in server virtualization: How containers are changing the cloud and application landscape

Sonatype CLM Enforcement Points - Continuous Integration (CI) Sonatype CLM Enforcement Points - Continuous Integration (CI)

Continuous Integration and Bamboo. Ryan Cutter CSCI Spring Semester

Modern App Architecture for the Enterprise Delivering agility, portability and control with Docker Containers as a Service (CaaS)

IBM Digital Experience. Using Modern Web Development Tools and Technology with IBM Digital Experience

Know the Difference. Unified Functional Testing (UFT) and Lean Functional Testing (LeanFT) from HP

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Sonatype CLM for Maven. Sonatype CLM for Maven

<Insert Picture Here> Private Cloud with Fusion Middleware

Lab 0 (Setting up your Development Environment) Week 1

DevOps. Josh Preston Solutions Architect Stardate

GlassFish v3. Building an ex tensible modular Java EE application server. Jerome Dochez and Ludovic Champenois Sun Microsystems, Inc.

Automation and Virtualization, the pillars of Continuous Testing

Version Control Your Jenkins Jobs with Jenkins Job Builder

NXTware Remote. Advanced Development and Maintenance Environment for OpenVMS and other Strategic Platforms

Enterprise PaaS Evaluation Guide

Welcome to the Force.com Developer Day

Git Branching for Continuous Delivery

NetBeans IDE Field Guide

Servers. Servers. NAT Public Subnet: /20. Internet Gateway. VPC Gateway VPC: /16

Continuous Delivery for Alfresco Solutions. Satisfied customers and happy developers with!! Continuous Delivery!

Enterprise Cloud Solutions

Red Hat Mobile Application Platform

ON-PREMISE OR IN THE CLOUD, A SINGLE JAVA EE APPLICATION PLATFORM

Mile Run World Record Progression 1913 to 1999 (Source: Wikipedia) Rapid App Development Fosters Improvement

Red Hat Openshift Christoph Eberle

DevOps: Multiplatform Application Deployment

IBM Rational ClearCase, Version 8.0

Using Oracle Cloud to Power Your Application Development Lifecycle

1 What is Cloud Computing? Cloud Infrastructures OpenStack Amazon EC CAMF Cloud Application Management

Apex Code: The World s First On-Demand Programming Language

RED HAT CONTAINER STRATEGY

An Architecture Vision

"Build and Test in the Cloud "

SAP Crystal Reports & SAP HANA: Integration & Roadmap Kenneth Li SAP SESSION CODE: 0401

Scale Cloud Across the Enterprise

Tutorial: Mobile Business Object Development. SAP Mobile Platform 2.3

OpenShift Enterprise PaaS by Red Hat. Andrey Markelov RHCA Red Hat, Presales Solution Architect

Tutorial: Mobile Business Object Development. SAP Mobile Platform 2.3 SP02

Meister Going Beyond Maven

Integration in Practice

Continuous Integration using Docker & Jenkins

Urbancode Deploy Overview

Agile Software Factory: Bringing the reliability of a manufacturing line to software development

TEST AUTOMATION FRAMEWORK

Journey to the Intelligent Cloud - Part 2 -

Modern Application Architecture for the Enterprise

Effective End-to-End Cloud Security

White Paper. Cloud Native Advantage: Multi-Tenant, Shared Container PaaS. Version 1.1 (June 19, 2012)

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

APP DEVELOPMENT ON THE CLOUD MADE EASY WITH PAAS

Java PaaS Enabling CI, CD, and DevOps

Tutorial: Mobile Business Object Development. Sybase Unwired Platform 2.2 SP02

Using Git with Rational Team Concert and Rational ClearCase in enterprise environments

Continuous Integration. CSC 440: Software Engineering Slide #1

Jenkins and Chef Infrastructure CI and Application Deployment

Workshop for WebLogic introduces new tools in support of Java EE 5.0 standards. The support for Java EE5 includes the following technologies:

Cloud OS. Philip Meyer Partner Technology Specialist - Hosting

Linstantiation of applications. Docker accelerate

Openshift for Continuous Integration

White Paper. Anywhere, Any Device File Access with IT in Control. Enterprise File Serving 2.0

Continuous Integration and Delivery. manage development build deploy / release

A central continuous integration platform

HOW OPEN SOURCE IS DRIVING DEVOPS INNOVATION. Gordon William Cloud & DevOps Product Strategy, Red Hat 17 August 2015

Introduction to Cloud Computing. Lecture 02 History of Enterprise Computing Kaya Oğuz

Paul Barham Program Manager - Java. David Staheli (dastahel@microsoft.com) Software Development Manager - Java

Securely. Mobilize Any Business Application. Rapidly. The Challenge KEY BENEFITS

Achieve Agility with Cloud Based Development: BlueMix and IBM DevOps Services Khurram Nizami

How Oracle MAF & Oracle Mobile Cloud can Accelerate Mobile App Development

Cost Savings with Tcat

ABSTRACT INTRODUCTION SOFTWARE DEPLOYMENT MODEL. Paper

Take full advantage of IBM s IDEs for end- to- end mobile development

AWS CodePipeline. User Guide API Version

Tutorial: BlackBerry Object API Application Development. Sybase Unwired Platform 2.2 SP04

Introduction to DevOps on AWS

Transcription:

SECTION 1.0 White Paper: Localhost is Killing Software Delivery Localhost isn t secure, manageable, scalable, synchronized or collaborative ouch White Paper: Localhost is Killing Software Delivery 1

Contents 3 Introduction 4 Chapter 1: The Application Trinity 5 Chapter 2: The Developer Workspace 8 Chapter 3: The Codenvy Workspace 16 Conclusion White Paper: Localhost is Killing Software Delivery 2

INTRODUCTION Introduction The era of DevOps is upon us. DevOps is teaching us that when we do something repetitively, we make fewer mistakes. When applied to software, we find that continuous integration, deployment and feedback provided to developers is essential so that problems are rectified as quickly as they were introduced. This is the continuous software delivery goal. {v.3.0} {v.2.1} {v.2.0} {v.1.8} Continuous practices require the decomposition of software development to manageable building blocks. Agile, open source, containers, and microservices introduce modularity in the application building process which compliments DevOps. Less monolithic apps, packaged in smaller pieces not only let organizations get innovative functionality into the market faster, they are easier to use with continuous practices and even make for happier engineers (which helps retain the best). The landscape of vendors has shifted to reflect this new reality with over 200 vendors vying to win your business in the app development, software delivery and hosting categories. At Codenvy, we are obsessed with helping development teams achieve faster software delivery. In this article, we will explore the nature of this continuous world and the impact workspace configuration is having. White Paper: Localhost is Killing Software Delivery 3

CHAPTER 1: THE APPLICATION TRINITY Chapter 1: The Application Trinity Organizations are investing in Docker, Puppet, Chef, and Jenkins because these solutions are solving thorny problems around how to take code and then get it into the right environment in a consistent, repeatable way. These technologies are using recipes, automation, and management techniques to make this process not only continuous, but computerized, often performing their tasks repeatedly without a human launching the process. Develop Apps Deliver Apps Host Apps Issue Management Source Code Rep Check Out & Build Code Unit Test Quality Control Test Agile IDE Package & Archiving Integration Testing Deploy to Test Environment Pre-production Deploy to Pre-production Acceptance Testing Deploy to Production Production Workspace Continuous Integration Packaging & Building Tools Code Quality Testing Frameworks Artifact Repository Release Management 100 firms including Atlassian, JetBrains, Puppet, Chef, Ansible, ZeroTurnaround, IBM, Electric Cloud, Coverity, Sonatype, JFrog, and so on... This works well on centralized areas like testing, staging and production where these services are hosted and in control of the environments and resources. They have an awareness of the resource limits and coordinate these multitude of actions in such a way to optimize the delivery process to minimize time or failure rates. But what about the developer s workspace? Each developer needs a workspace to do their work, and these workspaces often require many of the environmental components that production systems require. White Paper: Localhost is Killing Software Delivery 4

CHAPTER 2: THE DEVELOPER WORKSPACE Chapter 2: The Developer Workspace The workspace is the central location to perform a unit of work against a set of like-minded projects. Developers often need many workspaces, each configured differently to support the unique constraints of their project. Developers demand choice and flexibility, so they will continue to use their favorite IDE integrated into those workspaces directly. At the same time, each workspace is the central location that a developer uses to coordinate with their corporate toolchain or targeted systems. Your Editors Responsible For Toolchain Security Isola on Resources Dependencies Repor ng Configura on Create Import Developer Workspace Build Edit Dev Cycle Transi on Commit Deploy Sync Your Targets APIs Middleware Databases PaaS Run Git SVN FTP Your Toolchain Code Repository Asset Repository CI / CD Issue Management System LDAP / Ac ve Directory The developer s workspace is a miniaturized staging environment, connected to the same resources that an organization s central systems are connected to, but with additional developer-centric services: debugging, code authoring, content assist, and file management. The system that hosts the workspace takes responsibility for a variety of infrastructure needs including toolchain integration, resource allocation, security, isolation, and reporting. White Paper: Localhost is Killing Software Delivery 5

CHAPTER 2: THE DEVELOPER WORKSPACE Today this workspace is almost always on the developer s desktop. Their workspace is localhost. It s commonly assumed that the workspace is bundled within the IDE, but the IDE is just acting as a smart client against the (assumed and embedded) localhost workspace. One question worth asking is: if continuous delivery demands automation and repeatability, then why is it that workspace configuration is manual and complex? Given this reality, it is probably not surprising that developers most commonly configure their workspace using manual wiki pages, which dictate a sequence of manual configuration steps that they often perform on localhost. Ugly Wiki Reality Sometimes they are able to automate these elements using Vagrant or Chef on localhost. But even with that automation, the developer quickly runs into a number of limits that cannot be overcome: Workspaces Defined by Images Must Be Constantly Synchronized This is difficult to manage at scale when changes are frequent. And, it s frankly not the Git-way. Workspaces Are Opaque It is not possible to remotely inspect the workspace on localhost or to query the image what its contents are. This leads to Workspaces Are Not Secure Organizations take great care to manage hosted source and issue management repositories, defining which resources have privileged access to intellectual property. But why bother when the first thing each developer executes is a repo clone onto their localhost workspace that isn t monitoring or controlled by the organization? The code once protected can be copied to other storage devices. The security of your IP is only as strong as the security strength of the collective workspaces that integrate with your hosted systems. With developers demanding and receiving control over their environments, questions are raised about the appropriate way to affect governance while not sacrificing the productivity of individuals. White Paper: Localhost is Killing Software Delivery 6

CHAPTER 2: THE DEVELOPER WORKSPACE Workspaces Are Not Shareable Localhost workspaces and images running within a localhost system are bound to the sharing rules dictated by the administrator of the computer running localhost the developer. Workspaces Are Not Programmable There is no programmatic way to create, update, or destroy the workspace. Or even more powerful, once the workspace has been created, a programmatic way to orchestrate and automate services that are performed against the projects hosted within. Localhost is Not Isolated For developers that configure localhost directly, they have to jump through many hoops to have one set of configurations isolated from others. With developers working on many versions and projects simultaneously, they need isolated workspaces to stay productive. While images can create this isolation natively, it comes at a cost. But more importantly localhost and image-based workspaces are not scalable. Have you tried running 20 workspaces simultaneously each consuming up to 100 GB of RAM so that you can fluidly switch between projects without worrying about configuration isolation, waiting for an admin to provision new resources, or the endless whirl of your CPU fan from the constant thrashing due to resource swapping? It s just not possible. White Paper: Localhost is Killing Software Delivery 7

CHAPTER 3: THE CODENVY SOLUTION Chapter 3: The Codenvy Solution While many think of Codenvy as a browser-based IDE, which is something we do provide, we are primarily a developer workspace cloud. Codenvy workspaces are designed to be redundant, scalable, secure, and collaborative. They are designed to eliminate the restrictions that have been holding developers back without limiting their preferences on experience. We want these workspaces to be free of compromises. All of the following are true with Codenvy workspaces: Use Any IDE Whether it is IntelliJ, Sublime, Eclipse, emacs, vi or our browser-based IDE, we are indifferent. Developers demand to choose their own experience so that they can make maximum use of their muscle memory or the plug-ins that their organization depends upon. We make this possible with a CLI that enables desktop cloning of workspaces for use by your local IDE and because White Paper: Localhost is Killing Software Delivery 8

CHAPTER 3: THE CODENVY SOLUTION Workspaces Are Programmable Each workspace is accessible through an opinionated REST API. The API includes meta elements around the management of the workspace s lifecycle, along with control over what is installed within the workspace and the actions that the workspace performs. There are over 100 possible methods to invoke with examples such as create project in workspace by importing zip, get list of all runner processes for workspace, create new temporary workspace, and add member to workspace. White Paper: Localhost is Killing Software Delivery 9

CHAPTER 3: THE CODENVY SOLUTION Workspaces Have Recipes Similar to the way a Chef recipe defines a server for execution or a Vagrantfile defines an image to be created, within Codenvy a workspace has a recipe that defines its structure. Recipes can be packaged into Factory URLs to enable repeatable re-creation of identical workspaces or they can be saved within your source code repository for versioning and inclusion as part of your configuration-as-code initiatives. Workspaces Never Run Out of Resources We take the various functions performed by users within their workspace and place them into microservices, which are executed within machines. Machines are lightweight services that can perform functions on your project in an isolated manner. We are able to place different machines onto different physical nodes, giving a single workspace access to a set of resources that far exceed what is available on localhost. We use Docker as our default machine implementation, but you can provide your own. You can even provide custom Dockerfiles that will allow us to use custom machines that are built on-demand to perform the functions in the workspace. When you run Codenvy On-Prem, you decide how many physical nodes to deploy into your cluster. With Codenvy SaaS, we provide these physical nodes on-demand. Codenvy IDE Codenvy Workspace Your Targets REST Services Containers Hardware or Your Editor syntax refactor compile debug build clone more... APIs Middleware Databases PaaS + many more Your Toolchain Code Repository: GitHub, BitBucket, Gitlab, Subversion +15 more White Paper: Localhost is Killing Software Delivery 10

CHAPTER 3: THE CODENVY SOLUTION Workspaces Are Extensible Every developer, project, team, and company (or ISV!) is different. Depending upon the perspective of the organization, they may need to integrate special tools, override atomic microservices, or provide custom environments. Codenvy is based upon Eclipse Che, which provides an extension mechanism that lets developers create custom machines and extensions that modify the behavior of workspaces. Che extensions, whether they are client or server-side can be packaged into custom assemblies for Codenvy On-Prem. These extensions can not only modify a workspace, but can change the entire nature of the system itself, including the branding. Eclipse Che Eclipse Che combines a kernel, developer REST services, machines and a JavaScript cloud IDE. Custom Clients (you author) reuses Browser loads Rich Clients Desktop IDE CLI Developers customize Eclipse Che by writing extensions at any tier, overriding any behavior. GWT Extension (you author) compiles into Cross-Browser JavaScript App Codenvy IDE Wizard Panels Editors uses invokes, registers, listens Codenvy is a multi-tenant system that runs Eclipse Che extensions. Java Extension (you author) deploys as Che REST Services Workspace Project Builder + many more launches runs in Custom Machines (you author) deploys as Machines Docker Process Rich Clients Servlet Runtime SDK White Paper: Localhost is Killing Software Delivery 11

CHAPTER 3: THE CODENVY SOLUTION Workspaces Understand the Projects Within Codenvy are project-centric. Projects that are contained within a workspace are structured and opinionated based upon the type that they inherit. The system alters its behaviors by the type of project including altering the plugins that are loaded, altering the behavioral policies, and adjusting the logic for key microservices. For example, building a maven multi-module project requires a different procedure than that of a node project and the system adjusts for this. With customization, extension authors can create their own project types. Additionally, projects may have complex structures including sibling and parent-child relationships, each that bring an associated set of behaviors. Take, for example, the common scenario where a developer is working on a 3 tier application, for which the source code is in 3 different GitHub repositories and the execution is within two machines (app server and database server). In this scenario, a developer needs a single workspace, three projects each mapped to a GitHub repository, and an environment that maps the projects to a set of 2 networked machines. White Paper: Localhost is Killing Software Delivery 12

CHAPTER 3: THE CODENVY SOLUTION Workspaces Are Collaborative It is always better to build software together rather than apart. Workspaces, their projects, their files, and their executing machines are all represented with URLs which can be shared with others. Increase the membership of a workspace by extending access privileges to others. Multiple developers are permitted to work on the same projects (each in their own isolated copy), sharing the projects, files and resources allocated within. Make projects public or private to further restrict access. White Paper: Localhost is Killing Software Delivery 13

CHAPTER 3: THE CODENVY SOLUTION Workspaces Are Continuous Codenvy embeds a structure that inherently understands the iterative developer cycle of code authoring. At the core of development, engineers write code, build it, and then debug it repeating this cycle with changes until the desired state of behavior is achieved. There are phases before this dealing with configuring the project and after this about moving the assets to another phase of the continuous integration cycle. With localhost workspaces, there was limited intelligence that was applied to this repetitive cycle and it became the domain of IDEs. IDEs would optimize this workflow for the technology each IDE specialized to, but limited by the resources and authorizations that it was offered as a client application that ran periodically. With hosted workspaces, they can and do run continuously, performing assist functions automatically based upon the state or events affecting the workspace. Codenvy workspaces have entities and structure that inherently understand this model of development with reusable APIs and microservices that can be applied to projects of any type, structure, language, or framework. This structure is baked into the system such that extension developers inherit these properties to their benefit allowing them to focus on implementing specialized logic unique to their project domain. ur ors Responsible For Toolchain Security Isola on Resources Dependencies Repor ng Configura on Create Import Developer Workspace Build Edit Dev Cycle Transi on Commit Deploy Sync You Targ AP Middle Datab Paa Run Git SVN FTP Your Toolchain White Paper: Localhost is Killing Software Delivery 14 Code Repository Asset Repository CI / CD Issue Management System LDAP / Ac ve Directory

CHAPTER 3: THE CODENVY SOLUTION Workspaces Are Manageable Codenvy lets account/owners, system/admins, and workspace/admins define access, behavioral and resource policies that the system will honor. These policies can be mapped against users or groups. This provides a variety of fine-grained controls that give those with super rights the ability to restrict the consumption of microservices, limit their access to certain behaviors, or to prevent access all together. For example, within your account, you can set RAM and Gigabyte hour caps on each workspace that will prevent new services from launching or even terminate existing ones if upper limits are reached. Beyond this configuration, we also track 100s of events across your workspace and those of all users, giving users and admins analytics to understand what people are doing within their workspace. Anyone can see their own analytics by accessing codenvy.com/analytics with their account credentials. White Paper: Localhost is Killing Software Delivery 15

CONCLUSION Conclusion So is this model of workspaces right for you? Beyond the flexibility and power that you will get with hosted workspaces, you ll also save money. Developers spent 100 gigabyte hours in 2014 on idle compute due to localhost. This problem is only going to get worse even though the cost of compute is declining. If you are tired of localhost being insecure, non-scalable, and unmanageable, it s time for you to think about hosted workspaces with Codenvy. You can get started for free as you get 20 free gbh every month in our SaaS self-service workspaces. And Codenvy On-Prem is free for use within your own systems as well. It s the power, flexibility, security, and manageability of Codenvy workspaces that enables leading development organizations like Intuit, WSO2, SAP, CCCIS and Youth Digital scale their workspaces and achieve their continuous software delivery goals. Configuration Wastes Time and Compute Billion gb hours Resources Wasted From Developer Config 200 180 160 140 120 100 80 60 40 20 2007 2010 2013 2016 2016 2014 2020 CAGR Developers 18.5M 22.8M 3.5% Config Hours 15.7B 19.3B 3.5% Resources Wasted 99B 213B 13.6% Input: IDC 2014 Report w/ # of hobbyist / professional devs world wide through 2020 Input: BLS statistics on growth of developers Average RAM per dev desktop: http://www.quepublishing.com/articles/article.aspx?p=1941419 Assumption: Hobbyist RAM is 50% of professional Assumption: Pro works 2600 hours / year; hobbyist is 1040 Assumption: 100% of non-configuration work time is compiling + debugging Assumption: Compiling + debugging time consumes 100% of available RAM Value of Wasted Idle Compute $1.98B $3.45B 13.6% Configuration is constant and pervasive, costing organizations time and money. White Paper: Localhost is Killing Software Delivery 16

SECTION 1.0 White Paper: Localhost is Killing Software Delivery 17