Sony Huynh
SRE có thể được coi là bước triển khai của DevOps, nhưng nó sẽ khác một chút. Tụi anh duy trì và phát triển cơ sở hạ tầng để các team làm việc dựa trên cơ chế tương hỗ. Đó là về việc thiết lập văn hóa làm việc, các tool nội bộ và môi trường để engineer có thể tự vận hành công việc. Ví dụ: nếu dự án dùng Flutter, tụi anh sẽ lo việc set up CI / CD, pipeline hoặc cơ sở hạ tầng.
Anh đã có hơn 4 năm làm việc trong lĩnh vực phần mềm, mặc dù anh học chuyên ngành khác - Kỹ thuật máy tính, hệ thống nhúng. Anh dành hai năm đầu tiên làm hệ thống Viễn thông tại Ericsson, sau đó là gần một năm làm DevOps cho một công ty khởi nghiệp. Cho tới khi chuyển đến Teko, nơi anh đã giúp thiết lập nền tảng cho các quy trình vận hành và tech stack. Tụi anh hiện đang thu hẹp khoảng cách giữa phát triển và vận hành bằng GitOps - nó hỗ trợ hoàn chỉnh lịch sử của việc môi trường đã thay đổi thế nào. Tụi anh quản lý hầu hết mọi thứ theo khái niệm GitOps, từ cloud, di chuyển dữ liệu, ACL, cấu hình Gateway, Kubernetes và những việc liên quan khác.
Anh nghĩ rằng, nếu chúng ta thu thập được một mức độ kiến thức và kinh nghiệm nhất định, thì việc chuyển vị trí làm việc không phải là một vấn đề lớn. Mọi người vẫn có thể làm 3-5 năm cho một vị trí, nhưng chắc gì họ thực sự hiểu được bản chất của nó. Mình phải thực sự làm việc ở mọi cấp độ cần thiết; nếu không thì, không thể giải quyết những vấn đề liên quan đến cơ sở hạ tầng và scaling được. Điều này cũng là sự khác biệt giữa DevOps / SRE với các engineer. Không phải lúc nào cũng là run code.
Quá trình phát hành một sản phẩm hoặc chuyển nó từ development environment sang product environment gặp rất nhiều khó khăn. Ứng dụng của mình có thể chạy thử nghiệm rất tốt nhưng vẫn có thể gặp sự cố ngay tại thời điểm bắt đầu lên production. Trở ngại thứ hai là vấn đề scaling. Scaling là việc làm sao xử lý một lượng lưu lượng truy cập rất lớn xảy ra đồng thời, chứ không phải số lượng tính năng hay bao nhiều dòng code trong ứng dụng đó. Nó đòi hỏi phải rất vững chắc về cơ sở hạ tầng và thiết kế phần mềm, để có thể scaling theo thời gian mà vẫn hoạt động tốt nhất.
Đến startup thì đó là một hướng đi hoàn toàn khác. Hầu hết cái startups đều mong muốn release sản phẩm nhanh nhất để lấy đi gọi vốn đầu tư. Để làm được việc đó thì, các startups phải đảm bảo tính năng chạy mượt mà để đảm bảo app chạy được và giải quyết được vấn đề đã đặt ra. Với góc nhìn của Founder thì thời điểm phát triển cực quan trọng. Nhưng đối với engineer như tụi anh, đó là rủi ro technical debt và có thể phải dựng lại mọi thứ từ đầu. Ở startups thì việc đập đi xây lại hệ thống không phải chuyện hiếm. Tuy nhiên, anh nghĩ giải pháp thực sự vẫn còn bỏ ngỏ.
Với anh, thích ứng được với văn hoá công ty là điều cần phải làm trước tiên vì phần lớn thời gian là mình làm việc nhóm và giao tiếp với nhau. Đương nhiên tụi anh vẫn luôn cập nhật xem các đội khác đang muốn làm gì. Nó giúp cả công ty được “đồng bộ hóa” và đảm bảo mọi người đều có cùng một mục tiêu, và cũng dễ hơn nếu có phải phân bố lại nguồn lực. Trong một công ty nhỏ thì culture fit là điều cần thiết, nhưng cả team vẫn phải có chung tầm nhìn với công ty về lâu về dài.