1
0
mirror of https://github.com/avinal/avinal.github.io.git synced 2026-07-04 15:50:08 +05:30
Files
avinal.github.io/posts/development/i-am-loving-it-redhat.html
2022-03-19 19:37:48 +00:00

226 lines
15 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>My internship at Red Hat | Be My SpaceTime
</title>
<link rel="canonical" href="https://avinal.space/posts/development/i-am-loving-it-redhat.html">
<link rel="apple-touch-icon" href="https://avinal.space/apple-touch-icon.png" sizes="180x180">
<link rel="icon" type="image/png" href="https://avinal.space/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="https://avinal.space/favicon-16x16.png" sizes="16x16">
<link rel="manifest" href="https://avinal.space/site.webmanifest">
<meta name="theme-color" content="#333333">
<link rel="stylesheet" href="https://avinal.space/theme/css/bootstrap.min.css">
<link rel="stylesheet" href="https://avinal.space/theme/css/all.css">
<link rel="stylesheet" href="https://avinal.space/theme/css/pygments/manni.min.css">
<link rel="stylesheet" href="https://avinal.space/theme/css/theme.css">
<link rel="stylesheet" href="https://avinal.space/theme/css/space.css">
<link rel="alternate" type="application/atom+xml" title="Full Atom Feed" href="https://avinal.space/feeds/all.atom.xml">
<link rel="alternate" type="application/atom+xml" title="Categories Atom Feed"
href="https://avinal.space/feeds/development.atom.xml">
<meta name="description" content="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.">
</head>
<body style="font-family:Overpass Mono,monospace;">
<header class="header star">
<div id='stars'></div>
<div id='stars2'></div>
<div id='stars3'></div>
<div class="container text-center">
<div class="row">
<div class="col-sm-12">
<h1 class="title" style="font-family: ExodarOut;font-weight: lighter;"><a href="https://avinal.space/">Be My SpaceTime</a>
</h1>
<!--
<p class="text-muted">눈치</p>
-->
<ul class="list-inline">
<li class="list-inline-item"><a href="https://gsoc.avinal.space" target="_blank">gsoc</a></li>
<li class="list-inline-item text-muted">|</li>
<li class="list-inline-item"><a href="https://avinal.space/pages/about-me.html">About Me</a></li>
<li class=" list-inline-item text-muted">|</li>
<li class="list-inline-item"><a class="fab fa-github" href="https://github.com/avinal" target="_blank"></a></li>
<li class="list-inline-item"><a class="fab fa-linkedin" href="https://www.linkedin.com/in/avinal/" target="_blank"></a></li>
<li class="list-inline-item"><a class="fab fa-instagram" href="https://instagram.com/avinal.k" target="_blank"></a></li>
<li class="list-inline-item"><a class="fab fa-calendar" href="https://meet.avinal.space" target="_blank"></a></li>
<li class="list-inline-item"><a class="fa fa-envelope" href="mailto:blog@avinal.space" target="_blank"></a></li>
</ul>
</div>
</div> </div>
</header>
<div class="main">
<div class="container">
<h1>My internship at Red Hat <a class="reference external image-reference" href="https://redhat.com"><img alt="redhat_logo" class="align-middle" src="/images/redhat_logo.png" style="width: 1.5em;" /></a>
</h1>
<hr>
<article class="article">
<header>
<ul class="list-inline">
<li class="list-inline-item text-muted" title="2022-02-25T20:47:00+05:30">
<i class="fas fa-clock"></i>
Fri 25 February 2022
</li>
<li class="list-inline-item">
<i class="fas fa-folder-open"></i>
<a href="https://avinal.space/category/development.html">development</a>
</li>
<li class="list-inline-item">
<i class="fas fa-tag"></i>
<a href="https://avinal.space/tag/kubernetes.html">#kubernetes</a>, <a href="https://avinal.space/tag/redhat.html">#redhat</a>, <a href="https://avinal.space/tag/docker.html">#docker</a>, <a href="https://avinal.space/tag/golang.html">#golang</a>, <a href="https://avinal.space/tag/tekton.html">#tekton</a>, <a href="https://avinal.space/tag/openshift.html">#openshift</a>, <a href="https://avinal.space/tag/intern.html">#intern</a> </li>
</ul>
</header>
<div class="content">
<p>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.</p>
<p>On the first day of my internship, I met two amazing teammates <a class="reference external" href="https://github.com/">Saytam</a> and <a class="reference external" href="https://github.com/">Utkarsh</a>. We were also introduced to a Senior Software Engineer <a class="reference external" href="https://github.com">Piyush Garg</a> 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 <strong>DevTools Developer/Engineer</strong> do?</p>
<div class="section" id="what-does-a-devtools-developer-engineer-do">
<h2>What does a DevTools Developer/Engineer do?</h2>
<p>From <a class="reference external" href="https://developer.mozilla.org/en-US/docs/Glossary/Developer_Tools">MDN Web Docs</a> <strong>Developer tools (or &quot;development tools&quot; or short &quot;DevTools&quot;) are programs that allow a developer to create, test, and debug software.</strong> At RedHat, a lot of open source developer tools of industry standards are developed. There are many, OpenShift, Tekton, CodeReady containers, and many more.</p>
</div>
<div class="section" id="learning-on-the-golang-logo">
<h2>Learning on the <img alt="golang_logo" class="align-top" src="/images/golang.png" style="width: 2.5em;" /></h2>
<p>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.</p>
<div class="section" id="golang-1">
<h3><a class="reference external" href="https://go.dev/">Golang</a></h3>
<img alt="Gopher on the ladder" class="float-md-right rounded ml-3" src="/images/goladder.png" style="height: 20em;" />
<p>One of Golangs biggest advantages is that it offers the clarity and ease of use that other languages lack. Golangs advantages make it easy for new programmers to quickly understand the language and for seasoned veterans to easily read each others code.</p>
<ul class="simple">
<li><a class="reference external" href="https://go.dev/doc/">Official Go Documentation</a> - <em>Start from here</em></li>
<li><a class="reference external" href="https://gobyexample.com/">Go by Example</a> - <em>bite-size examples for most of the golang features</em></li>
<li><a class="reference external" href="https://golangbot.com/learn-golang-series/">Golang tutorial series - GOLANGBOT.COM</a> - <em>in-depth tutorial of golang</em></li>
<li><a class="reference external" href="https://go.dev/doc/effective_go">Effective Go</a> - <em>writing good golang programs</em></li>
<li><a class="reference external" href="https://go.dev/play/">The Go Playground</a> - <em>official online golang ide</em></li>
<li><a class="reference external" href="https://www.gopl.io/">The Go Programming Language - Book</a> <em>for learning advanced level golang</em></li>
<li><a class="reference external" href="https://youtu.be/yyUHQIec83I">Golang Tutorial for Beginners | Full Go Course - TechWorld with Nana</a> <em>if you prefer video tutorials, I don't :)</em></li>
</ul>
</div>
<div class="section" id="docker-1">
<h3><a class="reference external" href="https://www.docker.com/">Docker</a></h3>
<p>Docker takes away repetitive, mundane configuration tasks and is used throughout the development lifecycle for fast, easy, and portable application development - desktop and cloud. Dockers comprehensive end-to-end platform includes UIs, CLIs, APIs, and security that are engineered to work together across the entire application delivery lifecycle.</p>
<img alt="The Docker Architecture" class="float-md-right img-fluid my-3" src="/images/docker-architecture.png" />
<ul class="simple">
<li><a class="reference external" href="https://www.katacoda.com/courses/docker">Docker and Containers - Katacoda</a> <em>interactive lessons on docker and containers</em></li>
<li><a class="reference external" href="https://docker-curriculum.com/">Docker for beginners</a></li>
<li><a class="reference external" href="https://youtu.be/3c-iBn73dDE">Docker Tutorial for Beginners | TechWorld with Nana</a> <em>video tutorial</em></li>
</ul>
</div>
<div class="section" id="kubernetes-1">
<h3><a class="reference external" href="https://kubernetes.io/">Kubernetes</a></h3>
<img alt="Kubernetes tech" class="float-md-left border mr-3" src="/images/kubernetes-meme.png" style="width: 200px;" />
<p><strong>Kubernetes</strong> is the Greek word for a ships 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.</p>
<ul class="simple">
<li><a class="reference external" href="https://www.katacoda.com/courses/kubernetes">Learn Kubernetes - Katacoda</a> <em>interactive lessons with kubernetes</em></li>
<li><a class="reference external" href="https://kubebyexample.com/">kube by example</a> <em>learn by doing</em></li>
<li><a class="reference external" href="https://youtu.be/X48VuDVv0do">Kubernetes Tutorial for Beginners</a> <em>video tutorial</em></li>
</ul>
</div>
</div>
<div class="section" id="not-so-minimal-tekton-server">
<h2><em>Not so Minimal</em> Tekton Server</h2>
<p>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.</p>
<p>The application was called <strong>Minimal Tekton Server</strong>. It is a set of three different applications, i.e a server, a CLI, and a dashboard. In short, this application is supposed to <em>listen to custom resources being created and then transfer the request to Tekton API to create the corresponding resource on the OpenShift/Kubernetes cluster.</em></p>
<p>So are you interested in how it went? Please follow up with my <a class="reference external" href="https://avinal.space/posts/development/lovely-dangerous-things-redhat.html">next blog</a>.</p>
</div>
<hr>
<p align=center>
This Blog is licensed under <a href="http://creativecommons.org/licenses/by-nc/4.0/?ref=chooser-v1"
target="_blank" rel="license noopener noreferrer">Attribution-NonCommercial 4.0 International<img
style="height:22px!important;margin-left:3px;vertical-align:text-bottom;"
src="https://mirrors.creativecommons.org/presskit/icons/cc.svg?ref=chooser-v1"><img
style="height:22px!important;margin-left:3px;vertical-align:text-bottom;"
src="https://mirrors.creativecommons.org/presskit/icons/by.svg?ref=chooser-v1"><img
style="height:22px!important;margin-left:3px;vertical-align:text-bottom;"
src="https://mirrors.creativecommons.org/presskit/icons/nc.svg?ref=chooser-v1">
</a>
</p>
</div>
</article>
<hr>
<div id="comment-form">
<div class="alert alert-info" role="alert">
Feel free to leave a feedback or question!
</div>
<form action="https://docs.google.com/forms/u/0/d/e/1FAIpQLSfL9T8WBRm-Ac2uyu74lJXSYOqAuF6lLIUAulRArCsuiI1ZRQ/formResponse" target="response" method="POST" id="valid-form">
<div class="form-row align-items-center">
<div class="form-group col-md-5">
<label class="sr-only" for="person-name">Name</label>
<input type="text" class="form-control form-control-sm" id="person-name" placeholder="Your Name (Optional)"
aria-describedby="nameHelp" name="entry.982725972">
<input type="text" id="page-link" name="entry.1641222305" hidden>
<small id="nameHelp" class="form-text text-muted">You may put your GitHub Username.</small>
</div>
<div class="form-group col-md-7">
<label class="sr-only" for="email-address">Email address</label>
<input type="email" class="form-control form-control-sm" id="email-address" aria-describedby="emailHelp"
placeholder="Your Email Address (Optional)" name="entry.1652853191">
<small id="emailHelp" class="form-text text-muted">I'll never share your email with anyone
else.</small>
</div>
</div>
<div class="form-group">
<label class="sr-only" for="comment-section">Your Message</label>
<textarea class="form-control form-control-sm" id="comment-section" rows="3"
placeholder="Please enter your message or feedback. (Required)" aria-describedby="emailHelp"
name="entry.1062656232" required></textarea>
<div class="invalid-feedback">
Please Enter something !
</div>
<small id="textHelp" class="form-text text-muted">Enter upto 200 characters.</small>
</div>
<button class="btn btn-outline-info" type="submit">Send</button>
</form>
<iframe name="response" hidden></iframe>
</div>
<div class="alert alert-info" role="alert" id="comment-message" style="display: none;">
<h4 class="alert-heading">Thanks You 🥳</h4>
<p>Thanks a lot for reading this blog and sending me a feedback. I hope you liked it. I will get back to you
soon if you have added an email.</p>
</div>
<script>
(function () {
'use strict';
window.addEventListener('load', function () {
var form = document.getElementById('valid-form');
form.addEventListener('submit', function (event) {
document.getElementById('page-link').value = window.location.href;
document.getElementById('comment-form').style.display = 'none';
document.getElementById('comment-message').style.display = '';
}, false);
}, false);
})();
</script>
</div>
</div>
<footer class="footer star">
<div id='stars'></div>
<div id='stars2'></div>
<div id='stars3'></div>
<div class="container">
<div class="row">
<ul class="col-sm-6 list-inline">
<li class="list-inline-item"><a
href="https://avinal.space/archives.html">Archives</a></li>
<li class="list-inline-item"><a
href="https://avinal.space/categories.html">Categories</a></li>
<li class="list-inline-item"><a href="https://avinal.space/tags.html">Tags</a></li>
</ul>
<p class="col-sm-6 text-sm-right text-muted">Created with <i class="fa fa-heart" style="color: red;"></i> by <a
href="https://github.com/avinal" target="_blank">Avinal</a>
</p>
</div> </div>
</footer>
</body>
</html>