Lộ Trình vào địa ngục
- Lộ trình học python cho kỹ sư backend và kỹ sư tích hợp hệ thống bao gồm những kiến thức tổng quan về hệ thống từ bước design, build hệ thống website lớn (theo mô hình microservice và Flask / Django framework) có tính scale cao kèm theo các công nghệ deploy trên nhiều server và data center dùng các tools: Docker, Nginx, Kong, Kubernetes, Rancher2, Consul, Rabbitmq, Redis.
- Python basic
-
Cài đặt python, Pycharm
-
Các dạng dữ liệu cơ bản: number, string, bool, list, dict, tuples, set.
-
Các toán tử trong python
-
If, elif, else, for, while.
-
Hàm trong python, các hàm built-in
-
Làm quen với cách viết class trong python, phân biệt class method, static method, instance method, các trường hợp sử dụng tương ứng.
-
Thao tác với các database (Mysql, Mongo) ################################################################################################ Python advance
-
Python OOP với các ví dụ về đa hình, trừu tượng, đóng gói và kế thừa
-
Python list comprehension, dict comprehension.
-
Lambda function
-
Python multi-threading, multi processes
-
Python data structure - Thư viện chuẩn
-
Python decorator
-
Các design pattern cơ bản trong python (singleton, factory) ################################################################################################ Python best practice
-
Thiết lập pycharm để viết code theo chuẩn PEP8
-
Dùng Pycharm để debug python code
-
Unit test
-
Integration test
-
Cách phát hiện lỗi memory leak và cách fix
-
Cách quản lý các gói phụ trợ, cách build source code, mã hóa source code để phân phối cho bên thứ 3. ################################################################################################ Flask
-
Giới thiệu về Flask, so sánh với Django
-
Giới thiệu về REST API.
-
Flask basic routing
-
Flask Dynamic routing
-
Flask Debug mode
-
SQL database với FLask
-
Kết hợp chạy Flask application với Gunicorn, Nginx. ################################################################################################ Docker
-
Docker là gì, sự khác biệt giữa docker và VM
-
Các lệnh thao tác với docker: docker run, docker exec.
-
Docker image vs Dockerfile, sự khác biệt.
-
Cú pháp viết Dockerfile, cách build Dockerfile thành docker image, cách viết Dockerfile để tránh cache ở một số bước để docker image được update với những thay đổi mới nhất.
-
Cách tạo docker network, docker container hostname, docker container name, expose port từ trong docker ra ngoài.
-
Docker compose, chạy nhiều docker containers cùng một lúc với docker-compose ################################################################################################ Rancher2 - Kubernetes
-
Gioi thieu Rancher2, cách cài đặt single node trên máy local
-
Cách khái niệm cluster, node, pod, deployment, namespace
-
Cách tạo một custome cluster với Rancher2
-
Tạo một deployment, gán tài nguyên phần cứng cho các pod, kiểm tra hoạt động của pod qua Rancher GUI
-
Cài đặt Prometheus, Grafana qua Rancher catalog để theo dõi cluster (CPU, RAM, Network)
-
Tìm hiểu về rancher load balancer ################################################################################################ Python Deployment - Thiết kế và triển khai hệ thống
-
Gioi thiệu mô hình microservice, Những ứng dụng nào cần tới mô hình này.
-
Tại sao Nginx và Flask lại phù hợp với mô hình Microservice.
-
Giới thiệu Rabbitmq, khi nào dùng REST, khi nào dùng message queue.
-
Viết một microservice có phần gửi và nhận task qua rabbitmq.
-
Kiểm thử hoạt động của microservice bằng postman
-
Redis, Các cách sử dụng. Chương trình minh họa với python code.
-
Celery architecture. Chương trình hoàn chỉnh sử dụng celery với các microservice sử dụng Flask framework, rabbitmq như broker, redis để lưu trữ dữ liệu
-
Viết Dockerfile và build docker images cho mỗi microservices.
-
Deploy toàn bộ hệ thống với Docker-compose
-
Deploy toàn bộ hệ thống với Rancher2
-
Test hiệu năng của hệ thống bằng Jmeter