Category: DevOps
-
“AWS EC2: Unable to Connect,” a Security Group Checklist for Developers

In this article, I address common issues with AWS EC2 connectivity, particularly focusing on misconfigured security group inbound rules. It outlines potential pitfalls such as incorrect protocol, source IP mismatches, and the absence of inbound rules. Additional considerations include instance firewalls and service status. A troubleshooting checklist is provided for quicker connection resolution.
-
VM or Container? The Developer’s Guide to Choosing the Right Isolation

In the current article, I discuss the evolving landscape between virtual machines (VMs) and containers, outlining their core differences, performance, and cost implications. While containers excel in efficiency, VMs offer superior security due to their isolation model. Emerging secure container runtimes like gVisor, Firecracker, and Kata Containers provide enhanced security with the speed of containers,…
-
3 JVM Parameters You Must Know

Proper configuration of JVM parameters significantly enhances the performance and stability of Java applications in production. Key areas include setting appropriate heap sizes, effectively managing out-of-memory scenarios, and selecting the right garbage collector based on workload needs. Implementing these optimizations ensures consistent performance during high-demand periods.
-
Publish a Python Wheel to GCP Artifact Registry with Poetry

In this article, I’m building a Python project that outputs a runnable file instead of a Docker image, as I need to directly communicate with GPU drivers. Using Poetry and GCP’s artifact registry, I must create and publish a wheel file, configuring dependencies, and deploying the project on a virtual machine, resolving issues with versioning…
-
Architecture, DevOps and Security: The 3 Pillars to Grow A Product

A company’s success hinges on its product, which requires strong architecture, DevOps, and security from the start. Neglecting these areas leads to chaos and difficult scaling. Automating processes and maintaining security standards are essential for efficient growth. Investing in these pillars prevents costly issues, ensuring a healthier product lifecycle and company sustainability.
-
Debug Server Performance

In this article, I compare the performance of an application hosted on AWS and Scaleway, revealing that AWS was significantly slower despite higher resources. Through testing various instance types and configurations, they determine that the issue lies in CPU performance and instance age impacting response times. Ultimately, a better instance type was found on AWS,…
-
Advantages and Disadvantages of Alembic

In this article, I compare Alembic to other database migration tools like Flyway and Liquibase. Alembic excels in handling parallel migrations and enforcing rollback actions but lacks checksum validation, posing risks for schema consistency. While not perfect, it offers advantages, particularly for team development, using SQLAlchemy for ORM migrations.
-
Mastering Docker Compose for Local Development and Testing

This article emphasizes the importance of creating a local development environment that closely resembles production using Docker Compose. It covers setting up microservices, databases, and caching systems, while discussing necessary configurations for effective unit testing. The ultimate goal is to minimize discrepancies and enhance software development efficiency.
-
Stop & Start GCP SQL Instances at Nights

One of the great things about Google Cloud SQL instances is that they let me shut them down at night. The data sticks around (hopefully), but I can’t access it, which is exactly what I want. Since my backend servers are already tucked in for the night (explained in another article), keeping the database running…
-
GCP Cloud Functions with SQL Access

I’ve created a Google Cloud Function for a weekly task to streamline backend dependencies but faced complications with database connectivity. GCP requires a proxy, which undermines the initial goal of simplicity. Ultimately, I’ve moving all back into an existing backend to save extra fees from having a proxy up and running.
