Sử dụng NAT trong AWS

Sử dụng NAT trong AWS

1. Giới thiệu Khi bạn có một server trong private subnet không giao tiếp được với internet (ví dụ DB server) nhưng bạn muốn cập nhật phần mềm cho server đó, đây là lúc bạn sử dụng NAT. NAT viết tắt cho Network Address Translation là phương pháp thay đổi địa chỉ IP của các tài nguyên private. Khi các tài nguyên private request ra internet, NAT sẽ đổi IP các tài nguyên này thành IP của mình rồi đưa request ra internet, sa...

Phân biệt gcTime và staleTime trong tanstack (react-query)

Phân biệt gcTime và staleTime trong tanstack (react-query)

1. gcTime gcTime là thời gian data được cached trong tanstack. Sau khoảng thời gian này tính từ lúc bạn lấy nó ra cuối cùng, data sẽ gị garbage collector xoá đi. Ví dụ bạn set gcTime = 5 phút, bạn gọi api lúc 10:00:00, từ 10:00:00 tới 10:05:00, bạn không gọi api đó lần nào nữa thì lúc 10:05:01, data đó sẽ bị xoá khỏi cached. Từ 10:05:01 trở đi, nếu bạn gọi api đó lần nữa, tanstack sẽ gọi api tới backend và cached nó 5 phút tiếp. gcTime dễ hiểu vì nó rất giống với cachedTime thông thường. s...

Debug trong golang

Debug trong golang

Dockerfile FROM golang:1.23-alpine WORKDIR /app RUN go install github.com/air-verse/air@latest RUN go install github.com/go-delve/delve/cmd/dlv@latest COPY go.mod go.sum ./ RUN go mod download CMD ["air", "-c", ".air.toml"]   docker-compose services: app: build: context: . dockerfile: Dockerfile ports: - 2345:2345 volumes: - ./:/app .air.toml ... [build] args_bin = [] # bin = ";APP_ENV=development ./tmp/main" full_bin = "APP_ENV=development d...

Một số ví dụ về file jenkins

Một số ví dụ về file jenkins

1. Jenkins run reviewdog pipeline { agent { label 'ec2-fleet-l' } stages { stage('Build name') { steps { script { currentBuild.displayName = "${BUILD_NUMBER}: ${params.branch}".replace("origin/","") } } } stage('Checkout service') { steps { checkout([$class: 'GitSCM', branches: [[name: "${params.branch}"]], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: "${env.repo_name}"]], submoduleCfg: [], userRemoteConfigs: [[credentialsId: "${env.repo_name}", url: "git@gith...

Debug unit test trong golang

Debug unit test trong golang

1. In go project - Export port 41000 for debugging. - Install dlv: `go install github.com/go-delve/delve/cmd/dlv@latest` ...

Cơ chế hoạt động của javascript và nodejs

Cơ chế hoạt động của javascript và nodejs

Hiện nay nodejs đang nổi lên là ngôn ngữ server rất hot. Nodejs là ngôn ngữ javascript chạy trên server, có ưu điểm là thực thi nhanh, bất đồng bộ. 1. Non-blocking I/O Trong javascript, hầu hết các lời gọi I/O đều là non-blocking. Nghĩa là khi có HTTP request, truy xuất dữ liệu trong DB hoặc đọc ghi vào bộ nhớ thì hệ thống sẽ không tạm dừng (blocking) các đoạn code tiếp theo (như các ngôn ngữ server khác PHP, Ryby,...) mà sẽ trao quyền thực thi những lời gọi I/O n&agra...

Chuẩn cấu hình eslint, prettier cho react sử dụng typescript

Chuẩn cấu hình eslint, prettier cho react sử dụng typescript

1. Cài đặt thư viện Sử dụng các thư viện sau: eslint: báo lỗi cú pháp và các anti-pattern cho code https://github.com/eslint/eslint typescript-eslint: báo lỗi cú pháp cho typescript sử dụng eslint  https://github.com/typescript-eslint/typescript-eslint eslint-plugin-react: báo lỗi cú pháp cho react sử dụng eslint https://github.com/yannickcr/eslint-plugin-r...

Cách học và thi chứng chỉ AWS Security Specialty

Cách học và thi chứng chỉ AWS Security Specialty

Mình mới lấy được chứng chỉ AWS Security - Specialty với số điểm 900 vào ngày 8/5/2021   Thông tin về chứng chỉ bạn xem ở https://aws.amazon.com/certification/certified-security-specialty/  Để lấy được chứng chỉ này, bạn cần phải lấy chứng chỉ AWS Solutions Architect trước, cách học chứng chỉ AWS Solutions Architect mình đ&at...

Cách hoạt động của SSL và HTTPS

Cách hoạt động của SSL và HTTPS

1. Giới thiệu Khi sử dụng một website, bạn để ý website đó có sử dụng giao thức bảo mật HTTPS hay giao thức không bảo mật HTTP. Nếu chỉ sử dụng HTTP, mọi dữ liệu truyền trên internet sẽ không được mã hoá, nghĩa là khi bạn submit một form trên trang đó (VD: đăng nhập bằng password, gửi thông tin tài khoản ngân hàng, hay thậm chí các tin nhắn thông thường) thì mọi thông tin bạn nhập và gửi nếu để ai đó trên in...

Cách tính quyền trong AWS

Cách tính quyền trong AWS

1. Mở đầu Khi làm việc hay quản lý với AWS, bạn bắt buộc phải nắm được cách tính quyền cho các tài nguyên trong AWS. Các quyền trong AWS được quản lý ở các đơn vị sau: Organization SCPs (Service Control Policies) Resource-based policies IAM permission boundaries Session policies Identity-based policies   Để tín...