Mở đầu
Software Architect (thường được viết tắt là SA hay Kiến trúc sư phần mềm) là một chuyên gia công nghệ trong dự án hoặc trong công ty, có nhiệm vụ thiết kế cấu trúc tổng thể của hệ thống phần mềm.
Họ chịu trách nhiệm xây dựng các giải pháp công nghệ phức tạp, đảm bảo rằng các hệ thống phần mềm hoạt động một cách hiệu quả, bảo mật, và có thể mở rộng theo nhu cầu của tổ chức.
Bên cạnh đó, mình nhớ khoàng nhiều năm về trước, khi các công nghệ như Docker, K8S, Helm, Kafka, .NET Core, ... bắt đầu trở nên phổ biến, các anh SA trong công ty mình chính là những người tiên phong tìm tòi, nghiên cứu và thử nghiệm áp dụng. Sau đó chính các anh ấy là những người chia sẻ lại, cũng như support triển khai cho các anh em Dev và DevOps trong các dự án.
Rồi chưa kể những dự án mới trong công ty, dự án nào mà không có sự tham gia của ít nhất 1 SA là y như rằng kiểu gì cũng phải đập đi xây lại đôi lần. Vì những anh em Dev còn thiếu kinh nghiệm, nên chỉ nhìn được tầm nhìn ngắn hạn. Khi các chức năng phình ra, người dùng nhiều lên, thì "mớ hỗn độn" trước đó chúng mình tạo ra bỗng trở thành "gậy ông đập lưng ông", không tài nào scale hay giải quyết được những technical debt đã "nhắm mắt bỏ qua" trước đó @@
Vậy nên, hầu như anh em Dev nào định hướng phát triển theo hướng Chuyên gia công nghệ, cũng sẽ đều nhìn vào tấm gương từ các anh SA để học tập.
Trong bài viết này, mình sẽ chia sẻ với các bạn 10 blog và kênh Youtube rất hay. Hi vọng chúng sẽ hữu ích, giúp bạn nâng tầm kiến thức System Design và tiến gần hơn tới mục tiêu trở thành SA của mọi người.
Top 1 - Slack Engineering Blog
Công ty, dự án của bạn đang dùng nền tảng/ứng dụng nào để nhắn tin trao đổi công việc? Zalo hả? Công ty cũ của mình thì dùng Slack.
Ngoài chức năng nhắn tin công việc ra, thì một chức năng mà bọn mình dùng nhiều nhất đó là dùng làm Webhook để nhận thông báo khi các service có vấn đề phát sinh như resource đạt đến một ngưỡng nào đó, quá tải đến nỗi bị down, hoặc có exception xảy ra liên tục. Anh em nào từng dùng Slack chắc sẽ từng cảm thấy chán chường, chỉ muốn hét lên "WTFFFFFF?" vì tiếng "Cọoc cọoc cọoc" phát ra liên tục trên điện thoại, vào buổi sáng Chủ nhật 🥲 Từ đó thì mình mới biết đến blog Slack Engineering của họ.
Các bạn có thể tìm đọc những bài viết rất hay như:
- How We Built Slack AI To Be Secure and Private: https://slack.engineering/how-we-built-slack-ai-to-be-secure-and-private/
- The Scary Thing About Automating Deploys: https://slack.engineering/the-scary-thing-about-automating-deploys/
- Slack’s Migration to a Cellular Architecture: https://slack.engineering/slacks-migration-to-a-cellular-architecture/
- Service Delivery Index: A Driver for Reliability: https://slack.engineering/service-delivery-index-a-driver-for-reliability/
- Real-time Messaging: https://slack.engineering/real-time-messaging/
Top 2 - ByteByteGo
Một cái tên nổi đình nổi đám khoảng 2 năm trở lại đây, chắc hẳn các bạn đã từng ít nhất 1 lần nhìn thấy Youtube suggest video của ByteByteGo cho mình.
Các bạn cũng có thể tải miễn phí tài liệu System Design bản PDF dài 158 trang mà họ chia sẻ tại đây.
Được quản lý bởi Alex Xu và Sahn Lam, blog này chủ yếu tập trung vào việc cung cấp kiến thức về phân tích và xây dựng kiến trúc hệ thống, cập nhật xu hướng công nghệ, cơ sở dữ liệu, cấu trúc hệ thống phân tán, và các mô hình thiết kế phần mềm. Đây đều các kỹ năng cần thiết cho Developer định hướng trở thành những SA, Technical Lead trong tương lai.
Một điều khiến mình ấn tượng hơn cả là phong cách làm hình ảnh mình họa, cũng như animation trong các video của ByteByteGo rất sáng tạo, khiến quá trình học tập kiến thức chuyên ngành của mình trở nên hứng thú hơn.
Bản thân mình cũng là người thích chia sẻ kiến thức, nên khi nhìn vào những bài viết, video của họ, mình hiểu được họ đã phải bỏ ra nhiều công sức như thế nào để chia sẻ tới cộng đồng những tài liệu chất lượng cao như vậy. Respect! 🫡
Blog: https://blog.bytebytego.com/
Youtube: https://www.youtube.com/@bytebytego
Top 3 - Discord Engineering & Developers
Để duy trì và phát triển được một nền tảng khổng lồ như Discord, thì chắc chắn đội ngũ chuyên gia công nghệ của họ cũng phải thuộc hàng đẳng cấp thế giới.
Cũng giống như những blog engineering của các công ty khác, đây là nơi những kỹ sư hàng đầu của Discord chia sẻ về những kiến thức công nghệ, và những kinh nghiệm mà họ đã từng gặp phải, nghiên cứu và xử lý trong quá trình phát triển Discord.
Có một bài viết đã từng nổi rần rần, được chia sẻ rất nhiều trong cộng đồng lập trình viên Việt Nam đó là:
- How Discord stores trillions of messages: https://discord.com/blog/how-discord-stores-trillions-of-messages
Nhưng đương nhiên sẽ không chỉ có vậy. Blog này còn vô vàn những bài viết giá trị khác mà các bạn có thể tìm đọc để nâng tầm kiến thức của bản thôi, cũng như học tập và áp dụng vào dự án của mình nếu phù hợp:
- How Discord Maintains Performance While Adding Features: https://discord.com/blog/how-discord-maintains-performance-while-adding-features
- How Discord Handles Two and Half Million Concurrent Voice Users using WebRTC: https://discord.com/blog/how-discord-handles-two-and-half-million-concurrent-voice-users-using-webrtc
- Why Discord is switching from Go to Rust: https://discord.com/blog/why-discord-is-switching-from-go-to-rust
- Using Machine Learning to Build a Delightful Notification Experience: https://discord.com/blog/building-delightful-notifications-using-ml
- How Discord Supercharges Network Disks for Extreme Low Latency: https://discord.com/blog/how-discord-supercharges-network-disks-for-extreme-low-latency
- How Discord achieves native iOS performance with React Native: https://discord.com/blog/how-discord-achieves-native-ios-performance-with-react-native
Top 4 - Airbnb Tech Blog
Có thể bạn chưa biết: Airbnb là viết tắt của Air Bed and Breakfast.
Đây là một công ty cung hệ hệ thống cho thuê và đặt phòng, căn hộ trực tuyến hàng đầu thế giới.
Đội ngũ kỹ thuật hàng đầu của họ thường xuyên chia sẻ kiến thức, kinh nghiệm và các bài viết liên quan đến công nghệ trên blog Airbnb Tech.
Một số bài viết đáng chú ý có thể kể đến như:
- How Airbnb manages to monitor customer issues at scale: https://medium.com/airbnb-engineering/how-airbnb-manages-to-monitor-customer-issues-at-scale-b883301ca461
- Optimizing Data Access at Airbnb’s Scale: https://medium.com/airbnb-engineering/riverbed-optimizing-data-access-at-airbnbs-scale-c37ecf6456d9
- Improving Performance with HTTP Streaming: https://medium.com/airbnb-engineering/improving-performance-with-http-streaming-ba9e72c66408
- Upgrading Data Warehouse Infrastructure at Airbnb: https://medium.com/airbnb-engineering/upgrading-data-warehouse-infrastructure-at-airbnb-a4e18f09b6d5
- Dynamic Kubernetes Cluster Scaling at Airbnb: https://medium.com/airbnb-engineering/dynamic-kubernetes-cluster-scaling-at-airbnb-d79ae3afa132
- A Scalable Centralized System for Authorization at Airbnb: https://medium.com/airbnb-engineering/himeji-a-scalable-centralized-system-for-authorization-at-airbnb-341664924574
- Building Airbnb’s Internationalization Platform: https://medium.com/airbnb-engineering/building-airbnbs-internationalization-platform-45cf0104b63c
Top 5 - IBM Technology
IBM Technology là một kênh YouTube chính thức của tập đoàn công nghệ IBM.
Mình đã follow kênh Youtube này từ khá lâu rồi. Các video triệu view của họ có thể kể đến như:
- Kubernetes vs. Docker: https://www.youtube.com/watch?v=2vMEQ5zs1ko
- API vs. SDK: What's the difference?: https://www.youtube.com/watch?v=kG-fLp9BTRo
- What is a REST API?: https://www.youtube.com/watch?v=lsMQRaeKNDk
Bên cạnh đó là hàng loạt những video giải thích dễ hiểu về Elasticsearch, RabbitMQ, Postgres, MySQL, GPU, API Gateway, và những video về AI, ...
Cách làm video của kênh này cũng rất độc đáo và tạo sự hứng thú với người xem. Các chuyên gia của họ thường sử dụng 1 chiếc bảng trong suốt, cùng với những chiếc bút màu, vừa giải thích, vừa vẽ minh họa. Đúng kiểu lập trình, công nghệ giống như một môn nghệ thuật vậy đó.
Top 6 - Netflix Tech Blog
Netflix Tech Blog là một blog công nghệ chính thức của Netflix, nơi các kỹ sư và lập trình viên của công ty này chia sẻ các kiến thức, kinh nghiệm, và các giải pháp kỹ thuật mà họ đã phát triển và áp dụng trong quá trình xây dựng và duy trì hệ thống của Netflix.
Các bài viết trên blog này bao quát nhiều chủ đề khác nhau, từ kiến trúc hệ thống phân tán, xử lý dữ liệu lớn (big data), học máy (machine learning), trí tuệ nhân tạo (AI), đến các kỹ thuật bảo mật và quản lý cơ sở hạ tầng.
Blog không chỉ cung cấp kiến thức kỹ thuật, mà còn chia sẻ các kinh nghiệm thực tiễn và bài học từ quá trình phát triển và vận hành hệ thống của Netflix, giúp anh em học hỏi từ những thách thức và thành công của một trong những nền tảng streaming hàng đầu thế giới.
Những bài viết chất lượng có thể kể đến như:
- Rebuilding Netflix Video Processing Pipeline with Microservices: https://netflixtechblog.com/rebuilding-netflix-video-processing-pipeline-with-microservices-4e5e6310e359
- Migrating Netflix to GraphQL Safely: https://netflixtechblog.com/migrating-netflix-to-graphql-safely-8e1e4d4f1e72
- Data Mesh — A Data Movement and Processing Platform: https://netflixtechblog.com/data-mesh-a-data-movement-and-processing-platform-netflix-1288bcab2873
- Rapid Event Notification System at Netflix: https://netflixtechblog.com/rapid-event-notification-system-at-netflix-6deb1d2b57d1
Top 7 - Amazon Architecture Blog
AWS có một tập hợp các blog rất hay, trong đó Amazon Architecture Blog là nơi dành riêng cho các kỹ sư và SA của Amazon, cùng với các chuyên gia khác chia sẻ kiến thức, kinh nghiệm và các giải pháp kỹ thuật liên quan đến kiến trúc hệ thống.
Các bài viết thường đi kèm với các ví dụ cụ thể và hướng dẫn chi tiết về cách triển khai các giải pháp kiến trúc khác nhau trên AWS (của nhà trồng được mà 😆), giúp người đọc dễ dàng áp dụng vào các dự án thực tế của mình.
Những bài viết chất lượng có thể kể đến như:
- Designing architectures for multi-tenancy: https://aws.amazon.com/vi/blogs/architecture/top-architecture-blog-posts-of-2023/
- Invoking asynchronous external APIs with AWS Step Functions: https://aws.amazon.com/vi/blogs/architecture/invoking-asynchronous-external-apis-with-aws-step-functions/
- Designing event-driven architectures: https://aws.amazon.com/vi/blogs/architecture/lets-architect-designing-event-driven-architectures/
- Creating a Multi-Region Application with AWS Services: https://aws.amazon.com/vi/blogs/architecture/creating-a-multi-region-application-with-aws-services-part-1-compute-and-security/
Top 8 - Uber Engineering Blog
Uber là một trong những nhà cung cấp dịch vụ taxi trực tuyến phổ biến nhất và từng là lớn nhất trên thế giới.
Uber Engineering Blog cung cấp các bài viết chi tiết về các giải pháp kỹ thuật phức tạp mà Uber đã triển khai, bao gồm kiến trúc hệ thống, cơ sở hạ tầng, tối ưu hóa hiệu năng và các công cụ phát triển phần mềm.
Anh em nào đang tìm hiểu về các chức năng liên quan đến việc sử dụng bản đồ và vị trí để cung cấp dịch vụ ecommerce hay logistics, thì chắc hẳn sẽ không thể bỏ qua blog kỹ thuật này của Uber.
Các bài viết đáng chú ý:
- Migrating a Trillion Entries of Uber’s Ledger Data from DynamoDB to LedgerStore: https://www.uber.com/en-VN/blog/migrating-from-dynamodb-to-ledgerstore/?uclick_id=5c0347a1-9f52-4eb8-9654-7cfc4177b66f
- How LedgerStore Supports Trillions of Indexes at Uber: https://www.uber.com/en-VN/blog/how-ledgerstore-supports-trillions-of-indexes/?uclick_id=5c0347a1-9f52-4eb8-9654-7cfc4177b66f
- Scaling AI/ML Infrastructure at Uber: https://www.uber.com/en-VN/blog/scaling-ai-ml-infrastructure-at-uber/?uclick_id=5c0347a1-9f52-4eb8-9654-7cfc4177b66f
- Balancing HDFS DataNodes in the Uber DataLake: https://www.uber.com/en-VN/blog/balancing-hdfs-datanodes-in-the-uber-datalake/?uclick_id=5c0347a1-9f52-4eb8-9654-7cfc4177b66f
- Building Scalable, Real-Time Chat to Improve Customer Experience: https://www.uber.com/en-VN/blog/building-scalable-real-time-chat/?uclick_id=5c0347a1-9f52-4eb8-9654-7cfc4177b66f
Top 9 - Twitter Engineering Blog
Từng là một trong những Engineering Blog cực kỳ chất lượng, nhưng hình như từ khi đại ca Elon Musk sang thì các chuyên gia của Twitter (hiện tại là X) đã không còn thời gian viết bài chia sẻ nữa hay sao ấy @@
Nhưng đương nhiên những bài viết cũ trên blog này vẫn còn rất nhiều giá trị để anh em học hỏi.
Anh em có thể đọc lại một số bài viết chất lượng sau:
- Twitter's Recommendation Algorithm: https://blog.x.com/engineering/en_us/topics/open-source/2023/twitter-recommendation-algorithm
- How we scaled Reads On the Twitter Users Database: https://blog.x.com/engineering/en_us/topics/infrastructure/2023/how-we-scaled-reads-on-the-twitter-users-database
- Constraint Management for cluster operation safety and reliability at Twitter: https://blog.x.com/engineering/en_us/topics/infrastructure/2023/constraint-management-for-cluster-operation-safety-and-reliability-at-twitter
- Stability and scalability for search: https://blog.x.com/engineering/en_us/topics/infrastructure/2022/stability-and-scalability-for-search
- Data Quality Automation at Twitter: https://blog.x.com/engineering/en_us/topics/infrastructure/2022/data-quality-automation-at-twitter
Top 10 - Spotify Engineering Blog
Spotify hiện nay có thể nói là nền tảng âm nhạc trực tuyến số 1 thế giới.
Và đương nhiên, một trong những yếu tố dẫn đến thành công của họ là đội ngũ kỹ thuật đẳng cấp.
Spotify Engineering là một cộng đồng đa dạng gồm các kỹ sư, nhà phát triển, nhà nghiên cứu, ... Họ đã cùng nhau xây dựng cơ sở hạ tầng từ những viên gạch đầu tiên, cải tiển những tính năng và trải nghiệm tuyệt vời đưa đến người dùng.
Rất nhiều bài viết hay đã được xuất bản trên blog này. Tiêu biểu có thể kể đến như:
- Multiple Layers of Abstraction in Design Systems: https://engineering.atspotify.com/2023/05/multiple-layers-of-abstraction-in-design-systems/
- Experimenting with Machine Learning to Target In-App Messaging: https://engineering.atspotify.com/2023/06/experimenting-with-machine-learning-to-target-in-app-messaging/
- Switching Build Systems, Seamlessly: https://engineering.atspotify.com/2023/10/switching-build-systems-seamlessly/
- Data Platform Explained: https://engineering.atspotify.com/2024/04/data-platform-explained/
Kết luận
Trên đây là 10 blog và kênh youtube mà mình đánh giá là hay nhất trong những blog về công nghệ mình từng được đọc và xem.
Hi vọng chia sẻ này của mình sẽ hữu ích với các bạn. Nếu các bạn thấy bài viết này hay, thì hãy tặng mình 1 upvote và 1 comment để mình có động lực viết thêm những series bài viết thú vị về lập trình tiếp theo nhé 🌻
Các bạn cũng có thể tham khảo series video "Lên trình Thuật toán - Lập trình thi đấu 🏆" mà mình đang làm trên Youtube tại đây: