Tech Talk: Developing APIs the Easy Way – Streamline your API process with an endpoint-focused approach on Dec 5 at 11 am EST! Register now

Back to blog
PLATFORM ENGINEERING

10 Tools Every Platform Engineer Should Know

Uchechukwu Obasi
June 16, 2022 | 11 min read

In the world of platform engineering, there’s an abundance of toolsets, each with its promise of being a one-stop solution. But only a few live up to that.

In this article, I’ll introduce you to the 10 tools tested and trusted by platform engineers worldwide.

1. GitLab

GitLab provides platform engineers with the tools to create, verify, manage, secure, release, and monitor software.

GitLab is a single application that spans the entire software development lifecycle. If you’re not using GitLab, your DevOps lifecycle is likely spread across any number of applications. These silos take overhead to integrate, manage, configure, and maintain, slowing down your team and your deployments. Moving to a single application like GitLab speeds up your workflow and helps you deliver better software faster.

Here are some of the features GitLab provides to Platform Engineers:

  • Built-in CI/CD & pipeline dashboard
  • Project & group issue board
  • Time tracking
  • Code search, wiki-based project documentation & snippets

2. Circle CI

Circle CI is one of the world’s leading CI solutions. It is a continuous integration and deployment tool that allows engineering teams to build, test, and deploy software using intelligent automation.

Circle CI can run on different environments such as Linux, Windows, Android, etc. You can configure it to run complex pipelines efficiently with sophisticated caching, docker layer caching, and resource classes for running on faster machines.

As a platform engineer, you can do the following using CircleCI:

  • SSH into any job to debug your build issues
  • Set up parallelism in your .circleci/config.yml file to run jobs faster
  • Configure caching with two simple keys to reuse data from previous jobs in your workflow
  • Configure self-hosted runners for unique platform support
  • Use orbs, reusable packages of configuration, to integrate with third parties
  • Use pre-built Docker images in a variety of languages
  • Use the API to retrieve information about jobs and workflows
  • Use the CLI to access advanced tools locally

3. GitHub Actions

GitHub, the popular code storage and collaboration platform have continued to innovate aggressively with products such as GitHub copilot, GitHub CLI, GitHub actions, etc.

GitHub Actions is a tool that brings automation directly into the software development lifecycle on GitHub via event triggers. These event triggers are primarily defined events ranging from creating a pull request to building a new brand in a repository. All of these manifest via a process known as a workflow. Workflows are specified in a YAML file placed under the .github/workflows directory in a repository that defines automated processes.

GitHub Actions enables platform engineers to do the following:

  • Create different environments for development, staging, and production
  • Share data between jobs
  • Use variables in a workflow
  • Add scripts to a workflow
  • Gain access to a visualization of their workflow and have built-in support for conditionals

GitHub Actions is becoming the ideal tool to automate workflows from idea to production. It makes it easy to build, test, and deploy your code right from GitHub. You can also make code reviews, branch management, and triage issues the way you want.


4. Telepresence

If you are a platform engineer, then Kubernetes is a tool you must know. For a long time, platform engineers found it hard to develop, view and manage their Kubernetes services across the entire software lifecycle. Ambassador cloud solves that for you! It is a tool that allows you to set up and monitor Kubernetes workflows, ship your application canary, and help you integrate existing Kubernetes solutions in one central place.

Ambassador cloud provides platform engineers with a set of amazing features such as:

  • Unlimited application development
  • Drag-and-drop workflow
  • Edge stack and emissary-ingress 2.1
  • Helm support
  • Argo integration
  • Faster onboarding process

With Ambassador Cloud, you can code, ship, and run Kubernetes services with just a few clicks using some of your favorite CNCF tools like Telepresence (development & testing), Argo (continuous delivery), and Edge Stack (API Gateway).

5. Drone by Harness

Drone is a continuous integration platform that allows software building and testing automation. It enables platform engineers to configure pipelines, create and share plugins, and enable simple configuration for your build process. Drone is integrated mainly into the CI as an automated tool that checks for code quality, bugs, security vulnerabilities, missing dependencies, etc.

In my opinion, Drone by Harness is slowly becoming the default continuous integration (CI) tool for platform engineers.

Here are some of the features Drone provides to platform engineers:

  • Configuration management using YAML
  • Container-first approach
  • Cloud cost management
  • CI/CD pipeline dashboard
  • Comprehensive pipeline graphs
  • Merge request pipelines

6. Hashicorp Vault

Hashicorp Vault (HCP Vault) allows platform engineers to manage secrets and protect sensitive data. Security is an essential part of platform engineering and having a tool like HCP Vault that will enable you to manage secrets and credentials on the cloud is a game-changer.

In today’s world, software system requires access to lots of secrets: database credentials, API keys for external services, certificates for service-oriented architecture communication, etc. To be conscious of who is accessing what secrets is already challenging and platform-specific. This is the problem Vault solves for you.

HCP Vaults provides platform engineers with features such as:

  • Secure secret storage & management
  • Data encryption and tokenization
  • Database credential rotation
  • Identity-based access

7. AWS

AWS has remained the most prominent cloud provider and has continued to roll out innovative solutions that make life easy for most platform engineers. AWS provides computing power, database storage, serverless, content delivery, security, and identity solutions.

Amazon Simple Storage Service (Amazon S3), Amazon Lightsail, and Amazon DynamoDB are some of the products that have stood the test of time. It’s important for every platform engineer to familiarize themselves with some of these AWS services because these are the tools they’ll most likely be using in their day-to-day as a platform engineer.

8. Docker

Docker is a container solution that allows developers to bundle code and its dependencies into a single package that can run quickly and reliably from one computing environment to another. Docker dwells on this technology solution known as containers, which has made it easy for engineering teams to build, run, and share software without thinking of dependencies and the development environment.

Docker provides various features such as:

  • Faster and easier configuration
  • Application isolation
  • Security Management
  • Rapid scaling of Systems
  • Software-defined networking

9. Ansible

Ansible is an automation tool that handles configuration management, application deployment, and cloud provisioning. Using Ansible enables platform engineers to complete tasks quickly by automating them and removing the manual deployment aspect.

Ansible can configure systems, deploy software, orchestrate more advanced IT tasks such as continuous delivery, zero downtime while rolling, and more. It’s often compared to terraform as an alternative, but in essence, they are pretty different. Ansible is widely adopted within the community, with over 52k stars on GitHub.

Ansible provides platform engineers with features such as:

  • Automatic execution environments
  • Configuration Management
  • Automation mesh
  • Application deployment
  • Orchestration
  • Cloud provisioning
  • Security and compliance

10. Terraform

Terraform is the de-facto tool platform engineers use to write and deliver infrastructure as code. It allows infrastructure to express as code in a simple, human-readable language called HashiCorp Configuration Language (HCL).

Terraform reads configuration files and provides an execution plan of changes, which can be reviewed for safety and then applied and provisioned. It is widely adopted in the community and shows in the number of stars it has on GitHub: 31.4k.

It provides Platform Engineers with features such as:

  • Workspaces for organizing infrastructure
  • Remote state management
  • Data sharing
  • Run triggers
  • Version control integrations
  • Command-line integrations
  • Private registry
  • Team-based permissions system
  • Terraform workflow
  • Remote Terraform execution

Conclusion

Platform engineers adopt tools that make them successful. And even though there’s no one-size-fits-all solution to the problems within the cloud and cloud native industry, the good thing about the tools listed in this article is that they focus on one specific issue and build a great solution around it.

Platform engineering is becoming critical to the success of many businesses, and using the right tools makes you more productive and helps your company achieve its business goals faster.

Do you know of any other fantastic tool for platform engineers? Please share them in the comment section below.

Telepresence: Rapid development & testing of Kubernetes services

Building and testing your microservice-based application becomes complex when you can no longer run everything locally due to resource requirements. Moving to the cloud for testing is a no-brainer, but how do you synchronize your local changes against your remote Kubernetes environment? By using Telepresence


Try Telepresence today

Telepresence redirects network traffic from a service in the cloud to a service or container on your local machine, merging the benefits of cloud and local test environments. This means you can run integration tests locally instead of waiting on a remote deployment.