Database Scaling – Kỹ thuật thường xuyên được triển khai trong các dự án lớn

Khi số lượng người dùng ứng dụng của bạn ngày càng tăng lên, dữ liệu từ đó sẽ tăng trưởng ngày càng nhiều hơn mỗi ngày, database của dự án sẽ dần trở nên quá tải. Và đây chính là lúc chúng ta cần thực hiện scale database. Hai chiến lược chính để scale database thường được sử dụng đó là: Mở rộng theo chiều dọc (Vertical Scaling) và Mở rộng theo chiều ngang (Horizontal Scaling) Cùng mình tìm hiểu về chúng trong bài viết...

Continue reading...

Bộ câu hỏi phỏng vấn Fresher Web – Phần 3 – Backend

Mục lục Mở đầu Lưu ý đây chỉ là bộ câu hỏi tham khảo cho đầu vào của vị trí Fresher Web, có thể sẽ không phù hợp với những anh em đang ở level cao hơn chuẩn bị apply vào công ty mới. Mỗi công ty thường sẽ ưa thích sử dụng những ngôn ngữ lập trình khác nhau nhất định. Những ngôn ngữ lập trình Backend phổ biến nhất hiện nay là Java, C#, Python, NodeJS và PHP. Nếu bạn có thể apply vào đúng...

Continue reading...

Bộ câu hỏi phỏng vấn Fresher Web – Phần 2 – Frontend – JavaScript

Mục lục Mở đầu Ở bài viết trước, mình đã chia sẻ với các bạn Bộ câu hỏi phỏng vấn Fresher Web – Phần 1 – Frontend – HTML, CSS. Hôm nay, mình sẽ tiếp tục chia sẻ phần tiếp theo của Bộ câu hỏi phỏng vấn liên quan đến Javascript. Nhiều bạn sinh viên hiện nay đổ xô đi học những khóa học về ReactJS. Trong quá trình phỏng vấn, mình cũng thường xuyên đọc được trong CV của các bạn...

Continue reading...

Bộ câu hỏi phỏng vấn Fresher Web – Phần 1 – Frontend – HTML, CSS

Mục lục Mở đầu Một mùa hè nữa lại đến, thời điểm mà rất nhiều các bạn sinh viên lựa chọn để bắt đầu thử sức với những cơ hội đầu tiên của mình với công việc lập trình thực tế. 5 năm trước, mình cũng đã từng ở vị trí một anh sinh viên ngơ ngác lần đầu đi phỏng vấn. Và hiện tại lại đang trực tiếp ngồi ở vị trí của hội đồng phỏng vấn để trao...

Continue reading...

Logging, Metrics, Monitoring, Notification, Automation – Những công cụ không thể thiếu trong các dự án lớn

Khi làm việc với một trang web nhỏ chạy trên một vài server, việc triển khai các giải pháp logging, metrics, monitoring, notification, automation đôi khi là thừa thãi, không cần thiết. Tuy nhiên, đối với những dự án lớn thì ngược lại, đây là những công cụ gần như KHÔNG THỂ THIẾU. Cùng mình tìm hiểu về chúng trong bài viết này nhé! 1. Logging 📝 Định nghĩa: Logging hay thuật ngữ anh em hay gọi là “ghi log”, là việc ghi...

Continue reading...

Tối ưu hóa hệ thống với Message Queue

Để scale hệ thống, các dự án thường sẽ tách rời các thành phần khác nhau bên trong nó. Khi ấy việc scale từng thành phần có thể diễn ra một cách độc lập. Và message queue là một chiến lược quan trọng để giải quyết vấn đề này, được sử dụng bởi nhiều hệ thống phân tán trong các dự án thực tế. Message queue cũng là một trong những ví dụ phổ biến về ứng dụng của Queue (Hàng đợi). Nhưng...

Continue reading...

Hiểu về Data Center: Cơ chế hoạt động, Xử lý khi có sự cố và các thách thức có thể gặp phải

🔑 Định nghĩa Hình minh họa dưới đây là một ví dụ với hệ thống sử dụng hai Trung tâm Dữ liệu, thuật ngữ tiếng Anh là Data Center (viết tắt là DC) Thông thường, người dùng sẽ được định tuyến theo vị trí địa lý (thuật ngữ tiếng Anh là GeoDNS-routed hoặc Geo-routed) đến Data Center gần với họ nhất. Lưu lượng truy cập phân chia theo tỉ lệ: GeoDNS là một dịch vụ DNS cho phép phân giải...

Continue reading...

Stateless Architecture

Trong kiến ​​trúc Stateless, các HTTP request từ client có thể được gửi đến bất kỳ Web Server nào trong cụm gồm nhiều Web Server, để lấy state data từ một Shared Storage. State data được lưu trữ trong Shared Storage, độc lập hoàn toàn với các Web Server. Đây chính là ví dụ về một hệ thống stateless đơn giản, và có thể dễ dàng mở rộng tầng Web Server theo chiều ngang (scale horizontally). Bởi vì state data (ví dụ như session...

Continue reading...

Stateful Architecture

Có thể các bạn đã từng nghe tới 2 khái niệm “Stateful” và “Stateless”. Stateful server và Stateless server có điểm khác biệt chính là: – Stateful server ghi nhớ dữ liệu (trạng thái) mà request từ client truyền đến, để sử dụng trong quá trình xử lý từ request này tới request tiếp theo. – Trong khi đó, Stateless server sẽ KHÔNG ghi nhớ dữ liệu (trạng thái) nào cả. Trong bài viết này, mình sẽ chia sẻ với các bạn về Stateful. Còn Stateless mình...

Continue reading...

Lưu ý khi sử dụng CDN

Một số lưu ý quan trọng khi sử dụng CDN 🌍 Có nhất thiết phải sử dụng CDN hay không? Nếu tệp khách hàng mà bạn nhắm đến cho ứng dụng web của mình chỉ nằm trong lãnh thổ Việt Nam, thì việc sử dụng CDN là không cần thiết. Chỉ nên cân nhắc khi bạn nhắm đến tệp khách hàng đa quốc gia. Khi ấy CDN mới thực sự phát huy tác dụng về mặt địa lý của mình....

Continue reading...