Từ backend học DevOps qua việc Do-It-Yourself
- Bạn đang là Backend developer?
- Bạn muốn học thêm DevOps chỉ bởi vì thấy JD nào bây giờ cũng yêu cầu docker kubernetes rồi CI/CD?
- Bạn muốn tìm một khóa học chỉ cần 3 tháng để có lương vài ngàn đô như mấy trung tâm đang quảng cáo rầm rộ?
Nếu như câu trả lời cho 3 câu hỏi trên đều là "có" thì chúc mừng, bạn có thể tiết kiệm hai chục phút quý giá cuộc đời bằng việc dừng đọc bài viết này ở đây và tiếp tục ra học khóa học để có lương ngàn đô được rồi.
Còn nếu như bạn đọc tiếp, thì mình hiểu là bạn đủ thông minh và trải nghiệm để hiểu được sẽ chẳng có khóa học nào trong 3 tháng khiến một người lương 5 10 trẹo nhảy cóc lên vài ngàn đô như quảng cáo (trừ khi là khóa học dạy đ.a c.ấ.p hay l.ừ.a đ.ả.o để đi lừa người khác thì có thể đấy nhé).
First things first
Okay, trở lại với bài viết này mà trước tiên là tác giả: Mình là Minh Monmen, hiện tại đang là một DevOps, SRE (Site Reliability Engineer),... hay bất cứ title mỹ miều nào miêu tả lại công việc đậm chất cu li công nghệ cao của mình. Xuất phát điểm của mình thì có thể gọi là non-tech (kinh tế) đi, sau khi làm Backend một thời gian thì mình có học thêm về phần vận hành (Ops) nữa để có thể làm được cả hai phần Dev và Ops.
Bài viết này là bài quảng cáo cho một lộ trình học DevOps thông qua việc Do-It-Yourself (tức là bạn tự học - bạn tự làm - tôi kệ bạn ấy). Đây cũng chính là con đường mình đã trải qua để có được ngày hôm nay.
Why?
Tại sao chúng ta lại ở đây?
Chắc là vì mình muốn đu trend l.ù.a g.à mà ngoài kia người ta đang làm nhan nhản thôi: "Học DevOps đi rồi mà có lương ngàn đô". Càng nhiều người đọc và làm theo thì việc đu trend của mình sẽ càng thành công. Vậy thôi.
Điểm khác biệt ở đây là bảng giá cực kỳ cạnh tranh:
Hiện tại khóa học hot nhất của mình là khóa Bạn làm hết, tôi không chỉ với giá cả cực kỳ phải chăng và vừa túi tiền của mọi developer 😂😂😂 nên mình thấy đa số học viên của mình đều chọn khóa này (chỉ tiếc là toàn bộ đều quịt tiền học thôi 😂). Cũng bởi vì chưa có học viên nào nạp học phí nên mình dỗi, chuyển qua bán khóa dưới là Bạn hỏi, bạn làm, tôi chỉ hướng. Chính là cái mình sẽ giới thiệu trong bài viết này đây.
Nói đùa vậy chứ thực ra chỉ là giới thiệu lại con đường mà mình đã từng đi thôi, không phải khóa học khóa hè gì đâu. Thời điểm mình bắt đầu tìm hiểu vận hành là sau khi đã làm Backend được khoảng gần 1 năm gì đó, cỡ 2016-2017. Mặc dù không được học IT một cách bài bản, nên mình cũng thừa nhận là mình bị hổng nhiều kiến thức về computer science, network,... vốn là những kiến thức được đào tạo một cách kỹ lưỡng ở bất kỳ trường đại học công nghệ nào. Nhưng qua quá trình vừa làm vừa học theo chính những cái mình vừa viết ra thì mình cũng kịp bổ sung được nhiều kiến thức lý thuyết kết hợp với ứng dụng thực tế luôn.
Sau khi mình nhận thức được trách nhiệm phải chia sẻ sự vất vả của bản thân khi thấy nhiều bạn cũng đang giống mình hồi xưa - đang làm Backend và cũng muốn học DevOps, lộ trình tự học này đã ra đời.
Who?
Ai là người học?
Chính là bạn, con đường này phù hợp với những bạn đã có kiến thức về lập trình cơ bản, chí ít cũng code được mấy cái quản lý thư viện, trường học hay đồ án thương mại điện tử 🤣. Và muốn tìm hiểu về cách để đưa những ứng dụng đó vào hoạt động thật sự
Ai là người dạy?
Cũng chính là bạn luôn. Bạn tự dạy chính mình, còn mình sẽ không dạy bạn gì cả. Trong lộ trình cũng không có tài liệu, docs, blog, video... gì sất. Bạn phải tự tìm tài liệu, tự đọc docs, tự xem video,... để có thể hoàn thành lộ trình.
Tại sao lại như vậy?
Các bạn đều biết là mỗi người sẽ có cách học tập và ghi nhớ kiến thức khác nhau. Phần lớn mọi người học thụ động qua việc được dạy (đó là thứ mà các khóa học sẽ làm), và số ít còn lại sẽ học chủ động thông qua một mục đích cụ thể. Mình không phải là kiểu người có thể học một khóa học vu vơ để lấy kiến thức nói chung mà thuộc kiểu người chỉ có thể học thông qua một mục đích rất cụ thể. Kiểu như:
- Vì mình muốn đưa ứng dụng của mình online - Nên mình sẽ học về hosting, domain, dns,...
- Vì mình muốn debug được việc giao tiếp giữa 2 service - Nên mình sẽ học về TCP/IP, 7 layers,...
Điều này giúp mình ghi nhớ kiến thức lâu hơn bởi những kiến thức này sẽ được liên kết với nhiều kiến thức liên quan khác trong một trải nghiệm rất cụ thể, chứ không phải là những mảnh kiến thức rời rạc dàn trải.
Tất nhiên là mỗi người thì mỗi khác nhé, bạn có thể giống mình, có thể không, nên điều bạn cần làm là phải tự đánh giá xem cách học nào sẽ có hiệu quả với bản thân và tận dụng nó. Vậy thôi.
How?
Vậy lộ trình sẽ được thực hiện như thế nào?
Như đã nói ở trên, mình thuộc kiểu người sẽ học dựa trên mục đích, do đó lộ trình của mình sẽ chỉ có mục đích, chính là các bài tập mà các bạn phải tự làm, tự giải và tự trải nghiệm. Các bài tập sẽ bắt đầu từ dễ đến khó, và đều hướng đến một mục đích cuối cùng là đưa ứng dụng của bạn vào hoạt động.
Một số lưu ý chung:
- Lộ trình từng bước mình sẽ cố gắng viết bằng Tiếng Anh (xem repo cuối bài viết), nó cũng đơn giản thôi không có gì quá cao siêu hay phức tạp đâu. Và khi thực hiện bạn cũng nên thế. Luyện tập đọc hiểu và viết tài liệu Tiếng Anh là một kỹ năng bắt buộc với developer hiện nay rồi. Hãy tận dụng công sức để luyện tập cả Tiếng Anh luôn.
- Kỹ năng dùng nhiều nhất sẽ là Search Google. Ừ thì các bạn có thể hỏi luôn ChatGPT cũng được, nhưng mình rất không khuyến khích điều này. Bởi vì ChatGPT sẽ tập trung đưa cho các bạn cái kết quả cuối cùng, không phải là rất nhiều thông tin râu ria bên rìa như google. Cái này mình đã trải nghiệm rồi nên đã rút kinh nghiệm: Nếu như kết quả cuối cùng được đưa thẳng tới não bạn mà không trải qua quá trình lọc và xử lý thông tin như khi tự Search Google thì nó sẽ không thể nhớ hay vận dụng kiến thức đó đâu.
- Mình sẽ cung cấp cho các bạn mục đích, đề bài và một số hướng dẫn bắt đầu cơ bản để các bạn không lệch hướng. Thế nhưng thực hiện thế nào sau đó là tùy thuộc hoàn toàn vào các bạn. Tập đưa ra quyết định, đánh giá giải pháp hay hướng dẫn mình tìm được trên internet là kỹ năng quan trọng để các bạn tự bước trên đôi chân của mình.
- Đừng sợ sai lầm, đừng tìm kiếm giải pháp hoàn hảo. Lộ trình này sinh ra là để dẫn bạn đi những con đường vòng vèo hơn, những con đường xa xôi hơn. Bạn có thể tự hỏi: tại sao không hướng dẫn tôi triển khai ứng dụng trên Kubernetes luôn, đó là cái mà các công ty hiện nay đang làm mà? Đúng là người ta đang có những cách hiện đại và tối ưu để làm việc, nhưng nếu bạn trải nghiệm đủ những thứ dẫn tới cái hiện đại và tối ưu đó thì bạn mới tự tin dùng nó được. Thế nên đừng ngại làm những thứ trông nông dân và lạc hậu trong lộ trình nhé.
Làm thế nào để tận dụng tốt lộ trình này?
- Fork repo lộ trình về github cá nhân
- Ghi lại mọi bước bạn thực hiện, mọi tài liệu bạn đã đọc, đã học để giải quyết vấn đề đó
- Không dừng lại ở "make it work" mà hãy cố tìm hiểu "why it work", "how it work" và các kiến thức liên quan. Ví dụ khi đến phần setup server, hãy đọc thêm về những thứ cần chú ý khi setup server linux, tăng cường bảo mật, firewall,.... nữa. Làm vậy thì kiến thức của bạn mới mở rộng và liên kết lại với nhau vững chắc hơn
- Chia sẻ nó với người khác và nhận feedback. Trí tuệ tập thể thì luôn tốt hơn từng cá nhân và hãy tập trung vào những feedback chỉ ra thiếu sót của mình ấy. Đừng ngại bị ngã khi tập đi.
Bắt đầu
Oke chưa? Nếu rồi thì bạn có thể bắt đầu bằng việc Star repo ở đây: https://github.com/minhpq331/devops-training
Tiếp đó thì đọc hướng dẫn bên trong và bắt đầu thui. Nội dung hiện tại đã hoàn thành được 1 phần và mình sẽ tiếp tục thêm vào nếu như có nhiều phản hồi tích cực.
À việc bạn xài repo này là hoàn toàn miễn phí nhé. Mình chỉ cung cấp add-on trả phí bao gồm:
- Review lại thành quả của bạn làm
- Giải đáp thắc mắc nếu bạn kẹt ở đâu đó
- Giải thích kiến thức nếu bạn tự đọc mà khó hiểu quá
- Chia sẻ kinh nghiệm thực tế về những thứ trong lộ trình sau khi làm qua 7 7 49 loại hình công ty lớn nhỏ đủ ngành nghề.
Hết rồi, rất mong các bạn ủng hộ bằng việc Star repo cho mình 🥹.
Nếu có ích với bạn hãy mời mình cafe:
All rights reserved