+ All Categories
Home > Documents > Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY...

Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY...

Date post: 05-Jul-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
32
Ortwin Schneider, Middleware Solution Architect Coding in Containers Reduce setup times and collaborate using CodeReady Workspaces
Transcript
Page 1: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

Ortwin Schneider, Middleware Solution Architect

Coding in Containers Reduce setup times and collaborate using CodeReady Workspaces

Page 2: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

These are not equivalent environments, even though they both use containers.

Development is done on a desktop with containers.

Production is moving to a Kubernetes distribution like OpenShift.

WHERE WE ARE TODAY

3

Page 3: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

Development is done on a desktop with containers.

Production is moving to a Kubernetes distribution like OpenShift.

Docker or linux process Kubernetes infrastructure

Single user load Concurrent load

No threats External threats and attacks

Expected user path Unexpected user paths

WHAT’S DIFFERENT?

4

Page 4: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

What’s needed to allow an authorized developer to contribute to a project quickly, easily and safely without relying on containers on the

laptop?

THE KEY QUESTION

5

Page 5: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

● Project sources● Dependencies● Developer Tools: language servers, debuggers, testing tools, security tools, etc...● Commands● Build and packaging tools● Terminal● Operating system● Web server / application server● Database● (All other runtime components)

Everything is versioned and needs updating.

If anything is different across the team inconsistent behaviors can result.

WHAT DEVELOPERS NEED TO CONTRIBUTE

6

Page 6: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

Managed in the IDE

Managed on the

Laptop

● Project sources● Dependencies● Developer Tools: language servers, debuggers, testing tools, security tools,

etc...● Commands● Build and packaging tools● Terminal● Operating system● Web server / application server● Database● (All other runtime components)

Managed in Git

This set is needed for each service that is used. Microservices mean many more of these sets to manage.

TRADITIONAL IDE + LAPTOP APPROACH

7

Page 7: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

Shareable

Hard to Share A laptop solution makes it hard to

replicate, share and secure everything the developer needs.

● Project sources● Dependencies● Developer Tools: language servers, debuggers, testing

tools, security tools, etc...● Commands● Build and packaging tools● Terminal● Operating system● Web server / application server● Database● (All other runtime components)

ShareableVery hard to secure laptops (lost, stolen, hacked) so sources are always at risk.

TRADITIONAL IDE + LAPTOP APPROACH

8

Page 8: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

Easy to Share and

Secure

Managed in a containerized

Workspace hosted in an IT-Managed

OpenShift cluster.

● Project sources● Dependencies● Developer Tools: language servers, debuggers, testing tools, security

tools, etc...● Commands● Build and packaging tools● Terminal● Operating system● Web server / application server● Database● (All other runtime components)

THE CODEREADY WORKSPACES METHOD

9

Page 9: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

Make developing container-based applications and services on theRed Hat OpenShift Kubernetes platform easy.

1. Accelerates projects and onboarding of developers.2. Removes inconsistencies and “it works on my machine...”

delays.3. Protects source code by removing it from hard-to-secure

laptops.

CODEREADY WORKSPACES

10

Page 10: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

Stack: A stack is a configuration template / recipe

CODEREADY WORKSPACES: STACKS

11

Page 11: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

Workspace: An instance of a stack for your projects

A Workspace is made of● The Runtime from the Stack● The Source code of your Project● The IDE and its configuration

User can share the workspace for collaboration or easy development

CODEREADY WORKSPACES: A WORKSPACE

12

Page 12: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

● Centralized Configuration using Stack & Workspaces○ Controlled development environment and runtimes

○ Runtimes based on RHEL

● Share the Workspaces as a Factory○ Simple file that your store with your project

● Share the Workspace as a URL for your teams

EASY & CENTRALIZED CONFIGURATION

13

Page 13: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

Private Openshift InstallBehind Your Firewall

...Virtual Private Cloud

...Public Cloud

...Datacenter

SOURCE REPOSITORY

ARTIFACT REPOSITORY

AD / LDAP DIRECTORY

DEVELOPER CLIENTS

IMAGE REGISTRY

Workspace Pod1..n containers

CodeReady Workspaces

Server

Workspace Pod1..n containers

Workspace Pod1..n containers

CODEREADY WORKSPACES ARCHITECTURE

14

Page 14: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

- Users can have more than one workspace (admin setting)

- One Che server per Kubernetes cluster

- Che server manages the lifecycle and authentication of all workspaces in the cluster

- Traffic to browser is minimal

- Majority of calls are inside the Che workspace, giving a “localhost” experience

ECLIPSE CHE CONCEPTUAL ARCHITECTURE

15

Page 15: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

Developers / QA / Docs● Bulk of the team● Work off issues in a backlog● Need guidance from leads/experts

Success defined by steady progress: effective and efficient.

“Help me burn down the backlog faster.”

Experts / Leads / Architects● Small number in a team● Likely “float” or run complex tasks ● Provide guidance and coaching

Success defined by leaps in progress: innovation and outperformance.

“Help the team run faster, with fewer stumbles.”

DIFFERENT NEEDS, DIFFERENT GOALS

16

Page 16: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

Developers / QA / Docs● Bulk of the team● Work off issues in a backlog● Need guidance from leads/experts

Success defined by steady progress: effective and efficient.

“Help me burn down the backlog faster.”

Experts / Architects● Small number in a team● Likely “float” or run complex tasks ● Provide guidance and coaching

Success defined by leaps in progress: innovation and outperformance.

“Help the team run faster, with fewer stumbles.”

Uses CodeReady Workspaces

Builds CodeReady Workspace Stacks and

Factories

DIFFERENT NEEDS, DIFFERENT GOALS

17

Page 17: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

ARCHITECT / EXPERTCreates a stack for each

project with approved tools and runtimes.

ARCHITECT / EXPERTTests each stack and

creates a Factory URL for instant on-boarding.

PROJECT LEADEmbeds project stack in

on-boarding docs and toolchain (issue tracker).

DEVELOPERSClick on Factory

link for the project to contribute.

New Project Start

WORKFLOW AND HANDOFFS

18

Page 18: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

POWERED BY WORKSPACES ON OPENSHIFT

-Cucumber-JUnit-Mockito

-SonarQube-Fortify

-AtomicScan-Blackduck-Twistlock

Trusted code repos

-Sysdig-Dynatrace

-Jira-Trello

CI SYSTEM

ISSUES DEV ENV

UNITTEST

CODEQUAL

SEC SCAN

INTTEST UAT

PROD

Trusted artifact and image repos

OPENSHIFT KUBERNETES PLATFORM

-Arquillian-JUnit

LAPTOP

TODAY

THE TRUSTED SOFTWARE SUPPLY CHAIN

19

Page 19: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

POWERED BY WORKSPACES ON OPENSHIFT

-Cucumber-JUnit-Mockito

-SonarQube-Fortify

-AtomicScan-Blackduck-Twistlock

Trusted code repos

-Sysdig-Dynatrace

-Jira-Trello

CI SYSTEM

ISSUES DEV ENV

UNITTEST

CODEQUAL

SEC SCAN

INTTEST UAT

PROD

Trusted artifact and image repos

OPENSHIFT KUBERNETES PLATFORM

-Arquillian-JUnit

THE BETTER

WAY

CODEREADY WORKSPACES

THE TRUSTED SOFTWARE SUPPLY CHAIN

20

Page 20: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

IDEs VIRTUAL LABSDesktop or

browser editors running on

localhost or VM.

Replicas of production

environments.Containerized

workspaces integrated with your development

toolchain.

ADLM

CODEREADYWORKSPACES

SCM, agile project management, issues, and CI.

Combines aspects of an IDE, a virtual lab environment and lifecycle management.All hosted on a private OpenShift Kubernetes cluster.

CODEREADY WORKSPACES IS UNIQUE

21

Page 21: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

● CodeReady Workspaces is a supported subscription for the open Eclipse Che project.

● It is not a fork.● CodeReady Workspaces and Eclipse Che have nearly identical functionality, the

only differences are:○ Workspaces is supported by Red Hat’s global support organization

○ Workspaces includes only Red Hat Enterprise Linux based secure stacks

○ Workspaces is released quarterly (Che is released every 3 weeks)

○ Workspaces releases are tested more thoroughly due to the slower cadence

○ Any bugs fixed are contributed to the upstream Eclipse Che sources for inclusion into a future release (no proprietary code)

● The CodeReady Workspaces development team includes several Che committers, making it easier and faster for us to contribute bug fixes back to the community.

CODEREADY WORKSPACES AND ECLIPSE CHE

22

Page 22: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

CODEREADY WORKSPACES DEMO

23

Page 23: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

What is the price for Red Hat CodeReady Workspaces?

• Red Hat CodeReady Workspaces is free to any customers with a subscription for OpenShift Container Platform, OpenShift Dedicated or OpenShift Online. It is not available with OpenShift Engine.

• Red Hat CodeReady Workspaces is compatible with OpenShift Container Platform (OCP) and OpenShift Dedicated (OSD) 3.11+.

Can I try Che or Red Hat CodeReady Workspaces today?YES

https://access.redhat.com/documentation/en-us/red_hat_codeready_workspaces_for_openshift/

HOW TO GET CODEREADY WORKSPACES?

27

Page 24: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

NEW: RedHat Managed Integration

SOLUTION EXPLORER - Unified Web App Interface

SINGLE SIGN-ON

Front End App

Hosted, pre-configured &

pre-installed products

(Integration bundle)

Single tenant

Man

aged

by

Red

Hat

LOOKING FOR A RED HAT MANAGED IDE OR MORE?

28

Page 25: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

BACKUP SLIDES+

SCREENSHOTS

29

Page 26: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

- Users can have more than one workspace (admin setting)

- One Che server per Kubernetes cluster

- Che server manages the lifecycle and authentication of all workspaces in the cluster

- Traffic to browser is minimal

- Majority of calls are inside the Che workspace, giving a “localhost” experience

ECLIPSE CHE CONCEPTUAL ARCHITECTURE

30

Page 27: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

CodeReady Workspaces OpenShift Resources

31

Page 28: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

CodeReady Workspaces REST API (Swagger)

32

Page 29: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

Organizations

33

Page 30: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

Stacks

34

Page 31: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

New Workspace

35

Page 32: Coding in Containers Reduce setup times and collaborate ......-Arquillian-JUnit THE BETTER WAY CODEREADY WORKSPACES THE TRUSTED SOFTWARE SUPPLY CHAIN 20. IDEs VIRTUAL LABS Desktop

Web IDE

36


Recommended