Giới thiệu:
Trong bài viết này, mình muốn chia sẻ với các bạn những cuốn sách mình đã đọc khi bắt đầu từ một System Admin và dần chuyển sang vai trò DevOps và Cloud Engineer. Mình cũng sẽ chia sẻ kinh nghiệm học tập và con đường mình đã đi qua, hy vọng có thể giúp các bạn, đặc biệt là những người chưa có nhiều kiến thức, tìm được lộ trình học tập phù hợp để trở thành một DevOps Engineer.
Những cuốn sách mình giới thiệu sẽ được sắp xếp theo thứ tự từ cơ bản đến nâng cao, cùng với những kiến thức quan trọng mà các bạn cần nắm vững trên hành trình trở thành một DevOps Engineer.
Basic
Đầu tiên, điều cơ bản nhất mà chúng ta cần nắm vững chính là Linux. Bạn không cần phải trở thành một “master” về Linux (vì thực ra, không ai có thể tự nhận mình là chuyên gia tuyệt đối về Linux), nhưng bạn cần hiểu rõ Linux là gì, sự khác biệt giữa các bản phân phối như Ubuntu và CentOS, hệ thống tệp của Linux hoạt động ra sao, và các lệnh cơ bản trong dòng lệnh (command line).
Để bắt đầu với Linux, đặc biệt nếu bạn là người mới, mình khuyên bạn nên đọc cuốn sách này:

Linux for Beginners
Cuốn sách này sẽ cung cấp cho bạn cái nhìn tổng quan về những khái niệm cơ bản của Linux. Bạn sẽ học được sự khác biệt giữa các bản phân phối Linux như Ubuntu và CentOS, cách hệ thống tệp trên Linux được tổ chức, các lệnh command line quan trọng, và cách tạo và quản lý người dùng trên hệ thống Linux.
Nếu các bạn muốn tìm hiểu sâu hơn về Linux, mình giới thiệu cuốn sách sau:

Ubuntu Linux Unleashed 2021 Edition
Cuốn sách này là một tài liệu tuyệt vời cho những ai muốn nâng cao kiến thức về Linux, đặc biệt là hệ điều hành Ubuntu. Nó cung cấp các hướng dẫn chi tiết từ cơ bản đến nâng cao về cấu hình hệ thống, quản lý dịch vụ, bảo mật, và nhiều khía cạnh khác của Linux.
The First Step
Sau khi đã hiểu rõ những khái niệm cơ bản về hệ điều hành Linux, bước tiếp theo là học cách triển khai và chạy các chương trình trên nhiều hệ điều hành khác nhau, đặc biệt là Linux.
Bạn cần tìm hiểu cơ bản về các nền tảng như Node.js, Java, hoặc .NET. Lưu ý rằng bạn không cần phải học cách lập trình chuyên sâu, mà chỉ cần nắm vững cách cài đặt, quản lý thư viện, và build code với các ngôn ngữ này.
Ví dụ:
- Với Node.js: Tìm hiểu cách cài đặt Node.js, cách chạy ứng dụng Node.js bằng PM2, và cách quản lý thư viện bằng npm.
- Với Java: Học cách Java hoạt động, cách tải thư viện và build source code bằng Maven.
Tiếp theo, để có thể dễ dàng chạy các chương trình trên các hệ điều hành khác nhau, bạn nên tìm hiểu về container và Docker. Để nắm vững các kiến thức cơ bản về Docker, mình khuyên bạn nên đọc cuốn sách sau:

Docker in Action, Second Edition
Cuốn sách này sẽ hướng dẫn bạn từ những bước cơ bản nhất trong việc sử dụng Docker, bao gồm cách chạy container, cách build code thành container image, cách sử dụng Docker Compose, và cách tự thiết lập Docker Registry để tự host container image của mình. Sau khi đọc xong, bạn sẽ có cái nhìn tổng quan hơn về cách sử dụng Docker để triển khai và quản lý ứng dụng trên nhiều hệ điều hành khác nhau.
Step on the Road to Become a DevOps Engineer
Sau khi nắm vững kiến thức cơ bản về Linux và Docker, bạn đã sẵn sàng bước chân lên con đường trở thành một DevOps Engineer. Bước tiếp theo là học cách tự động hóa việc triển khai sản phẩm hoặc chương trình của bạn đến người dùng một cách dễ dàng nhất. Quy trình này được gọi là CI/CD (Continuous Integration/Continuous Delivery). Để bắt đầu với CI/CD, mình khuyên bạn nên đọc cuốn sách sau:

Continuous Delivery with Docker and Jenkins
Cuốn sách này cung cấp các hướng dẫn cần thiết để thiết lập luồng CI/CD cho ứng dụng của bạn, từ việc tìm hiểu cơ bản về Jenkins, kiến trúc của Jenkins, đến cách cài đặt và sử dụng Jenkins với Docker.
Song song với việc học về CI/CD, bạn cũng cần tìm hiểu về Container Orchestration. Đây là cách quản lý và vận hành hàng ngàn container trong môi trường sản phẩm thực tế mà khách hàng của bạn đang sử dụng. Kubernetes là một công cụ phổ biến để làm điều này, và mình giới thiệu đến bạn cuốn sách sau:

