Trang chủTác giảLiên hệ

DevOps Roadmap

By Anonymous
Published in DevOps
October 16, 2022
6 min read

DevOps Roadmap: Trở thành DevOps Engineer trong 8 Bước

Nếu bạn đang ở đây, thì chắc hẳn bạn đang tìm cho cho mình một DevOps roadmap, hay nói cách khác là cách để trở thành một DevOps engineer.

Kiến thức nền tảng cần thiết để làm việc trong life cycle của DevOps khá là rộng và phức tạp. Do đó, DevOps roadmap càng quan trọng hơn giúp các bạn nắm được các yêu cầu công việc và luôn đi đúng hướng trong vai trò DevOps engineer. Vậy, làm cách nào để trở thành một DevOps engineer? Hãy bắt đầu bằng việc nhìn vào DevOps roadmap.

DevOps Roadmap

Trước khi bắt đầu, hãy dành chút thời gian để phân tích DevOps roadmap dưới đây. DevOps Roadmap

Như các bạn thấy, DevOps Roadmap bao gồm rất nhiều khái niệm trong software development. Đó là bởi vì DevOps bao gồm toàn bộ quá trình khởi tạo và bảo trì phần mềm từ development đến operation, kéo dài toàn bộ technology stack. Roadmap này chứa rất nhiều chi tiết hay, nhưng khi ta cùng nhau lập kế hoạch cho khóa học của mình, chúng ta sẽ tập trung vào pathway chính và thảo luận chi tiết từng bước.

1. Học ngôn ngữ lập trình.

Mặc dù các DevOps engineer thường không có nhiệm vụ chính là viết source code, nhưng họ là người tích hợp database, debug code từ development team, và tự động hóa các quy trình. Tự động hóa là một phần quan trọng giúp tăng tốc cho DevOps life cycle và DevOps engineer đóng vai trò quan trọng trong việc triển khai chiến lược tự động hóa quy trình DevOps. Ngoài ra, một DevOps engineer nên có kiến thức làm việc về các ngôn ngữ mà team của họ đang dùng để giúp họ hiểu code hiện có, kiểm tra code mới và hỗ trợ debug. Các ngôn ngữ lập trình để học:

  • Go (recommended)
  • Ruby
  • Python
  • Node.js

2. Nghiên cứu hệ điều hành

Hệ điều hành (OS) cũng là một phần quan trọng của technology stack mà DevOps team cần biết để có thể hoạt động trơn tru, hiệu quả. Hệ điều hành, không những cung cấp nguồn tài nguyên phần cứng cho các máy chủ local mà team sử dụng để giao tiếp, chạy các tasks, nó còn chạy các servers chứa các app đã triển khai của nhóm, phục vụ cho người dùng sử dụng. Do đó, bạn sẽ cần phải học command line terminal để không phụ thuộc vào giao diện đồ họa người dùng (GUI) để config sever. Command line đơn giản hóa các tác vụ yêu cầu nhiều lần click trong GUI và một số command chỉ thực thi được thông qua terminal. Mỗi hệ điều hành đều khác nhau, vì thế chúng ta nên học nhiều loại hệ điều hành. Những HĐH thông dụng nên học:

  • Linux (recommended)
  • Unix
  • Windows

Bạn cũng sẽ cần tìm hiểu các strategy và quy tắc lớn hơn được xây dựng trên các hệ điều hành. Là một DevOps engineer, kiến thức kỹ thuật về phần cứng và kiến thức khái niệm tài nguyên đều quan trọng như nhau. Những khái niệm HĐH nên học:

  • Process Management
  • Sockets
  • Threads and Concurrency

3. Review networking security và protocol.

Mọi app trên web nào cũng sẽ sử dụng protocol để truyền và nhận thông tin từ người dùng. Điều này có nghĩa là chúng ta cần phải hiểu cách các protocol hỗ trợ các loại request khác nhau. Một điểm cũng quan trọng không kém, đó là bạn cần biết rủi ro của các protocol này và cách bảo mật chúng để ngăn kẻ xấu chặn data hoặc xâm nhập vào app của bạn. An ninh mạng là một kỹ năng rất quan trọng bất kể vai trò của bạn là gì trong DevOps. Networking protocols để học:

  • HTTP
  • HTTPS
  • SSL
  • SSH

4. Hiểu Infrastructure as Code.

Infrastructure as Code(IaC) là một tập các pratice, thường được hiểu là những bộ quy tắc, giúp chuẩn bị cho việc cung cấp cơ sở hạ tầng để hỗ trợ deploy app của bạn. Network, sever và cơ sở hạ tầng khác được config và manage bằng cách sử dụng template file để tạo một môi trường với các yêu cầu chính xác cho ứng dụng của bạn. IaC cho phép bạn tự động hóa quá trình này để triển khai và cập nhật nhanh hơn. Các chiến lược IaC để học :

  • Containers
  • Configuration Management
  • Container Orchestration
  • Infrastructure Provisioning

