mirror of
https://github.com/avinal/avinal.github.io.git
synced 2026-07-04 07:40:09 +05:30
move articles to static
Signed-off-by: Avinal Kumar <avinal.xlvii@gmail.com>
This commit is contained in:
@@ -0,0 +1,119 @@
|
||||
---
|
||||
title: I am loving it! RedHat
|
||||
date: 2022-02-25 20:47
|
||||
category: development
|
||||
tags: [kubernetes, redhat, docker, golang, tekton, openshift, intern]
|
||||
description: I made it to the Red Hat as a DevTools intern. This post is about onboarding and how I prepared myself for working on the actual project.
|
||||
image: "/images/fedora-wall.webp"
|
||||
---
|
||||
# My internship at Red Hat
|
||||
|
||||
I have been contributing to open source for the last 3 years and Red Hat
|
||||
was one of the companies that I was very fond of. I must say all my
|
||||
contributions and consistency paid off, and I made it to the Red Hat as
|
||||
a DevTools intern. This post is about onboarding and how I prepared
|
||||
myself for working on the actual project.
|
||||
|
||||
On the first day of my internship, I met two amazing teammates
|
||||
[Saytam](https://github.com/) and [Utkarsh](https://github.com/). We
|
||||
were also introduced to a Senior Software Engineer [Piyush
|
||||
Garg](https://github.com) who later mentored us. The initial few
|
||||
meetings were more on the introduction and what to learn topics. Before
|
||||
I jump into more details let me explain first what does a **DevTools
|
||||
Developer/Engineer** do?
|
||||
|
||||
## What does a DevTools Developer/Engineer do?
|
||||
|
||||
From [MDN Web
|
||||
Docs](https://developer.mozilla.org/en-US/docs/Glossary/Developer_Tools)
|
||||
**Developer tools (or "development tools" or short "DevTools") are
|
||||
programs that allow a developer to create, test, and debug software.**
|
||||
At RedHat, a lot of open source developer tools of industry standards
|
||||
are developed. There are many, OpenShift, Tekton, CodeReady containers,
|
||||
and many more.
|
||||
|
||||
## Learning on the Go
|
||||
|
||||
There was a lot of learning and still a lot to learn. In a meeting with
|
||||
my manager Pradeepto Bhattacharya, I was told that I will be working on
|
||||
TektonCD or OpenShift Pipelines, and both of them require a sound
|
||||
knowledge of Golang, CI/CD, Containers, Docker, and Kubernetes. I was
|
||||
familiar with CI/CD, containers, and Docker but never used Golang and
|
||||
Kubernetes. We were provided plenty of good resources and my teammates
|
||||
also helped with many awesome resources. I am listing all the resources
|
||||
with their category.
|
||||
|
||||
### Go Programming Language
|
||||
|
||||
One of Golang's biggest advantages is that it offers the clarity and
|
||||
ease of use that other languages lack. Golang's advantages make it easy
|
||||
for new programmers to quickly understand the language and for seasoned
|
||||
veterans to easily read each other's code.
|
||||
|
||||
- [Official Go Documentation](https://go.dev/doc/) - *Start from here*
|
||||
- [Go by Example](https://gobyexample.com/) - *bite-size examples for
|
||||
most of the golang features*
|
||||
- [Golang tutorial series -
|
||||
GOLANGBOT.COM](https://golangbot.com/learn-golang-series/) - *in-depth
|
||||
tutorial of golang*
|
||||
- [Effective Go](https://go.dev/doc/effective_go) - *writing good golang
|
||||
programs*
|
||||
- [The Go Playground](https://go.dev/play/) - *official online golang
|
||||
ide*
|
||||
- [The Go Programming Language - Book](https://www.gopl.io/) *for
|
||||
learning advanced level golang*
|
||||
- [Golang Tutorial for Beginners | Full Go Course - TechWorld with
|
||||
Nana](https://youtu.be/yyUHQIec83I) *if you prefer video tutorials, I
|
||||
don't :)*
|
||||
|
||||
### Docker
|
||||
|
||||
Docker takes away repetitive, mundane configuration tasks and is used
|
||||
throughout the development lifecycle for fast, easy, and portable
|
||||
application development - desktop and cloud. Docker's comprehensive
|
||||
end-to-end platform includes UIs, CLIs, APIs, and security that are
|
||||
engineered to work together across the entire application delivery
|
||||
lifecycle.
|
||||
|
||||

|
||||
|
||||
- [Docker and Containers -
|
||||
Katacoda](https://www.katacoda.com/courses/docker) *interactive
|
||||
lessons on docker and containers*
|
||||
- [Docker for beginners](https://docker-curriculum.com/)
|
||||
- [Docker Tutorial for Beginners | TechWorld with
|
||||
Nana](https://youtu.be/3c-iBn73dDE) *video tutorial*
|
||||
|
||||
### Kubernetes
|
||||
|
||||

|
||||
|
||||
**Kubernetes** is the Greek word for a ship's captain. We get the words
|
||||
Cybernetic and Gubernatorial from it. The Kubernetes project focuses on
|
||||
building a robust platform for running thousands of containers in
|
||||
production.
|
||||
|
||||
- [Learn Kubernetes -
|
||||
Katacoda](https://www.katacoda.com/courses/kubernetes) *interactive
|
||||
lessons with kubernetes*
|
||||
- [kube by example](https://kubebyexample.com/) *learn by doing*
|
||||
- [Kubernetes Tutorial for Beginners](https://youtu.be/X48VuDVv0do)
|
||||
*video tutorial*
|
||||
|
||||
## *Not so Minimal* Tekton Server
|
||||
|
||||
In late January, we were asked to implement our learnings and deep dive
|
||||
into Kubernetes and TektonCD through an assignment project. Soon we
|
||||
realized that whatever we were learning so far was not even close to
|
||||
what we were going to implement. We were given a document containing the
|
||||
requirements of the applications we were supposed to create along with
|
||||
all the documentation and architectural diagrams.
|
||||
|
||||
The application was called **Minimal Tekton Server**. It is a set of
|
||||
three different applications, i.e a server, a CLI, and a dashboard. In
|
||||
short, this application is supposed to *listen to custom resources being
|
||||
created and then transfer the request to Tekton API to create the
|
||||
corresponding resource on the OpenShift/Kubernetes cluster.*
|
||||
|
||||
So are you interested in how it went? Please follow up with my [next
|
||||
blog](https://avinal.space/posts/development/lovely-dangerous-things-redhat.html).
|
||||
Reference in New Issue
Block a user