- Introduction
- About the Project
- Project Period Kicks-Off
- Technical Insights Gained So Far
- Future Work
- 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.
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.
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.
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 usingytt
,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.
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.