Ngày 31 - Mô hình Điện toán Microsoft Azure
Hôm nay chúng ta sẽ xem xét các dịch vụ điện toán khác nhau có sẵn trong Azure
Nội dung
- 90 Ngày DevOps 🚀
- Ngày 1 - Giới thiệu
- Ngày 2 - Trách nhiệm của kỹ sư DevOps
- Ngày 3 - Vòng đời DevOps - Tập trung vào ứng dụng
- Ngày 4 - DevOps & Agile
- Ngày 5 - Kế hoạch > Viết mã > Xây dựng > Kiểm thử > Phát hành > Triển khai > Vận hành > Giám sát >
- Ngày 6 - DevOps - Những câu chuyện thực tế
- Ngày 7 - Bức tranh toàn cảnh: DevOps & Học một ngôn ngữ lập trình
- Ngày 8 - Thiết lập môi trường DevOps cho Go & Hello World
- Ngày 9 - Giải thích mã Hello World
- Ngày 10 - Không gian làm việc của Go
- Ngày 11 - Biến, hằng số & kiểu dữ liệu
- Ngày 12 - Nhận thông tin đầu vào sử dụng con trỏ và chương trình hoàn thiện
- Ngày 13 - Tweet tiến trình của bạn với ứng dụng mới của chúng ta
- Ngày 14 - Bức tranh lớn: DevOps và Linux
- Ngày 15 - Các lệnh Linux cho DevOps (thực tế là tất cả mọi người)
- Ngày 16 - Quản lý Hệ thống Linux, Hệ thống Tệp & Lưu trữ
- Ngày 17 - Text Editors - nano vs vim
- Ngày 18 - SSH & máy chủ web (LAMP)
- Ngày 19 - Tự động hóa các tác vụ với các tập lệnh bash
- Ngày 20 - Thiết lập máy trạm phát triển - những điều tuyệt vời
- Ngày 21 - Bức tranh toàn cảnh: DevOps và Mạng máy tính
- Ngày 22 - Mô hình 7 Lớp OSI
- Ngày 23 - Giao thức mạng
- Ngày 24 - Tự Động Hóa Thiết Lập Mạng
- Ngày 25 - Lập trình Python trong tự động hóa mạng
- Ngày 26 - Xây dựng Lab
- Ngày 27 - Thực hành với Python
- Ngày 28 - Bức tranh toàn cảnh: DevOps & The Cloud
- Ngày 29 - Kiến thức cơ bản về Microsoft Azure
- Ngày 30 - Mô hình bảo mật Microsoft Azure
- Ngày 31 - Mô hình Điện toán Microsoft Azure
- Ngày 32 - Mô hình lưu trữ và cơ sở dữ liệu Microsoft Azure
- Ngày 33 - Mô hình Mạng Microsoft Azure + Quản lý Azure
- Ngày 34 - Thực hành với Microsoft Azure
- Ngày 35 - Bức tranh toàn cảnh: Git - Quản lý phiên bản
- Ngày 36 - Cài đặt & Cấu hình Git
- Ngày 37 - Giới thiệu về Git
- Ngày 38 - Staging & Changing
- Ngày 39 - Xem, unstaging, loại bỏ & khôi phục
- Ngày 40 - Mạng xã hội dành cho code
- Ngày 41 - Quy trình làm việc với mã nguồn mở
- Ngày 42 - Bức tranh toàn cảnh: Containers
- Ngày 43 - Docker là gì & Cài đặt
- Ngày 44 - Docker image & Thực hành với Docker Desktop
- Ngày 45 - Phân tích một Docker Image
- Ngày 46 - Docker Compose
- Ngày 47 - Docker Networking & Security
- Ngày 48 - Các lựa chọn thay thế cho Docker
- Ngày 49 - Bức tranh toàn cảnh: Kubernetes
- Ngày 50 - Chọn nền tảng chạy Kubernetes
- Ngày 51 - Triển khai Kubernetes cluster đầu tiên
- Ngày 52 - Thiết lập Kubernetes cluster đa node
- Ngày 53 - Tổng quan về Rancher - Thực hành
- Ngày 54 - Triển khai ứng dụng Kubernetes
- Ngày 55 - State và Ingress trong Kubernetes
- Ngày 56 - Bức tranh toàn cảnh: Cơ sở hạ tầng dưới dạng mã (IaC)
- Ngày 57 - Giới thiệu về Terraform
- Ngày 58 - Ngôn ngữ cấu hình HashiCorp (HCL)
- Ngày 59 - Tạo máy ảo với Terraform và biến
- Ngày 60 - Docker Containers, Provisioners & Modules
- Ngày 61 - Kubernetes & Đa môi trường
- Ngày 62 - Kiểm thử, Công cụ và Các phương pháp thay thế
- Ngày 63 - Bức tranh toàn cảnh: Quản lý cấu hình
- Ngày 64 - Ansible: Bắt đầu
- Ngày 65 - Ansible Playbooks
- Ngày 66 - Tiếp tục với Ansible Playbooks...
- Ngày 67 - Sử dụng Role & Triển khai Loadbalancer
- Ngày 68 - Tags, Variables, Inventory & Database Server config
- Ngày 69 - Tất cả những thứ còn lại của Ansible - Automation Controller, AWX, Vault
- Ngày 70 - Bức tranh toàn cảnh: CI/CD Pipelines
- Ngày 71 - Jenkins là gì?
- Ngày 72 - Làm quen với Jenkins
- Ngày 73 - Xây dựng Jenkins pipeline
- Ngày 74 - Hello World - Jenkinsfile App Pipeline
- Ngày 75 - Tổng quan về GitHub Actions
- Ngày 76 - Tổng quan về ArgoCD
- Ngày 77 - Bức tranh toàn cảnh: Giám sát
- Ngày 78 - Thực hành với công cụ giám sát
- Ngày 79 - Bức tranh toàn cảnh: Quản lý log
- Ngày 80 - ELK Stack
- Ngày 81 - Fluentd & FluentBit
- Ngày 82 - EFK Stack
- Ngày 83 - Trực quan hóa dữ liệu - Grafana
- Ngày 84 - Bức tranh toàn cảnh: Quản lý dữ liệu
- Ngày 85 - Dịch vụ dữ liệu
- Ngày 86 - Sao lưu tất cả các nền tảng
- Ngày 87 - Thực hành với sao lưu & phục hồi
- Ngày 88 - Sao lưu theo hướng tập trung vào ứng dụng
- Ngày 89 - Khôi phục thảm họa (DR)
- Ngày 90 - Dữ liệu & ứng dụng: Tính di động
Nội dung khoá học
- 90 Ngày DevOps 🚀
- Ngày 1 - Giới thiệu
- Ngày 2 - Trách nhiệm của kỹ sư DevOps
- Ngày 3 - Vòng đời DevOps - Tập trung vào ứng dụng
- Ngày 4 - DevOps & Agile
- Ngày 5 - Kế hoạch > Viết mã > Xây dựng > Kiểm thử > Phát hành > Triển khai > Vận hành > Giám sát >
- Ngày 6 - DevOps - Những câu chuyện thực tế
- Ngày 7 - Bức tranh toàn cảnh: DevOps & Học một ngôn ngữ lập trình
- Ngày 8 - Thiết lập môi trường DevOps cho Go & Hello World
- Ngày 9 - Giải thích mã Hello World
- Ngày 10 - Không gian làm việc của Go
- Ngày 11 - Biến, hằng số & kiểu dữ liệu
- Ngày 12 - Nhận thông tin đầu vào sử dụng con trỏ và chương trình hoàn thiện
- Ngày 13 - Tweet tiến trình của bạn với ứng dụng mới của chúng ta
- Ngày 14 - Bức tranh lớn: DevOps và Linux
- Ngày 15 - Các lệnh Linux cho DevOps (thực tế là tất cả mọi người)
- Ngày 16 - Quản lý Hệ thống Linux, Hệ thống Tệp & Lưu trữ
- Ngày 17 - Text Editors - nano vs vim
- Ngày 18 - SSH & máy chủ web (LAMP)
- Ngày 19 - Tự động hóa các tác vụ với các tập lệnh bash
- Ngày 20 - Thiết lập máy trạm phát triển - những điều tuyệt vời
- Ngày 21 - Bức tranh toàn cảnh: DevOps và Mạng máy tính
- Ngày 22 - Mô hình 7 Lớp OSI
- Ngày 23 - Giao thức mạng
- Ngày 24 - Tự Động Hóa Thiết Lập Mạng
- Ngày 25 - Lập trình Python trong tự động hóa mạng
- Ngày 26 - Xây dựng Lab
- Ngày 27 - Thực hành với Python
- Ngày 28 - Bức tranh toàn cảnh: DevOps & The Cloud
- Ngày 29 - Kiến thức cơ bản về Microsoft Azure
- Ngày 30 - Mô hình bảo mật Microsoft Azure
- Ngày 31 - Mô hình Điện toán Microsoft Azure
- Ngày 32 - Mô hình lưu trữ và cơ sở dữ liệu Microsoft Azure
- Ngày 33 - Mô hình Mạng Microsoft Azure + Quản lý Azure
- Ngày 34 - Thực hành với Microsoft Azure
- Ngày 35 - Bức tranh toàn cảnh: Git - Quản lý phiên bản
- Ngày 36 - Cài đặt & Cấu hình Git
- Ngày 37 - Giới thiệu về Git
- Ngày 38 - Staging & Changing
- Ngày 39 - Xem, unstaging, loại bỏ & khôi phục
- Ngày 40 - Mạng xã hội dành cho code
- Ngày 41 - Quy trình làm việc với mã nguồn mở
- Ngày 42 - Bức tranh toàn cảnh: Containers
- Ngày 43 - Docker là gì & Cài đặt
- Ngày 44 - Docker image & Thực hành với Docker Desktop
- Ngày 45 - Phân tích một Docker Image
- Ngày 46 - Docker Compose
- Ngày 47 - Docker Networking & Security
- Ngày 48 - Các lựa chọn thay thế cho Docker
- Ngày 49 - Bức tranh toàn cảnh: Kubernetes
- Ngày 50 - Chọn nền tảng chạy Kubernetes
- Ngày 51 - Triển khai Kubernetes cluster đầu tiên
- Ngày 52 - Thiết lập Kubernetes cluster đa node
- Ngày 53 - Tổng quan về Rancher - Thực hành
- Ngày 54 - Triển khai ứng dụng Kubernetes
- Ngày 55 - State và Ingress trong Kubernetes
- Ngày 56 - Bức tranh toàn cảnh: Cơ sở hạ tầng dưới dạng mã (IaC)
- Ngày 57 - Giới thiệu về Terraform
- Ngày 58 - Ngôn ngữ cấu hình HashiCorp (HCL)
- Ngày 59 - Tạo máy ảo với Terraform và biến
- Ngày 60 - Docker Containers, Provisioners & Modules
- Ngày 61 - Kubernetes & Đa môi trường
- Ngày 62 - Kiểm thử, Công cụ và Các phương pháp thay thế
- Ngày 63 - Bức tranh toàn cảnh: Quản lý cấu hình
- Ngày 64 - Ansible: Bắt đầu
- Ngày 65 - Ansible Playbooks
- Ngày 66 - Tiếp tục với Ansible Playbooks...
- Ngày 67 - Sử dụng Role & Triển khai Loadbalancer
- Ngày 68 - Tags, Variables, Inventory & Database Server config
- Ngày 69 - Tất cả những thứ còn lại của Ansible - Automation Controller, AWX, Vault
- Ngày 70 - Bức tranh toàn cảnh: CI/CD Pipelines
- Ngày 71 - Jenkins là gì?
- Ngày 72 - Làm quen với Jenkins
- Ngày 73 - Xây dựng Jenkins pipeline
- Ngày 74 - Hello World - Jenkinsfile App Pipeline
- Ngày 75 - Tổng quan về GitHub Actions
- Ngày 76 - Tổng quan về ArgoCD
- Ngày 77 - Bức tranh toàn cảnh: Giám sát
- Ngày 78 - Thực hành với công cụ giám sát
- Ngày 79 - Bức tranh toàn cảnh: Quản lý log
- Ngày 80 - ELK Stack
- Ngày 81 - Fluentd & FluentBit
- Ngày 82 - EFK Stack
- Ngày 83 - Trực quan hóa dữ liệu - Grafana
- Ngày 84 - Bức tranh toàn cảnh: Quản lý dữ liệu
- Ngày 85 - Dịch vụ dữ liệu
- Ngày 86 - Sao lưu tất cả các nền tảng
- Ngày 87 - Thực hành với sao lưu & phục hồi
- Ngày 88 - Sao lưu theo hướng tập trung vào ứng dụng
- Ngày 89 - Khôi phục thảm họa (DR)
- Ngày 90 - Dữ liệu & ứng dụng: Tính di động
Mục lục
Mô hình Điện toán Microsoft Azure
Tiếp theo phần trình bày về những kiếm thức cơ bản về các mô hình bảo mật trong Microsoft Azure ngày hôm qua, hôm nay chúng ta sẽ xem xét các dịch vụ điện toán khác nhau có sẵn trong Azure.
Tùy chọn khả dụng của dịch vụ (Service Availability Options)
Phần này rất gần gũi với tôi dưới vai trò Data Management. Giốn như với on-premises, điều tối quan trọng là phải đảm bảo tính khả dụng của các dịch vụ của bạn.
- Tính sẵn sàng cao (high availability) (trong một region)
- Khắm phục thảm hoạ (disaster recovery) (giữa các regions)
- Sao lưu (backup) (phục hồi từ một thời điểm)
Microsoft triển khai nhiều regions trong một ranh giới địa chính trị.
Hai khái niệm với Azure cho tính khả dụng của dịch vụ: sets và zones.
Availability Sets - Cung cấp khả năng phục hồi trong trung tâm dữ liệu
Availability Zones - Cung cấp khả năng phục hồi giữa các trung tâm dữ liệu trong một khu vực.
Máy ảo (Virtual Machines)
Gần như đây là điểm khởi đầu cho bất cứ ai làm việc với đám mây công cộng.
- Cung cấp máy ảo (VM) từ nhiều dòng và kích cỡ, cấu hình khác nhau với nhiều khả năng khác nhau (đôi khi hơi quá so với nhu cầu) Kích cỡ, cấu hình cho máy ảo của Azure
- Có nhiều tuỳ chọn và những điểm tập trung khác nhau cho máy ảo, từ hiệu năng cao, độ trễ thấp tới những máy ảo có bộ nhớ tối ưu.
- Chúng ta cũng có loại VM có thể burst (dành cho workloads vượt quá cấu hình định mức) trong dòng B. Điều này rất tốt cho các workloads mà bạn có thể yêu cầu CPU thấp hầu hết thời gian nhưng lại yêu cầu tăng đột biến với tần suất có thể là mỗi tháng một lần.
- Máy ảo được đặt trên một mạng ảo có thể cung cấp với bất cứ mạng nào khác.
- Hỗ trọ hệ điều hành Linux và Windows.
- Ngoài ra còn có các kernels được điều chỉnh cho Azure khi nói đến các bản phân phối Linux cụ thể. Azure Tuned Kernals
Tạo mẫu (Templating)
Như tôi đã đề cập trước đó, mọi thứ đằng sau hoặc bên dưới Microsoft Azure đều là JSON.
Có một số cổng quản lý và bảng điều khiển khác nhau mà chúng ta có thể sử dụng để tạo tài nguyên của mình, cách được ưu tiên là thông qua các JSON templates.
Idempotent deployments ở chế độ incremental hoặc complete - ví dụ: trạng thái mong muốn có thể được lặp lại nhiều lần (repeatable desired state)
Có nhiều lựa chọn templates có thể export các định nghĩa tài nguyên đã được triển khai. Tôi nghĩ về tính năng tạo template này là một thứ gì đó giống với AWS CloudFormation hoặc có thể là Terraform cho lựa chọn multi-cloud. Chúng ta sẽ đề cập nhiều hơn tới Terraform trong phần Cơ sở hạ tầng dưới dạng mã.
Thay đổi quy mô (Scaling)
Tự động thay đổi quy mô (automatic scaling) là một tính năng lớn của đám mây công cộng, có thể rút bớt các tài nguyên mà bạn không sử dụng hoặc tăng thêm khi bạn cần chúng.
Với Azure, chúng ta có một thứ gọi là Virtual Machine Scale Sets (VMSS) cho IaaS. Điều này cho phép tạo và scale tự động một images tiêu chuẩn theo các lịch trình và số liệu (schedules & metrics)
Việc này rất lý tưởng cho việc thiết lập các khoảng cửa sổ cập nhật (updating windows) để bạn có thể cập nhật các images và triểu khai chúng với tác động ít nhất.
Các dịch vụ khác ví dụ như Azure App Service được tích hợp sẵn tính năng tự động thay đổi quy mô (auto-scaling).
Containers
Chúng ta chưa đề cập chi tiết tới containers trong hành trình học DevOps này nhưng tôi nghĩ chúng ta cần đề cập tới việc Azure có một số dịch vụ tập trung vào containers.
Azure Kubernetes Service (AKS) - Cung cấp giải pháp quản lý Kubernetes, không cần lo lắng về control plane hay quản lý cụm tài nguyên (cluster). Chúng ta sẽ tìm hiểu về Kubernetes thêm vào phần sau.
Azure Container Instances - Containers as a service với mô hình thanh toán theo giây (per-second billing). Chạy một image và tích hợp nó với mạng ảo của bạn, không cần container orchestration (điều phối container)
Service Fabric - Có rất nhiều khả năng nhưng bao gồi điều phối các container instances.
Azure cũng có Container Registry cung cấp một registry riêng cho Docker images, Helm charts, OCI Artifacts và images. Chúng ta sẽ tìm hiểu kỹ hơn trong phần về containers.
Chúng ta cũng nên đều cập rằng rất nhiều dịch vụ container cũng có thể sử dụng container ở phía dưới nhưng điều này cũng được trừu tượng hoá và bạn không cần phải quản lý chúng.
Chúng ta cũng có thể thấy các dịch vụ tập trung vào container này xuất hiện ở mọi đám mây công cộng khác.
Application Services
- Azure Application Services cung cấp giải pháp hosting với một phương pháp đơn giản để triển khai, thiết lập dịch vụ.
- Tự động triểu khai và mở rộng quy mô.
- Hỗ trợ các giải pháp dựa trên Windows và Linux.
- Các dịnh vụ chạy trong một App Service Plan được chọn type và size.
- Thích hợp cho các dịch vụ khác nhau bao gồm wep apps, API apps và mobile apps.
- Hỗ trợ Deployment slots cho việc triển khai và kiểm thử.
Serverless Computing
Serverless đối với tôi là một chủ đề thú vị mà tôi cực kỳ muốn tìm hiểu thêm.
Mục tiêu với serverless là chúng ta chỉ trả tiền cho thời gian chạy của một hàm và không cần phải chạy các máy ảo hoặc ứng dụng PaaS mọi lúc. Chúng ta đơn giản là chỉ chạy hàm của mình khi cần và sau đó nó biến mất.
Azure Functions - Cung cấp mã serverless. Nếu chúng ta nhớ lại những điều được đề cập trong bài đầu tiên về điện toán đám mấy, chúng ta sẽ nhớ về các lớp quản lý trừu tượng, với serverless funtion, chúng ta chỉ cần quản lý code.
Event-Driven với quy mô siêu lớn, tôi có kế hoạch làm một thứ gì đó khi tôi thực hành phần này, hy vọng sẽ thực hiện được ở phần sau.
Cung cấp input và output cho nhiều dịch vụ Azure và của bên thứ ba.
Hỗ trợ nhiều ngôn ngữ lập trình. (C#, NodeJS, Python, PHP, batch, bash, Golang and Rust. hoặc bất kỳ tệp thực thi nào)
Azure Event Grid cho phép có thể kích hoạt logic từ các dịch vụ khác hoặc events.
Azure Logic App cung cấp một quy trình làm việc và tích hợp dựa trên đồ hoạ.
Chúng ta cũng có thể nhắc tơi Azure Batch, dịch vụ giúp chạy các công việc có quy mô lớn trên các nodes Windows hoặc Linux với khả năng quản lý và lập lịch nhất quán.
Tài liệu tham khảo
- Hybrid Cloud and MultiCloud
- Microsoft Azure Fundamentals
- Google Cloud Digital Leader Certification Course
- AWS Basics for Beginners - Full Course
Hẹn gặp lại vào ngày 32
Các bài viết là bản tiếng Việt của tài liệu 90DaysOfDevOps của Micheal Cade và có qua sửa đổi, bổ sung. Tất cả đều có license [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License][cc-by-nc-sa].