About this journal

About this journal

DO Journal: TechTales - Stories of a Cloud Engineer’s Learning Journey

Welcome to the DO Journal repository! Join me on a journey filled with TechTales - stories that capture my experiences as a cloud engineer. Dive into real-world challenges, triumphs, and lessons learned in the ever-evolving landscape of technology. 🚀

Key Features:

  • TechTales: Engaging narratives documenting my learning journey in the field of engineering. 📚
  • Weekly Logs: Detailed accounts of weekly activities, projects, and experiments. 📅
  • Reflections: Thoughtful insights on successes, setbacks, and valuable lessons. 💡
  • Code Snippets: Examples of code written during learning exercises and projects. 💻
  • Resource Library: Curated links to articles, tutorials, and tools to aid in learning. 📚

Explore this repository to gain insights, learn from shared experiences, and discover the exciting world of technology. 🌐

Deployment Process 🚀

This website is hosted statically on Kinsta’s free hosting service, with a CI/CD pipeline implemented. Whenever changes are pushed to the main repository or a branch is merged into it, a GitHub Action triggers the deployment process. The GitHub Action is seamlessly connected to Kinsta, where the website is deployed automatically. My DNS settings for sumamazaeem.com are managed through Cloudflare, enabling smooth configuration of subdomains. For instance, I’ve set up a CNAME record for do-journal.sumamazaeem.com, verifying domain ownership and enabling SSL encryption. The entire deployment process is fully automated, a result of meticulous planning and execution over four days, spanning two weekends, with four-hour sessions each day.

Decision-Making Process 🤔

Selecting the optimal deployment solution was crucial. Initially considering GitHub Pages, its requirement for public repositories was a constraint. Given my familiarity with AWS services, deploying on AWS seemed like the natural choice. However, after extensive research and testing, I discovered that Kinsta offered free static website hosting, meeting all my requirements with minimal complexities. This realization led me to choose Kinsta as the hosting provider for this project, streamlining the deployment process and enhancing overall efficiency.

Motivation 💡

My motivation for embarking on this project stemmed from various factors. Firstly, I aimed to deepen my understanding of Markdown language by utilizing it for technical documentation and articles. Additionally, my growing interest in Git and its capabilities spurred me to explore new avenues. Moreover, I sought to deviate from conventional platforms like Medium and instead create a personalized journal where I could express my thoughts and document my learning journey authentically.

Challenges Faced 🛑

Throughout this journey, I faced a few hurdles that tested my skills and resolve. One major challenge was getting the hang of Markdown. It was quite new to me, but I made sure to spend time learning its ins and outs. Similarly, diving into CI/CD concepts was no walk in the park. I had to really dig deep, explore, and practice to grasp it fully.

Another tricky moment was when I accidentally merged a branch into the main one. Talk about a heart-stopping moment! But it turned out to be a valuable lesson. I had to do a hard reset, which led me to delve into advanced Git concepts. It was unfamiliar territory, but I tackled it with curiosity and determination, expanding my skills along the way.

I encountered challenges with Gpaste on Ubuntu, where it had a feature that appended copied code rather than copying it separately. This caused numerous issues, especially when pasting code that was correct but didn’t yield the expected output with Ctrl+V. Sometimes, it even led to system instability. I had to learn to navigate through these issues through trial and error.

What I Learned About 📚

In the process of creating this website, I acquired valuable insights into various aspects, including:

  1. Editing YAML Files: Working with YAML files became second nature as I configured settings and parameters for the website’s layout, structure, and deployment processes.
  2. GitHub Actions: Implementing GitHub Actions played a pivotal role in automating the deployment workflow. From triggering deployments to integrating with external services like Kinsta, GitHub Actions streamlined the development and deployment process, enhancing efficiency and reliability. Additionally, I learned the distinction between git remote and git origin branches. It’s crucial to enable remote tracking to avoid issues, even if the branch names are the same. Failure to track them properly can cause significant problems during merging and other operations

Tools and Technologies Used 🛠️

Throughout the development process, I leveraged the following tools and technologies:

  • Ubuntu: Utilized as the operating system for development and deployment.
  • Git (CLI): Employed for version control and collaboration.
  • Typora: Used as the Markdown editor for writing and formatting content.
  • Visual Studio Code (VS Code): Served as the primary integrated development environment (IDE).
  • Jekyll: Installed on Ubuntu for local previewing of the website before deployment to production.

Project Architecture 🏗️

This section intentionally left empty.

Future Enhancements 🚀

Looking ahead, I plan to introduce weekly learning updates to the website. Each week, I’ll commit my daily learnings to a separate branch. On weekends, after finalizing the details in this branch, I’ll merge it into the main branch. This action will trigger the GitHub Actions workflow, which will invalidate the cache and make the new blog available on the website.