Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Codenvy Introduces Docker-Powered Developer Workspaces

Codenvy Introduces Docker-Powered Developer Workspaces

Codenvy has evolved its flagship service from a cloud-based code editor to a full fledged, container-based development environment. Codenvy CEO and Founder Tyler Jewell told InfoQ that Codenvy is no longer an “IDE, but an orchestration engine” that wants to optimize “everything before the commit.”

Codenvy claims that developers spend more than thirteen hours per week configuring and maintaining their development environment. To free up that time, Codenvy built the Developer Environment Cloud, a hosted platform that provides isolated workspaces for developing, compiling, and executing applications. Developers either choose from a series of pre-defined build/run/debug environments for languages like Java, PHP and C++, or create a JSON-based recipe that defines their own custom environment. These custom environments build and run the developer’s project in a set of Docker containers provided by Codenvy, or sourced from the Docker Hub. Described in a blog post about the release, the platform uses microservices  to deliver a loosely coupled and responsive system.

Codenvy is microservices-powered to deliver workspaces that are responsive and fast-loading. Each microservice automates an atomic part of a developer’s workflow - from code analysis to SQL queries to compilation to runners.

Tasks, such as dependency analysis and unit tests, are executed in parallel transforming workspaces into supercomputers. Runners and custom tasks are given isolated Docker containers injected with source code and artifacts.

“Runners” are Docker-encapsulated processes that execute all the components of an application. Developers can observe runtime behavior by accessing each runner via the console, terminal, or VNC.

With native git support, the Developer Environment Cloud lets developers clone public or private repositories into the internal git repository. This internal repository is backed by clustered storage that is accessed by the builders and runners in the developer workspace.

When a Project is created, its Project tree is populated with a set of files that are the code, assets, and resources. In Codenvy, your Projects are mapped to a distributed, clustered Virtual File System (VFS). The VFS provides a number of functions including load balancing, high availability, backup storage, distributed node access to files, and Project-level access controls. We enforce Project and Runner privacy controls through the VFS.

Developers work online or offline in this platform and can use the Codenvy-provided code editor or use their IDE of choice. The Codenvy CLI makes this possible. The CLI, which offers functional parity with the API and browser IDE, gives developers a way to create projects and clone code locally. At this point, any IDE can be used to create and edit the application code. When the developer is ready to commit the local changes, they use the CLI to push the code back to the Codenvy repo.

This product evolution resulted from a gap in the developer workflow noticed by Codenvy CEO Tyler Jewell. While a cloud-based IDE solved a particular set of problems, Jewell saw that the complete developer experience wasn’t being addressed. As pointed out in an infograph on the Codenvy site and through interviews with InfoQ, Jewell points out that building development environments locally, or working through virtual machines alone, is inefficient. Even while new tools like Vagrant make it possible to build standardized images and selectively collaborate, Jewell believes that finite local resources and true collaboration require a new type of hosted solution. Multiple years in the making, the Developer Environment Cloud relies heavily on queuing, microservices, and Docker and Jewell thinks this finally gives developers the horsepower needed to build and run complex applications. The previous Codenvy IDE required configuration, had few extensibility points, and wasn’t as fast as a developer could move, according to Jewell. While Jewell believes that this new product will appeal directly to developers, his focus is squarely on those who are “creating environments for others.” Team leads, DevOps professionals, and software providers are primary targets. He expects each of those groups to build project recipes, create containers for builders and runners, construct IDE plugins, and define one-click environments for easy consumption.

Codenvy Developer Environment Cloud is available as a software-as-a-service solution, private installation, or white-labeled offering. Developers can have a single workspace with multiple projects and 256 MB of RAM allocation for free. For a charge, the hosted service offers up to 2TB of RAM allocation and better SLA on build time and runner lifespan. The on-premises option is available as a per-user subscription fee. This version could run within an organization’s own data center, or get installed into a public cloud of their choosing.

Rate this Article