Ngày 28 - Bức tranh toàn cảnh: DevOps & The Cloud
Khi nói đến điện toán đám mây và những gì nó cung cấp, nó rất phù hợp với các đặc tính và quy trình của DevOps
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
Bức tranh toàn cảnh: DevOps & The Cloud
Khi nói đến điện toán đám mây và những gì nó cung cấp, nó rất phù hợp với các đặc tính và quy trình của DevOps. Chúng ta có thể coi điện toán đám mây mang đến công nghệ và dịch vụ trong khi DevOps như chúng ta đã đề cập nhiều lần trước đây là về quy trình và cải tiến quy trình.
Nhưng việc bắt đầu tìm hiểu về điện toán đám mây sẽ là một hành trình khó khăn và nhất là việc đảm bảo rằng bạn biết và hiểu tất cả các thành phần và dịch vụ tốt nhất để lựa chọn với mức giá phù hợp lại càng khó hơn nữa.
Vậy các dịch vụ public cloud (đám mây công cộng) có yêu cầu tư duy DevOps không? Câu trả lời của tôi ở đây là không, nhưng để thực sự tận dụng được những lợi thế của điện toán đám mây và để tránh những hoá đơn khổng lồ cho dịch vụ điện todayán, việc nghĩ đến DevOps và Cloud cùng với nhau là điều rất quan trọng.
Nếu chúng ta xem xét ý nghĩa của pubslic cloud từ góc độ high level, thì có thể nói nó loại bỏ trách nhiệm quản lý các máy chủ và giúp chúng ta tập trung hơn vào những khía cạnh khác quan trọng hơn đó là ứng dụng và người sử dụng. Xét cho cùng, đám mây công cộng cũng chỉ là máy tính của người khác.
Trong phần đầu tiên này, tôi muốn tìm hiểu và mô tả thêm một chút về đám mây công cộng là gì và một số khối cấu trúc của đám mây công cộng nói chung.
SaaS
Lĩnh vực cần nhắc tới đầu tiên là Phần mềm dưới dạng dịch vụ (Software as a Service), dịch vụ này sẽ loại bỏ gần như toàn bộ chi phí quản lý của một dịch vụ mà bạn có thể đã từng chạy on-premises. Hãy nghĩ nó giống như Microsoft Exchange cho email của chúng ta, đây từng là một máy chủ vật lý nằm trong trung tâm dữ liệu của bạn. Bạn sẽ cần phải cung cấp các tài nguyên cần thiết cho máy chủ đó. Điều đó có nghĩ là bạn sẽ cần cập nhật nó, chịu trách nhiệm quản lý và nâng cấp phần cứng máy chủ, rất có thể là cài đặt hệ điều hành, cài đặt các ứng dụng cần thiết và nếu có sự cố xảy ra, bạn sẽ phải khắc phục sự cố, cài đặt bản sao lưu và chạy lại dịch vụ.
Ồ, và bạn cũng sẽ phải đảm bảo rằng bạn đang sao lưu dữ liệu của mình, mặc dùng điều này cũng không quá thay đổi khi sử dụng SaaS.
Thứ mà Saas làm và cụ thể trong trường hợp này là Microsoft 365 vì tôi đã đề cập tới Exchange là loại bỏ chi phí quản trị đó cho chung ta và họ cung cấp chức năng trao đổi thư cũng như có nhiều tuỳ chọn lưu trữ (OneDrive) và các công cụ làm việc khác (Office 365) mà tổng thể mang lại một trải nghiệm tuyệt vời cho người dùng cuối.
Các ứng dụng SaaS khác cũng được sử dụng rộng rãi, chẳng hạn như Salesforce, SAP, Oracle, Google và Apple. Tất cả đều loại bỏ gánh nặng phải quản lý nhiều hệ thống hơn.
Tôi chắc chắn rằng có một câu chuyện liên quan giữ DevOps và các ứng dụng SaaS nhưng vẫn đang cố gắng tìm xem chúng có thể là gì. Tôi biết Azure DevOps có một số tích hợp tuyệt vời với Microsoft 365 mà tôi có thể xem xét và thêm vào sau.
Đám mây công cộng (Public cloud)
Tiếp theo, chúng ta có đám mây công cộng, hầu hết mọt người sẽ nghĩ về nó theo một số cách khác nhau. MỘt số người sẽ chỉ coi đây là công cụ có tính mở rộng cao ví dụ như Microsoft Azure, Google Cloud platform hay AWS.
Một số người cũng sẽ coi đám mây công cộng là một dịch vụ lớn hơn nhiều bao gồm bộ mở rộng siêu lớn cũng như hàng ngàn các dịch vụ được quản lý trên toàn thế giới. Và trong khuôn khổ bài viết này, chúng ta sẽ xem xét đám mây công cộng là một bộ mở rộng khổng lồ và một nhà cung cấp dịch vụ được quản lý. Mặc dù sau này, chúng ta cũng sẽ đi sâu vào một hoặc nhiều những bộ mở rộng siêu lớn để tìm hiểu các kiến thức cơ bản.
hàng ngày công ty khác đã có thể làm việc này, tôi chỉ chọn lựa từ các thương hiện địa phương, khu vực, công ty viễn thông và các thương hiệu toàn cầu mà tôi đã làm việc cùng và biết đến.
Chúng ta đã đề cập trong phần SaaS rằng điện toán đám mây đã loại bỏ trách nhiệm hoặc gánh nặng phải quản lý các thành phần của hệ thống. Nếu SaaS, chúng ta thấy rất nhiều lớp trừu tượng bị loại bỏ, tức là hệ thống vật lý, mạng, bộ lưu trữ, hệ điều hành và thậm chí là bản thân ứng dụng ở một mức độ nào đó. Khi nói tới điệu toán đám mây, có nhiều mức độ trừu tượng khác nhau mà chúng ta có thể xoá hoặc giữ tuỳ thuộc vào yêu cầu của bạn.
Chúng ta đã đề cập đến SaaS nhưng có ít nhất hay đề cập nữa liên quan tới đám mây công cộng.
Cơ sở hạ tầng dưới dạng dịch vụ (IaaS - Infrastructure as a service) - bạn có thể coi nó như một máy ảo. Nếu nó là hệ thống on-premise, bạn phải chăm sóc lớp vật lý của nó, nhưng điều này không cần thiết với điện toán đám mây. Lớp vật lý là trách nhiệm của nhà cung cấp dịch vụ và bạn sẽ chỉ quản lý hệ điều hành, dữ liệu và các ứng dụng bạn muốn chạy trên máy ảo đó.
Nền tảng dưới dạng dịch vụ (PaaS - Platform as a service) - Tiếp tục giúp bạn bớt được trách nhiệm của các lớp và điều bạn thực sự cần lo là việc kiểm soát dữ liệu và ứng dụng chứ không phải về phần cứng hay hệ điều hành.
Có rất nhiều các dịch vụ *aaS ngoài kia nhưng đây là 2 dịch vụ cơ bản. Bạn có thể thấy các dịch vụ xung quang SaaS (Strorage as a Service: lưu trữ dưới dạng dịch vụ) cung cấp cho bạn lớp lưu trữ và bạn không phải lo lắng về phần cứng bên dưới. Hoặc bạn có thể đã nghe nói tới CaaS (Container as a Service) cho các dịch vụ liên quan tới container mà chúng ta sẽ đề cập tới, hơn nữa, có một dịch vụ nữa mà chúng ta sẽ đề cập trong 7 ngày tới là Faas (Function as a Service - hàm dưới dạng dịch vụ) thậm chí còn không cần một hệ thống chạy liên tục mà bạn chỉ muốn một hàm, chức năng được thực thi vào một thời điểm nhất định.
Có nhiều cách mà đám mây công cộng có thể cung cấp các lớp kiểm soát trừ tượng mà bạn muốn bỏ qua và trả tiền cho điều đó.
Đám mây riêng (Private cloud)
Việc có một trung tâm dữ liệu của riêng bạn không phải chỉ có trong quá khứ. Tôi nghĩ rằng điều này đã trở thành sự trỗi dậy của rất nhiều công ty nhận thấy sự khó quản lý trong mô hình OPEX cũng như việc bộ skillsets chỉ sử dụng đám mây công cộng.
Điều quan trọng cần lưu ý ở đây là đám mây công cộng có thể sẽ thuộc trách nhiệm của bạn và nó sẽ trở thành một phần của hệ thống on-premises của bạn.
Có một số điều thú vị xảy ra trong lĩnh vực này, không chỉ với VMware, công ty đã thống trị kỉ nguyên ảo hoá và cơ sở hạ tầng tại chỗ. Chúng ta cũng có các nhà cung cấp điện toán đám mây đã có phiên bản on-premise của hệ thống đám mây công cộng.
Đám mây hỗn hợp (Hybrid cloud)
Để tiếp tục câu chuyện đám mây công cộng và đám mây riêng, chúng ta có thể mở rộng trên cả hai môi trường này để tận dụng sự linh hoạt của chúng, vừa có thể tận dụng các dịch vụ có sẵn trong đám mây công cộng nhưng sau đó cũng tận dụng các tính năng và chức năng on-premises hoặc cũng có thể đó là quy định bắt buộc bạn phải lưu trữ dữ liệu một cách cục bộ.
Tổng hợp các mô hình này, chúng ta có rất nhiều lựa chọn về nơi lưu trữ và chạy các workloads của mình.
Trước khi chúng ta đi vào một nhà cung cấp cụ thể, tôi đã tạo một poll trên Twitter của mình rằng chúng ta nên tìm hiểu về nhà cung cấp dịch vụ nào?
Bất kỳ nhà cung cấp nào nhận được tỷ lệ phần trăm cao nhất, chúng ta sẽ tìm hiểu sâu hơn về cách dịch vụ của nhà cung cấp đó. Tôi nghĩ điều quan trọng cần đề cập là các dịch vụ từ các nhà cung cấp này đều khá giống nhau, đó là lý do tại sao tôi nói là hãy bắt đầu với một nhà cung cấp bất kì. Tôi nhận thấy rằng, khi biết nền tảng của một nhà cung cấp như cách tạo máy ảo, thiết lập mạng,... thì tôi đã có thể sử dụng dịch vụ của các nhà cung cấp khác và có thể nhanh chóng sử dụng chúng.
Dù như thế nào, tôi cũng sẽ chia sẻ một số tài nguyên MIỄN PHÍ về cả ba nhà cung cấp lớn nhất.
Tôi cũng sẽ xây dựng một kịch bản như tôi đã làm trong các phần khác, nơi chúng ta có thể xây dựng một thứ gì đó cụ thể qua từng ngày.
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 bạn vào ngày 29.
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].