#62 - Những bài học đúc kết sau hai năm triển khai Microservices
Như vậy Grokking Newsletter đã hoạt động hơn một năm với mục đích đem đến những bài viết kỹ thuật chuyên sâu cho kỹ sư phần mềm. Xin cảm ơn tất cả mọi người đã đồng hành với Grokking Newsletter suốt hơn một năm qua. Team Grokking xin phép thực hiện một khảo sát thông tin về cộng đồng kỹ sư phần mềm đã và đang ủng hộ Grokking để có thể đem nhiều giá trị hữu ích hơn cho ngành phát triển phần mềm tại Việt Nam.
Link khảo sát tại đây
Những bài viết hay
Microservices after Two Years | George Stocker — georgestocker.com
Sau gần hai năm triển khai microsrvices, George - một lập trình viên có hơn 25 năm kinh nghiệm đã chia sẻ những suy nghĩ rđúc kết được về Microservices của anh:
Microsevices đòi hỏi một cách tiếp cận giải quyết vấn đề khác so với Monolith
Xác định phạm vi của services là một bài toán rất quan trọng cần giải quyết để xây dựng một hệ thống microservices thành công
Thiết kế Microservices cũng hướng đến áp dụng nguyên lý SOLID tương tự như lập trình hướng đối tượng
Contract, Code patterns, "best practices" nên được sinh tự động thay vì bám theo convention.
... và một vài suy nghĩ khác
Đọc các bài viết liên quan về chủ đề Microsevices
Case Study: Nameserver Issue Investigation using curl, dig+trace & nslookup — blog.risingstack.com
Một đơn vị xây dựng một trang CMS host sẵn. Ban đầu các tài nguyên (assets) được đặt trực tiếp trên server, nhưng sau đó đơn vị này quyết định chuyển tài nguyên sang lưu trữ trên AWS S3 và cấu hình Cloudfront để cache lại.
Mọi chuyện tưởng chừng đã xong khi việc cấu hình đã hoàn tất, và website đã chạy bình thường. Nhưng lại phát sinh vấn đề là assets lại không truy xuất được trên mobile, và trên web thì chỉ truy xuất được từ một vài địa điểm. Họ đã khảo sát và giải quyết vấn đề này như thế nào?
Uber Case Study: Choosing the Right HDFS File Format for Your Apache Spark Jobs — eng.uber.com
Ở Uber, có một team chuyên thu thập hình ảnh và dữ liệu meta tương ứng từ ứng dụng điện thoại để liên tục cải thiện chất lượng bản đồ, ví dụ như hình ảnh bảng chỉ đường, ... Những hình ảnh này sẽ được xử lý bởi Apache Spark và lưu trữ vào HDFS
Apache Spark hỗ trợ nhiều loại định dạng file khác nhau. Và trong bài blog này, các tác giả chia sẻ về quá trình lựa chọn định dạng file phù hợp với bài toán của họ.
Demystifying Conway's Law | ThoughtWorks — www.thoughtworks.com
"Một hệ thống được thiết kế bởi một tổ chức sẽ chịu sự tác động rất lớn từ cách các bộ phận trong tổ chức đó giao tiếp với nhau." - Đây là một định luật được đúc kết bởi Melvin Conway, một nhà khoa học máy tính người Mỹ.
Mệnh đề này góp phần giải thích tại sao, nếu công ty bạn đang phát triển rất nhanh và đang hướng về xây dựng hệ thống có tính module hoá cao và ít kết dính thì bạn cần phải thay đổi mô hình tổ chức team của mình thành nhiều team nhỏ và độc lập.
Có thể bạn chưa biết
The fallacies of distributed computing là một danh sách được đề ra bởi L Peter Deutsch và các cộng sự ở Sun Microsystems mô tả những giả định sai mà một lập trình viên khi chưa quen với các hệ thống phân tán sẽ có khuynh hướng tin vào.
Sách hay nên đọc
A Philosophy of Software Design by John Ousterhout — www.goodreads.com
Quyển sách này là một tập hợp những lời khuyên bổ ích về những điều cần lưu ý trong việc thiết kế phần mềm đến từ John Ousterhout, giáo sư ngành Khoa học máy tính tại đại học Standford. Một quyển sách đáng đọc dành cho các bạn sinh viên, Fresher, Junior