My Week in Tech: DevOps Basics, Virtual Machines, Shell Scripting, and More
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.
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.
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.
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
commandwget
curl
trap
vim -r
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.
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 bytecodePython’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
anditer
functions
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!
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.