Natale Vinto discusses CodeReady Workspaces, a developer environment tool that runs on OpenShift. It provides containerized developer workspaces that enable coding directly within Kubernetes clusters. Key features include the Eclipse Che IDE, compatibility with VSCode extensions, and use of "devfiles" to define and standardize reproducible developer environments. CodeReady Workspaces aims to improve productivity for remote and distributed teams by reducing setup times and enabling self-service access to development environments.
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
Developer joy for distributed teams with CodeReady Workspaces | DevNation Tech Talk
1. DevNation Tech Talks
Developer joy for distributed teams
with CodeReady Workspaces
$ whoami
Natale Vinto
Developer Advocate - Red Hat
1
2. $ oc whoami
Natale Vinto
Developer Advocate @ Red Hat OpenShift
Computer Engineer, Solution Architect
FSFE Member
@natalevinto #OpenShift #Che_Joy
nvinto@redhat.com2
Aboutme
3. Dev Ops
Dev Team Ops Team
Finance Project Managers
CIO
Coding
Infrastructure
Security
Pathfinders
The School of Athens
Raffaello
1509-1511
Source: Wikipedia
4. Customer challenge: Enabling teams on Kubernetes
“>80% of my development teams aren’t
Kubernetes and container experts”
Google Search Trend: Kubernetes and Linux Containers
5 year old
technology..
very new!
Challenge
● Development happens on laptops: not in
Kubernetes, sometimes in containers
● IT is moving to Kubernetes in production
● Devs have programming knowledge, but little
experience with containers and Kubernetes
● Training every developer to become a
container and Kube expert isn’t viable: too
hard, too long
Need a way to make devs productive on Kube now,
but enable their learning journey going forward
5. Customer challenge: Making remote developers and consultants more efficient
Challenges
● Consultants often take 5-10 days to get setup on internal systems
○ Get approved laptop
○ Get access to relevant tools
○ Get access to shared dev clusters
○ ...
● Remote development offices are inefficient due to high turnover
and ongoing setup and ramp-up
○ VDI solutions are slow and painful for developers: makes them
less agile and effective
● Goals should be:
○ Near-instant provisioning of a new consultant or developer
○ Ability to reproduce product environment in development
(to speed releases and reduce “it works on my machine” issues)
“My remote development offices and development
consultants aren’t as efficient as I need them to be”
Average Time To First Project Contribution
6. Red Hat Developer Tools
Red Hat Developer Tools Approach
Do all development
in containers
Enable developers
and teams to make
better decisions
Improve & standardize
end to end process,
not just single tasks
Reduce setup and
management time
7. Eclipse Che: Developer joy!
Red Hat Developer Tools
The Kubernetes-Native IDE for Developer Teams
8. Red Hat CodeReady
OPENSHIFT
DEVELOPER TOOLS
- OpenShift-DO CLI
- CodeReady Containers
- Eclipse Che
- CodeReady Workspaces
- Dev console in OpenShift
MIDDLEWARE AND RHEL
DEVELOPER TOOLS
- Eclipse Che plugins
- DevStudio plugins
- VSCode plugins
- RHEL tools
PUBLIC SAAS
TOOLS
- CodeReady Toolchain
(ex-OpenShift.io)
- Hosted Eclipse Che
Developer Tools Portfolio
10. CodeReady Workspaces 2.2
CODEREADY WORKSPACES 2
10
Based on Eclipse Che 7
● Kubernetes-based developer workspaces: Leverage
fully containerized developer workspaces
● Eclipse Theia Editor
● VSCode extension compatibility: Benefits from
existing extensions
● Devfile: Codified definition of replicable developer
environments
● OpenShift VSCode Plug-in: Speeds up OpenShift
development
● Easier to Monitor and Operate: Prometheus and
Grafana dashboards.
11. CODEREADY WORKSPACES 2
11
Red Hat CodeReady Workspaces 2.x
a Cloud-Native IDE for OpenShift
New browser based editor, providing a fast desktop
like experience. Compatibility with Visual Studio
Code extensions.
New Built-in Editor
Deploy on your OpenShift cluster, behind your
firewall. Air-Gap capabilities. Easy to monitor and
administrate.
Protect your Code
Workspaces are accessible from the OpenShift
console, making the onboarding even smoother.
Kubernetes with Zero Effort
Embed a CodeReady Workspaces link in a project
repo or issue tracker and anyone with a browser can
be contributing code in <2 minutes.
Openshift Developer Perspective Integration
Source code is never cloned to a hard-to-secure
laptop. Code stays in an IT controlled sandbox, but
one that reacts as quickly as a developer’s laptop.
Air-Gap Install
Developer environments are codified with a Devfile:
consistent; reproducible. Store them in the repo for
auditability and to provide a GitOps experience.
Developer Environment as Code
13. Workspaces: Developer Sandbox centrally hosted on OpenShift
A CRW workspace is a developer sandbox running on OpenShift, where everything needed to code on a project is
packaged into containers.
It provides:
- Application runtimes
- Build tools
- Development tools: Browser based editor + plugins
- Project source code repositories
WHAT ARE WORKSPACES?
13
14. Workspaces: Developer Sandbox
Source code is getting mounted in your workspace, accessible from all containers.
Workspace
Tools Build Env Runtime Env Debug EnvTest Env
Source Code
Mounted
WHAT ARE WORKSPACES?
14
15. Containerized Development Tools
Development tools (editors and plug-ins) are packaged with
their runtimes and dependencies:
● Zero dependency installation
● Isolated execution
● Own lifecycle
● Easy upgrade/switch
● Simpler packaging
● Scalable
Package VSCode extensions in the container.
Runtime
Executable
Dependencies
WHAT ARE WORKSPACES?
15
17. Editor: VSCode in the browser
Containerizing the Editor: zero install and automate configuration
Extended Eclipse Theia, to provide a
top-of-the-art editor experience.
Built-in:
⌁ Languages Server Protocol
⌁ Debug Adapter Protocol
Compatible with VSCode extensions
NEW EDITOR
17
18. Customize with VSCode extensions
● Visual Studio Code extensions compatibility
● Extensions packaged with their dependencies
● Plug-in registry with predefined set of plug-ins
All Red Hat extensions available for VSCode will be available
with CodeReady Workspaces 2.
NEW EDITOR
18
20. Devfile Definition
Devfile: Developer environment as code
Tools
Runtime Env
Commands
Editor
Project
Name Repo Branch
Build Env
Build Run Debug
The devfile provides easy-to-configure, highly reproducible
definitions of portable developer environments.
It is a declarative abstraction of a replicable developer
workspaces, which includes the runtime environments, the
source code of the projects mapped to repositories and the
tools, plugins and commands needed to code, build, test, run
and debug a project.
DEVFILE
20
22. Devfile
“Dev mode” your kubernetes application
Use your K8S application
definition
Supercharge your tools and start coding
DEVFILE
22
23. Devfile: Made for Team
23
Manage Consistency
First class support of K8S,
manage the complexity of
developer environments
take out the pain.
Easy to Integrate
Devfiles are easy to
integrate with any tools.
Developer environments
can be created from
anywhere at anytime.
Simple to Share
Devfile live with source
code, are easy to modify,
fork and share.
Extensible
Customize per task, with
plug-in and developer
preferences
25. Benefits for the Ops
Enable Multiple teams on projects faster
Ensure Multi-Tenancy with SSO
(Keycloak)
Easy to deploy and maintain with an
Operator
Integrated with OpenShift RBAC and
OAuth2 (Security loves it!)
26. Benefits for the Dev
No ticket to open, everything is ready and
self-service
Easy to extend, Devfiles and Plugins
Increases productivity #Che_Joy
Focus on the Code, not the Infrastructure
28. One more thing..
- Download CodeReady Containers on your Laptop, Red Hat OpenShift optimized for
Workstations ready to go, and install CodeReady Workspaces from OperatorHub
- Visit learn.openshift.com for free online self-paced learning Labs
- Join DevNation Master courses, Tech Talks and more!
Get CodeReady!