Skip to main content

33 posts tagged with "devops"

devops tag description

View All Tags

GRPC on AWS: API Gateway Support, Lambda Integration, Streaming, and ALB Alternatives

· 10 min read
Serhii Hrekov
Senior Software Engineer & System Architect specializing in Python, Web Systems, Cloud Infrastructure & Automation

The question of whether AWS API Gateway supports gRPC is crucial for architects planning microservices deployments on AWS. The answer, which has evolved, is a nuanced Yes, but primarily through the HTTP API and only for unary calls, while traditional gRPC streaming requires alternative AWS services.

Python Logging: The Complete Guide from basicConfig to Structured JSON Observability

· 11 min read
Serhii Hrekov
Senior Software Engineer & System Architect specializing in Python, Web Systems, Cloud Infrastructure & Automation

Logs are a primary source of truth for application health, performance audits, and runtime debugging. However, outputting unstructured plain text console strings limits searchability and scalability. To build modern, observable applications, you need a robust logging hierarchy, log rotation schemes, centralized configurations, and structured output formats.

This guide provides a comprehensive manual on Python logging, covering basic setup parameters, log rotation, dict-based configurations, JSON-structured output, contextual metadata injection, and performance best practices.

GCP IAM vs. AWS IAM: A Deep Dive into Architectural Differences

· 7 min read
Serhii Hrekov
Senior Software Engineer & System Architect specializing in Python, Web Systems, Cloud Infrastructure & Automation

While both Google Cloud Platform (GCP) and Amazon Web Services (AWS) Identity and Access Management (IAM) systems share the same goal-controlling who can do what on which resources-they are built on fundamentally different architectural philosophies.

Understanding these differences is crucial for multi-cloud engineers, as applying AWS logic to GCP (or vice versa) often leads to security gaps or unmanageable complexity.

Enable "Last Updated" Docusaurus Dates on Vercel

· 5 min read
Serhii Hrekov
Senior Software Engineer & System Architect specializing in Python, Web Systems, Cloud Infrastructure & Automation

Docusaurus provides a powerful feature that displays the last updated time and last updated author for every blog post and documentation page. However, when deploying a Docusaurus website on Vercel, many developers encounter the same confusing issue:

Every page shows the exact same "last updated" date - or no date at all.

This guide explains precisely why this happens and the exact configuration you must enable on Vercel to make Docusaurus timestamps work correctly.

Centralized Authorization on GCP: Casbin, Envoy, and API Gateway

· 8 min read
Serhii Hrekov
Senior Software Engineer & System Architect specializing in Python, Web Systems, Cloud Infrastructure & Automation

Centralized Authorization on GCP: Casbin, Envoy, and API Gateway​

Implementing authorization within a web application, especially in a microservices environment, can quickly lead to duplicated or inconsistent security logic. By leveraging the External Authorization Pattern using Envoy Proxy and Casbin, you can decouple security checks from your Flask application, making your architecture cleaner, more secure, and scalable.

This strategy is particularly effective on Google Cloud Platform (GCP) when using services like API Gateway or Cloud Endpoints as the entry point, and Firestore as the persistent policy backend.

Google Cloud Workstations: Best Use Cases for Enterprise Development

· 5 min read
Serhii Hrekov
Senior Software Engineer & System Architect specializing in Python, Web Systems, Cloud Infrastructure & Automation

Google Cloud Workstations, a fully managed service that provides secure, scalable, and customizable development environments in the cloud.

The best use cases for Google Cloud Workstations center around security, compliance, developer productivity, and managing complex or resource-intensive projects.

Git: Discard All Local Changes and Pull the Latest Remote Version

· 6 min read
Serhii Hrekov
Senior Software Engineer & System Architect specializing in Python, Web Systems, Cloud Infrastructure & Automation

To discard all your local changes and pull the latest version from a GitHub repository, you need to completely reset your local branch to match the remote's state. This process removes all uncommitted and committed local changes.

This guide covers the most reliable methods, including situations where you want to preserve specific local files like .gitignore or clean up untracked files.

Quick Answer

To completely discard all local commits and uncommitted edits and match the remote branch:

git fetch origin
git reset --hard origin/<branch-name>
git clean -fd

ZSH: permission denied

· 3 min read
Serhii Hrekov
Senior Software Engineer & System Architect specializing in Python, Web Systems, Cloud Infrastructure & Automation

zsh: permission denied: /Users/username/.zshrc occurs because your user account doesn't have the necessary file permissions to write to or execute the .zshrc file. This is a common issue after certain system updates, migrations, or when a file is created with elevated privileges.

To solve this, you need to change the file's ownership or permissions.

Ultimate pre-commit Configuration for Python: Complete setup & Advanced practices

· 8 min read
Serhii Hrekov
Senior Software Engineer & System Architect specializing in Python, Web Systems, Cloud Infrastructure & Automation

Maintaining code consistency and preventing quality regressions across a development team can be challenging. Manually checking styles or reminding teammates about formatting imports leads to cognitive overhead and code reviews cluttered with style arguments.

By implementing pre-commit, you can automate code formatting, import sorting, stylistic linting, and static type checking directly into your Git commit lifecycle. This guide outlines the ultimate pre-commit configuration for Python, demonstrates how to centralize settings, and provides advanced optimization tips.

Fixing Vercel Python Import Errors: Causes, Solutions, and Helper Functions

· 6 min read
Serhii Hrekov
Senior Software Engineer & System Architect specializing in Python, Web Systems, Cloud Infrastructure & Automation

The primary cause for import errors on Vercel is often a mismatch between your local development environment's flexibility and Vercel's strict, serverless build process. Beyond the crucial __init__.py file, you need to pay attention to your project's overall structure, the way you write imports, and Vercel's build configuration.