Reproducible dev environments to shorten release cycles
Major pain points in the software development lifecycle include:
- On-boarding and empowering a new member of the team
- Efficiently communicating progress via working code
- Fixing problems that include the words “but it worked fine on my machine”
DEVsheds broadens development lifecycle support within Bitbucket to provide cloud-hosted reproducible development environments and address these pain points above while staying within the familiar Atlassian user interface and making use of its team collaboration features.
This talk will describe the problem space that DEVsheds was designed to address, its architecture, challenges in its development, and a demonstration of its functionality.
While we see increasing levels of automation in the testing and deployment of software products, the process of setting up a development environment is often a manual and frustrating experience. Maybe viewed as a rite of passage in some teams, the reality is a process that is frequently poorly tested and dependent on the developer’s local machine configuration.
DEVsheds was created to remove the friction between teams and working code by making it easy to start working with the code, share work products with teammates, and bring the focus back to iterating on functionality of value to customers.
In creating DEVsheds, I was able to draw on my experience in creating Europa Notebooks, which enables executable Notebooks within the Confluence product. Notebooks are favoured by Data Scientists as they provide a REPL (read-eval-print-loop) perfect for writing, testing and running bits of code during the exploratory phase of data analysis and ML model building. To make a Notebook runnable as opposed to read-only, a virtual machine or containerized runtime environment is required to execute code.
The next logical steps are that notebooks and code is versioned and managed in a Git repository, and that as models migrate to software services and APIs, an integrated development environment (IDE) such as VS Code can help apply structure to the code.
Bitbucket is a capable cloud-hosted Git repository service with a great set of features for working in team environments such as Pull Requests and Bitbucket Pipelines. The Codegeist 2020 competition was an opportunity to accelerate building a product that brings containerized development environments, called workspaces, to teams using Bitbucket as their Git repository. Points of difference include:
- First class support for Notebooks
- A consistent user interface embedded in Bitbucket instead of linking out
- Support for deploying code or creating test environments that mirror production environments, made possible with general adoption of Kubernetes
About Europa Labs
Europa Labs was founded to democratise data science and machine learning by creating bridges between specialist data teams and teams dependent on data intelligence. Closing the gap between R&D and operationalisation to shorten the feedback cycle is one approach in this mission.