Skip to content

Instantly share code, notes, and snippets.

View thuongnn's full-sized avatar
🎯
Focusing

Nguyen Nhu Thuong thuongnn

🎯
Focusing
View GitHub Profile
#!/bin/bash
APPLICATION=${APPLICATION:-app}
REPOSITORY_NAME=${REPOSITORY_NAME:-empty}
TAG_NAME=${TAG_NAME:-empty}
KUSTOMIZE_ENV=${KUSTOMIZE_ENV:-empty}
KUSTOMIZE_VARIANT=${KUSTOMIZE_VARIANT:-empty}
COMMIT=${CI_COMMIT_SHORT_SHA:-default}
# git configuration repository [uri]
GIT_CONFIG_URI="https://oauth2:$CI_TOKEN@gitlab.knovel.org/delivery/longclaw/marine-vessel/cloud-mono-repo.git"
@thuongnn
thuongnn / echo.go
Created May 14, 2021 10:37 — forked from paulsmith/echo.go
A simple echo server testing a few interesting Go language features, goroutines and channels.
// $ 6g echo.go && 6l -o echo echo.6
// $ ./echo
//
// ~ in another terminal ~
//
// $ nc localhost 3540
package main
import (
@thuongnn
thuongnn / message-queue.md
Created March 14, 2021 17:21
Phân loại Message Queue
Message Base Data Pipeline
RabitMQ Kafka
ActiveMQ Kinesis
SQS RocketMQ
ZeroMQ
MSMQ
IronMQ
Redis Pub/sub
@thuongnn
thuongnn / message-queue.md
Last active March 14, 2021 17:22
So sánh các loại Message Queue
Message Base Data Pipeline
Lưu trạng thái của các consumer nhằm đảm bảo tất cả các consumer đều nhận được message từ topic mà đã subscribe Không lưu trạng thái của consumer.
Sau khi tất cả các consumer nhận được message thì message đó sẽ bị xoá Message được xoá sau một khoảng thời gian nhất định
Khi có một message mới, consumer chỉ có thể lấy được duy nhất một message đó Khi có message mới, consumer có thể tuỳ ý lựa chọn lấy về một danh sách các message
@thuongnn
thuongnn / orchestration.md
Created March 14, 2021 17:03
Container Orchestration
Tasks Giải thích
Scheduling Tự động lập lịch để chạy các container trên node phù hợp.
Affinity/anti-affinity Xác định các điều kiện, chính sách chạy cho container, xác định mối quan hệ giữa các container.
Health monitoring Tự động phát hiện các container bị lỗi; Thực hiện stop, restart hay xoá và tạo mới container.
Failover Tự động phân bổ lại các container tạo mới bị thất bại trên một node phù hợp hơn.
Scaling Tự động thêm hoặc xóa phiên bản container để đáp ứng nhu cầu sử dụng.
Networking Quản lý network overlay cho kết nối giữa các container.
Service Discovery Cho phép container có thể tìm thấy, xác định vị trí container khác.
Rolling Upgrades Triển khai upgrade hệ thống với zero downtime. Tự động khôi phục các thay đổi khi có vấn đề.
@thuongnn
thuongnn / new-factor.md
Last active March 14, 2021 17:01
New Factor
New Factor Giải thích
13 API First Triển khai ứng dụng như một dịch vụ, hãy giải sử app được sử dụng bởi front-end client, gateway, third party services, etc.
14 Telemetry Đảm bảo thiết kế hệ thống bao gồm việc thu thập dữ liệu giám sát, health/system data, etc.
15 Authentication/ Authorization Nên thực hiện xác thực danh tính ngay từ ban đầu, sử dụng RBAC (role-based access control).
@thuongnn
thuongnn / 12-factor.md
Last active March 14, 2021 17:00
Cloud Native App
Factor Giải thích
1 Code Base Code base duy nhất cho mỗi microservice, lưu trữ trong repository. Sử dụng version control và có thể được triển khai cho nhiều môi trường (QA, Staging, Production).
2 Dependencies Mỗi microservice sẽ cô lập và đóng gói với các dependencies của riêng nó, bao gồm các thay đổi mà không ảnh hưởng đến toàn bộ hệ thống.
3 Configurations Thông tin các config được tách biệt khỏi microservice và lưu trữ bên ngoài thông qua một công cụ quản lý không liên quan gì tới code trong microservice.
4 Backing Services Thành phần tài nguyên hỗ trợ cho microservice (data stores, caches, message brokers) phải được expose qua một addressable URL; tách được thành phần này ra khỏi ứng dụng, cho phép nó có thể hoán đổi cho nhau.
5 Build, Release, Run Mỗi phiên bản release phải được phân tách qua các giai đoạn build, release, và run; mỗi version phải được đánh tag và hỗ trợ khả năng rollback khi cần. Áp dụng CI/CD để giải quyết yếu tố này.
@thuongnn
thuongnn / elasticsearch.nomad
Created February 18, 2021 10:17
demo stand-alone elasticsearch
job "datastores" {
datacenters = ["dc1"]
type = "service"
group "elasticsearch" {
count = 1
// khai báo volume
// cái này sẽ khởi tạo trong phần install nomad,consul ansible
// file host_vars/node-1
@thuongnn
thuongnn / echo.nomad
Last active June 22, 2021 18:38
demo init config
job "http-echo" {
datacenters = ["dc1"]
group "echo" {
count = 1
task "server" {
driver = "docker"
config {
https://github.com/piomin/sample-istio-services/blob/master/caller-service/k8s/istio-rules.yaml