Skip to content

Instantly share code, notes, and snippets.

View letronghoangminh's full-sized avatar

psycholog1st letronghoangminh

View GitHub Profile

PART 1: Foundational Patterns

Chapter 2: Predictable Demands

  • This pattern indicates how we should declare application requiremnts

Problem

  • From resource consumption POV, the important aspects are domain, bussiness logic and the actual implementation details
  • Other dependencies: platform-managed capabilities like data storage or application configuration

Solution

Kubernetes RBAC with AWS IAM integration

Overview

This documentation provides a comprehensive guide on implementing Role-Based Access Control (RBAC) in a Kubernetes environment seamlessly integrated with AWS Identity and Access Management (IAM). This integration allows organizations to leverage our existing AWS IAM infrastructure to manage and control access to Kubernetes resources.

This RBAC module is implemented by Terraform and can be found at: <github_placeholder>

Terminologies

Using Renovate on Azure DevOps for automatic Nuget packages version upgrades

Overview

Renovate Bot is an automated tool that helps keep software dependencies up to date. It scans repositories, detects outdated dependencies, and creates pull requests to update them, reducing the risk of security vulnerabilities and compatibility issues. Renovate supports multiple package managers, integrates with platforms like GitHub and GitLab, and offers customization options for scheduling and update rules.

In this article, we will focus on integrating Renovate bot to Azure DevOps services for Nuget packages upgrade.

Setup Renovate Bot

.NET deployment models and optimizations

To be honest, this article is more like a personal note & experiments on .NET deployment models, the knowledge will mainly taken from the Microsoft's official docs. I’ll try to keep the article clear and useful.

The sample application source code can be referenced here https://github.com/alex289/CleanArchitecture/tree/main

Deployment models

.NET applications can be deployed in two main ways: Framework-dependent and Self-contained.

The first one, as its name already tells, requires local .NET runtime that's compatible with the application, the other packs everything up and distributes as a single runnable binary.

LPIC-102

105.1

105.1 Lesson 2

  • readonly: assing a variable to readonly
  • export turn a variable to global so that child shells can access them
  • env -i bash: clear most of environment variables (cleanest as possible)

105.2 Customize or write simple scripts

LPIC-101

101 System Architecture

101.1 Determine and config hardware settings

  • lspci: show list of pci devices
    • lscpi -s <address> -v: show detail
    • lscpi -s <address> -k: show detail of kernel drivers, modules
  • lsusb: show list of usb devices
    • lsusb -d <addres> -v: show detail
    • lsusb -t: show devices mappings
  • lsmod: Show all currently loaded modules: Name | bytes of RAM | depending modules

Part 1: Designing Data-Intensive Applications

Part I: Foundations of Data Systems

Chapter 1: Reliable, Scalable and Maintainable Applications

Thinking About Data Systems

Data systems: databases, caches, queues,...

Reliability

Part 2: Designing Data-Intensive Applications

Chapter 9: Consistency and Consensus

If the case "one thing fail, everything stops" cannot be accepted, we must find a way to tolerate the fault => Build general-purpose abstractions with useful guarantees, let applications rely on those abstractions.

Consistency Guarantees

Transaction isolation is primarily about avoiding race conditions due to concurrently executing transactions, whereas distributed consistency is mostly about coordinating the state of replicas in the face of delays and faults.  

Linearizability

Knowned as atomic consistency, strong consistency. The idea is to make a system appear as if there were only one copy of the data, and all operations on it are atomic.

Learning CoreDNS reading notes

Chapter 1: Introduction

CoreDNS is a forked of Caddy, written in Go. It uses Corefile for simple configuration. It uses a system of plugins for features.

Limitations

CoreDNS doesn't support recursion. It relies on other forwarders (DNS servers)

image

Learning OpenTelemetry

Chapter 1: The State of Modern Observability

Three pillars of observability were an accident, it must be able to correlate and pivot forth and back between signals and three browser tabs.

There are two ways for correlations:

  • Human investigation: effort consumption, depend on the human memory
  • Computer investigation: the data must be connected

image