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)
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:
- Sách Git chuyên nghiệp MIỄN PHÍ
- Học Git bằng Atlassian MIỄN PHÍ
- Tìm hiểu phân nhánh Git MIỄN PHÍ
- Tìm hiểu Git & GitHub trên CodeAcademy MIỄN PHÍ
- Trình khám phá lệnh Git MIỄN PHÍ
- Git Immersion MIỄN PHÍ
- Tài liệu tham khảo Git trực quan MIỄN PHÍ
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:
- Cuốn sách Tự động hóa những công việc nhàm chán bằng Python MIỄN PHÍ
- Khóa học Python Crash MIỄN PHÍ
- Hướng dẫn JavaScript hiện đại MIỄN PHÍ
- Khóa học JavaScript Crash dành cho người mới bắt đầu MIỄN PHÍ
- Eloquent JavaScript, ấn bản thứ 3 , sách MIỄN PHÍ của Marjin Haverbeke
- Học Go bằng các ví dụ MIỄN PHÍ
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:
- Hệ điều hành – Tổng quan MIỄN PHÍ
- Hướng dẫn viết kịch bản Shell MIỄN PHÍ
- Hướng dẫn Powershell cho người mới bắt đầu: Tìm hiểu Powershell Scripting MIỄN PHÍ
- Hướng dẫn tham khảo Bash MIỄN PHÍ
- Hướng dẫn cơ bản: Bắt đầu với Ubuntu MIỄN PHÍ
- Sổ tay FreeBSD MIỄN PHÍ
- Sổ tay lệnh Linux MIỄN PHÍ
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:
- Giải thích mô hình OSI MIỄN PHÍ
- Mạng máy tính: Cách tiếp cận từ trên xuống
- Khóa học Cơ bản về TCP/IP và Mạng dành cho Chuyên gia CNTT về Pluralsight
- DevSecOps : Bảo mật tổng thể CI/CD | Khóa học DevOps Pipeline Udemy
- Bảo mật Thực hành trong DevOps: Đảm bảo bảo mật, triển khai và phân phối liên tục với DevSecOps Book
- Bảo mật DevOps: Bảo mật trong Cloud Book
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:
- Reverse proxy là gì? MIỄN PHÍ
- Cache server MIỄN PHÍ
- Proxy ngược so với Proxy chuyển tiếp: Sự khác biệt MIỄN PHÍ
- Cân bằng tải là gì? MIỄN PHÍ
- Tường lửa là gì? MIỄN PHÍ
- Sổ tay NGINX MIỄN PHÍ
- Tìm hiểu máy chủ Apache MIỄN PHÍ
- Tìm hiểu IIS MIỄN PHÍ
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:
- Container là gì? MIỄN PHÍ
- Học Container từ dưới lên MIỄN PHÍ
- Hướng dẫn Docker cho người mới bắt đầu của TechWorld với Nana MIỄN PHÍ
- Docker Mastery: với Kubernetes + Swarm từ khóa học Docker Captain Udemy
- Service mesh là gì? MIỄN PHÍ
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:
- Kubernetes Crash Course dành cho người mới bắt đầu của TechWorld với Nana MIỄN PHÍ
- Mở đầu: Kubernetes ra đời như thế nào, nó là gì và tại sao bạn nên quan tâm đến bài viết
- Quản trị viên Kubernetes được chứng nhận (CKA) với khóa học Kiểm tra thực hành Udemy
- Tìm hiểu Kubernetes – Khóa học từ mới bắt đầu đến nâng cao của KodeKloud
- Hiểu khi nào nên sử dụng Dịch vụ cụm, Đường vào hoặc Cổng API MIỄN PHÍ
- Hiểu những vấn đề mà Service mesh cần giải quyết (Sử dụng Trừu tượng smi-spec.io MIỄN PHÍ
- Tìm hiểu cách tự động hóa TLS và DNS MIỄN PHÍ
- Kubernetes Up and Running
- Lộ trình học tập Kubernetes – 50 ngày từ con số 0 đến người hùng từ Microsoft MIỄN PHÍ
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:
- GUI, CLI, API: Tìm hiểu các điều khoản cơ bản về cơ sở hạ tầng dưới dạng mã MIỄN PHÍ
- Hướng dẫn Terraform chính thức MIỄN PHÍ
- Hướng dẫn toàn diện về Terraform MIỄN PHÍ
- Tự động hóa tài liệu Terraform như một chuyên gia! MIỄN PHÍ
- Viết các mô-đun Terraform có thể tái sử dụng MIỄN PHÍ
- Istio là gì? MIỄN PHÍ
- Tổng quan về puppet MIỄN PHÍ
- Các khóa học puppet MIỄN PHÍ và TRẢ TIỀN
- Bắt đầu với Ansible MIỄN PHÍ
- Học những điều cơ bản về Ansible
- Bắt đầu với Red Hat Ansible MIỄN PHÍ và TRẢ TIỀN
- Làm chủ khóa học Ansible Udemy
- Học chef MIỄN PHÍ
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:
- CI/CD Pipeline: Giới thiệu sơ lược MIỄN PHÍ
- Tìm hiểu GitLab với hướng dẫn MIỄN PHÍ
- Bắt đầu với GitLab CI/CD MIỄN PHÍ
- Jenkins, From Zero To Hero: Trở thành DevOps Khóa học Jenkins Master Udemy
- Tìm hiểu GitHub Actions MIỄN PHÍ
- Cú pháp quy trình làm việc cho GitHub Actions MIỄN PHÍ
- Tìm hiểu Azure DevOps MIỄN PHÍ
- GitLab CheatSheet MIỄN PHÍ
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:
- Observability là gì? Hướng dẫn toàn diện cho người mới bắt đầu MIỄN PHÍ
- Cách thức, lý do tại sao và điều gì xảy ra monitor microservice MIỄN PHÍ
- DevOps MonitoringMIỄN PHÍ
- Áp dụng các kỹ thuật monitoring cơ bản và nâng cao MIỄN PHÍ
- Tìm hiểu Prometheus MIỄN PHÍ
- Học Grafana MIỄN PHÍ
- Elastic Stack MIỄN PHÍ
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:
- AZ-900 Exam: Microsoft Azure cơ bản MIỄN PHÍ
- Khóa học cấp chứng chỉ cơ bản về Microsoft Azure (AZ-900) MIỄN PHÍ
- AZ-900 | Microsoft Azure Fundamentals Full Course, Free Practice Tests, Website and Study Guides MIỄN PHÍ
- Nhà thực hành đám mây được chứng nhận AWS cơ bản – 2022 Udemy
- AWS Developer by A Cloud Guru Lộ trình học tập
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:
- Scrum là gì? MIỄN PHÍ
- Các cách tìm hiểu về Scrum MIỄN PHÍ
- Các Giai đoạn & Mô hình Vòng đời Phát triển Phần mềm (SDLC) MIỄN PHÍ
- Hướng dẫn Agile trong Jira cho người mới bắt đầu: Mô tả khóa học MIỄN PHÍ
- Tìm hiểu AN TOÀN MIỄN PHÍ
- Học kiểm thử tự động hóa MIỄN PHÍ
- GitLab – Hướng dẫn dành cho người mới bắt đầu về DevOps MIỄN PHÍ
tài nguyên bổ sung
Công cụ
- Theo dõi công việc :** Asana , Monday , Jira , Trello , Azure Boards .
- Kiểm soát mã nguồn : Git , Github , GitLab , BitBucket , Azure DevOps .
- CI/CD : Jenkins , Team City , Github Actions , Travis CI , Bamboo , Circle CI , Azure Pipelines , Octopus Deploy , Harness , CloudBees CodeShip .
- Phân tích mã nguồn : SonarQube , Veracode .
- Quản lý vật phẩm : Artifactory , Docker Container Register , npm , Yarn , NuGet .
- Quản lý cấu hình : Terraform , Ansible , Puppet , Chef .
- Điều phối vùng chứa : Docker , Kubernetes , Red Hat OpenShift .
- Giám sát : Prometheus , Grafana , Splunk , Dynatrace , Kibana .
Sách
- Sổ tay DevOps: Cách tạo ra sự nhanh nhẹn, độ tin cậy và bảo mật đẳng cấp thế giới trong các tổ chức công nghệ , Gene Kim, Patrick Debois, John Willis, Jez HumbleCuốn sách giới thiệu về phát triển sản phẩm, đảm bảo chất lượng, vận hành CNTT và bảo mật thông tin. Đây là một tài liệu tuyệt vời dành cho những người mới làm quen với DevOps hoặc những người muốn tìm hiểu thêm về cách các thành phần khác nhau của DevOps hoạt động cùng nhau.
- Tăng tốc: Khoa học về phần mềm tinh gọn và DevOps: Xây dựng và nhân rộng các tổ chức công nghệ hiệu suất cao , Nicole Forsgren, Jez Humble, Gene KimCuốn sách này trình bày cả những phát hiện và khoa học đằng sau việc đo lường hiệu suất phân phối phần mềm. Để quảng cáo DevOps cho quản lý cấp cao, đây là một công cụ tuyệt vời.
- Phân phối liên tục: Bản phát hành phần mềm đáng tin cậy thông qua Tự động hóa xây dựng, thử nghiệm và triển khai , Jez Humble, David FarleyNó giới thiệu quản lý kiến trúc tự động và di chuyển dữ liệu. Nhiều khái niệm quy trình triển khai đã trở thành tiêu chuẩn đã được thiết lập trong cuốn sách này. Cấu hình dưới dạng mã, tự động hóa xây dựng và triển khai cũng như các kỹ thuật kiểm tra hiệu quả được đề cập trong một số chi tiết kỹ thuật. Cuốn sách chủ yếu là kỹ thuật của nó.
- Cấu trúc liên kết nhóm: Tổ chức các nhóm kinh doanh và công nghệ cho dòng chảy nhanh , Matthew Skelton, Manuel PaisCuốn sách nói về cách tổ chức các nhóm sao cho có thể tạo ra dòng giá trị nhanh chóng cho khách hàng. Nó cung cấp một bộ bốn cấu trúc liên kết nhóm cơ bản: Nhóm được sắp xếp theo luồng, Nhóm hỗ trợ, Nhóm hệ thống con phức tạp và Nhóm nền tảng, có thể được kết hợp và điều chỉnh để phù hợp với các bối cảnh tổ chức khác nhau.
- DevOps hiệu quả: Xây dựng văn hóa cộng tác, mối quan hệ và công cụ trên quy mô lớn , Jennifer Davis, Ryn DanielsCuốn sách cung cấp những cách hiệu quả để cải thiện khả năng phối hợp nhóm. Nó chỉ ra cách phá vỡ các silo thông tin, giám sát các mối quan hệ và sửa chữa những hiểu lầm nảy sinh giữa và trong các nhóm trong tổ chức của bạn.
- Dự án Phượng hoàng: Tiểu thuyết về CNTT, DevOps và Giúp doanh nghiệp của bạn giành chiến thắng , Gene Kim, Kevin Behr, George SpaffordĐó là một cuốn tiểu thuyết cổ điển về hiệu quả và thông tin liên lạc. Công việc CNTT giống như công việc của nhà máy sản xuất và một hệ thống phải được thiết lập để hợp lý hóa quy trình làm việc. Một trong những cuốn sách hay nhất hiện có.
- Kỹ thuật độ tin cậy của trang web , Betsy Beyer, Chris Jones, Jennifer Petoff, Niall Richard MurphyCuốn sách này giải thích toàn bộ vòng đời phát triển, triển khai và giám sát của Google cũng như cách quản lý các hệ thống phần mềm lớn nhất thế giới (còn được gọi là SRE). Bất kỳ ai tự coi mình là người thiên về “Ops” hơn trong phe DevOps hoặc muốn biết cách tăng cường mối liên kết giữa các nhóm Dev và Ops khác nhau nên đọc SRE.
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.