26

The gitpod GitHub page says

Gitpod is an open-source Kubernetes application providing prebuilt, collaborative development environments in your browser - powered by VS Code.

However, I can not comprehend what it actually does. Can anyone please explain.

Mark Adelsberger
  • 42,148
  • 4
  • 35
  • 52
Ahmad Ismail
  • 11,636
  • 6
  • 52
  • 87

3 Answers3

56

Gitpod co-founder here.

Gitpod = server-side-dev-envs + dev-env-as-code + prebuilds + IDE + collaboration.

  1. From a Git Repository on GitHub, Gitlab or Bitbucket, Gitpod can spin up a server-side-dev-environment for you in seconds. That's a docker container that you can fully customize and that includes your source code, git-Terminal, VS Code extensions, your IDE (Theia IDE), etc. The dev environment is enough powerful to run your app and even side-services like databases.
  2. Step (1) is easily repeatable and reproducible because it's automated and version-controlled and shared across the team. We call this dev-environment-as-code. Think of infrastructure-as-code for your dev environment.
  3. After (1), you're immediately ready-to-code, because your workplace is already compiled and all dependencies of your code have been downloaded. Gitpod does that by running your build tools on git-push (like CI/CD would do) and "prebuilds" and store your workspace until you need it. This really shines when reviewing PRs in Gitpod.
  4. Collaboration becomes much easier once your dev environments live server-side and your IDE runs in the browser. Sending a snapshot of your dev environment to a colleague is as easy as sending a URL. The same goes for live shared coding in the same IDE and dev-environments.

At the end of the day, you start treating your dev environments as something ephemeral: You start them, you code, your push your code, and you forget your dev environment. For your next thing, you'll use a fresh dev environment.

The ease of mind that you get from not messing, massaging, and maintaining dev environments on your local machine is incredibly liberating.

Gitpod can be used on gitpod.io, or self-hosted on Kubernetes, GCP, or AWS.

Moritz Eysholdt
  • 741
  • 7
  • 4
  • 12
    Given the Gitpod privacy policy at https://www.gitpod.io/privacy/ is 18 pages when printed to portrait PDF, I'm surprised there's no mention of what Gitpod "actually does" with the data it sucks up for the vague marketing and analytics purposes mentioned there. The numbered bullet points are helpful, though, to understand the sales pitch - especially coming from a co-founder! This seems like a good opportunity to put the skeptical privacy and security minded folks here at ease about how our private data and behavior are treated in your care. – rob3c Jun 06 '21 at 08:12
13

To illustrate Gitpods, note that GitLab 13.5 (October 2020) adds a new feature

Launch Gitpod Workspaces directly from GitLab

Engineers have complicated development environments that can take time to set up and make testing changes or exploring new projects challenging. Often getting started with a project involves following documentation, installing dependencies, and hoping there are no conflicts with other services running. This process can be time consuming, error prone, and may not replicate the configuration accurately to test and contribute to a project.

With Gitpod integrated into GitLab, you can easily launch your Gitpod Workspace directly from the GitLab interface. When editing a project on GitLab, a new dropdown option exists to open that project in GitPod:

"/images/13_5/phikai-launch-gitpod-editor.gif" alt="Launch Gitpod from the GitLab UI"

Gitpod allows you to define your project’s configuration in code so you can launch a prebuilt development environment with one click.

These environments are configured through a .gitpod.yml file inside of the project and include options for Docker configuration, start tasks, editor extensions and more. This flexible configuration, which is part of the project’s code, allows developers to get started working on a project quickly. Try this today with the GitLab project which is already setup to work with Gitpod.

Thanks to Cornelius Ludmann from Gitpod for contributing this!

https://about.gitlab.com/images/13_5/phikai-launch-gitpod-editor.gif -- Launch Gitpod from the GitLab UI

See Documentation and Issue.


And with GitLab 14.2 (August 2021)

Launch a preconfigured Gitpod workspace from a merge request

Launch a preconfigured Gitpod workspace from a merge request

The Gitpod integration, introduced in GitLab 13.5, helps you manage your complicated development environments.
Once you define your project’s configuration in code, you can launch a prebuilt, cloud-based development environment with a single click.

This convenient workflow has made it faster than ever to generate new changes, but launching a Gitpod environment to review an existing merge request meant building an environment against the main branch before switching to the target branch and building again.

Now, in GitLab 14.2, you can launch Gitpod directly from the merge request page, preconfigured to use the target branch, to speed up your reviews and reduce the need for context switching.
Enable the Gitpod integration, and your merge requests display a grouped Open in button, so you can open the merge request in either the Web IDE or Gitpod.

Thanks to Cornelius Ludmann from Gitpod for this contribution!

https://about.gitlab.com/images/14_2/create-gitpod-in-mr-view.png -- Launch a preconfigured Gitpod workspace from a merge request

See Documentation and Issue.

VonC
  • 1,262,500
  • 529
  • 4,410
  • 5,250
0

GitPod is essentially an ephemerial/adhoc environment that instantiates a Docker container via a .gitpod.Dockerfile yaml. At the core, there is the VS Code integration and the SSH Remote extension is the key piece there that ties a lot of the "what GitPod does" question. In fact, the UI would be another key piece there, as workspaces can be cached via prebuilds (which are available "almost instantly"), or manual "one-off" builds (which take much longer to run - because it's a build - duh), and can be re-instantiated via the UI, which auto-parses stale workspaces after 14 days.

The workspace is the environment. The gitpod/workspace-full Docker image which contains the following at time of this post:

gitpod/workspace-c ✅

gitpod/workspace-clojure ✅

gitpod/workspace-go ✅

gitpod/workspace-java-11 ✅

gitpod/workspace-java-17 ✅

gitpod/workspace-node ✅

gitpod/workspace-node-lts ✅

gitpod/workspace-python ✅

gitpod/workspace-ruby-2 ✅

gitpod/workspace-ruby-3 ✅

gitpod/workspace-ruby-3.0 ✅

gitpod/workspace-ruby-3.1 ✅

gitpod/workspace-rust ✅

gitpod/workspace-elixir ✅

So all in all, as long as the open-source community is active, your getting a pretty fresh, well-provisioned, "full" environment, and it's available "on-demand" via a web UI, that can take a query string with gitpod.io/#{your github url}.

For free, a workspace runs for 1 hour with a total of 50 hours per month avaialble. Increased time and team config is available, so for example, a two-pizza team on a team plan is around $200-$300 per month, which, if you put pen and paper to it, has decent ROI considering time-savings, and amping up the DevX.

bananaforscale
  • 820
  • 10
  • 13