My Week in Tech: DevOps Basics, Virtual Machines, Shell Scripting, and More

Yagya GoelYagya Goel
4 min read

Introduction:

Hello everyone! This week has been a whirlwind of learning and building. From diving deep into DevOps to creating a navbar for my current project, I’ve covered a lot of ground. Here’s a detailed look at my week, sharing my insights and experiences. Whether you’re a fellow developer or just curious about tech, I hope you find this journey as exciting as I did.

Workplace with modern laptop with program code on screen · Free Stock Photo

DevOps Basics:

I started my week with a deep dive into DevOps, covering the fundamentals, the importance of integrating DevOps into organizations, and why it’s beneficial. DevOps is not just about setting up pipelines but fostering a culture of collaboration and efficiency. For a more detailed read, check out my full article on DevOps here.

DevOps: Culture that promotes collaboration between Development and  Operations Team

Virtual Machines and Cloud Computing:

Next, I explored the world of virtual machines (VMs). Historically, we deployed code directly onto physical servers, often leading to resource wastage. It’s like having a large piece of land and using only half of it. With virtual machines, we can create multiple VMs on a single server using a hypervisor, optimizing resource usage.

However, maintaining physical servers and ensuring 24/7 uptime was challenging. Enter cloud virtual machines. Cloud providers like AWS and Azure offer VMs with maintained overheads such as IPs and constant uptime. On AWS, these VMs are called EC2 instances, available in various compute sizes.

NSA is Locking Server Room Doors to Prevent Another Snowden Affair –  Foreign Policy

Here are some ways to create and manage EC2 instances on AWS:

  • CLI or GUI: Use scripts or the graphical interface.

  • AWS API (Boto3): A Python module for managing AWS services.

  • AWS CloudFormation Template (CFT): A classic template syntax provided by AWS.

  • AWS Cloud Development Kit (CDK): Another AWS tool for creating EC2 instances.

  • Terraform: An independent tool for managing resources across multiple cloud providers.

Connecting to EC2: To access an EC2 instance via SSH:

ssh -i keyprovidedbyaws.pem os@ip/domain

Shell Scripting:

I also delved into shell scripting, a powerful way to automate tasks. Shell scripts interact with the operating system’s kernel to perform tasks, making automation of repetitive processes possible. This is especially useful for tasks like daily backups or managing multiple machines.

I learned various shell commands, including:

  • Pipe operator and stdin/stdout

  • ps -ef

  • df -h

  • free -g

  • nproc

  • awk command

  • wget

  • curl

  • trap

  • vim -r

Bash Scripting Tutorial for Beginners

I also created several practical scripts, such as:

  • Listing users with access to a specific GitHub repo

  • Checking active resources on AWS

  • Deploying a Node.js application

  • A universal update script

Check out my scripts on GitHub(https://github.com/yagyagoel1/bash_script). A special shoutout to Learn Linux TV and Abhishek Veeramalla for their excellent tutorials!

Personal Projects:

I spent some time on my personal projects, particularly a product selling site ,its a backend project. It’s almost complete, with just a few final touches left. The project involves various technologies like Amazon S3, BullMQ, Prometheus, GitHub Actions, TypeScript, Prisma, PostgreSQL, Express and numerous APIs. Feel free to check it out here (https://github.com/yagyagoel1/TradeWagon)

Git and Branching Strategy:

I also brushed up on Git and different branching strategies, which I’ll cover in a future blog. Understanding Git commands and their applications has been incredibly valuable.

Dark Themed Git Logo HD Wallpaper for Developers

Frontend Development:

I built a navigation bar component for the organization I’m working with. You can see it in action at mujhackx.com .

Network Models:

I also explored the OSI and TCP/IP models, learning about their importance in networking. Stay tuned for an upcoming blog on this topic.

Python Basics:

Finally, I began learning Python to expand my backend skills, particularly with Django. I learned about:

  • __pycache__ folder and bytecode

  • Python’s compilation process using its interpreter

  • Python virtual machine and bytecode

  • Copy references and the distinction between mutable and immutable objects

  • Data Structures and types of them

  • Efficiency in number handling and internal workings of loops

  • next and iter functions

    Python AMOLED, coding, coding, dark, dark, programming, python, sky,  universe, HD wallpaper | Peakpx

Conclusion:

That wraps up my week! From mastering shell scripting to building components and diving into Python, it’s been a fulfilling and educational journey. I hope you found this overview informative and inspiring. See you next week with more tech insights and projects!

Call to Action:

Don’t forget to follow me on Medium and Hashnode for weekly updates and insights. Feel free to check out my GitHub repositories for code examples and projects. Until next time, happy coding!

Bye Anime GIF - Bye Anime Hello - Discover | Hyouka, Cute anime couples,  Anime boy


6
Subscribe to my newsletter

Read articles from Yagya Goel directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Yagya Goel
Yagya Goel

Hi, I'm Yagya Goel, a passionate full-stack developer with a strong interest in DevOps, backend development, and occasionally diving into the frontend world. I enjoy exploring new technologies and sharing my knowledge through weekly blogs. My journey involves working on various projects, experimenting with innovative tools, and continually improving my skills. Join me as I navigate the tech landscape, bringing insights, tutorials, and experiences to help others on their own tech journeys.