• Stars
    star
    234
  • Rank 171,630 (Top 4 %)
  • Language
  • Created almost 2 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Learn golang with practical approach. TODO repo - work in progress

Introduction to GoLang

Why Golang ?

Go was created to specifically answer the following objectives:

  • Concurrency: Go has built-in concurrency support, which makes it easier to write concurrent and parallel programs. Other languages like Java has concurrency support as well, but it can be more complex and require more code to achieve the same results.

  • Scalability: To satisfy the needs of contemporary distributed systems, Go was created to be able to manage big codebases and scale horizontally.

  • Performance: Go was designed with performance in mind, This is partly due to Go's garbage collector, which is optimized for low-latency and high-throughput scenarios.

  • Lightweight threads: goroutines and integrated concurrency mechanism make it simple to construct concurrent and parallel programmes.

  • Efficiency: Go's garbage collector was designed to produce quick and efficient code in low-latency, high-throughput applications.

  • Simple syntax: Go was created with an emphasis on readability and maintainability and a short, uniform language syntax to make it simple to learn and use.

  • Cross-platform compatibility: Go was made to compile to a variety of platforms, making it simple to create programmes that work across several operating systems and architectures.

  • Deployment: Go produces a single binary file that is self contained. Which means this binary can be easily deployed to different platforms without dependencies. This makes it easier to distribute and deploy Go applications.

Self Contained Binaries

The Go compiler, which is a component of the Go installation, takes your source code and creates a binary executable file with all the required libraries and dependencies when you compile a Go program. The destination system does not need to have the Go installation or any other dependencies in order for this binary file to run because it is self-contained.

Because to this, it is simple to distribute and run Go applications across several platforms without worrying about the target system's Go version or any other requirements.

Better than Java ?

Golang is better than Java in few scenarios only. It is better to evaluate your use-case before choosing any option.

The advantages of using golang is well described in the above section(Why Golang?). However, Java on the other hand is a very mature programming language in its own ways.

  • Java has a strong type system, which can help catch errors at compile time.

  • Strong enterprise frameworks

  • Large community compared to Golang.

So, it is not completely correct to say Golang is better than Java or Java is better than Golang.

Why DevOps Applications are written in Golang ?

It is a known fact that popular devops applications such as Kubernetes, Docker and many are written in Golang. But why ?

As Go was created with concurrency in mind, writing concurrent and parallel programs is made simpler. Applications for DevOps, which frequently need to handle numerous containers or processes at once, should pay special attention to this. This is one of the primary reasons why Golang is a popular choice in DevOps community.

More Repositories

1

aws-devops-zero-to-hero

AWS zero to hero repo for devops engineers to learn AWS in 30 Days. This repo includes projects, presentations, interview questions and real time examples.
Python
6,563
star
2

Jenkins-Zero-To-Hero

Install Jenkins, configure Docker as slave, set up cicd, deploy applications to k8s using Argo CD in GitOps way.
Python
6,209
star
3

Docker-Zero-to-Hero

Repo to learn Docker with examples. Contributions are most welcome.
3,629
star
4

python-for-devops

Learn Python from DevOps Engineer point of you.
Python
2,600
star
5

Azure-zero-to-hero

Repository to learn Azure from Zero. This repository covers the complete Azure fundamentals required for a DevOps Engineer.
HCL
2,543
star
6

terraform-zero-to-hero

Master Terraform in 7 days using this Zero to Hero course.
HCL
2,268
star
7

Kubernetes-Zero-to-Hero

Creating this repo with an intent to make Kubernetes easy for begineers. This is a work-in-progress repo.
1,479
star
8

observability-zero-to-hero

[WIP]: Repo for learning observability
JavaScript
1,239
star
9

GitHub-Actions-Zero-to-Hero

Repository to kick start your journey with GitHub Actions
Python
1,135
star
10

shell-scripting-projects

Projects on shell scripting. Goal is to simulate real time projects as much as posible.
Shell
834
star
11

devops-interview-preparation-guide

Share your interview questions and help others. Let's build this interview preparation guide together.
636
star
12

ansible-zero-to-hero

Repository to learn Ansible from Zero. This repository covers the complete Ansible fundamentals along with examples required for a DevOps Engineer.
HTML
510
star
13

cicd-end-to-end

Using this repo for an End to End CICD Demo
Python
480
star
14

write_your_first_terraform_project

helps you learn terraform and write your first project
HCL
471
star
15

kubernetes-troubleshooting-zero-to-hero

Learn how to troubleshoot the most common Kubernetes Issues
Dockerfile
418
star
16

devops-project-ideas

Real-time project ideas for devops engineers.
279
star
17

terraform-eks

A sample repository to create EKS with VPC on AWS using Terraform.
HCL
261
star
18

k8s-kyverno-argocd

Demo repository to enforce automated k8s cluster security using kyverno policy generator and argocd
187
star
19

go-web-app-devops

Complete DevOps implmentation for a go web app
HTML
165
star
20

argocd-hub-spoke-demo

Deploy resources to multiple kubernetes clusters using Argo CD.
150
star
21

sandbox

Just a sandbox
145
star
22

istio-guide

Repository to learn Istio from Zero. This repository covers the complete Istio fundamentals required for a DevOps Engineer.
133
star
23

k8s-crossplane-argocd

Demonstrate GitOpsification of Cloud Infrastructure using Crossplane and Argo CD
124
star
24

go-web-app

This is a simple website written in Golang. It uses the `net/http` package to serve HTTP requests.
HTML
120
star
25

design_diagrams

flowcharts, workflows and diagrams
114
star
26

cicd-demo-golang

Sample golang application to demonstrate CICD
Go
79
star
27

cis-istio-integration

Integration of F5 CIS Ingress Controller with Istio Service Mesh for Kubernetes and Openshift
Makefile
77
star
28

argo-perf-test

Repo for testing Argo CD Performance(This can be very vague)
58
star
29

MERN-docker-compose

This repo helps you understand how to containerize a mern stack app and deploy using docker-compose
JavaScript
54
star
30

officeassistant

Office Management Assistant During Covid19
JavaScript
40
star
31

dummy-role

A dummy ansible role for demo
HTML
26
star
32

cicd-demo-manifests-repo

Repo for CICD demo app kubernetes manifests
9
star
33

abhishek-shell-example-project

Shell scripting example project
7
star
34

AWS

AWS Lambda functions for Cloud-admins
Python
3
star
35

demo-repo

This repo is created for a demo
2
star
36

keycloak-stuff

Keycloak Installation and Configuration on K8s and OpenShift Container Platforms. Describes on how OpenShiftv4 Idp can be used as broker for openshift-gitops.
Go
1
star