Skip to content

Instantly share code, notes, and snippets.

@k3yss
Created July 17, 2024 07:48
Show Gist options
  • Save k3yss/f11e87e99bcc43f5e0e6c14a95257769 to your computer and use it in GitHub Desktop.
Save k3yss/f11e87e99bcc43f5e0e6c14a95257769 to your computer and use it in GitHub Desktop.
Summer Of Bitcoin'24 | Status Update | Rishi Kumar

Table of Contents

  1. Introduction
  2. About the Project
  3. Project Period Kicks-Off
  4. Technical Insights Gained So Far
  5. Future Work
  6. Account of Work

Summer of Bitcoin: A global, online summer internship program focused on introducing university students to bitcoin open-source development and design

During the summer of 2024, I participated in the Summer of Bitcoin program which helps students get acquainted with cutting-edge Bitcoin technologies. This blog-post serves as a progress update for the work done during the program.

About the Project

Blink wallet offers a feature-rich, reliable and secure platform for transacting over the Bitcoin and Lightning Network. This project is aimed at optimizing our cloud operations, enhancing security, and ensuring the architecture is scalable. Participants will work on tasks involving cloud infrastructure management on Google Cloud Platform (GCP), managing CI/CD pipelines, applying security measures, and optimizing resource usage.

The project Optimization and Security Enhancements for Galoy/Blink focuses mainly on the infrastructure side of things, which aligns with my current interests in sysadmins and DevOps technologies. The project will initially involve understanding the infrastructure and tools that Galoy employs, after which we will make decisions on optimising and improving the security of the employed infrastructure.

I am very excited about this project as it's the first time I would be collaborating with other developers and learning how they efficiently manage an organisation's infrastructure. Prior to this, most of my interest and knowledge about infrastructures come from playing around with Linux machines, which is something I find deeply intriguing.

Project Period Kicks-Off

The project commenced with me and my mentor Kartik getting on a video meeting and discussing about my familiarity with various DevOps tools. The initial two weeks were spent learning tools used by Galoy and understanding how the entire infrastructure works together.

By the 3rd week, I had gained a good understanding of how things work together and started working on a few automation tasks involving knowledge gained in the first two weeks.

Once I successfully had a few Pull Requests merged, Justin asked during the daily stand-up meeting if I was interested in performing a more critical task such as Database Migration with minimal downtime. I instantly said yes as I have often came across blogs going over the process and detailing all the engineering practices they use. Over the next few weeks I will be working on developing a strategy to perform the migration with the least downtime and minimal manual intervention.

Technical Insights Gained So Far

So far I learned about various DevOps practices, some of which include:

  • Using Terraform to Manage Infrastructure as Code: Prior to this, when I worked with provisioning infrastructure, I would always use the GUI or CLI provided by platforms. This often came back to haunt me later because I would forget about the infrastructure after creating it. I had always passed on Terraform, thinking it was overkill for the small projects I do. However, after getting familiar with it, I now see it as a very clever tool and wish I had discovered it sooner.
  • Using Concourse Pipelines Effectively and the Advantage over GitHub Actions: Before this internship, I would use tools provided by GitHub for my CI/CD tasks. After seeing the effective and visualized infrastructure that Galoy employs using Concourse, I understand why it is such a popular choice.
  • Galoy’s Multi-Repo Approach and using ytt and vendir for Effective Templating: Galoy uses a multiple repo approach for storing their repositories, with a central galoy-infra repo that populates all other repos with common code. They achieve this using ytt, vendir, and Concourse, making the process feel magical and very failure-proof when it works.
  • PostgreSQL Internals and Migrations on GCP’s Cloud SQL: My upcoming task involves database migrations, requiring a deep understanding of PostgreSQL internals and GCP’s Cloud SQL. I am currently researching and developing strategies to perform these migrations efficiently and safely.

Future Work

Following the Mid-Term evaluation, my primary focus will be on implementing the PostgreSQL database updates for Galoy. This task requires careful planning to ensure minimal downtime and reduce manual intervention. I'll proceed with the implementation once the maintainers have reviewed and approved my research findings.

Furthermore, I will be working on additional tasks assigned by my mentor and other maintainers at Galoy.

Account of Work

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment