PyMi DevOps #1 là chuỗi khóa học DevOps đầu tiên của PyMi.
Lớp chia làm 3 khóa nhỏ: Linux Sysadmin, Cloud và K8S operator, học lần lượt, học viên lựa chọn khóa tùy ý, không bắt buộc học cả 3
- **Đang học** - SysAdmin: Khai giảng tháng 26/9/2023
- Cloud: Dự kiến khai giảng giữa tháng 11/2023.
- K8S: Dự kiến khai giảng giữa tháng 1/2024.
Thời gian, địa điểm
- 19h -> 21h30, tối thứ 3 & 5 hàng tuần
- tại 30 Trung Liệt, Hà Nội.
- Có học remote livestream, không có video sau buổi học.
Liên hệ
Kênh #devops-prepare Slack PyMi
Invite
Học phí
Học phí khóa đầu tiên tổng 15 triệu, chia làm 3 phần 5 triệu, đóng 3 lần:
- Lần 1: buổi đầu tiên,
- Lần 2: buổi 11,
- Lần 3: buổi 21.
Học phí từ các khóa sau sẽ tăng (20-30 triệu == 1 tháng lương tối thiểu của DevOps engineer).
Yêu cầu đầu vào
- biết lập trình thành thạo 1 ngôn ngữ bất kỳ (data structure, control flow, IO, package management). Khóa học không yêu cầu biết Ops/Linux/System nhưng cũng không nên quá bỡ ngỡ với dòng lệnh trên Linux. Nếu chưa biết lập trình, hãy đăng ký học python tại pymi.vn trước. Không nhận học viên chưa biết lập trình. Đa phần phỏng vấn DevOps đều có câu hỏi coding loại easy/medium rồi mới tới vòng phỏng vấn kiến thức Ops. Một số ít sysadmin đời cũ không biết lập trình, nhờ chuyển đổi trong công ty mà trở thành DevOps, còn người chưa biết gì cả dev lẫn ops thì phỏng vấn DevOps chỉ là thử vận may.
- Đọc được tài liệu tiếng Anh
- Đối tượng thường là 1 lập trình viên đã học xong Pymi.vn hay đã đi làm
- Không khuyến khích những người đã làm DevOps chuyên nghiệp do nhiều phần đã biết rồi, lãng phí chi phí đầu tư. Mặc dù không lãng phí như bỏ tiền túi thi các chứng chỉ cloud...
Đầu ra
- Sau 10 buổi đầu: đủ kiến thức để làm SysOps/SysAdmin truyền thống, đã có thể làm việc ở các công ty không đòi hỏi cloud hay Kubernetes (K8S).
- Sau 10 buổi tiếp theo: trở thành cloud engineer/cloud DevOps, có thể làm việc ở các công ty dùng cloud (không BẮT BUỘC K8S)
- Sau 10 buổi cuối: có khả năng thực hiện các task DevOps trên K8S.
Mục tiêu: học viên học xong có thể phỏng vấn vị trí DevOps mức lương $1000 trở lên.
Tất nhiên sẽ có khó khăn bởi khi tuyển DevOps thường yêu cầu có kinh nghiệm nhiều năm (khác với Dev có thể tuyển fresher), nhưng có kiến thức chính xác, sâu, phù hợp thì không phải là không thể.
Chuẩn bị
- Laptop chạy OS tùy ý với tối thiểu 8GB RAM để chạy máy ảo Ubuntu làm server.
- Cài trước máy ảo Ubuntu server 22.04 trên KVM/VirtualBox/VMWare.
- Từ buổi 11-20: thẻ credit card để tạo tài khoản AWS cloud, về cơ bản sẽ không tốn tiền khi dùng do chủ yếu sử dụng gói free tier của AWS.
Đề cương
Đề cương dự kiến, có thể có thay đổi nhỏ cho phù hợp quá trình học.
Phần 1 - System Administrator
- 1. Cài đặt máy ảo Ubuntu, basic CLI
- 2. More CLI, apt - package managemnt, bash scripting
- 3. Service & systemd, cron
- 4. Storage, file system, swap
- 5. Network, SSH, DNS, Firewall
- 6. Git, GitLabCI, webapp, HTTP
- 7. Logging with ELK, Kafka
- 8. Metric & alert: prometheus, grafana
- 9. Deploy with configuration management: Salt or Ansible
- 10. Container, docker, image
Phần 2 - AWS Cloud engineer
- 11. EC2, VPC, Security Group, AMI, IAM
- 12. Terraform
- 13. Autoscaling Group, CloudWatch, Route53
- 14. S3, SQS, SNS
- 15. Lambda
- 16. Spot, Cost Management, CloudTrail
- 17, 18. Boto3
- 19. GitHub action, CI, Chatbot
- 20. ECS
Phần 3 - Kubernetes user/operator
- 21,22. Pod, Deploy, Service, ConfigMap, Secrets
- 23,24. Ingress, HPA, Job, Cronjob`
- 25,26. Helm, chart
- 27,28. FluxCD
- 29,30. Logging/monitoring on K8S.
Không học
Ngành DevOps rất rất rộng, phụ thuộc vào stack/công nghệ của từng công ty mà khác nhau.
Tham khảo Roadmap.sh https://roadmap.sh/devops
Những thứ sau không học:
- Databases: RDS, DB cluster, Redis cluster... các công ty lớn có riêng vị trí DB Admin làm việc này
- BigData: EMR, Spark, Hadoop, Glue, Redshift,... các công ty lớn có riêng vị trí (Big)Data Engineer làm việc này
- WAF, security management: các công ty có riêng vị trí DevSecOps/Security làm việc này
- Setup K8S: dùng cloud có sẵn dịch vụ. Bạn có thể học CKA để làm việc này.
- Cấu hình mạng vật lý, phần cứng.
- Non-cloud storage system, RAID, Ceph, GlusterFS, NFS ...: gần như không dùng trong môi trường cloud.
- Service mesh/API gateway
FAQs
Chưa có kinh nghiệm, học xong có xin ngay được việc DevOps không
Khả năng là không. Ngành devops ưa chuộng người có kinh nghiệm chứ hiếm có vị trí "devops fresher" (khác với dev), cho dù bạn có trả lời đúng mọi câu hỏi của bên phỏng vấn. Nên có kinh nghiệm dev 1 năm để chuyển sang thì dễ hơn. Hãy học lớp Python pymi.vn để kiếm 10 triệu đầu tiên trong nghề IT làm 1 năm lấy kinh nghiệm, rồi học lớp DevOps để làm "lai" giữa Dev và Devops trong 1 team nhỏ, hay chuyển đổi qua DevOps với mức lương gấp 2 3 lần (tất nhiên làm dev cũng có mức lương tương tự).
Tôi đã biết dev, chưa biết ops, tôi nên làm dev hay devops?
Dev. Dev là một nghề ổn định, với mức lương hoàn toàn có thể cao ngang hay hơn DevOps.
Đặc thù của 2 công việc này không giống nhau, nên hợp với người này mà không hợp với người kia.
-
Dev: viết code hàng ngày, làm việc với DB/SQL hàng ngày, sinh ra tính năng hàng ngày theo yêu cầu của manager.
-
DevOps: thi thoảng mới viết code, hiếm khi làm việc với DB/SQL, tự động hóa quy trình CI/deploy/monitor mà có thể dùng hoặc không dùng code (dùng phần mềm có sẵn), phải viết rất nhiều file Terraform/HCL/YAML/bash, loại code không ra code, bug nhiều vô kể, không test, không type, không kiển trúc. Các hệ thống không có chuẩn (mỗi người làm 1 kiểu). Thưởng ít so với dev (1/3->1/5), làm tốt không được tăng lương/lên chức, sập thì ai cũng chửi, bị cắt thưởng.
Biết dev mà biết thêm devops thì là hổ mọc thêm cánh, còn bỏ dev đi sang làm ops, nếu không hợp có thể là sự thụt lùi trong sự nghiệp, 1 đi ít có ngày quay lại.
Không học phần 1, chỉ học phần 2 / 3 được không?
Dù là phần 1 2 hay 3 thì hầu hết mọi người đều đã ít nhiều biết gì đó. Nhưng kiến thức SysAdmin thường nhặt nhạnh và không theo một giáo trình chuẩn nào, cũng rất rộng, khiến học viên có thể bị hổng một vài chỗ.
Đây là nền tảng để (phỏng vấn) vị trí DevOps nên để đảm bảo chất lượng đầu ra, học viên cần học từ phần 1 để có "căn bản" - nhưng lựa chọn vẫn là của các bạn.
Vài câu hỏi test nhanh liên quan nội dung học ở 1 phần 1, bạn đọc tự Google để tìm câu trả lời:
- Process khác gì thread
- Vì sao free memory trong lệnh top/free lại không giống phần "RAM có thể dùng được" báo bởi các tool monitor
- File descriptor là gì?
- Inode là gì
- Zombie process là gì
- Container khác gì máy ảo (VM), Linux container trên MacOs/Windows chạy thế nào?
Học xong phần 2 có thi chứng chỉ AWS Solution Architect được không?
Nếu muốn thi chứng chỉ, bạn nên mua khóa học $10 trên Udemy và lên mạng search đề để luyện thi.
Nội dung học để ứng dụng, gặp khi sử dụng hàng ngày, không phải nội dung để thi.
Học xong phần 3 có thi chứng chỉ CKA được không?
Bạn không biết gì về deploy 1 service vẫn có thể đỗ CKA. CKA chỉ học "lý thuyết"/khái niệm, và cài đặt Kubernetes chứ không giống việc sử dụng hàng ngày. Chỉ cần học theo tài liệu và làm labs có trong các gói bundle của
LinuxFoundation là có thể đỗ CKA.
Tài liệu "Kubernetes the hard way" cũng có tác dụng để luyện thi CKA, nhưng không liên quan tới việc sử dụng hàng ngày.