DevOps on AWS for beginner (Vietnamese)
Khoá học DevOps trên AWS dành cho người mới bắt đầu - Tiếng Việt.
Khoá học DevOps trên AWS dành cho người mới bắt đầu - Tiếng Việt.
Chào mừng đến với khoá học DevOps on AWS for beginner - Tiếng Việt!!!
GIỚI THIỆU GIẢNG VIÊN
Hiện đang là AWS Cloud Solution Architect, Engineering Consultant chuyên phụ trách các dự án liên quan tới Cloud & AWS.
Làm việc với Cloud & AWS từ năm 2015 với vai trò Cloud Engineer và từ 2018 với vai trò Cloud Solution Architect.
Có kinh nghiệm thực chiến trong việc tư vấn, thiết kế và triển khai các hệ thống lớn quy mô hàng triệu user trên toàn thế giới. Chịu trách nhiệm cao nhất về kiến trúc cũng như giải pháp cho các dự án, đảm bảo hệ thống được thiết kế, xây dựng và release tới khách hàng và end-user với chất lượng cao nhất.
Chứng chỉ AWS hiện có:
AWS Certified Developer Associate (2016)
AWS Certified Solution Architect Associate (2018)
AWS Solution Architect Professional (2020, renew 2023)
AWS Certified DevOps Engineer Professional (2024)
Other: Thành viên của AWS Community Builder (năm thứ 3 liên tiếp), cộng đồng cho những nhà sáng tạo nội dung liên quan tới AWS trên toàn thế giới.
Về khoá học DevOps on AWS for beginner - Tiếng Việt
Khoá học này là sự tiếp nối của AWS Cloud for beginner - tiếng Việt được biên soạn dành riêng cho các bạn muốn đi theo hướng Cloud Engineer, DevOps Engineer hoặc SRE.
Khoá học này tập trung vào việc hướng dẫn các bạn có thể vận dụng những hiểu biết về AWS đã học để có thể tự mình triển khai hệ thống lên AWS, bao gồm việc tạo ra các Infrastructure as Code (IaC), deploy một cách tự động, thiết kế và implement các quy trình CICD vận dụng nhiều công cụ khác nhau thường được sử dụng trong các dự án thực tế.
Khoá học thiết kế với phần lớn thời gian là các bài thực hành giúp các bạn thực sự được nhúng tay vào làm và có thể vận dụng vào dự án thực tế ngay sau khi kết thúc khoá học này.
Sau khoá học này bạn sẽ có thể nắm vững các kiến thức & tự tin thực hành với:
Linux, Git.
Infrastructure as Code với Terraform, triển khai hệ thống hoàn chỉnh gồm: Network, Database, EC2, ECS,...
Docker & Docker compose.
Cài đặt Jenkins server, sử dụng Jenkins server để implement các CICD process.
Chiến lược deployment cho các thành phần khác nhau của hệ thống (Backend, Frontend).
ECS và ECR, kết hợp với Load Balancer tạo thành một hệ thống hoàn chỉnh.
CICD sử dụng native solution: AWS Code Pipeline.
CICD sử dụng công cụ Github Action.
Serverless Application Model (SAM) - Framework của AWS chuyên cho các ứng dụng Serverless.
Nguyên lý hoạt động và các thao tác cơ bản đối với Kubernetes(k8s) và AWS EKS.
Yêu cầu đầu vào:
Khoá học này yêu cầu các bạn có kiến thức cơ bản về AWS, quen thuộc với việc thao tác trên Console và CLI. Để chuẩn bị, các bạn có thể học một trong các khoá như Developer Associate, SysOps Administrator Associate hay thậm chí là khoá AWS Cloud for beginner - Tiếng Việt của mình. Tuy nhiên những khoá 100% lý thuyết như Solution Architect Associate/Pro sẽ không phù hợp.
Các bài lab đều được hướng dẫn kỹ step-by-step với độ khó tăng dần, ngoài ra toàn bộ source code được cung cấp sẵn, chỉ cần bạn kiên trì một chút là có thể hoàn thành.
Chúc các bạn học tập hiệu quả và gặt hái được nhiều kiến thức bổ ích qua khoá học này.
Thân ái - Linh Nguyễn.
LIÊN LẠC VỚI GIẢNG VIÊN
Các bạn có thể sử dụng tính năng Q&A của Udemy, mình sẽ thường xuyên check và trả lời các comment cũng như update video khi bị outdate. Ngoài ra mình cũng có một group FB riêng hỗ trợ technical cho các bạn có mua khóa học của mình trong suốt quá trình học tập, check tin nhắn tự động sau khi mua khoá trên Udemy để request vào nhóm nhé.
FAQ area empty
Welcome
183 Xem trướcHướng dẫn download source code.
167 Xem trướcDownload Slide & SourceCode của khoá học.
Xem trướcGiới thiệu giảng viên
71Khoá học này dành cho ai? KHÔNG dành cho ai?
110 Xem trướcYêu cầu đầu vào cho khoá học.
103 Xem trướcNội dung và cấu trúc khoá học.
101 Xem trướcMục tiêu sau khi kết thúc khoá học.
49Lưu ý cho các bạn học viên (QUAN TRỌNG!)
209Tương tác với giảng viên như thế nào?
178Về vấn đề Copyright (bản quyền)
276 Xem trướcDownload Source code của khóa học
Mục tiêu của chương
38Infrastructure as Code là gì? Lợi ích của Infrastructure as Code.
280Các bước để triển khai IaC
172(Question) Tại sao lại sử dụng Infra as Code?
74Giới thiệu các công cụ IaC thường dùng
391Giới thiệu Terraform
313Các bước triển khai Teraform
150Lab1 - Cài đặt môi trường làm việc với Terraform. Tài liệu tra cứu.
565Giới thiệu Github Copilot - sử dụng AI để viết code nhanh hơn.
311Lab2 - Tạo Terraform đơn giản - Phần 1
905Lab2 - Tạo Terraform đơn giản - Phần 2
313Lab2 - Tạo Terraform đơn giản - Phần 3
502CHÚ Ý VỀ FILE KEYPAIR!
Lab3 - Parameter, Mapping, Variable file - Phần 1
660Lab3 - Parameter, Mapping, Variable file - Phần 2
370Lab4 - Sử dụng Output
522Lab5 - Sử dụng Module - Phần 1
430Lab5 - Sử dụng Module - Phần 2
309Lab6 - Triển khai một VPC hoàn chỉnh - Phần 1
549Lab6 - Triển khai một VPC hoàn chỉnh - Phần 2
590Lab7 - Sử dụng Built-in module của Terraform để triển khai nhanh VPC
537Lab8 - VPC, ALB, Auto Scaling, Mongo DB - Phần 1
559Lab8 - VPC, ALB, Auto Scaling, Mongo DB - Phần 2
398Lab9 - Quản lý Terraform State sử dụng S3 bucket
651Lab10 - Triển khai Terraform trên Multi-environment, Multi-region
1076Tổng kết & Xóa resources.
56Lưu ý cho các bạn học viên!
Giới thiệu
41Giới thiệu về hệ điều hành Linux
277Lab1 - Tạo và kết nối tới server Linux
462Lab2 - Làm quen với trình editor VIM và NANO (p1)
556Lab2 - Làm quen với trình editor VIM và NANO (p2)
348Lab3 - Thao tác với User và Group (p1)
322Lab3 - Thao tác với User và Group (p2)
450Lab4 - File and folder permission (p1)
349Lab4 - File and folder permission (p2)
634Lab5 - Process
192Lab6 - Service
398Lab7 - EBS Disk, Volume, Mount point
681Lab8 - CronJob
426Lab9 - Thêm SSH key của project member vào linux server.
361Tổng kết & xoá resource
119Giới thiệu
48Giới thiệu Git
361Các mô hình Workflow của Git
601Các nhà cung cấp Git
57Lab 1 - Cài đặt Git và Sourcetree trên máy local
473Lab 2 - Tạo repository và add SSH key lên Github
494Lab 3 - Tạo nhánh develop
487Lab 4 - Tạo feature branch
498Lab 5 - Tạo release branch
621Lab 6 - Revert một commit
405Lab 7 - Resolve conflict khi có xung đột
607Lab 8 - Giới thiệu CodeCommit - phần 1
569Lab 8 - Giới thiệu CodeCommit - phần 2
280Các thao tác git thường dùng khác (git reset, git stash)
817Tổng kết & Xoá resources
150Giới thiệu.
35Container là gì? Tại sao sử dụng container?
340Docker là gì?
130Các bước triển khai ứng dụng Docker.
68Cài đặt Docker trên Windows.
451Cài đặt Docker trên máy MAC
51Cài đặt Docker sử dụng dịch vụ Cloud9
491Đăng ký account trên Dockerhub.
168Lab1 - Thao tác co bản với Docker.
871Giới thiệu về Dockerfile.
278Lab2 - Build một image đơn giản sử dụng Dockerfile.
420Lab3 - Phân biệt CMD và ENTRYPOINT
820Giới thiệu Multistage Dockerfile
173Lab4 - Multistage Dockerfile.
346Giới thiệu Docker Compose.
245Lab5 - Docker compose đơn giản.
400Lab6 - Dockercompose Multi service.
568Lab7 - Load balancer và Auto-restart.
718Giới thiệu Docker cheatsheet, cách tra cứu tài liệu.
124Giới thiệu ECS, ECR.
371Giới thiệu các bài lab ECS, ECR
43Lab- Build Docker image và Push lên ECR.
410Lab- Build Docker image sử dụng Cloud9
392Lỗi không thể start được Task do thiếu quyền CloudWatch Log
Lab - Chạy một Task đơn giản trên ECS.
853Lab - Chạy một service đơn giản trên ECS.
988Giới thiệu dịch vụ Cloudmap.
376Tổng kết và Xoá resources.
72Giới thiệu
30Giới thiệu về Jenkins
150Hướng dẫn cài đặt Jenkins trên Ubuntu server.
692Troubleshoot Jenkins không khởi động được
Lab1 - Thao tác cơ bản với Jenkins - First Hello job.
815Lab2 - Giới thiệu Jenkins Variable.
589Giới thiệu Jenkins CICD Concept.
352Lab3 - Build một Java project (Phần 1)
211Lab3 - Build một Java project (Phần 2)
844Lab3 - Build một Java project (Phần 3) - Sử dụng cú pháp Declarative.
361Lab4 - Build một Nodejs project (phần 1).
346Lab4 - Build một Nodejs project (phần 2).
548Lab5 - Build một Docker Project
908LƯU Ý cho các bài lab trở về sau!
Lab6 - Deploy Docker lên một ECS Cluster (phần 1).
695Lab6 - Deploy Docker lên một ECS Cluster (phần 2).
689Lab7 - Tạo một Pipeline from SCM.
777Lab8 - Trigger build job tự động từ Github repository.
849Lab9 - Tạo một job release thủ công theo Tag.
1091Xóa resource sau các bài lab.
277Lab10 - Giới thiệu về Scripted Pipeline.
241Lab11 - Notification sang Slack channel kết quả của Job.
794Tổng kết chương.
103Giới thiệu.
185Chiến lược deployment - In-place (All in one)
197Chiến lược deployment - Rolling Update
179Chiến lược deployment - Blue-Green
330Chiến lược deployment - Canary
193Giới thiệu bài Lab Triển khai sử dụng chiến lược Blue-Green
109Lab - Blue-Green Deployment - Phần 1
433Lab - Blue-Green Deployment - Phần 2
325Lab - Blue-Green Deployment - Phần 3
442Lab - Blue-Green Deployment - Phần 4
316Lab - Blue-Green Deployment - Phần 5
259Xoá resources sử dụng Terraform destroy
160Tổng kết chương
103Về việc CODECOMMIT NGỪNG HOẠT ĐỘNG
Giới thiệu
48Giới thiệu CodeBuild, CodeCommit, CodeDeploy, CodePipeline
486Lab1-Tạo một repository trên CodeCommit
218Lab2 - CodeBuild- Build Java Project (CodeCommit version)
768Lab2 - CodeBuild- Build Java Project (Github version)
770Lab3 - CodeBuild- Nodejs Application (CodeCommit version)
508Lab3 - CodeBuild- Nodejs Application (Github version)
689Lab4 - CodeBuild- Docker Image (CodeCommit version)
717Lab4 - CodeBuild- Docker Image (Github version)
638Lưu ý cho các bài lab 5,6,7,8,9
Lab5 - Tạo một job deploy lên ElasticBeanstalk
544Lab5 - Tạo một job deploy lên ElasticBeanstalk (p2)
585Lab5 - Tạo một job deploy lên ElasticBeanstalk (p3)
85Lab6 - Tạo một job deploy lên ECS theo hình thức Rollout
948Xoá resource sau bài Lab ECS
107Triển khai lên ECS theo hình thức Blue-Green
127Lab7 - Triển khai lên ECS theo hình thức Blue-Green (p1)
276Lab7 - Triển khai lên ECS theo hình thức Blue-Green (p2)
860Lab7 - Triển khai lên ECS theo hình thức Blue-Green (p3)
722Lab8 - Triển khai lên ECS theo hình thức Canary
517Lab9 - Thêm bước Manuall Approval
752Xoá resources
146Tổng kết chương.
108Intro
134Giới thiệu về SAM
200Cấu trúc của một file SAM template
145Lab 1 - tạo một ứng dụng helloworld sử dụng SAM (phần 1)
524Lab 1 - tạo một ứng dụng helloworld sử dụng SAM (phần 2)
358SAM Local Testing
114Lab 2 - tạo một ứng dụng rút gọn link sử dụng SAM (phần 1)
374Lab 2 - tạo một ứng dụng rút gọn link sử dụng SAM (phần 2)
441Nâng cấp tính năng cho ứng dụng trong tương lai
71Tổng kết và Xóa resources
36Giới thiệu Github Action
206Lab 1 - Build Docker image and push to ECR (part 1)
900Lab 1 - Build Docker image and push to ECR (part 2)
368Lab 2 - Deploy to ECS Cluster
673Lab 3 - Switch traffic Blue-Green
219Lab 4 - Clear old resources
192Lab 5 - Kết hợp tất cả trong một pipeline
613Lab 6 - Unit test trên nhánh develop
621Xoá resources
92Giới thiệu về Kubernetes (k8s)
583Các thành phần cơ bản trong Kubernetes
389Các concept trong Kubernetes.
171Lab 1 - Cài đặt và sử dụng Minikube
367Lab 2 - Run một Pod đơn giản sử dụng câu lệnh.
170Lab 3 - Run một pod đơn giản sử dụng file YAML.
280Khái niệm Namespace trong Kubernetes
331Khái niệm: Replica Set
111Lab 4 - Replica Set
341Khái niệm: Deployment
246Lab 5 - Tạo một Deployment
761Khái niệm Service trong Kubernetes
292Lab 6 - Tạo một Service loại NodePort.
231Khái niệm: ClusterIP Service.
242Lab 7 - Tạo một ClusterIP Service.
258Khái niệm Load Balance Service.
161Khái niệm: Ingress
453Lab 8 - Tạo một Ingress với sub-domain, path routing.
892Giới thiệu về Persistent Volume & Persistent Volume Claim (pvc)
193Lab 9 - Tạo một Persistent Volume cho service sử dụng MySQL.
549Khái niệm Configmap
180Lab 10 - Tạo và sử dụng Configmap
346Khái niệm Secret
79Lab 11 - Tạo và sử dụng Secret
341Khái niệm StatefulSet
166Giới thiệu về công cụ Kops (Kubernetes Operation)
150Cài đặt Kops và tạo một Kubernetes Cluster
1094Lab 13 - Triển khai ứng dụng lên Kubernetes (Phần 1)
376Lab 13 - Triển khai ứng dụng lên Kubernetes (Phần 2)
540Lab 13 - Triển khai ứng dụng lên Kubernetes (Phần 3)
943Lab 13 - Triển khai ứng dụng lên Kubernetes (Phần 4 xoá resources)
202Tổng kết và xoá resources
141Giới thiệu chương
45Giới thiệu về AWS EKS
311Lab 1 - Tạo một EKS Cluster
644Giới thiệu về Load Balancer trong EKS
141Lab 2 - Application Load Balancer cho EKS (Phần 1)
981Lab 2 - Application Load Balancer cho EKS (Phần 2)
467Storage trong EKS
57Lab 3 - Tạo một EBS Volume và sử dụng cho Mongo service.
491Giới thiệu Autoscaling trong EKS
137Các khái niệm Security trong EKS.
99Lab 4 - Tạo một IAM User và assign role trong Cluster.
841Tổng kết và xóa resources.
192Tổng quan về CICD cho Kubernetes & EKS
295Lab1 - Tạo EKS Cluster và cài đặt các công cụ cần thiết - phần 1
800Lab1 - Tạo EKS Cluster và cài đặt các công cụ cần thiết - phần 2
166Lab 2 - CICD cho EKS sử dụng CodePipeline (Phần 1)
136Lab 2 - CICD cho EKS sử dụng CodePipeline (Phần 2)
557Lab 2 - CICD cho EKS sử dụng CodePipeline (Phần 3)
811Lab2 2 - CICD cho EKS sử dụng CodePipeline - Add quyền & troubleshoot lỗi Deploy
858Cải tiến cho dự án thực tế
126Xóa resource sau lab 2
35Lab 3 - CICD sử dụng GithubAction Giới thiệu kiến trúc.
110Lab 3 - CICD sử dụng GithubAction - Thực hành
961Giới thiệu về GitOps
202Lab 4 - Triển khai GitOps cho EKS (kiến trúc)
91Lab 4 - Triển khai GitOps cho EKS sử dụng ArgoCD (phần 1)
337Lab 4 - Triển khai GitOps cho EKS sử dụng ArgoCD (phần 2)
631Lab 4 - Triển khai GitOps cho EKS sử dụng ArgoCD (phần 3)
613Xóa resource cuối chương
308Giới thiệu về Monitoring for Kubernetes
417Monitoring for Kubernetes - giải pháp OpenSource
556Monitoring for Kubernetes - giải pháp Managed Service
378Monitoring for Kubernetes - giải pháp SaaS
401Lab 1 - Monitoring for Kubernetes - Giới thiệu kiến trúc
214Lab 1 - Monitoring for Kubernetes - triển khai TODO app
997Lab 1 - Monitoring for Kubernetes - Triển khai Monitoring stack
306Lab 1 - Monitoring for Kubernetes - thao tác với Prometheus
314Lab 1 - Monitoring for Kubernetes - thao tác với Grafana
601Lab 1 - Monitoring for Kubernetes - Alert Manager
293Lab 1 - Monitoring for Kubernetes - cấu hình Slack notification
424Lab 1 - Monitoring for Kubernetes - Clear resources
28Lab 2- Thu thập log trên Kubernetes sử dụng stack ELK
169Lab 2- Thu thập log trên Kubernetes sử dụng stack ELK(thực hành)
684Lab 3 - Request tracing sử dụng OpenTelemetry & Jaeger(p1)
189Lab 3 - Request tracing sử dụng OpenTelemetry & Jaeger(p2)
803Tổng kết chương
232Final Assignment 1 - Thiết kế hệ thống & Triển khai CICD cho Container app
Giới thiệu Assignment
142Phân tích đề bài
181Thiết kế hệ thống
353Chạy thử với Docker Compose tại local
143Build and Push Docker image to ECR
390Giải thích cấu trúc Terraform
757Triển khai Terraform - Phần 1
493Triển khai Terraform - Phần 2
249Cấu hình CICD cho Frontend
805Cấu hình CICD cho Backend
540File template dùng để dán kết quả
Capture Evident and Submit kết quả
446CodePipeline CICD - Frontend
671CodePipeline CICD - Backend
540Capture Evidents
84Clear resources
131Kiến thức cơ bản về các dịch vụ của AWS như Networking, Security, Compute, Database, Container...
Có thể thao tác với AWS services trên Console (hoặc CLI ở mức độ cơ bản).
Đã từng học qua một trong các khoá AWS basic, DVA, SysOps Associate (ngoại trừ khoá lý thuyết 100%).
Đã làm việc trong các dự án IT trên 6 tháng (không khuyến khích các bạn trái ngành mới sang IT).
Quan trọng nhất: sự kiên trì và nỗ lực của bạn để có thể theo đến cuối khoá.
Nắm được các khái niệm cơ bản về DevOps và CICD process.
Thành thạo thao tác cơ bản với Linux, Git, Docker, Jenkins, Terraform, CodePipeline.
Thiết kế & Triển khai hạ tầng trên AWS tự động sử dụng IaC - Terraform.
Làm quen với Kubernetes (k8s) và EKS ở mức độ cơ bản.
Vận dụng các công cụ để implement một CICD process hoàn chỉnh trên AWS.
Có thể thiết kế & implement các chiến lược deployment cho các thành phần khác nhau của hệ thống, vận dụng vào dự án thực tế.