Tầng ứng dụng

Nguồn: Intro to architecting systems for scale
Tách web layer khỏi application layer (còn gọi là platform layer) cho phép bạn scale và cấu hình hai tầng độc lập với nhau. Thêm một API mới đồng nghĩa với thêm application server, mà không nhất thiết phải thêm web server. Single responsibility principle chủ trương các service nhỏ và tự chủ, phối hợp với nhau. Các team nhỏ với service nhỏ có thể lên kế hoạch mạnh dạn hơn cho tăng trưởng nhanh.
Các worker ở application layer cũng góp phần hiện thực hóa xử lý bất đồng bộ.
Microservices
Liên quan tới phần này là microservices, có thể mô tả là một tập các service nhỏ, mang tính module, có thể deploy độc lập. Mỗi service chạy một process riêng và giao tiếp qua một cơ chế nhẹ, được định nghĩa rõ ràng để phục vụ một mục tiêu nghiệp vụ. 1
Ví dụ, Pinterest có thể có các microservices sau: user profile, follower, feed, search, photo upload, v.v.
Service Discovery
Các hệ thống như Consul, Etcd và Zookeeper giúp các service tìm thấy nhau bằng cách theo dõi tên, địa chỉ và port đã đăng ký. Health check giúp xác minh tình trạng của service và thường được thực hiện qua một HTTP endpoint. Cả Consul và Etcd đều có sẵn key-value store có thể dùng để lưu giá trị cấu hình và các dữ liệu dùng chung khác.
Nhược điểm: application layer
- Thêm một application layer gồm các service liên kết lỏng đòi hỏi cách tiếp cận khác về kiến trúc, vận hành và quy trình (so với hệ thống monolithic).
- Microservices có thể làm tăng độ phức tạp về deployment và vận hành.