Devops Engineer từ lâu đã là một nghề hot trong bộ các ngành liên quan tới IT, bài viết này sẽ chỉ ra 8 bước trong lộ trình trở thành Devops Engineer.
DevOps Engineer không đơn thuần là thao tác với phần cứng, viết vài dòng CICD cho code auto run build deploy. 8 bước sau đây sẽ cho anh em cái nhìn tổng quan từng bước để trở thành kỹ sư DevOps.
Gét gô thôi anh em ơi!
1. Học một ngôn ngữ lập trình
Tin không vui cho anh em nào bảo chuyển qua devops không cần code củng gì nữa. Thực tế là bắt đầu để trở thành DevOps Engineer, ta vẫn cần kiến thức cơ bản của một ngôn ngữ lập trình.
Có thể là không được sâu như các Senior Software Engineer nhưng ít nhất cũng phải hiểu biết những thuật ngữ, khái niệm, concept cơ bản nhật của lập trình.
Devops Engineer không chỉ đơn thuần động tới phần cứng, Devops Engineer.
Chính vì vậy lộ trình trở thành Devops Engineer, bước đầu tiên không thể nào khác đi, đó là học một ngôn ngữ lập trình. Ở thời điểm hiện tại, một số ngôn ngữ lập trình sau được recommended nha anh em:
Thử nghĩ nếu một Devops Engineer vừa có thể debug code cho development team, vừa có thể đọc lock code, hiểu về các command và development thực hiện để run code. Ôi, ông devops ấy thật đáng ngưỡng mộ biết nhường nào.
Hơi lố nhưng sau khi đã nắm cơ bản về một ngôn ngữ lập trình, bước kế tiếp là tìm hiểu về hệ điều hành.
Nhiều việc làm DevOps lương cao trên TopDev, ứng tuyển ngay
2. Học về hệ điều hành (Operating System)
Bước thứ hai nhìn thì có vẻ dễ hơn bước một trong lộ trình trở thành DevOps Engineer nhưng thực tế là không phải vậy.
Cho dù là bạn có kinh nghiệm cài win dạo mười năm, hackintosh 5 năm thì hiểu sâu về hệ điều hành (operating system) lại là câu chuyện hoàn toàn khác. Devops Engineer làm việc ở đâu?, làm việc trên hệ điều hành chứ ở đâu. Nếu không hiểu về nó làm sao có thể nhận biết lỗi, làm sao có thể điều khiển nó hoạt động? Chính vì thế, tìm hiểu về Operating System là bắt buộc nha anh em.
Kế tiếp là các hệ điều hành hiện nay. Cái này thì không cần nói hầu như mọi người cũng biết. 3 hệ điều hành phổ biến hiện nay để tìm hiểu là:
- Linux (Khuyến khích)
- Unix
- Windows
Tại sao các máy chủ hiện tại lại yêu thích Linux. Trường hợp nào máy chủ Linux được ưu tiên hơn máy chủ Windows. Lợi và hại của từng loại máy chủ.
Ngoài tìm hiểu nội dung cơ bản, anh em cũng cần học về terminal, kể cả là có GUI hay không có GUI anh em cũng chiến rầm rầm. Mở terminal lên là deploy thôi.
Tiện đây giới thiệu cho anh em con Terminus, xài bao đã, remember vào cứ click và bay thẳng vào server gõ lạch cạch.
Anh em có thể tìm hiểu thêm về sự khác biệt giữa các hệ điều hành tại đây.
3. Tìm hiểu về mạng máy tính, bảo mật (networking security ) và các phương thức (protocols)
Sau khi đã thành thạo bá đạo các hệ điều hành rồi. Tới độ mở terminal lên là gõ thôi, mọi câu lệnh nằm trong đầu, không phải tra cái gì cả.
Nhắm mắt vào cũng rm -rf, pm2 delete rầm rầm thì xin chúc mừng anh em đã qua bước thứ 2 trong lộ trình trở thành DevOps Engineer. Bước thứ 3 là tìm hiểu về mạng máy tính, bảo mật và các phương thức (protocols).
Bước này có một số khái niệm cơ bản anh em phải nắm vững:
- HTTP
- HTTPS
- SSL
- SSH
Ví dụ như HTTP, anh em cần tìm hiểu thật sâu nó có những phương thức nào (tham khảo bài Http Methods: thất tinh bắc đẩu trận). Nếu có điều kiện thì thực hành với postman, sự khác biệt giữa các methods là gì?. Thực tế lúc nào cần xài cái nào?
Ngoài những thông tin trên, rõ ràng là bất cứ ứng dụng nào cũng sẽ có protocols (phương thức) giao nhận để truyền đạt thông tin. Mỗi giao thức lại hỗ trợ một kiểu khác nhau, nên anh em cần nắm kỹ.
- TCP/IP (Transmission Control Protocol/Internet Protocol) suite.
- ARP (Address Resolution Protocol)
- DHCP (Dynamic Host Configuration Protocol)
- DNS (Domain Name System)
4. Học về Infrastructure
Sau khi đã nắm kiến thức về Security và Protocols thì bước kế tiếp là tìm hiểu về Infrastructure. Bước thứ 4 trong lộ trình trở thành Devops Engineer không đơn giản.
Infrastructure as Code (IaC) là công việc hợp lý hoá, thiết kế và phân tích cơ sở hạ tầng để triển khai ứng dụng. Các ứng dụng khác nhau lại có yêu cầu về cơ sở hạ tầng khác nhau.
Ví dụ, một ứng dụng truyền đạt dữ liệu đơn giản có thể không yêu cầu nhiều về mặt hạ tầng. Nhưng với những dự án có sử dụng thiết bị IoT hoặc các thiết bị truyền đạt dữ liệu lớn, việc thiết kế hạ tầng đòi hỏi cần người có trình độ cao, có kinh nghiệm.
Bước này có lẽ là bước tốn nhiều thời gian nhất để trở thành một Devops Engineer giỏi. Ngoài việc nắm chắc kiến thức, bước này còn cần thời gian để thực hành. Cơ hội để tham gia vào dự án thực tế.
5. Lấn sâu vào CI (Continuous Integration) và CD (Continuous Deployment)
Nghe có vẻ hơi ngược trong lộ trình trở thành DevOps Engineer nhưng bước thứ 5 lại là lấn sâu vào CI và CD. Thực tế CI và CD không hề khó nếu anh em đã có kiến thức nền ở các bước số 1 và 2.
Tích hợp liên tục (CI) và Triển khai liên tục (CD) là nguyên tắc trung tâm và cốt lõi cho Devops Engineer. Bản thân công việc của người kỹ sư là tự động hoá để làm sao việc phát triển, triển khai các ứng dụng được thực hiện liên tục, không có sự ngắt quãng.
Để đạt được việc này, hầu hết các kỹ sư giỏi đều nắm chắc các công cụ hỗ trợ CI, CD. Sau khi thiết lập hoàn thiện các phần này, công sức triển khai không còn là bao nhiêu.
Một số cái tên có thể liệt kê ra đây để anh em tìm hiểu:
- GitHub
- GitLab
- Bamboo
- Jenkins
Ở trình độ cao hơn, một số anh em có thể tự xây dựng CI, CD cho riêng bản thân mình. Có thể một số tính năng như count time, log, auto retries chưa có, nhưng cũng không phải là điều không thể.
6. Hiểu sâu về Application Monitoring và Infrastructure Monitoring.
Sau khi đã triển khai CI, CD thành công. Bước thứ 6 trong lộ trình trở thành DevOps Engineer là Monitoring.
Trong bài viết này mình chia thành 2 loại là Applicaiton Monitoring và Infrastructure Monitoring.
Vậy Monitoring là gì?. Bản thân nó là giám sát, sau khi đã triển khai ứng dụng, trong quá trình vận hành làm sao anh em có thể giám sát. Trường hợp có sự cố hoặc tiềm tàng phát hiện sự cố, việc giám sát giúp hạn chế rủi ro, hạn chế thiệt hại khi có sự cố phát sinh.
6.1 Application Monitoring
Theo dõi ứng dụng ở đây là theo dõi các thông số hoạt động liên quan tới ứng dụng. Các chỉ số này bao gồm các tính năng liên quan tới ứng dụng. Nếu có một form đăng ký, bình thường hàng ngày số lượt đăng ký là 300. Nếu hôm nay tự nhiên là 5, vậy có khả năng nó có vấn đề.
Một số công cụ Application Monitoring anh em có thể tham khảo:
- Prometheus (recommended)
- Nagios
- Datadog
6.2 Infrastructure Monitoring
Infrastructure theo dõi ở cấp độ hạ tầng, kết nối giữa ứng dụng và các hạ tầng khác liên quan. Ví dụ một ứng dụng IoT có lưu dữ liệu lên đám mây. Nếu kết nối cloud có vấn đề, việc theo dõi có thể ngăn chặn sớm lỗi này.
Một số công cụ Infrastructure Monitoring anh em có thể tham khảo:
- New Relic (recommended)
- Jaeger
- AppDynamics
7. Tìm hiểu về các dịch vụ cloud.
Hầu hết các ứng dụng hiện này đều được host trên cloud. Mỗi bên cung cấp dịch vụ về cloud lại có một tài liệu kỹ thuật riêng. Dịch vụ cloud cung cấp bảo mật, khả năng mở rộng
Bước thứ 7 trong lộ trình trở thành DevOps Engineer là tìm hiểu và thi lấy chứng chỉ nếu được cho các Cloud Provider này. Việc thi chứng chỉ sẽ bao gồm rất nhiều hạng mục:
- Sử dụng Cloud như thế nào
- Tính toán chi phí
- Ước lượng, thiết kế hạ tầng cloud cho ứng dụng
Việc tìm hiểu, thực hành cho các bên cung cấp dịch vụ Cloud là bắt buộc. Có thể kể tới đây một số bên cung cấp dịch vụ cloud lớn nhất hiện nay:
- AWS (recommended)
- Azure
- Google Cloud
- Heroku
8. Nắm chắc, hiểu sâu về cloud design patterns
Sau khi đã thành thạo và hiểu sâu về các bên cung cấp dịch vụ cloud. Bước cuối cùng để trở thành DevOps Engineer trình độ cao là hiểu biết về Cloud Design Pattern.
Design Pattern là các pattern cần tuân theo để thiết kế Cloud sao cho có khả năng mở rộng, đạt được độ tin cậy và bảo mật.
Một ví dụ đơn giản là giải quyết bài toán độ trễ (high latency) trong hệ thống cloud.
Một số lĩnh vực anh em có thể tìm hiểu về Cloud Design Pattern bao gồm:
- Availability
- Data Management
- Design and Implementation
9. Tham khảo thêm về lộ trình trở thành devops engineer
Anh em lưu ý là lộ trình tui đề xuất ra đây là lộ trình cơ bản và không bao gồm tất cả những nội dung anh em cần học để trở thành DevOps Engineer nha. Lộ trình để tham khảo thôi đấy.
Chứ đi theo lộ (đường) thì đôi khi mỗi anh em lại hợp với một loại đường. Có anh em thích đi đường nhựa tay ga, có anh em thích đi đường đá chân trần. Anyway
Cảm ơn anh em đã dành thời gian đọc bài. Thank you for your time – Happy Coding
Anh em có thể tham khảo tin tuyển dụng DevOps để phát triển sự nghiệp nhé!
Tác giả: Kiên Nguyễn
Xem thêm:
- Java Developer là gì? Lộ trình để trở thành Java Developer
- Backend Developer là gì? Lộ trình trở thành Backend Developer
- Fresher, Junior, Senior là gì? Yêu cầu và nhiệm vụ
Tìm việc làm IT mới nhất trên TopDev