5. Áp dụng Continuous Integration/ Continuous Deployment Tool.

Continuous Integration và Continuous Deployment (CI/CD) là một nguyên tắc trọng tâm mà DevOps cần phải nắm rõ, dựa trên việc tích hợp giữa development và operation được lặp lại liên tục. Để hiểu được triết lý này, hầu hết các DevOps team sẽ chuyển sang các tools được build sẵn để hỗ trợ DevOps life cycle. CI/CD tools hỗ trợ nhiều giai đoạn của quy trình và tự động hóa các quá trình xử lý để giải phóng các công việc thủ công cho các thành viên trong team. CI/CD tools để học:

  • GitHub
  • GitLab
  • Bamboo
  • Jenkins

6. Đầu tư vào application và infrastructure monitoring.

Monitoring là hoạt động theo dõi các dấu hiệu sự cố trong app của bạn và cơ sở hạ tầng cơ bản để operations team của bạn có thể khắc phục các sự cố trước khi chúng chuyển thành ngắt điện. Quy trình này được chia thành hai nhóm - application monitoring và infrastructure monitoring.

Application Monitoring

Các vấn đề nội bộ với app của bạn có thể biểu hiện theo nhiều cách, vậy nên cách tốt nhất là theo dõi nhiều chỉ số (metric). Ví dụ, conversion rate (tỷ lệ chuyển đổi - thường sẽ được tính trên tỷ lệ số người vào trang và số người đăng ký/sử dụng một chức năng nào đó) thấp trên một form có thể là dấu hiệu cho thấy form đó đang gặp trục trặc khi user đăng nhập vào. Lý tưởng nhất, các monitoring tool sẽ báo các lỗi nào xuất hiện trong code khi signup request được gửi cũng như conversion rate nên bạn có nhiều cách để xác định vấn đề. Application monitoring tool cần thiết để học:

  • Prometheus (recommended)
  • Nagios
  • Datadog

Infrastructure Monitoring

Thông thường, các vấn đề trong cơ sở hạ tầng cho app của bạn có thể có tác động lẫn nhau – hoặc thậm chí còn có tác động lớn hơn chính ứng dụng đó. Ví dụ: các sự cố với cloud hosting của app web của bạn có thể dẫn đến việc user bị ngưng hoạt động khi đang cố gắng truy cập vào ứng dụng. Các Monitoring tool phân tích các lỗi được tạo ra trong stack của app bạn cũng như các chỉ số hiệu suất để tìm ra lỗi sớm. Team của bạn phản hồi càng sớm thì những vấn đề này sẽ càng ít ảnh hưởng đến user experience. Infrastructure monitoring tools để học:

  • New Relic (recommended)
  • Jaeger
  • AppDynamics

7. Nghiên cứu cloud providers.

Hầu hết các app hiện đại được host trên cloud. Cloud service cung cấp rất nhiều lợi ích, bao gồm tiết kiệm chi phí và khả năng mở rộng dẫn đến việc bạn không cần tự mình host các server cho app của mình. Đương nhiên, điều quan trọng là phải hiểu các cloud service khác nhau cũng như chi phí và lợi ích riêng của chúng để chúng ta có thể lựa chọn hosting provider tốt nhất cho các app đã hoàn thành của mình. Cloud providers cần học:

  • AWS (recommended)
  • Azure
  • Google Cloud
  • Heroku

8. Học các cloud design pattern.

Cloud design pattern là triết lý tạo ra khả năng mở rộng, độ tin cậy và bảo mật của các cloud application. Cũng quan trọng như việc hiểu các cloud provider, bạn cũng nên hiểu các pattern này. Có nhiều lesson learn được rút ra từ các phương pháp hay nhất trên cloud (ví dụ: giảm độ trễ) mà bạn có thể áp dụng cho các app được host trên cloud và cho development approach trước khi deployment. Ví dụ: sao lưu source code của bạn trong một kho lưu trữ cloud để bạn không bị mất quyền truy cập nếu bộ nhớ cục bộ của bạn không khả dụng. Cloud design patterns để học:

  • Availability
  • Data Management
  • Design and Implementation

Rất nhiều thứ được đề cập trên đây không đại diện cho toàn bộ kiến thức bạn sẽ cần để trở thành một DevOps engineer hiệu quả, nhưng nó bao hàm kiến thức cốt lõi mà bạn nên có trước khi tập trung vào các chi tiết tốt hơn. Bạn sẽ thấy việc học trở nên dễ dàng hơn nhiều khi bạn có kiến thức nền tảng này để định hướng cho quá trình nghiên cứu và học tập của mình.


Tags

DevOpsIaC

Anonymous

Anonymous

Related Posts

Hướng dẫn quẩy CICD cho elastic beanstalk với bamboo
December 14, 2021
2 min
© 2022, All Rights Reserved.

Quick Links

Liên hệ quảng cáoThông tinLiên hệ

Social Media