Chúng ta đã cùng ITguru tìm hiểu DevOps là gì và những lợi ích của DevOps trong một bài viết trước. Tuy nhiên, có rất nhiều quan niệm sai lầm liên quan đến kỹ sư DevOps. Kỹ sư DevOps là người viết code hay là người thực hiện công việc tương tự một kỹ sư hệ thống? Trong bài này, chúng ta hãy tìm hiểu xem DevOps Engineer là gì và làm gì. Xem Vai trò và trách nhiệm của một Kỹ sư DevOps trong tổ chức cùng với các kỹ năng cần có và mức thu nhập của những người làm vị trí này.
DevOps là gì?
Trước hết hãy quay lại với khái niệm: DevOps là gì?
DevOps là một chiến lược phát triển phần mềm giúp thu hẹp khoảng cách giữa nhóm phát triển (Dev) và bộ phận vận hành IT (tức Ops). Với DevOps, các tổ chức có thể phát hành các tính năng nhỏ và nhanh chóng nhận các feedback (phản hồi). Bên cạnh đó, DevOps còn có những lợi ích khác:
- Giảm thiểu lỗi.
- Rút ngắn thời gian chờ giữa các lần sửa
DevOps khắc phục tất cả các hạn chế của mô hình waterfall truyền thống. Quá trình DevOps bao gồm nhiều công nghệ (phát triển, kiểm thử và triển khai) được dùng để xây dựng CI/CD (continuous integration and continuous delivery) Pipelines . Một số công cụ DevOps thông dụng được biết đến :
- Git & GitHub – Quản lý mã nguồn (Hệ thống kiểm soát phiên bản)
- Jenkins – Máy chủ tự động, với các plugin được xây dựng để phát triển CI / CD pipelines
- Selenium – Kiểm thử tự động
- Docker – Container hóa phần mềm
- Kubernetes – Công cụ điều phối container
- Puppet – Quản lý cấu hình và triển khai
- Chef – Quản lý cấu hình và triển khai
- Ansible – Quản lý cấu hình và triển khai
- Nagios – Giám sát liên tục
Bạn có thể xem thêm:
DevOps Engineer làm gì?
Kỹ sư DevOps là người hiểu rõ về chu kỳ phát triển phần mềm (Software Development Life Cycle – SDLC) . Họ cũng là người hiểu toàn diện về các công cụ tự động hóa khác nhau được dùng trong CI/CD pipelines.
Kỹ sư DevOps làm việc với lập trình viên và nhân viên IT để giám sát việc release code. Họ có thể xuất phát là các lập trình viên, quan tâm đến việc triển khai và vận hành mạng. Hoặc họ là các sysadmin (quản trị hệ thống) có niềm đam mê viết script và coding, chuyển sang mảng phát triển nơi họ có thể cải thiện việc lập kế hoạch kiểm thử và triển khai. Đôi lúc, người làm DevOps là developer hay sysadmin kiêm nhiệm luôn trọng trách của một DevOps trong khi vẫn tiếp tục với vai trò chính của mình.
Vai trò và trách nhiệm của chuyên gia DevOps.
Tùy theo nhu cầu, kỹ sư DevOps có thể nắm nhiều vai trò khác nhau trong tổ chức.
DevOps Evangelist
DevOps Evangelist có thể coi là người truyền lửa và có vai trò quan trọng, chịu trách nhiệm đảm bảo các chiến lược DevOps được triển khai xuyên suốt. Người ở vị trí này cũng có trách nhiệm tìm những phương cách khác nhau để cải tiến kiến trúc sản phẩm. Họ phải luôn chú ý đến những công cụ quản lý tự động và những kỹ năng mà team Dev va Ops đang có để sử dụng một cách hiệu quả nhất. DevOps Evangelist cũng chịu trách nhiệm quản lý các DevOps khác, đảm bảo team DevOps hoạt động hiệu quả.
Release Manager
Release Manager chịu trách nhiệm release các tính năng mới và đảm bảo sự ổn định của sản phẩm sau release. Người ở vị trí này tập trung vào việc phối hợp và quản lý sản phẩm từ lúc phát triển đến khi triển khai. Để làm ở vị trí này, bạn phải phải là người nắm vững kỹ thuật, hiểu rõ cách hệ thống hoạt động thế nào.
Automation Expert
Automation Expert hay còn gọi là Integration Specialist, có trách nhiệm phân tích, thiết kế và triển khai các chiến lược phục vụ cho việc triển khai liên tục nhưng vẫn đảm bảo độ tin cậy, tính sẵn sang của ứng dụng. Vai trò này rất quan trọng vì tự động hóa là trái tim của DevOps. Người giữ vai trò nàu cần phải hiểu những gì có thể tự động hóa được, làm thế nào để product stack này có thể tích hợp với product stack khác.
Software developer/tester
Vai trò của software developer và tester là rất rõ ràng. Đây là người phát triển, kiểm thử ứng dụng. Họ là nhân tố chính chính trong việc phát triển các ứng dụng. Ngày nay, trách nhiệm của developer ngàng càng tăng lên, không chỉ chuyển từ yêu cầu (requirements) sang code mà còn là kiểm thử, triển khai và cả theo dõi quản trị về sau.
Quality Assurance
Vai trò của QA khá mới đối với DevOps dù trong công nghệ phát triển phần mềm nó không hề xa lạ. Tên gọi khác của QA trong DevOps là Experience Assurance, và không chỉ là kiểm thử đơn thuần mà còn tìm kiếm cơ hội để cải tiến các tình năng của sản phẩm.
Security Engineer
Một vai trò khác không kém phần quan trọng là Security Engineer với trách nhiệm theo dõi tiến trình triển khai ứng dụng. Họ làm việc trực tiếp với các developers, đưa ra những yêu cầu về bảo mật cho sản phẩm ngay từ giai đoạn đầu của việc phát triển. Bên cạnh đó, Security Engineer còn kiểm tra hiệu suất, tìm nguyên nhân khi hệ thống bị downtime. Nhưng việc quan trọng hơn cả là ngăn chặn các rủi ro tìm ẩn về bảo mật hay downtime.
Kỹ năng cần có để làm trong lĩnh vực DevOps
Để làm trong lĩnh vực DevOps bạn cần có những kỹ năng sau
Biết về nền tảng Linux và ngôn ngữ kịch bản (scripting language)
Là một chuyên gia DevOps, bạn có thể phải tự động hóa nhiều quy trình. Và như vậy bạn cần phải biết ít nhất một ngôn ngữ kịch bản (scripting language, tức ngôn ngữ không cần biên dịch) như Python, Ruby, Pearl… Nhiều công ty sử dụng môi trường Linux cũng như các công cụ quản lý cấu hình (Configuration Management Tools) như Puppet, Chef, Ansible đều chạy các các master nodes trên Linux.
Có kiến thức về các công nghệ và công cụ sử dụng cho DevOps
Có nhiều giai đoạn (phase) trong DevOps và với mỗi giai đoạn các công cụ khác nhau được sử dụng. Bạn cần có kiến thức về các công nghệ phát triển, kiểm thử và triển khai để áp dụng trên các công cụ khác nhau đó.
Tích hợp và triển khai liên tục
Có kiến thức về công cụ chưa đủ, bạn cần phải biết nơi nào và khi nào ứng dụng các tool đó. Các tool này được dùng một cách hợp lý để đảm bảo việc tích hợp và triển khai liên tục trong DevOps.
Infrastructure As Code:
Infrastructure as Code (IAC) là một kiểu cơ sở hạ tầng IT mà team vận hành có thể cung cấp và quản lý tự động bằng cách sử dụng code thay vì làm một cách thủ công. Infrastructure As Code đôi lúc được gọi là Cơ sở hạ tầng có thể lập trình được (Programmable infrastructure).
IAC đã xóa nhòa khoảng cách giữa developer và những người làm hệ thống. Có nhiều tool hỗ trợ cho việc này như Puppet, Chef, Ansible, Saltstack…
Nếu bạn muốn trở thành một chuyên gia về DevOps, bạn phải có những kỹ năng về IAC.
Các khái niệm chính về DevOps
DevOps không phải là một công nghệ, DevOps là một phương pháp. Phương pháp này đưa Dev và Ops gần nhau, giúp release các ứng dụng có chất lượng và nhanh chóng. Nếu bạn hiểu rõ các khái niệm của DevOps bạn có thể cung cấp các giải pháp khác nhau một cách hiệu quả.
Kỹ năng mềm
Các kỹ năng mềm như giao tiếp là rất cần thiết với các chuyên gia DevOps. Khi các developers và team vận hành giao tiếp một cách hiệu quả sẽ nâng cao hiệu quả của việc release phần mềm, nâng cao chất lượng với chi phí giảm. Ngoài ra các kỹ năng khác như kỹ năng lắng nghe, đàm phán, giải quyết vấn đề và làm việc nhóm cũng rất quan trọng.
Mức lương của DevOps Engineer
Kỹ sư DevOps là một trong những người công việc được trả lương cao trong lĩnh vực IT. Tất nhiên nếu bạn ở Mỹ, châu Âu hay Việt Nam thì mức lương sẽ khác nhau nhưng nhìn chung lương DevOps Engineer ở mức cao. Ví dụ ở Mỹ lương trung bình là 121,589 đô la Mỹ mỗi năm theo khảo sát của Indeed vào cuối năm 2018. Tại Việt Nam, theo khảo sát của TopDev vào đầu năm 2020 , mức lương của DevOps engineer vào khoảng 1,894 USD/tháng, thuộc hàng cao nhất trong ngành. Báo cáo không đề cập đến số năm kinh nghiệm để đạt mức lương này.
Tổng hợp từ Edureka.co và các nguồn khác.
Bạn có biết?
tham gia cộng đồng ITguru trên Linkedin, Facebook và các kênh mạng xã hội khác có thể giúp bạn nhanh chóng tìm được những chủ đề phát triển nghề nghiệp và cập nhật thông tin về việc làm IT mới nhất
Linkedin Page:
Facebook Group:
cơ hội việc làm IT : ITguru.vn