mirror of
https://github.com/MichaelCade/90DaysOfDevOps.git
synced 2025-01-07 05:50:32 +07:00
Merge pull request #337 from vntechies/main
This commit is contained in:
commit
0e7a030a2e
168
2022/vi/Days/day30.md
Normal file
168
2022/vi/Days/day30.md
Normal file
@ -0,0 +1,168 @@
|
||||
---
|
||||
title: '#90DaysOfDevOps - Mô hình bảo mật Microsoft Azure - Ngày 30'
|
||||
published: false
|
||||
description: 90DaysOfDevOps - Mô hình bảo mật Microsoft Azure
|
||||
tags: 'devops, 90daysofdevops, learning'
|
||||
cover_image: null
|
||||
canonical_url: null
|
||||
id: 1049039
|
||||
---
|
||||
|
||||
## Mô hình bảo mật Microsoft Azure
|
||||
|
||||
Tiếp sau tổng quan về Microsoft Azure, chúng ta sẽ thảo luận về bảo mật trên Azure và thử xem điều này có thể giúp ích gì cho chúng ta hàng ngày. Đối với hầu hết các trường hợp, tôi thấy các role được tích hợp sẵn đã đáp ứng được nhu cầu bình thường. Tuy nhiên, chúng ta cũng nên biết rằng có thể tạo và làm việc với nhiều kiểu xác thực và cấu hình khác nhau. Tôi nhận thấy Microsoft Azure khá ưu việt với nền tảng Active Directory so với các nhà cung cấp khác.
|
||||
|
||||
Đây là một lĩnh vực mà Microsoft Azure dường như hoạt động khác so với các nhà cung cấp đám mây công cộng khác, trong Azure, LUÔN LUÔN có Azure AD.
|
||||
|
||||
### Directory Services
|
||||
|
||||
- Azure Active Directory lưu trữ các nguyên tắc bảo mật được sử dụng bởi Microsoft Azure và các dịch vụ đám mây khác của Microsoft.
|
||||
- Quá trình xác thực được thực hiện thông qua các giao thứ chứ SAML. WS-Foundation, OpenID Connect và OAuth2.
|
||||
- Các truy vấn được thực hiện thông qua REST API được gọi là Microsoft Graph API.
|
||||
- Các tenants có một tên mặc định tại tenant.onmicrosoft.com nhưng cũng có thể có tên miền tuỳ chỉnh.
|
||||
- Subscriptions được liên kết với một Azure Active Directory tenant.
|
||||
|
||||
Nếu chúng ta so sánh với các dịch vụ tương đương của AWS thì nó sẽ là AWS IAM (Identity & Access Management) mặc dù chúng rất khác nhau.
|
||||
|
||||
Azure AD Connect cung cấp khả năng sao chép tài khoản từ AD sang Azure AD. Điều này cũng có thể bao gồm các nhóm và đôi khi là các đối tượng. Điều này có thể được lọc chi tiết và có hỗ trợ nhiều forests và domains.
|
||||
|
||||
Có thể tạo tài khoản đám mây trong Microsoft Azure Active Directory (AD) nhưng hầu hết các tổ chức đã tạo tài khoản cho người dùng của họ trong Active Directory của riêng họ ở on-premises.
|
||||
|
||||
Azure AD Connect không chỉ cho phép bạn xem các máy chủ Windows AD mà còn các Azure AD khác, Google và các máy chủ khác. Điều này cũng cung cấp khả năng cộng tác với những cá nhân và tổ chức bên ngoài, đây được gọi là Azure B2B.
|
||||
|
||||
CÓ thể có các tuỳ chọn xác thực giữa dịch vụ Azure Directory Domain và Microsoft Azure Active Directory với đồng bộ hoá danh tính sử dụng hàm băm mật khẩu.
|
||||
|
||||
![](../../Days/Images/Day30_Cloud1.png)
|
||||
|
||||
Việc chuyển hàm băm mật khẩu là tuỳ chọn, nếu điều này không được sử dụng thì cần phải xác thực theo kểu pass-through.
|
||||
|
||||
Video dưới đâu đi sâu vào chi tiết về xác thực pass-through.
|
||||
|
||||
[Người dùng đăng nhập với Azure Active Directory thông qua xác thực Pass-through](https://docs.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-pta)
|
||||
|
||||
![](../../Days/Images/Day30_Cloud2.png)
|
||||
|
||||
### Federation
|
||||
|
||||
Công bằng mà nói, nếu bạn đang sử dụng Microsoft 365, Microsoft Dynamics cùng với Active Directory ở on-premises thì khá là dễ hiểu và tích hợp vào Azure AD cho việc đăng nhập. Tuy nhiên, bạn có thể sử dụng các dịch vụ ở ngoài hệ sinh thái của Microsoft.
|
||||
|
||||
Azure AD có thể đóng vai trò là một federation broker cho các ứng dụng không phải của Microsoft và các directory services khác.
|
||||
|
||||
Bạn có thể thấy điều này trong Azure Portal dưới dạng Enterprise Applications với rất nhiều tuỳ chọn khác nhau.
|
||||
|
||||
![](../../Days/Images/Day30_Cloud3.png)
|
||||
|
||||
Nếu bạn cuộn xuống trên trang ứng dụng doanh nghiệp (enterprise application), bạn có thể thấy một danh sách các ứng dụng nổi bật.
|
||||
|
||||
![](../../Days/Images/Day30_Cloud4.png)
|
||||
|
||||
Tuỳ chọn này cũng cho phép bạn tích hợp với các ứng dụng của riêng bạn, một ứng dụng bạn đang phát triển hoặc không nằm trong thư viện.
|
||||
|
||||
Tôi chưa từng xem xét vấn đề này trước đây nhưng tôi có thể thấy rằng đây là bộ tính năng hoàn toàn phù hợp khi so sánh với các dịch vụ của các nhà cung cấp đám mây khác.
|
||||
|
||||
### Role-Based Access Control
|
||||
|
||||
Chúng ta đã đề cập vào [ngày 29](day29.md) phạm vi mà chúng tôi sẽ đề cập ở đây, chúng tôi có thể đặt kiểm soát RBAC của mình cho một trong những dịch vụ dưới đây.
|
||||
|
||||
- Subscriptions
|
||||
- Management Group
|
||||
- Resource Group
|
||||
- Resources
|
||||
|
||||
Role có thể được chia thành ba vai trò nhỏ hơn, có nhiều vai trò được tính hợp sẵ trong Microsoft Azure. Ba người đó là:
|
||||
|
||||
- Owner
|
||||
- Contributor
|
||||
- Reader
|
||||
|
||||
Owner and Contributor gần giống nhau về ranh giới và phạm vi, tuy nhiên, Owner có thể thay đổi quyền.
|
||||
|
||||
Các role khác dành riêng cho một số loại tài nguyên của Azure cũng như các custom roles.
|
||||
|
||||
Chúng ta nên tập trung vào việc gán quyền cho nhóm với gán quyền cho người dùng.
|
||||
|
||||
Quyền(Permissions) được kế thừa.
|
||||
|
||||
Nếu chúng ta quay lại nhóm tài nguyên "90DaysOfDevOps" và kiểm tra Access Control (IAM) của nó, bạn có thể thấy chúng ta có danh sách Contributors và một customer User Access Administrator, và chúng ta cũng có một danh sách các owners (nhưng tôi không thể công khai)
|
||||
|
||||
![](../../Days/Images/Day30_Cloud5.png)
|
||||
|
||||
Chúng ta cũng có thể kiểm tra các roles mà chúng ta đã chỉ định ở đây xem chúng có phải role được tích hợp hay chúng đang ở danh mục nào.
|
||||
|
||||
![](../../Days/Images/Day30_Cloud6.png)
|
||||
|
||||
Chúng ta cũng có thể sử dụng tab "Check access" nếu muốn kiểm tra một tài khoản với nhóm tài nguyên này và đảm bảo rằng tài khoản mà chúng ta muốn có quyền truy cập đó có đúng quyền hoặc có thể kiểm tra xem một người dùng có quá nhiều quyền truy cập hay không.
|
||||
|
||||
![](../../Days/Images/Day30_Cloud7.png)
|
||||
|
||||
### Microsoft Defender cho Cloud
|
||||
|
||||
- Microsoft Defender cho Cloud (trước đây là Azure Security Center) cung cấp thông tin chuyên sâu về bảo mật cho toàn bộ môi trường trên Azure.
|
||||
- Một bảng điều khiển duy nhất để hiện thị tình trạng bảo mật tổng thể của tất cả các tài nguyên Azure và không phải Azure (thông qua Azure Arc) và hướng dẫn tăng cường bảo mật.
|
||||
- Bậc miễn phí của dịch vụ có chức năng đánh giá bảo mật liên tục và đề xuất bảo mật.
|
||||
- Gói trả phí cho các loại tài nguyên được bảo vệ (ví dụ như là máy chủ, AppService, SQL, Storage, Containers, KeyVault).
|
||||
|
||||
Tôi đã chuyển sang một subscription khác để xem Azure Security Center và bạn có thể thấy tại đây với rất ít tài nguyên, tôi có vài đề xuất về bảo mật tại cùng một nơi.
|
||||
|
||||
![](../../Days/Images/Day30_Cloud8.png)
|
||||
|
||||
### Azure Policy
|
||||
|
||||
- Azure Policy là một dịch vụ native của Azure giúp thực thi các tiêu chuẩn của tổ chức và đánh giá compliance (quy định) trên quy mô lớn.
|
||||
- Được tích hợp và Microsoft Defender cho Cloud. Azure Policy kiểm tra các tài nguyên không tuân thủ quy tắc, tiêu chuẩn và áp dụng các biện pháp khắc phục.
|
||||
- Thường được sử dụng để quán lý tính nhất quán của tài nguyên, tuân thủ các quy định, bảo mật, chi phí và tiêu chuẩn quản lý.
|
||||
- Sử dụng định dạng JSON để lưu trữ logic đánh giá và xác định xem tài nguyên có tuân thủ hay không và bất kỳ hành động nào cần thực hiện khi không tuân thủ (ví dụ: Audit, AuditIfNotExists, Deny, Modify, DeployIfNotExists)
|
||||
- Sử dụng miễn phí. Ngoại lệ là các tài nguyên được kết nối với Azure Arc được tính phí trên mỗi máy chủ/tháng cho việc sử dụng Azure Policy Guest Configuration.
|
||||
|
||||
### Thực hành
|
||||
|
||||
Tôi đã mua tên miền www.90DaysOfDevOps.com và tôi muốn thêm tên miền này vào Azure Active Directory portal của mình, [Thêm tên miền tuỳ chọn của bạn bằng Azure Active Directory portal](https://docs.microsoft.com/en-us/azure/active-directory/fundamentals/add-custom-domain)
|
||||
|
||||
![](../../Days/Images/Day30_Cloud9.png)
|
||||
|
||||
Sau khi thực hiện điều này, chúng ta có thể tạo một người dùng mới trên Azure Directory domain của mình.
|
||||
|
||||
![](../../Days/Images/Day30_Cloud10.png)
|
||||
|
||||
Giờ chúng ta muốn tại một nhóm cho tất cả những người dùng của 90DaysOfDevOps trong một nhóm. Chúng ta có thể tạo một nhóm theo hướng dẫn bên dưới, lưu ý rằng tôi đang sử dụng "Dynamic User", điều đó có nghĩa là Azure AD sẽ truy vấn các tài khoản và thêm chúng một cách tự động so với việc được chỉ định - khi đó bạn phải thêm người dùng và nhóm của mình một cách thủ công.
|
||||
|
||||
![](../../Days/Images/Day30_Cloud11.png)
|
||||
|
||||
Có rất nhiều tuỳ chọn khi bạn tạo truy vấn của mình, tôi dự định chỉ cầm tìm tên chính và đảm bảo rằng tên đó chứa @90DaysOfDevOps.com.
|
||||
|
||||
![](../../Days/Images/Day30_Cloud12.png)
|
||||
|
||||
Vì tôi đã tạo tài khoản người dùng của mình dưới tên michael.cade@90DaysOfDevOps.com (thay bằng tên của các bạn ở đây) chúng ta có thể xác nhận xem các quy tắc có đang hoạt động hay không. Để so sánh, tôi cũng đã thêm một tài khoản khác liên kết với một tên miền khác tại đây và bạn có thể thấy do quy tắc này, người dùng của chúng ta sẽ không được đưa vào nhóm này.
|
||||
|
||||
![](../../Days/Images/Day30_Cloud13.png)
|
||||
|
||||
Sau đó, tôi thêm một người dùng user1@90DaysOfDevOps.com và nếu chúng ta kiểm tra nhóm, chúng ta có thể thấy các thành viên của nhóm mình.
|
||||
|
||||
![](../../Days/Images/Day30_Cloud14.png)
|
||||
|
||||
Nếu có khoảng 100 yêu cầu như thế này, chúng ta sẽ không muốn thực hiện tất cả điều này trong bảng điều khiển mà chúng tôi muốn tận dụng hoặc là các tuỳ chọn hàng loạt (bulk options) để tạo, mời, và xoá người dùng hoặc bạn có thể muốn sử dụng Powershell để làm điều này một cách tự động để có thể scale.
|
||||
|
||||
Bây giờ, chúng ta có thể vào Resource group của mình và chỉ định rằng trong nhóm tài nguyên 90DaysOfDevOps, chúng ta muốn chủ sở hữu (owner) của nó là nhóm chúng ta vừa mới tạo.
|
||||
|
||||
![](../../Days/Images/Day30_Cloud15.png)
|
||||
|
||||
Chúng ta cũng có thể từ chối các quyền truy cập đến resource group của chúng ta tại đây.
|
||||
|
||||
Bây giờ, nếu chúng ta đăng nhập và Azure Portal với tài khoản người dùng mới của chúng ta, bạn có thể thấy rằng chúng ta chỉ có quyền truy cập vào nhóm tài nguyên 90DaysOfDevÓp của mình chứ không phải những nhóm khác được thấy trong các ảnh trước đó vì chúng ta không có quyền truy cập.
|
||||
|
||||
![](../../Days/Images/Day30_Cloud16.png)
|
||||
|
||||
Nếu người dùng có quyền truy cập vào các tài nguyên bên trong Azure portal, cách trên sẽ rất tiện lợi. Tuy nhiên, không phải người dùng nào cũng cần biết về portal này, để kiểu tra quyền truy cập, bạn có thể sử dụng [Apps Portal](https://myapps.microsoft.com/). Đây là single sign-on portal để chúng ta có thể kiểm tra.
|
||||
|
||||
![](../../Days/Images/Day30_Cloud17.png)
|
||||
|
||||
Bạn có thể tuỳ chỉnh portal này với thương hiệu của mình và đây có thể là thứ mà chúng ta sẽ quay lại sau.
|
||||
|
||||
## Tài liệu tham khảo
|
||||
|
||||
- [Hybrid Cloud and MultiCloud](https://www.youtube.com/watch?v=qkj5W98Xdvw)
|
||||
- [Microsoft Azure Fundamentals](https://www.youtube.com/watch?v=NKEFWyqJ5XA&list=WL&index=130&t=12s)
|
||||
- [Google Cloud Digital Leader Certification Course](https://www.youtube.com/watch?v=UGRDM86MBIQ&list=WL&index=131&t=10s)
|
||||
- [AWS Basics for Beginners - Full Course](https://www.youtube.com/watch?v=ulprqHHWlng&t=5352s)
|
||||
|
||||
Hẹn gặp lại vào ngày [ngày 31](day31.md)
|
116
2022/vi/Days/day31.md
Normal file
116
2022/vi/Days/day31.md
Normal file
@ -0,0 +1,116 @@
|
||||
---
|
||||
title: '#90DaysOfDevOps - Mô hình Điện toán Microsoft Azure - Ngày 31'
|
||||
published: false
|
||||
description: 90DaysOfDevOps - Mô hình Điện toán Microsoft Azure
|
||||
tags: 'devops, 90daysofdevops, learning'
|
||||
cover_image: null
|
||||
canonical_url: null
|
||||
id: 1049040
|
||||
---
|
||||
|
||||
## 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](https://docs.microsoft.com/en-us/azure/virtual-machines/sizes)
|
||||
- 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](https://docs.microsoft.com/en-us/azure/virtual-machines/linux/endorsed-distros#azure-tuned-kernels)
|
||||
|
||||
### 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](https://www.youtube.com/watch?v=qkj5W98Xdvw)
|
||||
- [Microsoft Azure Fundamentals](https://www.youtube.com/watch?v=NKEFWyqJ5XA&list=WL&index=130&t=12s)
|
||||
- [Google Cloud Digital Leader Certification Course](https://www.youtube.com/watch?v=UGRDM86MBIQ&list=WL&index=131&t=10s)
|
||||
- [AWS Basics for Beginners - Full Course](https://www.youtube.com/watch?v=ulprqHHWlng&t=5352s)
|
||||
|
||||
Hẹn gặp lại vào [ngày 32](day32.md)
|
188
2022/vi/Days/day32.md
Normal file
188
2022/vi/Days/day32.md
Normal file
@ -0,0 +1,188 @@
|
||||
---
|
||||
title: '#90DaysOfDevOps - Mô hình lưu trữ và cơ sở dữ liệu Microsoft Azure - Ngày 32'
|
||||
published: false
|
||||
description: 90DaysOfDevOps - Mô hình lưu trữ và cơ sở dữ liệu Microsoft Azure
|
||||
tags: 'devops, 90daysofdevops, learning'
|
||||
cover_image: null
|
||||
canonical_url: null
|
||||
id: 1048775
|
||||
---
|
||||
|
||||
## Mô hình lưu trữ và cơ sở dữ liệu Microsoft Azure
|
||||
|
||||
### Các dịch vụ lưu trữ (Storage services)
|
||||
|
||||
- Các dịch vụ của Azure storage được cung cấp bởi các tài khoản lưu trữ(storage accounts).
|
||||
- Storage accounts chủ yếu được tuỷ cập thông qua REST API.
|
||||
- Một storage account phải có một tên duy nhất là và sẽ là một phần của DNS name `<Storage Account name>.core.windows.net`
|
||||
- Có nhiều tuỳ chọn sau lưu và mã hoá khác nhau.
|
||||
- Nằm trong một resource group
|
||||
|
||||
Chúng ta có thể tạo storage group bằng cách tìm kiếm storage group trong thành tìm kiếm ở trên cùng của Azure portal.
|
||||
|
||||
![](../../Days/Images/Day32_Cloud1.png)
|
||||
Sau đó chúng ta có thể thực hiện các bước để tạo storage account của mình, hãy nhớ rằng tên này cần phải là duy nhất và nó cũng cần phải là chữ thường, không có khoảng trắng nhưng có thể sử dụng các chữ số.
|
||||
|
||||
![](../../Days/Images/Day32_Cloud2.png)
|
||||
|
||||
Chúng ta cũng có thể chọn mức độ dự phòng (redundancy) mà chúng ta muốn với storage account của mình và bất cứ thứ gì chúng ta lưu trữ ở đó. Càng xuống phía dưới danh sách, các tuỳ chọn sẽ ngày một đắt tiền nhưng dữ liệu của bạn cũng được bảo đảm hơn.
|
||||
|
||||
Ngay cả tuỳ chọn dự phòng mặc định cũng cung cấp cho chúng ta 3 bản sau dữ liệu.
|
||||
|
||||
[Azure Storage Redundancy](https://docs.microsoft.com/en-us/azure/storage/common/storage-redundancy)
|
||||
|
||||
Dưới đây là tóm tắt cho thông tin có trong đường link ở trên:
|
||||
|
||||
- **Locally-redundant storage** - sao chép dữ liệu của bạn ba lần trong một trung tâm dữ liệu ở khu vực chính.
|
||||
- **Geo-redundant storage** - sao chép đồng bộ dữ liệu của bạn ba lần tại một vị trí vật lý ở khu vực chính sử dụng LRS.
|
||||
- **Zone-redundant storage** - sao chép dữ liệu của bạn một cách đồng bộ trên ba vùng khả dụng của Azure trong vùng chính.
|
||||
- **Geo-zone-redundant storage** - kết hợp tính khả dụng cao do khi các dữ liệu được sao chép giữa các availability zones (AZ) với khả năng bảo vệ khỏi sự cố với một region bằng geo-replication. Dữ liệu trong GZRS storage account được sao chép qua ba AZs trong region chính và cũng được sao chép sang vùng địa lý thứ hai để bảo về các thảm hoạ xảy ra trong từng khu vực.
|
||||
|
||||
![](../../Days/Images/Day32_Cloud3.png)
|
||||
|
||||
Quay trở lại các tuỳ chọn về hiệu suất. Chúng ta có Standard và Premium để chọn. Chúng ta đã chọn Standard trong hướng dẫn này nhưng lựa chọn Premium cho chúng ta một số ưu điểm cụ thể.
|
||||
|
||||
![](../../Days/Images/Day32_Cloud4.png)
|
||||
|
||||
Sau đó, trong drop-down, bạn có thể thấy chúng ta có ba tuỳ chọn sau.
|
||||
|
||||
![](../../Days/Images/Day32_Cloud5.png)
|
||||
|
||||
Có rất nhiều tuỳ chọn nâng cao hơn có sẵn cho tài khoản lưu trữ của bạn, nhưng hiện tại, chúng tôi không cần phải truy cập vào các phần này. Các tuỳ chọn này là về mã hoá và bảo vệ dữ liệu.
|
||||
|
||||
### Ổ đĩa được quản lý - Managed Disks
|
||||
|
||||
Truy cập bộ nhớ có thể đạt được theo một vài cách sau:
|
||||
|
||||
Truy cập được xác thực thông qua:
|
||||
|
||||
- Một shared key để kiểm soát hoàn toàn
|
||||
- Shared Access Signature để truy cập, uỷ quyền truy cập.
|
||||
- Azure Active Directory (nếu có)
|
||||
|
||||
Truy cập công cộng:
|
||||
- Quyền truy cập công khai cũng có thể được cấp để cho phép truy cập ẩn danh bao gồm cả qua HTTP.
|
||||
- - Một ví dụ về điều này có thể là lưu trữ các tệp và nội dung cơ bản trong một khối blob để trình duyệt có thể xem và tài xuống dữ liệu này.
|
||||
|
||||
Nếu bạn đang truy cập vào bộ nhớ của mình từ một dịch vụ Azure khác, thì lưu lượng truy cập vẫn nằm trong Azure.
|
||||
|
||||
Khi nói đến hiệu xuất lưu trữ, chúng ta có 2 loại khác nhau:
|
||||
|
||||
- **Tiêu chuẩn** - Số lượng IOPS tối đa trong khả năng
|
||||
- **Premium** - Số lượng IOPS được đảm bảo
|
||||
|
||||
IOPS => Input/Output operations per sec.
|
||||
|
||||
Ngoài ra còn có sự khác biết giữa ổ đĩa không được quản lý và ổ đĩa được quản lý để cân nhắc khi chọn ổ lưu trữ phù hợp cho tác vụ của bạn.
|
||||
|
||||
### Lưu trữ trên máy ảo - Virtual Machine Storage
|
||||
|
||||
- Ổ đĩa của hệ điều hành máy ảo được lưu trữ trên bộ lưu trữ liên tục (persisten storage)
|
||||
- Một số workloads phi trạng thái không yêu cầu lưu trữ liên tục và việc giảm độ trễ là điều cần quan tâm hơn.
|
||||
- Có một số máy ảo hỗ trợ các ổ đĩa tạm thời (ephemeral disks) do hệ điều hành quản lý và được tạo trên bộ lưu trữ nút cục bộ (node-local storage)
|
||||
- Chúng cũng có thể được sử dụng với VM Scale Sets
|
||||
|
||||
Ổ đĩa được quản lý là bộ lưu trữ khối (block storage) có thể được sử dụng với Azure Virtual Machines. Bạn có thể có Ultra Disk Storage, Premium SSD, Standard SSD, hoặc Standard HDD. Chúng cũng có một số đặc điểm riêng.
|
||||
|
||||
- Hỗ trợ Snapshot và Image
|
||||
- Di chuyển đơn giản giữa các SKUs
|
||||
- Tính khả dụng tốt hơn khi kết hợp với các bộ tính khả dụng (availability sets)
|
||||
- Tính phí dựa trên kích thước đĩa, không phải trên dung lượng lưu trữ đã sử dụng.
|
||||
|
||||
## Lưu trữ kho - Archive Storage
|
||||
|
||||
- **Cool Tier** - Có sẵn cho block và các blobs có thể thêm dữ liệu (append blobs)
|
||||
- Chi phí lưu trữ thấp hơn
|
||||
- Chi phí đọc/ghi cao hơn
|
||||
- **Archive Tier** - Có sẵn cho block BLOBs.
|
||||
- Được định cấu hình trên mỗi BLOB.
|
||||
- Chi phí rẻ hơn nhưng độ trễ khi truy vấn dữ liệu cao hơn.
|
||||
- Có độ bền bỉ (durability) tương tự như Azure Storage thông thường.
|
||||
- Phân tầng dữ liệu tuỳ chỉnh có thể được bật theo yêu cầu.
|
||||
|
||||
### Chia sẻ file - File Sharing
|
||||
|
||||
Từ việc tạo storage account ở trên, giờ đây chúng ta có thể tạo chia sẻ tệp.
|
||||
|
||||
![](../../Days/Images/Day32_Cloud6.png)
|
||||
|
||||
Việc này sẽ cung cấp tính năng chia sẻ tệp SMB2.1 và 3.0 trong Azure.
|
||||
|
||||
Có thể sử dụng trong Azure và bên ngoài thông qua SMB3 và cổng 445 mở ra với Internet.
|
||||
|
||||
Cung cấp lưu trữ tệp được chia sẻ trong Azure.
|
||||
|
||||
Ngoài REST API, dữ liệu có thể được đọc bởi ứng dụng SMB client tiêu chuẩn
|
||||
|
||||
Bạn cũng có thể để ý đến [Azure NetApp Files](https://vzilla.co.uk/vzilla-blog/azure-netapp-files-how) (SMB and NFS)
|
||||
|
||||
### Bộ nhớ đệm & Dịch vụ media - Caching & Media Services
|
||||
|
||||
Azure Content Delivery Network cung cấp bộ nhớ đệm cho nội dung web tĩnh với các vị trí trên khắp thế giới.
|
||||
|
||||
Azure Media Service, cung cấp các công nghệ chuyển mã phương tiện bên cạnh các dịch vụ phát lại.
|
||||
|
||||
## Mô hình cơ sở dữ liệu Microsoft Azure
|
||||
|
||||
Quay lại [Ngày 28](day28.md), chúng ta đã đề cập đến nhiều tùy chọn dịch vụ khác nhau. Một trong số đó là PaaS (Nền tảng dưới dạng Dịch vụ), nơi bạn trừu tượng hóa một các cơ sở hạ tầng và hệ điều hành và chỉ còn lại quyền kiểm soát ứng dụng hoặc trong trường hợp này là các mô hình cơ sở dữ liệu.
|
||||
|
||||
### Relational Databases
|
||||
|
||||
Cơ sở dữ liệu Azure SQL cung cấp cơ sở dữ liệu quan hệ dưới dạng dịch vụ dựa trên Microsoft SQL Server.
|
||||
|
||||
Đây là SQL chạy nhánh SQL mới nhất với mức độ tương thích cơ sở dữ liệu có sẵn khi cần có một phiên bản chức năng cụ thể.
|
||||
|
||||
Có một vài tùy chọn về cách cấu hình điều này, chúng ta có thể cung cấp một cơ sở dữ liệu duy nhất tron instance, trong khi một nhóm đàn hồi (elastic pool) cho phép nhiều cơ sở dữ liệu chia sẻ một nhóm dung lượng và chia tỷ lệ với nhau.
|
||||
|
||||
Các instances cơ sở dữ liệu này có thể được truy cập như các bản SQL thông thường.
|
||||
|
||||
Các dịch vụ được quản lý khác như MySQL, PostgreSQL và MariaDB.
|
||||
|
||||
![](../../Days/Images/Day32_Cloud7.png)
|
||||
|
||||
### Giải pháp NoSQL
|
||||
|
||||
Azure Cosmos DB là một NoSQL bất khả tri (agnostic NoSQL) với 99.99% SLA.
|
||||
|
||||
Dữ liệu được phân phối toàn cầu với độ trễ một chữ số cho 99% số yêu cầu ở mọi nơi trên thế giới với tính năng tự động điều hướng.
|
||||
|
||||
Khoá phân vùng (Partition key) được tận dụng để phân vùng/phân mảnh/phân phối dữ liệu.
|
||||
|
||||
Hỗ trợ nhiều mô hình dữ liệu khác nhau (documents, key-value, graph, column-friendly)
|
||||
|
||||
Hỗ trợ nhiều API khác nhau (DocumentDB SQL, MongoDB, Azure Table Storage và Gremlin)
|
||||
|
||||
![](../../Days/Images/Day32_Cloud9.png)
|
||||
|
||||
Có nhiều mô hình nhất quán khác nhau dựa trên [định lý CAP](https://en.wikipedia.org/wiki/CAP_theorem).
|
||||
|
||||
![](../../Days/Images/Day32_Cloud8.png)
|
||||
|
||||
### Bộ nhớ đệm - Caching
|
||||
|
||||
Để tránh đi sâu vào các hệ thống bộ nhớ đệm như Redis, tôi chỉ muốn đề cập rằng Microsoft Azure có một dịch vụ gọi là Azure Cache cho Redis.
|
||||
|
||||
Azure Cache cho Redis cung cấp bộ nhớ lưu trữ dữ liệu in-memory dựa trên Redis.
|
||||
|
||||
- Đây là một phiên bản triển khai của phần mềm mã nguồn mở Redis Cache.
|
||||
- Một instance được host, bảo mật
|
||||
- Có nhiều tiers khác nhau để lựa chọn
|
||||
- Ứng dụng phải được cập nhật để tận dụng bộ nhớ đệm
|
||||
- Nhắm vào các ứng dụng có yêu cầu đọc nhiều hơn so với ghi
|
||||
- Lưu trữ dưới dạng key-value
|
||||
|
||||
![](../../Days/Images/Day32_Cloud10.png)
|
||||
|
||||
Đã có rất nhiều ghi chú và lý thuyết về Microsoft Azure nhưng tôi muốn đề cập kỹ hơn tới các khối xây dựng cơ bản (building blocks) trước khi chúng ta đi sâu vào các khía cạnh thực hành về cách các thành phần này kết hợp và hoạt động với nhau.
|
||||
|
||||
Chúng ta còn một chút lý thuyết nữa về mạng trước khi có thể thiết lập và triển khai và chạy một số dịch vụ dựa trên các kịch bản có sẵn. Chúng ta cũng nên tương tác với Microsoft Azure bằng các phương pháp khác nhau so với việc chỉ sử dụng cổng portal như chúng ta vẫn làm cho tới thời điểm này.
|
||||
|
||||
## Tài liệu tham khảo
|
||||
|
||||
- [Hybrid Cloud and MultiCloud](https://www.youtube.com/watch?v=qkj5W98Xdvw)
|
||||
- [Microsoft Azure Fundamentals](https://www.youtube.com/watch?v=NKEFWyqJ5XA&list=WL&index=130&t=12s)
|
||||
- [Google Cloud Digital Leader Certification Course](https://www.youtube.com/watch?v=UGRDM86MBIQ&list=WL&index=131&t=10s)
|
||||
- [AWS Basics for Beginners - Full Course](https://www.youtube.com/watch?v=ulprqHHWlng&t=5352s)
|
||||
|
||||
Hẹn gặp lại vào [ngày 33](day33.md)
|
||||
|
199
2022/vi/Days/day33.md
Normal file
199
2022/vi/Days/day33.md
Normal file
@ -0,0 +1,199 @@
|
||||
---
|
||||
title: '#90DaysOfDevOps - Mô hình Mạng Microsoft Azure + Quản lý Azure - Ngày 33'
|
||||
published: false
|
||||
description: 90DaysOfDevOps - Mô hình Mạng Microsoft Azure + Quản lý Azure
|
||||
tags: 'devops, 90daysofdevops, learning'
|
||||
cover_image: null
|
||||
canonical_url: null
|
||||
id: 1048706
|
||||
---
|
||||
|
||||
## Mô hình Mạng Microsoft Azure + Quản lý Azure
|
||||
|
||||
Hôm nay là ngày kỷ niệm của Microsoft Azure và Sinh nhật lần thứ 12 của nó! (Ngày 1 tháng 2 năm 2022) Dù sao đi nữa, chúng ta sẽ đề cập đến các mô hình kết nối mạng trong Microsoft Azure và một số tùy chọn quản lý dành cho Azure. Cho đến hiện tại, chúng ta mới chỉ sử dụng Azure portal nhưng chúng ta đã đề cập đến một số phần và phương pháp khác để tạo các tài nguyên trên nền tảng này.
|
||||
|
||||
## Mô hình mạng Azure
|
||||
|
||||
### Mạng ảo - Virtual Networks
|
||||
|
||||
- Mạng ảo (VNet) là một cấu trúc được tạo trong Azure.
|
||||
- Một mạng ảo có một hoặc nhiều dải IP được gán cho nó.
|
||||
- Mạng ảo tồn tại trong một subscription trong một region.
|
||||
- Mạng con ảo (virtual subnets) được tạo trong mạng ảo để chia nhỏ phạm vi mạng.
|
||||
- Máy ảo được đặt trong mạng con ảo.
|
||||
- Tất cả các máy ảo trong một mạng ảo đều có thể giao tiếp với nhau.
|
||||
- 65.536 IPs riêng trên mỗi Mạng ảo.
|
||||
- Chỉ trả tiền cho lưu lượng đi ra từ một region. (Dữ liệu rời khỏi region)
|
||||
- Hỗ trợ IPv4 & IPv6.
|
||||
- IPv6 dành cho public-facing và trong các mạng ảo.
|
||||
|
||||
Chúng ta có thể ví Mạng ảo Azure với AWS VPC. Tuy nhiên, có một số khác biệt cần lưu ý:
|
||||
|
||||
- Trong AWS, VNet mặc định được tạo, điều này không giống với Microsoft Azure, bạn phải tạo mạng ảo đầu tiên theo yêu cầu của mình.
|
||||
- Tất cả các Virtual Machines mặc định trong Azure đều có NAT truy cập internet. Không có NAT Gateways như AWS.
|
||||
- Trong Microsoft Azure không có khái niệm mạng con Private hay Public.
|
||||
- IP công cộng là tài nguyên có thể được gán cho vNIC hoặc Bộ cân bằng tải.
|
||||
- Mạng ảo và Mạng con có ACL riêng cho phép ủy quyền cấp mạng con.
|
||||
- Mạng con trên các AZs trong khi ở AWS, bạn có các mạng con nằm trên một AZ.
|
||||
|
||||
Chúng ta cũng có Virtual Network Peering. Điều này cho phép các mạng ảo trên các tenants và regions được kết nối thông qua hạ tầng của Azure. Không có tính bắc cầu nhưng nhưng có thể được kích hoạt qua Azure Firewall trong hub virtual network.
|
||||
|
||||
### Kiểm soát truy cập - Access Control
|
||||
|
||||
- Azure sử dụng Network Security Groups, đây là những nhóm có trạng thái.
|
||||
- Kích hoạt các quy tắc được tạo và sau đó được gán cho một Network Security Group
|
||||
- Network Security Groups được áp dụng cho mạng con hoặc máy ảo.
|
||||
- Khi được áp dụng cho một mạng con, nó vẫn được thực thi tại NIC của máy ảo rằng nó không phải là thiết bị "Edge".
|
||||
|
||||
![](../../Days/Images/Day33_Cloud1.png)
|
||||
|
||||
- Các quy tắc được kết hợp trong một Network Security Group.
|
||||
- Dựa trên mức độ ưu tiên, có thể cấu hình linh hoạt.
|
||||
- Số ưu tiên thấp hơn có nghĩa là ưu tiên cao.
|
||||
- Hầu hết logic được xây dựng bởi Địa chỉ IP nhưng một số thẻ và nhãn cũng có thể được sử dụng.
|
||||
|
||||
| Description | Priority | Source Address | Source Port | Destination Address | Destination Port | Action |
|
||||
| ---------------- | -------- | ------------------ | ----------- | ------------------- | ---------------- | ------ |
|
||||
| Inbound 443 | 1005 | \* | \* | \* | 443 | Allow |
|
||||
| ILB | 1010 | Azure LoadBalancer | \* | \* | 10000 | Allow |
|
||||
| Deny All Inbound | 4000 | \* | \* | \* | \* | DENY |
|
||||
|
||||
Chúng tôi cũng có Application Security Groups (ASGs)
|
||||
|
||||
- Trường hợp NSG tập trung vào dải địa chỉ IP có thể khó duy trì đối với môi trường đang phát triển.
|
||||
- ASG cho phép xác định tên thật (Monikers) cho các vai trò ứng dụng khác nhau (Máy chủ web, máy chủ DB, WebApp1, v.v.)
|
||||
- NIC của máy ảo được coi là thành viên của một hoặc nhiều ASG.
|
||||
|
||||
Sau đó, ASG có thể được sử dụng trong các quy tắc và là một phần của Network Security Groups để kiểm soát luồng giao tiếp và vẫn có thể sử dụng các tính năng của NSG như tags của dịch vụ.
|
||||
|
||||
| Action | Name | Source | Destination | Port |
|
||||
| ------ | ------------------ | ---------- | ----------- | ------------ |
|
||||
| Allow | AllowInternettoWeb | Internet | WebServers | 443(HTTPS) |
|
||||
| Allow | AllowWebToApp | WebServers | AppServers | 443(HTTPS) |
|
||||
| Allow | AllowAppToDB | AppServers | DbServers | 1443 (MSSQL) |
|
||||
| Deny | DenyAllinbound | Any | Any | Any |
|
||||
|
||||
### Cân bằng tải - Load Balancing
|
||||
|
||||
Microsoft Azure có hai giải pháp cân bằng tải riêng biệt. (giải phảp first party, có nhiều giải pháp của bên thứ ba trên Azure marketplace) Cả hai đều có thể hoạt động với các endpoints nội bộ hoặc công khai.
|
||||
|
||||
- Load Balancer (Layer 4) hỗ trợ phân phối và chuyển tiếp cổng dựa trên hàm băm.
|
||||
- App Gateway (Layer 7) hỗ trợ các tính năng như giảm tải SSL, định tuyến dựa trên cookie và định tuyến nội dung dựa trên URL.
|
||||
|
||||
Ngoài ra với App Gateway, bạn có thể tùy chọn sử dụng Web Application firewall.
|
||||
|
||||
## Công cụ quản lý Azure - Azure Management Tools
|
||||
|
||||
Chúng ta đã dành phần lớn thời gian lý thuyết của mình để xem qua Azure portal, tôi khuyên bạn nên tuân theo văn hóa DevOps và thực hiện các các task, đặc biệt là xung quanh việc khởi tạo tài nguyên nên được thông qua API hoặc công cụ dòng lệnh (CLI). Tôi muốn đề cập đến một số công cụ quản lý có sẵn khác vì chúng ta cần biết điều này khi tự động hóa việc khởi tạo và quản lý môi trường Azure của mình.
|
||||
|
||||
### Azure Portal
|
||||
|
||||
The Microsoft Azure Portal is a web-based console, that provides an alternative to command-line tools. You can manage your subscriptions within the Azure Portal. Build, Manage, and Monitor everything from a simple web app to complex cloud deployments. Another thing you will find within the portal are these breadcrumbs, JSON as mentioned before is the underpinning of all Azure Resources, It might be that you start in the Portal to understand the features, services and functionality but then later understand the JSON underneath to incorporate into your automated workflows.
|
||||
|
||||
Microsoft Azure portal là một bảng điều khiển bằng web, cung cấp giải pháp thay thế cho các công cụ dòng lệnh. Bạn có thể quản lý subscriptions của mình trong Azure portal. Xây dựng, quản lý và giám sát mọi thứ từ một ứng dụng web đơn giản đến việc triển khai hệ thống phức tạp. Một thứ khác mà bạn sẽ tìm thấy trong portal là các breadcrumbs này, JSON như đã đề cập trước đây là nền tảng của tất cả tài nguyên trên Azure. Có thể bạn bắt đầu với portal để hiểu các tính năng, dịch vụ và chức năng nhưng sau đó nên hiểu các file JSON ở dưới đó để kết hợp vào quy trình làm việc tự động của bạn.
|
||||
|
||||
![](../../Days/Images/Day33_Cloud2.png)
|
||||
|
||||
Ngoài ra còn có Azure Preview portal, nó có thể được sử dụng để xem và thử nghiệm các dịch vụ và cải tiến mới và sắp ra mắt.
|
||||
|
||||
![](../../Days/Images/Day33_Cloud3.png)
|
||||
|
||||
### PowerShell
|
||||
|
||||
Before we get into Azure PowerShell it is worth introducing PowerShell first. PowerShell is a task automation and configuration management framework, a command-line shell and a scripting language. We might and dare I say this liken this to what we have covered in the Linux section around shell scripting. PowerShell was very much first found on Windows OS but it is now cross-platform.
|
||||
|
||||
Azure PowerShell is a set of cmdlets for managing Azure resources directly from the PowerShell command line.
|
||||
|
||||
We can see below that you can connect to your subscription using the PowerShell command `Connect-AzAccount`
|
||||
|
||||
Trước khi chúng tôi bắt đầu với Azure PowerShell, chúng ta nên biết tới PowerShell. PowerShell là một framework quản lý cấu hình và tự động hóa tác vụ, một command-line shell và ngôn ngữ kịch bản. Nó giống với những gì chúng ta đã tìm hiểu trong phần shell scripting cho Linux. PowerShell lúc đầu được sử dụng rộng rãi trên hệ điều hành Windows nhưng giờ đây nó đã có trên nhiều nền tảng.
|
||||
|
||||
Azure PowerShell là một tập hợp các lệnh ghép ngắn để quản lý tài nguyên Azure trực tiếp từ dòng lệnh PowerShell.
|
||||
|
||||
Chúng ta có thể thấy bên dưới rằng bạn có thể kết nối với đăng ký của mình bằng lệnh PowerShell `Connect-AzAccount`
|
||||
|
||||
![](../../Days/Images/Day33_Cloud4.png)
|
||||
|
||||
Sau đó, nếu muốn tìm một số lệnh cụ thể được liên kết với máy ảo Azure, chúng ta có thể chạy lệnh sau. Bạn có thể dành thời gian để học và tìm hiểu thêm về ngôn ngữ lập trình này.
|
||||
|
||||
![](../../Days/Images/Day33_Cloud5.png)
|
||||
|
||||
Có một số hướng dẫn nhanh rất tốt từ Microsoft về việc bắt đầu và khởi tạo các dịch vụ từ Powershell [tại đây](https://docs.microsoft.com/en-us/powershell/azure/get-started-azureps?view=azps-7.1.0)
|
||||
|
||||
### Visual Studio Code
|
||||
|
||||
Giống như nhiều người, và như tất cả các bạn đã thấy, IDE của tôi là Visual Studio Code.
|
||||
|
||||
Visual Studio Code là trình chỉnh sửa mã nguồn miễn phí do Microsoft tạo cho Windows, Linux và macOS.
|
||||
|
||||
Bạn sẽ thấy bên dưới có rất nhiều tích hợp và công cụ được tích hợp trong Visual Studio Code mà bạn có thể sử dụng để tương tác với Microsoft Azure và các dịch vụ trong đó.
|
||||
|
||||
![](../../Days/Images/Day33_Cloud6.png)
|
||||
|
||||
### Cloud Shell
|
||||
|
||||
Azure Cloud Shell là một shell tương tác, được xác thực, có thể truy cập bằng trình duyệt để quản lý tài nguyên Azure. Nó cung cấp sự linh hoạt khi lựa chọn shell phù hợp nhất với người dùng.
|
||||
|
||||
![](../../Days/Images/Day33_Cloud7.png)
|
||||
|
||||
You can see from the below when we first launch Cloud Shell within the portal we can choose between Bash and PowerShell.
|
||||
Bạn có thể thấy từ bên dưới khi khởi chạy Cloud Shell lần đầu tiên trong portal, chúng ta có thể chọn giữa Bash và PowerShell.
|
||||
|
||||
![](../../Days/Images/Day33_Cloud8.png)
|
||||
|
||||
Để sử dụng cloud shell, bạn sẽ phải cung cấp một chút dung lượng lưu trữ trong subscription của mình.
|
||||
|
||||
Khi bạn chọn sử dụng cloud shell, nó sẽ khởi động một máy, những máy này là tạm thời nhưng các tệp của bạn vẫn được duy trì theo hai cách: thông qua disk image và mounted file share.
|
||||
|
||||
![](../../Days/Images/Day33_Cloud9.png)
|
||||
|
||||
- Cloud Shell chạy trên máy chủ tạm thời được cung cấp trên theo mỗi phiên, mỗi người dùng
|
||||
- Cloud Shell hết thời gian chờ sau 20 phút không có hoạt động tương tác
|
||||
- Cloud Shell yêu cầu một Azure file share được gắn vào (mounted)
|
||||
- Cloud Shell sử dụng cùng một Azure file share cho cả Bash và PowerShell
|
||||
- Cloud Shell được cung cấp một máy cho mỗi tài khoản người dùng
|
||||
- Cloud Shell vẫn duy trì $HOME bằng cách sử dụng hình ảnh 5 GB được giữ trong file share của bạn
|
||||
- Quyền được đặt như một người dùng Linux thông thường trong Bash
|
||||
|
||||
Phần trên được sao chép từ [Tổng quan về Cloud Shell](https://docs.microsoft.com/en-us/azure/cloud-shell/overview)
|
||||
|
||||
### Azure CLI
|
||||
|
||||
Cuối cùng, tôi muốn đề cập đến Azure CLI, Azure CLI có thể được cài đặt trên Windows, Linux và macOS. Sau khi cài đặt, bạn có thể nhập `az` theo sau là các lệnh khác để tạo, cập nhật, xóa và xem tài nguyên trên Azure.
|
||||
|
||||
Khi mới bắt đầu học Azure, tôi hơi bối rối vì có Azure PowerShell và Azure CLI.
|
||||
|
||||
Tôi cũng thích có phản hồi từ cộng đồng về điều này. Nhưng theo cách tôi thấy thì Azure PowerShell là một module được thêm vào Windows PowerShell hoặc PowerShell Core (cũng có sẵn trên hệ điều hành khác nhưng không phải tất cả), trong khi Azure CLI là một chương trình dòng lệnh đa nền tảng kết nối với Azure và thực thi các lệnh đó .
|
||||
|
||||
Cả hai tùy chọn này đều có cú pháp khác nhau, mặc dù từ những gì tôi có thể thấy và những gì tôi đã làm chúng có thể thực hiện các nhiệm vụ rất giống nhau.
|
||||
|
||||
Ví dụ: tạo một máy ảo từ PowerShell sẽ sử dụng lệnh ghép ngắn `New-AzVM` trong khi Azure CLI sẽ sử dụng `az VM create`.
|
||||
|
||||
Trước đây, bạn có thể thấy rằng tôi đã cài đặt module Azure PowerShell trên hệ thống của mình nhưng sau đó tôi cũng đã cài đặt Azure CLI và nó có thể được gọi thông qua PowerShell trên máy Windows của mình.
|
||||
|
||||
![](../../Days/Images/Day33_Cloud10.png)
|
||||
|
||||
Bài học rút ra ở đây như chúng ta đã đề cập là chọn công cụ phù hợp với bản thân. Azure chạy trên tự động hóa. Mọi hành động bạn thực hiện bên trong portal sẽ được dịch ở đâu đó thành dạnh mã và được thực thi để đọc, tạo, sửa đổi hoặc xóa tài nguyên.
|
||||
|
||||
Azure CLI
|
||||
|
||||
- Giao diện dòng lệnh đa nền tảng, có thể cài đặt trên Windows, macOS, Linux
|
||||
- Chạy trong Windows PowerShell, Cmd, Bash và các shell Unix khác.
|
||||
|
||||
Azure PowerShell
|
||||
|
||||
- Module PowerShell đa nền tảng, chạy trên Windows, macOS, Linux
|
||||
- Yêu cầu Windows PowerShell hoặc PowerShell
|
||||
|
||||
Nếu có lý do khiến bạn không thể sử dụng PowerShell trong môi trường của mình nhưng bạn có thể sử dụng bash thì Azure CLI sẽ là lựa chọn của bạn.
|
||||
|
||||
Tiếp theo, chúng ta sử dụng tất cả các lý thuyết đã được đề cập và tạo ra một số kịch bản và thực hành trên Azure.
|
||||
|
||||
## Tài liệu tham khảo
|
||||
|
||||
- [Hybrid Cloud and MultiCloud](https://www.youtube.com/watch?v=qkj5W98Xdvw)
|
||||
- [Microsoft Azure Fundamentals](https://www.youtube.com/watch?v=NKEFWyqJ5XA&list=WL&index=130&t=12s)
|
||||
- [Google Cloud Digital Leader Certification Course](https://www.youtube.com/watch?v=UGRDM86MBIQ&list=WL&index=131&t=10s)
|
||||
- [AWS Basics for Beginners - Full Course](https://www.youtube.com/watch?v=ulprqHHWlng&t=5352s)
|
||||
|
||||
Hẹn gặp lại vào [ngày 34](day34.md)
|
199
2022/vi/Days/day34.md
Normal file
199
2022/vi/Days/day34.md
Normal file
@ -0,0 +1,199 @@
|
||||
---
|
||||
title: '#90DaysOfDevOps - Thực hành với Microsoft Azure - Ngày 34'
|
||||
published: false
|
||||
description: 90DaysOfDevOps - Thực hành với Microsoft Azure
|
||||
tags: 'DevOps, 90daysofdevops, learning'
|
||||
cover_image: null
|
||||
canonical_url: null
|
||||
id: 1048763
|
||||
---
|
||||
|
||||
## Thực hành với Microsoft Azure
|
||||
|
||||
Chúng ta đã tập trung vào Microsoft Azure nói riêng và đám mây công cộng nói chung trong suốt 6 ngày qua, phần lớn các kiến thức này chứa nhiều lý thuyết để hiểu được các khối xây dựng cơ bản của Azure, nhưng điều này cũng cũng sẽ có thể liên kết và áp dụng với các nhà cung cấp đám mây khác.
|
||||
|
||||
Tôi đã đề cập ngay từ đầu về việc có kiến thức cơ bản về đám mấy công cộng và chọn ít nhất một nhà cung cấp để bắt đầu, nếu bạn đang nhảy giữa các đám mây khác nhau thì tôi tin rằng rất dễ bị rối. Trong khi chọn một nhà cung cấp và sau khi hiểu các nguyên tắc cơ bản, bạn sẽ dễ dàng học, tìm hiểu về những đám mây khác và tăng tốc việc học của mình.
|
||||
|
||||
Trong bài cuối cùng này, tôi sẽ chọn và chọn các tình huống thực hành của mình từ trang này. Đây là tài liệu tham khảo do Microsoft tạo và được sử dụng để chuẩn bị cho [AZ-104 Microsoft Azure Administrator](https://microsoftlearning.github.io/AZ-104-MicrosoftAzureAdministrator/)
|
||||
|
||||
Có một số ví dụ ở đây chẳng hạn như Container và Kubernetes, các chủ đề chưa được đề cập đến vì vậy tôi chưa muốn đi sâu vào chúng.
|
||||
|
||||
Trong các bài viết trước, chúng ta đã tạo hầu hết các Module 1,2 và 3.
|
||||
|
||||
### Mạng ảo - Virtual Networking
|
||||
|
||||
Làm theo [Module 04](https://microsoftlearning.github.io/AZ-104-MicrosoftAzureAdministrator/Instructions/Labs/LAB_04-Implement_Virtual_Networking.html):
|
||||
|
||||
Tôi đã xem qua phần trên và thay đổi một vài tên cho phù hợp với #90DaysOfDevOps. Thay vì sử dụng Cloud Shell, tôi cũng đã đăng nhập bằng người dùng mới được tạo vào những ngày trước sử dụng Azure CLI trên máy Windows của mình.
|
||||
|
||||
Bạn có thể làm điều này bằng cách sử dụng `az login`, sau đó một trình duyệt sẽ được mở và cho phép bạn xác thực tài khoản của mình.
|
||||
|
||||
Sau đó, tôi đã tạo tập lệnh PowerShell và tham khảo từ module để sử dụng nhằm xây dựng một số tác vụ bên dưới. Bạn có thể tìm thấy các tập tin liên quan trong thư mục này.
|
||||
(Cloud\01VirtualNetworking)
|
||||
|
||||
Vui lòng đảm bảo rằng bạn thay đổi vị trí tệp trong tập lệnh phù hợp với môi trường của mình.
|
||||
|
||||
Ở giai đoạn đầu tiên này, chúng tôi không có mạng ảo hoặc máy ảo nào được tạo trong môi trường của mình, tôi chỉ có một cloud shell storage được định cấu hình trong resource group của mình.
|
||||
|
||||
Trước hết, tôi chạy [PowerShell script](../../Days/Cloud/01VirtualNetworking/Module4_90DaysOfDevOps.ps1) của mình
|
||||
|
||||
![](../../Days/Images/Day34_Cloud1.png)
|
||||
|
||||
- Nhiệm vụ 1: Tạo và cấu hình mạng ảo
|
||||
|
||||
![](../../Days/Images/Day34_Cloud2.png)
|
||||
|
||||
- Nhiệm vụ 2: Triển khai máy ảo vào mạng ảo
|
||||
|
||||
![](../../Days/Images/Day34_Cloud3.png)
|
||||
|
||||
- Nhiệm vụ 3: Cấu hình địa chỉ IP private và public của máy ảo Azure
|
||||
|
||||
![](../../Days/Images/Day34_Cloud4.png)
|
||||
|
||||
- Nhiệm vụ 4: Cấu hình các network security groups
|
||||
|
||||
![](../../Days/Images/Day34_Cloud5.png)
|
||||
![](../../Days/Images/Day34_Cloud6.png)
|
||||
|
||||
- Nhiệm vụ 5: Cấu hình Azure DNS để phân giải tên nội bộ
|
||||
|
||||
![](../../Days/Images/Day34_Cloud7.png)
|
||||
![](../../Days/Images/Day34_Cloud8.png)
|
||||
|
||||
### Quản lý lưu lượng mạng - Network Traffic Management
|
||||
|
||||
Làm theo [Module 06](https://microsoftlearning.github.io/AZ-104-MicrosoftAzureAdministrator/Instructions/Labs/LAB_06-Implement_Network_Traffic_Management.html):
|
||||
|
||||
Hướng dẫn tiếp theo, từ hướng dẫn cuối cùng, chúng ta đã vào resource group và xoá tài nguyên của mình. Nếu bạn chưa thiết lập tài khoảng người dùng như tôi để chỉ có quyền truy cập vào một nhóm tài nguyên đó, bạn có thể làm theo module đổi tên thành `90Days*`, điều này sẽ xoá tất cả các tài nguyên và nhóm tài nguyên. Đây sẽ là quy trình của tôi cho tất cả các bài labs sau này.
|
||||
|
||||
Đối với lab này, tôi cũng đã tạo tập lệnh PowerShell và một số tài liệu tham khảo từ module sử dụng cho việc xây dựng một số tác vụ bên dưới. Bạn có thể tìm thấy các tập tin liên quan trong thư mục này.
|
||||
(Cloud\02TrafficManagement)
|
||||
|
||||
- Nhiệm vụ 1: Tạo môi trường cho lab
|
||||
|
||||
Đầu tiên tôi chạy [PowerShell script](../../Days/Cloud/02TrafficManagement/Mod06_90DaysOfDevOps.ps1) của mình
|
||||
|
||||
![](../../Days/Images/Day34_Cloud9.png)
|
||||
|
||||
- Nhiệm vụ 2: Cấu hình topo mạng cho mạng hub-spoke
|
||||
|
||||
![](../../Days/Images/Day34_Cloud10.png)
|
||||
|
||||
- Nhiệm vụ 3: Kiểm tra tính bắc cầu của virtual network peering
|
||||
|
||||
Group 90DaysOfDevOps của tôi không có quyền truy cập vào Network Watcher do không có quyền, tôi cho rằng điều này là do Network Watcher là một trong những tài nguyên không được liên kết với nhóm tài nguyên mà RBAC của chúng ta đã khai báo. Tôi đã thêm vai trò East US Network Watcher contributor vào group 90DaysOfDevOps.
|
||||
|
||||
|
||||
![](../../Days/Images/Day34_Cloud11.png)
|
||||
![](../../Days/Images/Day34_Cloud12.png)
|
||||
![](../../Days/Images/Day34_Cloud13.png)
|
||||
|
||||
^ Điều này được mong đợi vì hai spoke virtual networks không peer với nhau (network peering không mang tính bắc cầu).
|
||||
|
||||
- Nhiệm vụ 4: Cấu hình định tuyến trong topo hub-spoke
|
||||
|
||||
Tôi gặp một vấn đề khác ở đây là tài khoản của tôi không thể chạy tập lệnh với tư cách là người dùng trong nhóm 90DaysOfDevOps và vì không chắc lắm nên tôi đã quay lại tài khoản quản trị viên chính của mình. Nhóm 90DaysOfDevOps là chủ sở hữu của mọi thứ trong Nhóm tài nguyên 90DaysOfDevOps, vì vậy tôi rất muốn hiểu tại sao tôi không thể chạy lệnh bên trong VM?
|
||||
|
||||
![](../../Days/Images/Day34_Cloud14.png)
|
||||
![](../../Days/Images/Day34_Cloud15.png)
|
||||
|
||||
Sau đó, tôi có thể quay lại tài khoản michael.cade@90DaysOfDevOps.com của mình và tiếp tục phần này. Ở đây chúng tôi đang chạy lại vài bài test tương tự nhưng bây giờ đã có thể truy cập được.
|
||||
|
||||
![](../../Days/Images/Day34_Cloud16.png)
|
||||
|
||||
- Nhiệm vụ 5: Triển khai Azure Load Balancer
|
||||
|
||||
![](../../Days/Images/Day34_Cloud17.png)
|
||||
![](../../Days/Images/Day34_Cloud18.png)
|
||||
|
||||
- Nhiệm vụ 6: Triển khai Azure Application Gateway
|
||||
|
||||
![](../../Days/Images/Day34_Cloud19.png)
|
||||
![](../../Days/Images/Day34_Cloud20.png)
|
||||
|
||||
### Azure Storage
|
||||
|
||||
Làm theo [Module 07](https://microsoftlearning.github.io/AZ-104-MicrosoftAzureAdministrator/Instructions/Labs/LAB_07-Manage_Azure_Storage.html):
|
||||
|
||||
Đối với phòng thí nghiệm này, tôi cũng đã tạo tập lệnh PowerShell và tham khảo từ module sử dụng cho việc xây dựng một số tác vụ bên dưới. Bạn có thể tìm thấy các tập tin liên quan trong thư mục này.
|
||||
(Cloud\03Storage)
|
||||
|
||||
|
||||
- Nhiệm vụ 1: Tạo môi trường cho lab
|
||||
|
||||
Trước hết, tôi chạy [PowerShell script](../../Days/Cloud/03Storage/Mod07_90DaysOfDeveOps.ps1) của mình
|
||||
|
||||
![](../../Days/Images/Day34_Cloud21.png)
|
||||
|
||||
- Nhiệm vụ 2: Tạo và cấu hình tài khoản Azure Storage
|
||||
|
||||
![](../../Days/Images/Day34_Cloud22.png)
|
||||
|
||||
- Nhiệm vụ 3: Quản lý lưu trữ blob
|
||||
|
||||
![](../../Days/Images/Day34_Cloud23.png)
|
||||
|
||||
- Nhiệm vụ 4: Quản lý xác thực và cấp quyền cho Azure Storage
|
||||
|
||||
![](../../Days/Images/Day34_Cloud24.png)
|
||||
![](../../Days/Images/Day34_Cloud25.png)
|
||||
|
||||
Tôi hơi thiếu kiên nhẫn chờ đợi điều này được cho phép nhưng cuối cùng thì nó cũng hoạt động.
|
||||
|
||||
![](../../Days/Images/Day34_Cloud26.png)
|
||||
|
||||
- Nhiệm vụ 5: Tạo và cấu hình Azure file share
|
||||
|
||||
Khi chạy lệnh, lệnh này sẽ không hoạt động với michael.cade@90DaysOfDevOps.com nên tôi đã sử dụng tài khoản admin của mình.
|
||||
|
||||
![](../../Days/Images/Day34_Cloud27.png)
|
||||
![](../../Days/Images/Day34_Cloud28.png)
|
||||
![](../../Days/Images/Day34_Cloud29.png)
|
||||
|
||||
- Nhiệm vụ 6: Quản lý truy cập mạng cho Azure Storage
|
||||
|
||||
![](../../Days/Images/Day34_Cloud30.png)
|
||||
|
||||
### Serverless (Triển khai ứng dụng web)
|
||||
|
||||
Làm theo [Module 09a](https://microsoftlearning.github.io/AZ-104-MicrosoftAzureAdministrator/Instructions/Labs/LAB_09a-Implement_Web_Apps.html):
|
||||
|
||||
- Nhiệm vụ 1: Tạo Azure web app
|
||||
|
||||
![](../../Days/Images/Day34_Cloud31.png)
|
||||
|
||||
- Nhiệm vụ 2: Tạo staging deployment slot
|
||||
|
||||
![](../../Days/Images/Day34_Cloud34.png)
|
||||
|
||||
- Nhiệm vụ 3: Định cấu hình cài đặt triển khai ứng dụng web
|
||||
|
||||
![](../../Days/Images/Day34_Cloud33.png)
|
||||
|
||||
- Nhiệm vụ 4: Triển khai mã vào staging deployment slot
|
||||
|
||||
![](../../Days/Images/Day34_Cloud32.png)
|
||||
|
||||
- Nhiệm vụ 5: Đổi staging slots
|
||||
|
||||
![](../../Days/Images/Day34_Cloud35.png)
|
||||
|
||||
- Nhiệm vụ 6: Định cấu hình và kiểm tra tính năng tự động thay đổi quy mô (auto-scaling)của Azure web app
|
||||
|
||||
Tập lệnh tôi đang sử dụng có thể được tìm thấy trong (../../Days/Cloud/05Serverless)
|
||||
|
||||
![](../../Days/Images/Day34_Cloud36.png)
|
||||
|
||||
Bài lab này kết thúc phần tìm hiểu về Microsoft Azure nói riêng và đám mây công cộng nói chung. Tôi có thể nói rằng tôi đã rất vui khi thử sức và giải quyết các tình huống trên đây.
|
||||
|
||||
## Tài liệu tham khảo
|
||||
|
||||
- [Hybrid Cloud and MultiCloud](https://www.youtube.com/watch?v=qkj5W98Xdvw)
|
||||
- [Microsoft Azure Fundamentals](https://www.youtube.com/watch?v=NKEFWyqJ5XA&list=WL&index=130&t=12s)
|
||||
- [Google Cloud Digital Leader Certification Course](https://www.youtube.com/watch?v=UGRDM86MBIQ&list=WL&index=131&t=10s)
|
||||
- [AWS Basics for Beginners - Full Course](https://www.youtube.com/watch?v=ulprqHHWlng&t=5352s)
|
||||
|
||||
Tiếp theo, chúng ta sẽ đi sâu vào các hệ thống kiểm soát phiên bản, cụ thể là xung quanh git và sau đó là tổng quan về kho lưu trữ mã và chúng tôi sẽ chọn GitHub vì đây là lựa chọn ưa thích của tôi.
|
||||
|
||||
Hẹn gặp lại vào [ngày 35](day35.md)
|
@ -64,10 +64,10 @@ Cách nhanh nhất để liên lạc với tôi là thông qua Twitter tại [@M
|
||||
|
||||
- [✔️] ☁️ 28 > [Bức tranh toàn cảnh: DevOps & The Cloud](Days/day28.md)
|
||||
- [✔️] ☁️ 29 > [Kiến thức cơ bản về Microsoft Azure](Days/day29.md)
|
||||
- [✔️] ☁️ 30 > [Microsoft Azure Security Models](Days/day30.md)
|
||||
- [✔️] ☁️ 31 > [Microsoft Azure Compute Models](Days/day31.md)
|
||||
- [✔️] ☁️ 32 > [Microsoft Azure Storage & Database Models](Days/day32.md)
|
||||
- [✔️] ☁️ 33 > [Microsoft Azure Networking Models + Azure Management](Days/day33.md)
|
||||
- [✔️] ☁️ 30 > [Mô hình bảo mật Microsoft Azure](Days/day30.md)
|
||||
- [✔️] ☁️ 31 > [Mô hình Điện toán Microsoft Azure](Days/day31.md)
|
||||
- [✔️] ☁️ 32 > [Mô hình lưu trữ và cơ sở dữ liệu Microsoft Azure](Days/day32.md)
|
||||
- [✔️] ☁️ 33 > [Mô hình Mạng Microsoft Azure + Quản lý Azure](Days/day33.md)
|
||||
- [✔️] ☁️ 34 > [Thực hành với Microsoft Azure](Days/day34.md)
|
||||
|
||||
### Cách sử dụng Git hiệu quả
|
||||
|
Loading…
Reference in New Issue
Block a user