Bạn đang tìm kiếm một lộ trình để trở thành một kỹ sư devops trong tương lai? Dưới đây là một roadmap chuẩn mà tôi đưa ra cho bạn, tham khảo từ một nguồn trên github đã được cộng đồng đánh giá cao (https://github.com/milanm/DevOps-Roadmap)

Nguồn: https://github.com/milanm/DevOps-Roadmap

Tài nguyên học tập dành cho bạn (hầu hết miễn phí)

1. GIT

Tất cả tài nguyên (tệp) của bạn sẽ được giữ trong kho lưu trữ GIT. Những tệp đó là code ứng dụng nhưng cũng có thể là cơ sở hạ tầng dưới code (iac – infrastructure as code) .

Git là một công cụ miễn phí dùng để quản lý mã nguồn. Git được sử dụng để theo dõi các thay đổi trong mã nguồn, cho phép nhiều nhà phát triển làm việc cùng nhau trong quá trình phát triển phi tuyến tính.

Hai nền tảng Git phổ biến nhất là GitLab và GitHub .

Tại đây, bạn cần tìm hiểu các lệnh Git, như git clone, branch, merge và cách cộng tác trên một dự án với các yêu cầu pull.

Tài nguyên:

2. Học một ngôn ngữ lập trình

Là một kỹ sư, bạn nên biết ít nhất một ngôn ngữ lập trình mà bạn có thể sử dụng để viết các file lệnh tự động hóa .

Một số ngôn ngữ lập trình phổ biến cho DevOps là Python, Go và JavaScript .

Python là một ngôn ngữ đa mô hình. Là một ngôn ngữ thông dịch, mã được thực thi ngay khi được viết và cú pháp cho phép viết mã theo nhiều cách khác nhau. Python thường được đề xuất là ngôn ngữ đầu tiên mà các lập trình viên mới nên học vì nó tập trung vào khả năng đọc, tính nhất quán và dễ sử dụng.

Ở đây bạn cần học các khái niệm cơ bản về ngôn ngữ lập trình, chẳng hạn như cú pháp, if/else, vòng lặp, cấu trúc dữ liệu, v.v.

Tài nguyên:

3. Tìm hiểu Linux & Viết kịch bản

Hệ điều hành đóng vai trò là cầu nối giữa người dùng máy tính và phần cứng của nó. Chức năng của nó là cung cấp một cài đặt trong đó người dùng có thể chạy các chương trình một cách thuận tiện và hiệu quả.

Vì hầu hết các máy chủ đều sử dụng HĐH Linux nên bạn cần làm cho mình cảm thấy thoải mái với Linux và CLI của nó.

Một bản phân phối dễ bắt đầu là Ubuntu .

Ngoài ra, bạn cần biết viết kịch bản để tự động hóa các tác vụ phát triển và vận hành.

Tại đây, bạn có thể học các ngôn ngữ dành riêng cho hệ điều hành, chẳng hạn như Bash hoặc Powershell hoặc độc lập, như Python hoặc Go.

Tài nguyên:

4. Tìm hiểu Mạng & Bảo mật

Giao thức mạng là một bộ quy tắc được thiết lập để xác định cách dữ liệu được truyền giữa các thiết bị khác nhau trong cùng một mạng. Về cơ bản, nó cho phép các thiết bị được kết nối giao tiếp với nhau, bất kể sự khác biệt về quy trình, cấu trúc hoặc thiết kế bên trong của chúng.

Tại đây, bạn sẽ cần biết cách thức hoạt động của mạng, cách định cấu hình tường lửa , hiểu cách thức hoạt động của DNS , mô hình OSI , địa chỉ IP, cổng, v.v.

Tài nguyên:

5. Tìm hiểu quản lý máy chủ

Quản lý máy chủ bao gồm tất cả hoạt động giám sát và bảo trì cơ sở hạ tầng cần thiết để máy chủ hoạt động đáng tin cậy và ở mức hiệu suất tối ưu. Các mục tiêu chính của chiến lược quản lý máy chủ hiệu quả là:

  • Giảm thiểu sự chậm trễ và thời gian ngừng hoạt động của máy chủ trong khi tối đa hóa độ tin cậy.
  • Xây dựng môi trường máy chủ an toàn.
  • Mở rộng quy mô máy chủ và các hoạt động liên quan để đáp ứng nhu cầu của tổ chức theo thời gian.

Tại đây, bạn sẽ cần biết thế nào là forward proxy và reverse proxy , caching server và cách vận hành Web server , chẳng hạn như Nginx, Apache hoặc IIS.

Tài nguyên:

6. Tìm hiểu về Container

Container là một đơn vị phần mềm tiêu chuẩn đóng gói mã và tất cả các phần phụ thuộc của nó, vì vậy ứng dụng chạy nhanh và đáng tin cậy từ môi trường điện toán này sang môi trường điện toán khác.

Docker cho đến nay là công nghệ container phổ biến nhất hiện nay. Docker container image là một gói phần mềm nhẹ, độc lập, có thể thực thi được, bao gồm mọi thứ cần thiết để chạy ứng dụng: code, runtime, công cụ hệ thống, thư viện hệ thống và cài đặt. Ở đây bạn cần biết cách chạy các container, Docker Networking, Volumes, Dockerfiles và chạy nhiều container với Docker-Compose.

Tài nguyên:

7. Tìm hiểu Container Orchestration

Container Orchestration tự động hóa việc triển khai, quản lý, thay đổi quy mô và nối mạng vùng chứa.

Container Orchestration có thể được sử dụng trong bất kỳ môi trường nào mà bạn sử dụng container. Nó có thể giúp bạn triển khai cùng một ứng dụng trên các môi trường khác nhau mà không cần phải thiết kế lại nó. Và các micro service trong container giúp dễ dàng sắp xếp các service hơn, bao gồm lưu trữ, kết nối mạng và bảo mật.

Tại đây, bạn cần tìm hiểu cách thức hoạt động của Kubernetes cũng như cách quản trị cụm Kubernetes và triển khai các ứng dụng trên đó.

Tài nguyên:

8. Tìm hiểu Infrastructure as code

Đôi khi được gọi là IaC , nó đề cập đến các kỹ thuật và công cụ được sử dụng để xác định cơ sở hạ tầng, điển hình là bằng ngôn ngữ đánh dấu như YAML hoặc JSON. Infrastructure as code cho phép Kỹ sư tự động hóa việc thiết lập và phân tích môi trường. Tăng tốc và loại bỏ rủi ro triển khai bằng cách cung cấp môi trường sao chép vàng theo yêu cầu.

Terraform là công cụ cung cấp cơ sở hạ tầng phổ biến nhất, ngoài ra còn có những công cụ khác như Ansimble, Chef, Puppet và Vagrant.

Ở đây bạn cần biết cách cung cấp cơ sở hạ tầng và quản lý cấu hình .

Tài nguyên:

9. Tìm hiểu CI/CD

Tích hợp liên tục/Triển khai liên tục (CI/CD) là phương pháp phân phối ứng dụng thường xuyên cho khách hàng bằng cách đưa tự động hóa vào các giai đoạn phát triển ứng dụng. CI/CD là một giải pháp cho các vấn đề tích hợp code mới có thể gây ra cho nhóm phát triển và vận hành.

CI/CD giới thiệu khả năng tự động hóa liên tục và giám sát liên tục trong suốt vòng đời của ứng dụng, từ giai đoạn tích hợp và thử nghiệm đến phân phối và triển khai. Các thực tiễn được kết nối này thường được gọi là ” CI/CD Pipeline ” và được hỗ trợ bởi các nhóm vận hành và phát triển.

Có nhiều giai đoạn khác nhau trong quy trình CI/CD, chẳng hạn như: build, test và deploy , nhưng có thể có nhiều hoạt động hơn bao gồm:

  • Kiểm tra từ các version control (git, svn …) và build nó
  • Có stage khác nhau cho việc approve.
  • Quản lý biến môi trường
  • Khởi động lại dịch vụ
  • Chạy các test case
  • Và hơn thế nữa…

Tại đây, bạn cần tìm hiểu cách thiết lập máy chủ CI/CD, tự động tích hợp mã và kích hoạt pipelone cũng như xây dựng và đóng gói các công cụ quản lý.

Một số công cụ CI/CD phổ biến là Jenkins, TeamCity, CircleCI, Bamboo, GitLab và Azure DevOps.

Tài nguyên:

10. Tìm hiểu Monitoring & Observability

Monitoring & Observability toàn bộ quá trình phát triển từ lập kế hoạch, phát triển, tích hợp và thử nghiệm, triển khai và vận hành. Nó liên quan đến việc giám sát theo thời gian thực về trạng thái của các ứng dụng, dịch vụ và cơ sở hạ tầng trong môi trường production.

Điều này đặc biệt quan trọng khi phần mềm của chúng ta đang chạy phục vụ người dùng và chúng ta cần theo dõi tất cả các loại sự cố trong cơ sở hạ tầng và ứng dụng của mình.

Hai công cụ phổ biến nhất là Prometheus và Grafana .

Ở đây bạn cần biết cách thiết lập giám sát và trực quan hóa dữ liệu.

Tài nguyên:

11. Tìm hiểu một dịch vụ cung cấp điện toán Đám mây (Cloud provider)

Các nhà cung cấp đám mây cung cấp một lớp API cho cơ sở hạ tầng trừu tượng và cung cấp nó dựa trên ranh giới bảo mật và thanh toán. Đám mây chạy trên các máy chủ trong trung tâm dữ liệu, nhưng phần trừu tượng hóa khéo léo tạo ra hình thức tương tác với một “nền tảng” đơn lẻ hoặc ứng dụng lớn. Khả năng cung cấp, định cấu hình và bảo mật tài nguyên một cách nhanh chóng với các nhà cung cấp đám mây là chìa khóa cho cả sự thành công to lớn và độ phức tạp của DevOps hiện đại.

Các nhà cung cấp đám mây phổ biến nhất trên thị trường là AWS và Azure , cũng như Google Cloud .

Ở đây bạn cần biết cách quản lý người dùng và quản trị, mạng, máy chủ ảo, v.v.

Tài nguyên:

12. Tìm hiểu Kỹ thuật Phần mềm trong Thực tiễn

Là một kỹ sư DevOps, bạn có thể sẽ làm việc theo nhóm với các nhà phát triển khác trong thế giới Agile, chẳng hạn như Scrum . Vì vậy, điều rất quan trọng là phải biết các phần khác nhau của SDLC , cũng như các công cụ được sử dụng ở đó.

Ngoài ra, sẽ rất tốt nếu bạn biết cách thức hoạt động của kiểm thử tự động , vì bạn sẽ cần thiết lập nó theo cách CI/CD.

Ở đây bạn cần biết Scrum là gì , tất cả các giai đoạn của SDLC , cách hoạt động của kiểm thử tự động , v.v.

Tài nguyên:

tài nguyên bổ sung

Công cụ

Sách

Tổng kết

Trên đây là lộ trình để bạn có thể bắt đầu với lĩnh vực devops. Nếu bạn có góp ý hoặc đóng góp xin vui lòng comment hoặc gửi feedback qua email cho mình. Lỗ trình sẽ luôn được update liên tục.

4 2 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments