Trở thành Solution Architect có khó không?

5419

Bài viết được sự cho phép của tác giả Edward Thien Hoang

Solution Architect hay còn được gọi là Kiến trúc sư Giải pháp là một job title trong các công ty software.

Bài viết này nhằm cung cấp cho các bạn đang là software engineer một lộ trình để có thể up skill của mình lên vai trò mới là Solution Architect. Lưu ý bài viết chỉ mang tính chất tham khảo từ kinh nghiệm cá nhân của mình.

Trước tiên, định nghĩa về Solution Architect

Có rất nhiều role về Architect trong một doanh nghiệp bao gồm: Enterprise architects, Domain architects, Solution architects, Data architects, Technical architects, Security architects, Infrastructure architects, Application architects hoặc thậm chí là Cloud Architect như AWS Architect hoặc Azure architects, …

Bài viết này không nhằm mục đích là giải thích từng role architect ở trên, mà tập trung vào Solution architects.

Có thể hiểu Solution Architect là người chịu trách nhiệm xây dựng giải pháp cho một bài toán hoặc yêu cầu cụ thể từ phía khách hàng. Solution Architect thường chịu trách nhiệm thiết kế mô hình kiến trúc giải pháp và tập trung giải quyết các yêu cầu phi chức năng (non-functional requirements), chẳng hạn như bảo mật, hiệu suất và khả năng mở rộng (scalability).

Để hiểu rõ hơn về các công việc phải làm của 1 Solution Architect, bạn có thể đọc series bài viết SOLUTIONS ARCHITECT SERIES

  Đâu là điểm khác biệt giữa Solution Architect và Software Architect?

  Giới thiệu về Clean Architecture – Phần 1

Tuy nhiên trong thực tế, Solution Architect có thể đảm nhận luôn vai trò của các Architect khác ví dụ như thiết kế infrastructure, security, data trên nhiều nền tảng khác nhau như on-premise hoặc on Cloud.

Có 2 role Architect rất dễ nhầm lẫn với Solution Architect đó là Technical ArchitectApplication Architect.

Trong khi Solution Architect chịu trách nhiệm thiết kế giải pháp toàn diện về nhiều khía cạnh như đã nói ở trên, thì Technical Architect có kiến thức chuyên sâu về một nền tảng hoặc công nghệ và họ có kinh nghiệm thực tế. Họ thường coaching các Developer, DevOps engineer trong việc triển khai giải pháp bằng việc đi sâu vào chi tiết kỹ thuật trong bản thiết kế high-level của Solution Architect.

Application Architect tập trung vào việc xây dựng các tính năng mà được yêu cầu. Không giống như các kiến trúc sư khác, họ không quan tâm nhiều đến các yêu cầu phi chức năng. Vai trò của họ là áp dụng các best practices và các pattern để tạo ra các ứng dụng dễ bảo trì và dễ đọc.

Tham khảo thêm các vị trí tuyển dụng Solution Architect lương cao tại Topdev

Các bước để trở thành một Solution Architect

Như đã đề cập, một Solution Architect cần phải có hiểu biết rất rộng về thiết kế hệ thống. Mô hình kiến thức họ áp dụng thường là T-shaped. Nghĩa là có chiều sâu về 1 hoặc vài lĩnh vực nào đó, và có chiều rộng về rất nhiều khía cạnh khác. Điều đó có nghĩa, con đường để trở thành Solution Architect không thể một sớm một chiều mà cần qua quá trình tôi luyện từ một developer bình thường đến một Technical Architect hoặc Application Architect để phát triển về chiều sâu trước.

Sau đó, để phát triển chiều ngang (rộng), có rất nhiều cách, và mình sẽ chia sẻ 1 số nguồn kiến thức để các bạn tham khảo.

Đầu tiên, hãy đọc sách để hiểu được một kiến trúc hoàn chỉnh cần có những thành phần nào cần chú ý khi thiết kế, và các công việc của 1 Solution Architect là gì. Mình khuyên đọc cuốn Solutions Architect’s Handbook được viết bởi Saurabh Shrivastava và Neelanjali Srivastav. Mình đã có 1 series tóm tắt cuốn sách ở đây: SOLUTIONS ARCHITECT SERIES

Tiếp theo là học các khái niệm, concept khi thiết kế một một hệ thống large scale gồm những thành phần gì. Bạn có thể tìm đọc về Software Architecture và System Design nó sẽ giúp bạn có thêm rất nhiều từ vựng trong việc thiết kế hệ thống sau này.

Sau đó hãy tìm đọc thêm các sách hoặc course nói về cách để thiết kế một hệ thống hoàn chỉnh. Ví dụ như: làm sao để thiết kế được ứng dụng chat như Whatsapp, thiết kế 1 sàn giao dịch chứng khoán như thế nào. Điều này sẽ giúp cho bạn có cái hình hands-on hơn từ những concept đã đọc ở phía trên. Có rất nhiều nguồn để tham khảo, chỉ cần Google với keyword: “System design” sẽ cho bạn nhiều kết quả. Mình recommend cuốn System Design Interview của Alex Xu.

Một xu hướng không thể không nhắc đến gần đây đó là Cloud Computing. Nói đến Cloud, chúng ta cũng cần có các vai trò như Cloud Developer, Cloud Architect, Cloud DevOps, Cloud Administrator… Rất nhiều doanh nghiệp đã và đang dịch chuyển lên Cloud. Cloud giúp cho việc hiện thực hóa các yêu cầu về phi chức năng trở nên dễ dàng hơn ví dụ như auto scaling, high availability, auto recovery, … nhưng cũng đặt ra nhiều thách thức hơn về chi phí, bảo mật và quản lý vận hành. Nếu bạn có ý định trở thành một Solution Architect thì hãy đi theo một nền tảng Cloud và trở thành một Cloud Architect. Có rất nhiều khóa học và chứng chỉ để giúp bạn thiết kế giải pháp trên Cloud ví dụ như: Exam AZ-305: Designing Microsoft Azure Infrastructure SolutionsAWS Certified Solutions Architect, …

Và cuối cùng, hãy tìm kiếm cơ hội được thử nghiệm và áp dụng kiến thức của mình vào các dự án thực tế.

Chúc bạn may mắn trên con đường trở thành một Solution Architect.

Bài viết gốc được đăng tải tại edwardthienhoang.wordpress.com

Có thể bạn quan tâm:

Xem thêm Việc làm Developer hấp dẫn trên TopDev