13 open source tools for developers | Opensource.com

13 open source tools for developers

Choose tools that provide maximum flexibility in software integration and delivery.

Tools in a cloud
Image by : 
Opensource.com
x

Subscribe now

Get the highlights in your inbox every week.

Modern developers are highly technical, opinionated, passionate, community-focused, driven, polyglot, and most importantly, empowered decision-makers. Today, developers have a say in the products being built and the tools and technologies used to build them. Most importantly, time is precious, and developers and project managers can always benefit from great efficiency. To attain great efficiency, though, you must understand the software lifecycle, and how it can be organized and manipulated.

The industry is still working on perfecting how a developer's time is spent. We can divide a developer's major tasks into two different "loops":

  • Inner loop: These are the most common tasks developers do, the ones that fully utilize their skillsets: code, run, validate, and debug. This is the classical developer loop.

innerloop.png

Inner loop developer tasks

(Nimisha Mukherjee, CC BY-SA 4.0)

  • Outer loop: This is where a developer's code goes through continuous integration and continuous delivery (CI/CD) and gets deployed to production. On Gitlab and similar platforms, a developer's pull request (PR) gets merged to the main branch, CI/CD kicks in and creates the build, runs the necessary tests, and deploys to the specified environments. This is a DevOps loop.

outerloop.png

Outer loop developer tasks

(Nimisha Mukherjee, CC BY-SA 4.0)

Developers should spend most of their effort on inner-loop tasks, driving innovation, and minimal time on the outer loop.

Understanding the differences between the inner and outer loops can help identify the developer tools that work best for each part of the software lifecycle.

Open source inner-loop tools

Here are some of my favorite open source tools for the code, run, validate, and debug cycle.

Code

  • Eclipse Che makes Kubernetes development accessible for developer teams. Che provides an in-browser integrated development environment (IDE), allowing developers to code, build, test, and run applications from any machine exactly as they run in production.
  • Visual Studio Code (VS Code) and VSCodium are open source code editors with support for debugging, syntax highlighting, intelligent code completion, snippets, code refactoring, and embedded Git.

Run

  • OpenShift Do (odo) is a command-line interface for developers that supports fast, iterative development, allowing them to focus on what's most important to them: code.
  • Minishift helps developers run OKD (the community distribution of Kubernetes) locally by launching a single-node OKD cluster inside a virtual machine. Minishift allows trying out OKD or developing with it, day-to-day, on a local machine.
  • Eclipse Che

Validate

Deploy

  • Eclipse Che
  • Odo

Learn more

There are many workflows to implement a good coding cycle. To get an idea of how developers are using these tools, read Daniel Oh's article about how he uses Quark for serverless application development and Bryan Son's article about how his team uses Eclipse Che.

Open source outer-loop tools

There are great open source tools that make it easier to send code through CI/CD and deploy it to production.

CI/CD

  • Tekton is an open source framework for creating CI/CD systems, allowing developers to build, test, and deploy.
  • Jenkins is a free and open source automation server. It helps automate the parts of software development related to building, testing, and deploying to facilitate CI/CD.

Build

  • Shipwright is an extensible framework for building container images on Kubernetes.
  • Eclipse JKube is a collection of plugins and libraries used to build container images using Docker, Jib, or OpenShift Source-to-Image (S2I) build strategies.

Run

  • CodeReady Containers (CRC) manages a local OpenShift 4.x cluster optimized for testing and development purposes.

Monitor

  • Prometheus provides event monitoring and alerting.

Deploy

  • Tekton
  • Jenkins
  • Helm is a package manager for Kubernetes.
  • Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. It makes application deployment and lifecycle management automated, auditable, and easy to understand.

Learn DevOps

If you're keen to implement a DevOps strategy, you can get started with Jess Cherry's article on how to use Minishift and Jenkiins to setup your first pipeline.

Make it easy

Today, developers choose the tools and technologies used in software integration and delivery. If you're a developer, then choose open source tools for maximum flexibility. If you're a project manager or architect, choose open source tools to help your developers succeed by working less and getting more done.

About the author

Nimisha Mukherjee - Nimisha Mukherjee is an engineering manager with Red Hat. Her team works on delivering a simplified developer experience for building cloud native application on Red Hat OpenShift. Overall she has 18+ years of experience in delivering cutting edge web applications. She always enjoyed building user interfaces that provides a differential user experience. She was one of the design track chairs for GHCI (https://ghcindia.anitab.org/), 2016-2018...