Blog

Home / Blog

Open Sourcing of cloud IDE platform by Gitpod

William Tsu
Data Analyst
Experienced data analyst working with data visualization, cloud computing and ETL solutions.
September 05, 2020


Gitpod, one of the top development environment technology providers, has recently open-sourced its self-named cloud-based IDE platform. This facilitates the automatic spinning up ready-to-code development environments. Moreover, the open-sourcing of the technology will make it easier for developers to integrate Gitpod into their workflows. This will also help the Gitpod community to participate in the technology's development.

The Kubernetes application of Gitpod helps developers and coders to maintain development environments as code, turning manual tasks into a machine-executable part of a project's source code. Furthermore, the IDE platform preps development environments for every change and effectively monitors changes in the repository.

This preparation includes:

• Compiling code

• Downloading dependencies

• Setting up tools

• Initializing whatever is needed

• Checking out the correct Git branch

With development teams able to build applications quicker now, developer workflows are streamlined. Coding can begin from an issue, branch, pull request, or merge, applying CI/CD concepts to development environments. Gitpod works with code-hosting platforms such as GitHub Enterprise, Bitbucket, and GitLab.

gitpod

Advantages of using Gitpod as cited by the company include the following:

Elimination of "configuration drift": Embracing of the GitOps approach through versioning of configuration in the Git repository helps to eliminate the configuration drift. This ensures reproducible as well as consistent development environments.

Shorter lead times: Gitpod reduces the time it takes to maintain the development environment and switch contexts.

Enabling remote collaboration: Developers are now able to share snapshots of work, perform mentoring, and work on code reviews.

The open-source version of its integrated development environment released by Gitpod is a new class of cloud-based IDE that fundamentally changes how software developers or programmers build applications. Apart from that, the open sourcing will enable builders to combine Gitpod into their workflows. With the recent developments, the Gitpod neighborhood can now take part in the expertise's improvement.

Gitpod, which is a Kubernetes application, offers a collaborative development environment in your browser that will be open source. Coding in Gitpod utilizes Eclipse Theia. The Eclipse Theia is similar to VS Code. Gitpod is also tightly integrated with Bitbucket, GitLab as well as GitHub. Further, Gitpod introduces an IDE that can be launched from any GitHub page. You get a cloud-based Linux container configured specifically for the current project along with the in-browser IDE. Eclipse Theia is considered as a true open-source alternative to the Visual Studio Code of Microsoft. Theia is an extensible platform that allows the users to build Desktop IDEs and develop multi-language clouds.

Theia is designed in such a way that it gives the users an extensible platform to develop Desktop IDE-like products and multi-language Cloud for developers. Also, by using Theia, Gitpod offers coding support features in the IDE such as auto-complete and syntax highlighting. The developers can even plan to allow the use of other IDE while the current IDE is based on Theia.

Gitpod continuously builds your git branches like a CI server by efficiently supporting prebuilt dev environments. Gitpod can build workspaces when new commits are pushed to your repository. For instance, before starting a workspace, it runs the init commands in your .gitpod.yml. What this means is that whenever you create Pull/Merge Request or a new workspace on a branch, this workspace will load much faster. All your code will be already compiled and all dependencies will have been already downloaded ahead of time.

Besides, Gitpod has another feature called parallel workspaces. You can open a second tab for different work if one workspace is occupied with work in progress. In other words, each browser tab acts as a separate workspace. Gitpod supports integrated code reviews and includes an integrated Docker build. Moreover, it lets others create clones while allowing you to take snapshots of any stat of your dev environment. The ability to invite team members to your environments is another team development option present in Gitpod. Recently, Johannes Landgraf and Sven Efftinge announced that Gitpod allows developers to analyze and create Kubernetes applications in a collaborative manner within their workflows. Gitpod, which is now available in open-source, meets Github's open-source criteria under the AGPL license. The leading online IDE platform, Gitpod, is an automated software development tool. IDE represents an integrated development environment.

