[Bottlenecks of Scaleups] - #01 Tech Debt

Trong những ngày đầu, một startup tìm kiếm sự phù hợp giữa sản phẩm (product) và thị trường (market). Khi tìm được, nó tìm cách phát triển nhanh chóng, giai đoạn này được gọi là scaleup. Tại thời điểm này, nó đang phát triển nhanh chóng trên nhiều khía cạnh: doanh thu (revenues), khách hàng (customer), số lượng nhân viên (headcount). Tại Thoughtworks, chúng tôi đã làm việc với nhiều startup đang trong giai đoạn scaleup như vậy, và công việc của chúng tôi tập trung vào cách giúp họ vượt qua các nút thắt (bottlenecks) cản trở sự phát triển....

August 19, 2023 · 26 min · 5424 words · telion

[Cloud Design Patterns] - Retry Pattern

Giới thiệu Retry Pattern cho phép một ứng dụng (application) xử lý các lỗi tạm thời khi nó cố gắng kết nối với một dịch vụ (service) hoặc tài nguyên mạng (network resource), bằng cách thử lại (retrying) một thao tác thất bại một cách trong suốt. Điều này có thể cải thiện sự ổn định của ứng dụng (application).) Đặt vấn đề Một ứng dụng (application) mà giao tiếp với thành phần chạy trong đám mây (cloud) thường phải đối mặt với các lỗi tạm thời có thể xảy ra trong môi trường này....

July 5, 2023 · 13 min · 2767 words · telion

[Cloud Design Patterns] - Snapshot Pattern (Data Backups)

Đặt vấn đề Một trong những điều quan trọng nhất của hệ thống là dữ liệu (data) của bạn phải được đảm bảo an toàn. Điều này có nghĩa là việc sao lưu (backup) dữ liệu là rất quan trọng. Ví dụ, bạn có thể sao lưu (backup) dữ liệu thành nhiều phiên bản được lưu trữ ở những nơi khác nhau. Tuy nhiên, với việc sao lưu này, bạn phải chịu chi phí về thay đổi và lưu trữ các phiên bản, và đây là những hoạt động cần phải được tự động hóa (automate)....

July 3, 2023 · 5 min · 961 words · telion

[Microservice Design Patterns] - Event Sourcing

Ngữ cảnh Trong một hệ thống microservices thông thường, mỗi dịch vụ sẽ cần thực hiện các thao tác như tạo, cập nhật hoặc xóa dữ liệu (hay còn gọi là aggregate) trong cơ sở dữ liệu của nó và gửi các thông điệp hay sự kiện (messages/events) tới một trung tâm điều phối thông điệp (message broker). Một ví dụ điển hình là dịch vụ tham gia vào một quá trình giao tiếp phức tạp giữa nhiều dịch vụ khác nhau, hay còn gọi là saga....

June 28, 2023 · 8 min · 1589 words · telion

[Microservice Design Patterns] - Shared Database per Service

Vấn đề đặt ra Giả sử, ta cần phát triển 1 ứng dụng online store sử dụng kiến trúc Microservice. Hầu hết các services cần lưu trữ dữ liệu data trong database. Ví dụ, Order Service lưu trữ thông tin về orders, Customer Service lưu trữ thông tin về customers. Yêu cầu Các service phải được liên kết lỏng lẻo để chúng có thể được phát triển, triển khai và mở rộng một cách độc lập Một số business transactions phải thực thi các bất biến trải rộng trên nhiều dịch vụ....

June 23, 2023 · 3 min · 534 words · telion