Skip to content

Instantly share code, notes, and snippets.

Avatar
🎯
Focusing

Nguyễn Như Thưởng thuongnn

🎯
Focusing
View GitHub Profile
@thuongnn
thuongnn / echo.go
Created May 14, 2021 — forked from paulsmith/echo.go
A simple echo server testing a few interesting Go language features, goroutines and channels.
View echo.go
// $ 6g echo.go && 6l -o echo echo.6
// $ ./echo
//
// ~ in another terminal ~
//
// $ nc localhost 3540
package main
import (
@thuongnn
thuongnn / message-queue.md
Created Mar 14, 2021
Phân loại Message Queue
View message-queue.md
Message Base Data Pipeline
RabitMQ Kafka
ActiveMQ Kinesis
SQS RocketMQ
ZeroMQ
MSMQ
IronMQ
Redis Pub/sub
@thuongnn
thuongnn / message-queue.md
Last active Mar 14, 2021
So sánh các loại Message Queue
View message-queue.md
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 Mar 14, 2021
Container Orchestration
View orchestration.md
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 đề.
View new-factor.md
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 Mar 14, 2021
Cloud Native App
View 12-factor.md
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 Feb 18, 2021
demo stand-alone elasticsearch
View elasticsearch.nomad
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 Jun 22, 2021
demo init config
View echo.nomad
job "http-echo" {
datacenters = ["dc1"]
group "echo" {
count = 1
task "server" {
driver = "docker"
config {
View gist:d0a94dafe7ace7a4b205aa19dbca529d
https://github.com/piomin/sample-istio-services/blob/master/caller-service/k8s/istio-rules.yaml
View command.sh
#!/bin/sh
set +e
set -o noglob
#
# Set Colors
#
bold=$(tput bold)