Gitpod, being a leading Kubernetes application, has created Open VSX, Theia, Xtext, and many other projects as open-source applications. The easiest way to streamline your development workflows is the SaaS offering of gitpod.io. Gitpod also offers a self-service SaaS model on a private Cloud platform. Since its inception, Gitpod has been closed to community development before going open source. Gitpod announced a feature called Self-Hosted, which is 100% freely accessible to unlimited users. DevOps teams can now utilize Self-Hosted for enterprise projects. Its features include Live share projects, monitoring dashboards, analytics, and remote workplace collaboration applications. Also, the paid version for enterprise is laced with add-on features such as Prebuilt Workspaces. Prebuilt Workspaces enable DevOps teams to perform code reviews by helping to accelerate CI / CD workflows. Moreover, it maintains updated workflow branches at a real-time pace as well as troubleshoots bugs.

Other top-class characteristics of Open Source community include the following:

• Code Intelligence

• Deep Integrations

• VC Code Extensions

• Parallel Workspaces

• Sharing Running Workspaces

• Ephemeral Workspaces

• LINUX Terminals

Nowadays, developers often deal with complex polyglot projects that consist of many microservices. Managing and setting up dev environments becomes extremely challenging with cloud-native architectures. Developers can start writing code instantly using GItpod. They can do it instantly with a single click from any branch and any merge. Similar to a CI system, Gitpod prepares dev environments on every change and watches changes in the repository. The preparation includes downloading all dependencies, setting up the tools, compiling the code, checking out the right git branch, and initializing everything else needed to become productive. When a software developer is ready to code, they can start working in a ready-to-code dev environment within seconds.

Developers spend significant time waiting for tests and builds to complete before coding daily. Time is also spent on manual managing of the single dev environment on their local machines. The creation of development environments is automated by Gitpod. Gitpod can be self-hosted and is open source unlike other solutions like GitHub's Codespaces. Besides, it is a solution that works with almost any code-hosting platform. Gitpod provides an ephemeral development environment by using containers running in a Kubernetes cluster. Developers code using Eclipse Theia, which is compatible with its language server protocol. Eclipse Theia is similar to Visual Studio Code (VS Code) and it drives intelligent IDE features like auto-complete and syntax highlighting.

Due to licensing reasons, Theia is not able to use the VS Code extension marketplace. instead, it can use an open alternative called Open VSX. The ability to start up automatically when a developer is working on it and the ability to define a development environment as code is the essence of Gitpod. You put a YAML file into your repository alongside your CI [Continuous Integration] information Aat Gitpod. The CI information tells us what scripts should be executed and points to a Docker file where you list all the tools. When someone pushes code, the Gitpod server will go through all the automation as well as takes a snapshot of the environment at the end. This snapshot, prepared by the Gitpod server, will be sitting there waiting for developers to start coding. Since everything is reproducible, you don't have 'works on my machine' situations. Further, you can snapshot yourself and share a link on StackOverflow.

According to Efftinge, this approach is distinct from Microsoft and GitHub are doing with CodeSpaces, despite some similarities. Efftinge observed that it is possible to have an ephemeral dev environment with Gitpod since everything is prebuilt automatically. A Kubernetes application called GitPod source, which consists of around a dozen microservices, is available on GitHub now. With an open-source cloud IDE platform, people can try and build integrations on their own as well as contribute back. Besides, if they figure out these integrations have bugs, they can fix them themselves. Gitpod now provides a collaborative environment for coding in your computer.

Gitpod offers frictionless coding to its users. Whether you have code to review, feel like trying something new on GitHub, or want to fix a bug Gitpod beams you right into a ready-to-code dev environment with a single click. Gitpod includes tools for sharing, commenting inline in editors, approve and merge pull requests on GitHub, commenting inline in editors, and approve or merge pull requests on GitHub because it is based on OSS tech like VS Code. Moreover, it is extensible, comprehensive, and easy to use. Gitpod contains your entire dev workflow in a browser tab with deep GitHub integration, a focus on usability, and tools for sharing. Gitpod comes with a deep GitHub integration and it also automates tasks for developers with the help of a small configuration file. Kubernetes pods are destroyed or replaced and the Gitpod workspaces are disposable.