Kubernetes in Action, Second Edition
Cuốn sách này sẽ giải thích mọi thứ bạn cần biết về Kubernetes, từ khái niệm cơ bản đến cách sử dụng nó để quản lý container, triển khai ứng dụng với thời gian downtime gần như bằng 0, và các best practices trong việc triển khai ứng dụng với Kubernetes. Nếu bạn muốn đọc bằng tiếng Việt, bạn có thể tham khảo **Kubernetes Series** của mình, nơi mình đã chia sẻ cách hiểu của mình dựa trên cuốn sách này.
Middle
Sau khi hoàn thành các cuốn sách trên và thực hành nhiều, bạn có thể tự tin gọi mình là một Fresher DevOps. Bước tiếp theo là học cách vận dụng những kiến thức trên vào thực tế. Đây là một công việc rất khó, nhưng mình có hai cuốn sách sau để giới thiệu:

Managing Kubernetes
Cuốn sách này sẽ hướng dẫn bạn cách vận hành Kubernetes trong môi trường production, cách cài đặt Kubernetes trên môi trường production, quản lý cụm Kubernetes, và cách backup và restore nó.
Kubernetes Best Practices – Blueprints for Building Successful Applications on Kubernetes
Cuốn sách này cung cấp nhiều ví dụ thực tế về cách cài đặt nhiều ứng dụng trên Kubernetes, cũng như cách monitoring ứng dụng.
Become a Good DevOps
Làm thế nào để tăng giá trị của bạn so với các ứng viên DevOps khác? Theo mình, để nổi bật, bạn cần phải có kiến thức về Cloud, vì tương lai của công nghệ sẽ nằm trong Cloud.
Để bắt đầu với Cloud, hãy chọn những nhà cung cấp lớn và phổ biến nhất. Tại thời điểm viết bài này, AWS là nền tảng nổi bật nhất và cũng là nền tảng mình yêu thích. Dưới đây là hai cuốn sách và một khóa học trên Udemy mà mình giới thiệu:
Amazon Web Services in Action, Second Edition
Cuốn sách này sẽ giúp bạn tìm hiểu về AWS, các dịch vụ cơ bản, cách sử dụng, và cách thiết kế hệ thống chịu tải cao và dễ dàng mở rộng trên AWS.
Ultimate AWS Certified Solutions Architect Associate 2022
Khóa học này của giảng viên nổi tiếng Stephane Maarek sẽ dạy bạn toàn bộ kiến thức cần thiết về AWS để thi lấy chứng chỉ. Tuy là khóa học dạy thi chứng chỉ, nhưng sau khi học xong, bạn sẽ có cái nhìn tổng quan về AWS.

Terraform in Action
Thông thường, khi làm việc với AWS, bạn sẽ cần một công cụ hỗ trợ để tạo hạ tầng, và Terraform là công cụ phổ biến nhất hiện nay. Cuốn sách này sẽ hướng dẫn bạn những kiến thức cần thiết về Terraform và cách sử dụng nó với AWS. Bạn cũng có thể đọc Terraform Series của mình nếu muốn tìm hiểu bằng tiếng Việt.
Keep Learning
Nếu bạn hoàn thành tất cả các tài liệu trên, chúc mừng bạn đã trở thành một DevOps Engineer! Tuy nhiên, con đường học tập không bao giờ kết thúc. Để nâng cao kiến thức, bạn cần liên tục học hỏi. Dưới đây là một số cuốn sách mình đang đọc để mở rộng kiến thức:
Monitoring with Prometheus
Cuốn sách này sẽ dạy bạn cách sử dụng Prometheus để giám sát hệ thống, cách dùng Grafana để biểu diễn dữ liệu của hệ thống.
Elasticsearch in Action
Cuốn sách này dạy bạn về Elasticsearch. Mặc dù nó nói về Elasticsearch 5.x, bạn có thể tra cứu thêm để tìm hiểu về các phiên bản mới hơn và có cái nhìn chi tiết hơn.
Kafka: The Definitive Guide
Event Streaming là một phần không thể thiếu trong hệ thống lớn, và Kafka là một công cụ mạnh mẽ để xử lý điều này.
Kết luận
Trên đây là những cuốn sách mình đã đọc và đang đọc để từ một System Admin trở thành DevOps và Cloud Engineer. Hy vọng rằng chúng sẽ hữu ích cho bạn. DevOps và Cloud Engineer là một lĩnh vực rất rộng lớn, và mặc dù không ai có thể nắm hết toàn bộ kiến thức về nó, hãy cứ tiếp tục học hỏi và khám phá!
Xin chào quý anh em thân thiết tại DevSecOps, tôi tên Boo là nhà sáng lập kiêm điều hành tại nền tảng devsecops.boo . Mục tiêu của tôi khi sáng lập kênh này là tạo ra một nền tảng uy tín cung cấp đầy đủ và nhanh chóng nhất các thông tin về Devops phục vụ nhu cầu đa dạng của tất cả anh em.
