Chương 1 MỞ DAU 1. Lý do chọn đề tài, mục đích 1. Lý do chọn đề tài Quản lý các ứng dụng mạng khá là phức tạp, ví dụ phải quản lý load balancer, web servers, database servers, có thé sẽ phải mat hàng giờ dé xây dựng và quản lý những hệ thống này. Xây dựng ứng dụng mạng cần có máy chủ làm host triển khai.
Tuy nhiên không phải ai cũng có khả năng tự xây dựng 1 hệ thống máy chủ vật lý để triển khai ứng dụng. Hiện nay, rất nhiều doanh nghiệp đã chuyền từ hệ thống máy chủ vật lý lên hệ thống đám mây. Điều này đã mang lại rất nhiều sự thay đổi cũng nhưng lợi ích: giảm chỉ phí vận hành, mở rộng hệ thông khi cần thiết; bảo mật dữ liệu được đảm bảo bởi các nhà cung cấp dịch vụ điện toán đám mây; hạn chế rủi ro mất đữ liệu so với hệ thống máy chủ vật lý. Do đó nhóm thực hiện quyết định chọn đề tài xây dựng triển khai hệ thong điên toán dam mây.
Mục dich Để rút ngắn thời gian triển khai cũng như hạn chế / giảm thiểu “human error” trong quá trình triển khai và quản lý cơ sở hạ tầng, nhóm thực hiện sau khi được hướng dẫn và tìm hiểu, quyết định sử dụng công nghệ Infrastructure as Code trong khóa luận tốt nghiệp. Infrastructure as code (IaC) là một mô hình thiết lập và triển khai công nghệ. Trong đó các developer hoặc nhóm vận hành tự động quản lý và cung cấp các gói công nghệ cho ứng dụng thông qua phần mềm. Thay vì sử dụng quy trình thủ công dé cấu hình các thiết bi phần cứng và hệ điều hành rời rac.
Nếu đang xử lý một cơ sở hạ tầng hiện đại, phức tạp. Đề không tốn quá nhiều thời gian dé tương tác với nhà cung cấp đám mây theo cách thủ công thì IaC là sự lựa chọn hoàn hảo. IaC thường được viết bằng Terraform. Đây là một công cụ laC open-source.
Với tính năng linh hoạt Terraform có thê làm việc với nhiêu hãng và nên tảng cung cấp dịch vụ hạ tầng khác nhau. Mục đích của nhóm thực hiện là xây dựng một hệ thong mô hình mẫu, thé hiện được ưu điểm của Terraform giúp giảm thiêu lỗi trong quá trình triển khai. Đồng thời triển khai ứng dụng WordPress lên hệ thống cơ sở hạ tầng đã tạo của AWS và OpenStack. Đối tượng và phạm vi nghiên cứu Đối tượng đề tài hướng tới là xây dựng một cơ sở hạ tầng cấu hình dựa trên Terraform và nền tảng đám mây AWS, OpenStack, giúp User quản lý được các máy tính ảo tạo bằng Terraform trên một máy tính local.
Vê phạm vi nghiên cứu, nhóm thực hiện tìm hiệu các nội dung có liên quan tới khóa luận như : e_ Terraform đóng vai trò gì, hỗ trợ điều gì, kết hợp với việc gì trong quá trình triển khai một ứng dụng web e Cách triển khai máy ảo trên nền tảng đám mây thông qua Terraform - laC e Hệ thống Amazon Web Services và OpenStack e Tạo tài nguyên triển khai ứng dụng trên cloud e Một số công nghệ khác sử dụng trong khóa luận như Docker, Docker- compose, Git, Ansible, Zabbix. ` Terraform Bang aws openstack; ~~” Chương 2 TỎNG QUAN 2. Infrastructure as code Infrastructure as code là một cách tiếp cận dé tự động hóa cơ sở hạ tang dựa trên các phương pháp thực tiễn từ phát triển phần mềm. Sử dụng các quy trình nhất quán, có thé lặp lại dé cung cấp và thay đôi hệ thống thông qua các quy trình không cần giám sát bao gồm xác nhận kỹ lưỡng.
[1] Là công cụ hiện đại có thể coi cơ sở hạ tầng như thể nó là phần mềm và dữ liệu, cho phép mọi người áp dụng các công cụ phát triển phần mềm như hệ thống kiểm soát phiên ban (VCS), thư viện kiểm thử tự động và điều phối triển khai dé quản lý cơ sở hạ tầng. Nó cũng mở ra cánh cửa dé khai thác các thực tiễn phát triển như phát triển testdriven (TDD), tích hợp liên tục (CD và phân phối liên tục (CD). Cách thức hoạt động chung của laC Về cơ ban, cách thức hoạt động chung của IaC gồm 3 bước: e Quản trị viên xác định các thông số câu hình hệ thống bằng một ngôn ngữ. e Các tệp hướng dan được gửi đến một máy chủ chính (server), một API quản lý (management API) hoặc một kho lưu trữ mã (github).
e Nền tang IaC theo hướng dẫn của nhà phát triển xây dựng và cấu hình cơ sở hạ tang. Khai niém Điện toán dam mây được định nghĩa là không gian trên cơ sở hạ tang mạng, nơi các tài nguyên tính toán như phần cứng máy tính, bộ lưu trữ, cơ sở dit liệu, mạng, hệ điều hành và thậm chí toàn bộ ứng dụng phần mềm có sẵn ngay lập tức theo yêu cầu. Điện toán đám mây có thể không liên quan đến rất nhiều công nghệ mới, nhưng nó đại diện cho một phương thức mới để quản lý CNTT. Ví dụ, khả năng mở rộng và tiết kiệm chi phí có thé đạt được ở mức độ lớn nhất từ Điện toán đám mây [2].
Điện toán dam mây được so sánh với các kiến trúc hướng dịch vụ (SOA), Điện toán lưới(Grid computing), Điện toán tiện ich(Utility computing) và Điện toán cụm(Cluster computing). Điện toán đám mây và SOA được duy trì độc lập. Các dịch vụ nền tảng và lưu trữ của Điện toán đám mây mang lại giá trị b6 sung cho những nỗ lực của SOA. Với các công nghệ như Grid computing, tài nguyên máy tính có thé được cung cấp như một tiện ích.
Trong khi đó, Điện toán dam mây tiến một bước xa hơn với tài nguyên theo yêu cầu dự phòng. Nó cũng loại bỏ sự cần thiết của việc cung cấp quá mức cần thiết khi đáp ứng nhu cầu của khách hàng. Tính toán chi phí ứng dụng phải trả cho việc sử dung tài nguyên, tương tự như cách chúng ta trả tiền cho một dịch vụ công cộng (chăng hạn như điện, nước, xăng, v. Điện toán cum(Cluster computing) là một hình thức chi phí rẻ hon dé xử lý các ứng dụng có thê chạy song song.
Người dùng truy cập các dịch vụ đám mây như tài nguyên máy tính và trung tâm di liệu thông qua Internet. Người dùng cần có tài khoản với nhà cung cấp dịch vụ đám mây (Cloud Service Provider - CSP) dé bảo mật và thanh toán chỉ phí sử dụng. Các tài nguyên cần thiết được chỉ định bởi người dùng. CSP cung cấp tài nguyên dưới dạng máy ảo trực tiếp cho tài khoản người dùng.
Dịch vụ này tạo điều kiện cho người dùng linh hoạt hơn trong việc xây dựng ứng dụng của riêng họ trên các tài nguyên được lưu trữ từ xa. VỀ cơ bản, người dùng thuê hệ điều hành, CPU, bộ nhớ, lưu trữ và tài nguyên mạng từ CSP để cải thiện tính đàn hồi và khả năng mở rộng hệ thống theo nhu cầu của người dùng. Opensource cloud va Enterprise cloud Opensource cloud — Điện toán đám mây mã nguồn mở là bat kỳ dịch vụ điện toán đám mây hoặc giải pháp mà được xây dựng sử dụng phần mềm và công nghệ mã nguồn mở. Bao gồm bắt kỳ tổ chức phi lợi nhuận, nhà cung cấp dịch vụ mô hình điện toán dam mây riêng hoặc hybrid, laaS, PaaS hoặc XaaS xây dựng và vận hành hoàn toàn trên công nghệ mã nguôn mở.
[3] Enterprise cloud - Điện toán đám mây doanh nghiệp cung cấp các dịch vụ đám mây điện toán dành riêng cho các doanh nghiệp. Với dịch vụ bảo mật được cập nhật liên tục. AWS “Amazon Web Services (AWS) là nên tảng đám mây toàn diện và được sử dụng rộng rãi nhất, cung cấp trên 200 dịch vu day đủ tính năng từ các trung tâm dữ liệu trên toàn thé giới. AWS là nên tang đám mây có day đủ chức năng, cộng dong khách hàng và đối tác lớn, đồng thời có độ bảo mật cao và tốc độ đổi mới nhanh.
AWS là Enterprise cloud dién hinh” [4] AWS là nên tảng điện toán đám mây có nhiêu dịch vụ ho trợ các doanh nghiệp, cá nhân mong muôn xây dựng hệ thông máy tính lớn, nhỏ với nhiêu mức giá và câu hình linh hoạt. Nhờ ưu điểm như trên, AWS được xem là “con gà đẻ trứng vàng” của Amazon vì luôn dem lại nguồn thu lớn [5], chiếm thị phần lớn nhất trên thị trường điện toán đám mây, trên cả Microsoft Azure va Google Cloud. Tính tới quý 2 năm 2021, thi phần của AWS là 32%, Microsoft Azure 19% và Google Cloud 7% [6]. Công nghệ cua AWS luôn được cập nhật va phat triển, hiện AWS có hệ thống máy chủ tại 81 vùng trên 25 khu vực dia lý trên khắp thế giới [4] 2.
OpenStack “OpenStack là một phân mêm mã nguồn mở giúp xây dựng quản lý và kiểm soát hệ thống điện toán dam mây được phát triển bởi cộng đồng mạng, tắt cả các tiễn trình quản lý và kiểm soát sử dung API với các cơ chế xác thực chung” [7]. OpenStack hỗ trợ quản lý bằng giao diện web, quản trị viên có thê kiểm soát đồng thời cung cấp cho người dùng quyên sử dụng tài nguyên thông qua giao diện web. OpenStack triển khai cơ sở hạ tầng như một dịch vụ (Infrastructure-as-a-Service), hỗ trợ triển khai cả public cloud và private cloud. Theo chu kỳ 6 tháng OpenStack sẽ ra mắt một phiên bản mới [8].
Azure “Microsoft Azure là bộ dịch vụ đám mây không ngừng mở rộng nhằm giúp doanh nghiệp vượt qua những thách thức trong kinh doanh. Azure giúp xây dựng, quản lý và triển khai các ứng dụng trên mạng rộng khắp toàn cầu” [9]. Azure là nền tảng điện toán đám mây của Microsoft, có nhiều trung tâm dữ liệu trên khắp thé giới, cuỗi quý 2 năm 2021, thi phần của Azure là 19% [6]. Hiện Azure cung cấp hơn 200 dịch vụ, được chia thành 18 loại.
Các danh mục này bao gồm: máy tính, mạng, lưu trữ, IoT, di chuyên, đi động, phân tích, container, trí tuệ nhân tạo và machine learning, tích hợp, công cụ quan lý, công cụ nhà phát triển, bảo mật, cơ sở dir liệu, DevOps, nhận dang media và web service [9]. Terraform “Terraform là một công cụ xây dựng, thay đổi và tạo phiên bản cho cơ sở hạ tang. Terraform hỗ trợ xây dựng và quản lý hạ tang trên nhiều nên tang khác nhau từ các nhà cung cấp dịch vụ phổ biến hiện nay (AWS, Microsoft Azure, Google Cloud. Terraform sử dụng các tệp cau hình mô tả các thành phan tài nguyên xây dựng cơ sở hạ tầng.
Terraform sẽ tạo ra bản kế hoạch xây dựng hệ thống, sau đó thực thi theo bản kế hoạch đó xây dựng cơ sở hạ tầng. Terraform có thé quản lý các thành phan của cơ sở hạ tang như phiên bản máy tính ảo, bộ nhớ lưu trữ, hệ thông mạng và nhiều thành phần khác.