DevOpsCorner - Learning GO

Learning GO

Get Started. It's Free
or sign up with your email address
DevOpsCorner - Learning GO by Mind Map: DevOpsCorner - Learning GO

1. Deploy

1.1. **Operations**

1.1.1. Build Binary

1.1.2. Package Binary into Container

1.1.3. Push Container Image to Registry

1.1.3.1. DockerHub

1.1.3.2. Amazon Elastic Container Service (ECS)

1.1.4. Artifact Building Result

1.2. Container Test

1.2.1. Existing Binary

1.2.2. Health Check

1.2.3. Scanning Vulnerable

1.3. Prepare Environment Deployment

1.3.1. HelmChart

1.3.2. Docker Compose

1.4. Deploy to multi architecture

1.4.1. VM / Instances

1.4.2. Kubernetes (K8S)

1.4.3. Docker Swarm

1.5. Playground

1.5.1. Docker / Container

1.5.2. Minikube

1.5.3. MicroK8S

1.5.4. DocKube

1.5.5. Rancher Kubernetes Engine (RKE)

1.6. Managed Services

1.6.1. Amazon Elastic Kubernetes Service (EKS)

1.6.2. Google Kubernetes Engine (GKE)

1.6.3. Azure Kubernetes Services (AKS)

1.7. CI/CD

1.7.1. Tools

1.7.1.1. Jenkins

1.7.1.2. Spinnaker

1.7.1.3. ArgoCD

1.7.1.4. AWS Developer Tools

1.7.1.4.1. AWS CodeBuild

1.7.1.4.2. AWS CodePipeline

1.7.1.5. GitHub Action

1.7.1.6. GitLab CI/CD

1.7.1.7. BitBucket Pipeline

1.7.2. Packages

1.7.2.1. HelmChart Template

1.7.2.2. HelmChart Value

1.7.2.3. Helmfile

2. Preparation

2.1. Remove Distraction

2.1.1. Take a good time

2.1.1.1. 1 hour

2.1.1.1.1. Break @30 minutes

2.1.1.1.2. Stop if overload

2.1.1.2. 2 hours

2.1.1.2.1. Break

2.1.2. Limit your social media access (temporary close)

2.1.3. Keep focus on goal

2.1.3.1. Track your progress

2.1.3.2. Repeat until understood

2.1.3.3. Look for ways to get rid of boredom

2.1.3.4. Consistency is a KEY

2.2. Take a book / paper

2.2.1. Write down for new terminology

2.2.2. Prepare for some questions

2.2.3. Write your own comments

2.2.4. Highlights your ideas

2.3. Choose Editor / IDE

2.3.1. Vim

2.3.2. Vscode

2.3.3. Jetbrains Goland

2.3.4. Atom

2.3.5. Sublime Text

3. Setup Golang

3.1. Install Golang

3.1.1. Known OS

3.1.1.1. Windows

3.1.1.2. Linux

3.1.1.3. Mac

3.2. Customize Environment

3.2.1. Add plugins for Editor / IDE

3.2.2. Setup Terminal / Command

3.2.2.1. ~/.bashrc

3.2.2.2. ~/.zshrc

4. Writing Code

4.1. Simple Code

4.1.1. Writing "Hello World"

4.2. More Codes (E = mc^2) Error = more * codes

4.2.1. :zero: Types

4.2.2. :one: Variables

4.2.2.1. Pointer

4.2.2.2. Non Pointer

4.2.3. :two: : Control Structures

4.2.3.1. :three: Looping ("for" only)

4.2.3.1.1. for i:= 1;i<=10;i++ {}

4.2.3.2. :four: Conditional

4.2.3.2.1. if <cond> {}

4.2.3.2.2. if <cond> {} else {}

4.2.3.2.3. if <cond-1> {} else if <cond-2> {} else {}

4.2.3.2.4. switch <statement> <variable> { case "<value>": default "<value>": }

4.2.4. :five: Array, Slices & Maps

4.2.5. :six: Functions

4.2.6. :seven: Struct & Interface

4.2.7. :eight: Packages

4.2.8. :nine: Testing

4.2.8.1. Functional Test (Unit Testing) -> Testify (Framework)

4.2.8.1.1. Mocking

4.2.8.1.2. Assertions

4.2.8.2. Behaviour Test -> GoDog

4.2.9. :keycap_ten: Concurrency