Advice for a Devops Engineer Fresher

This page summarizes the projects mentioned and recommended in the original post on /r/devops

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • Kubernetes-Volume-Autoscaler

    Autoscaling volumes for Kubernetes (with the help of Prometheus)

  • Also learn the "critical" services needed for Kubernetes to be HA/Fault-Tolerant. Services such as (if using AWS): aws-ebs-csi-driver, aws-efs-csi-driver, aws-load-balancer-controller metrics-server, cert-manager, cluster-autoscaler, nginx-ingress (or Traefik/Kong/Ambassador), oauth2-proxy (optional), openvpn (optional), elasticsearch-curator (automatically deletes old logs in Elasticsearch), prometheus, external-dns, fluentd-elasticsearch (cascades all logs into Elasticsearch), gitlab-runner (if using gitlab), github-actions-runner (if using Github Actions, grafana, volume-autoscaler (shamless plug I wrote this).

  • Universal-Kubernetes-Helm-Charts

    Some universal helm charts used for deploying services onto Kubernetes. All-in-one best-practices

  • Start to think about and build "standards" at a company, because you, as a DevOps engineer, need these to succeed and not be the bottleneck for everything. You will engineer and support company-wide standards. With this in place, everyone from any team can easily move to another engineering team and still know how to setup, maintain, deploy, etc everything. For example, I setup and maintain some Gitlab CI Templates that every repo includes to do everything. Having an example repo or two of how to use your build and deploy system is also critical. I've also open sourced my Universal Helm Charts if you're into Kubernetes (you should be) which you can easily fork and set your own compant-wide standards and publish them to your own HTTP host. This sets the foundation and ease-of-adoption company-wide for deploying things. Other standards to try to align on is using the same Git and CI/CD provider (eg: Github / Gitlab), this is often a better experience than external CICD providers (Circle / Travis / Jenkins / etc).

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • Packer

    Packer is a tool for creating identical machine images for multiple platforms from a single source configuration.

  • Note: Some might argue that learning something like Puppet or Ansible is needed. However, the way the cloud works nowadays and with virtualization and orchestration (Kubernetes) both of these technologies (Puppet/Ansible) are losing their relevance/usage. Not to mention both of these are fairly convoluted tools with really pedantic naming and folder structures that over-complicates most processes needlessly. I would 100% recommend learning Terraform and something like Packer if you need to generate machine/VM images. You _could_ feed Ansible into packer if you so-desired, but I think this is silly when a simple shell script would do the trick. Ansible and Puppet are more-ideal for static infrastructure, not in a ephemeral world of Kubernetes.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts