Tìm hiểu docker và xây dựng mô hình cicd

24 9 0
Tìm hiểu docker và xây dựng mô hình cicd

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Docker ra đời để giải quyết vấn đề trên.Bằng cách đơn giản hóa quá trình triển khai có nghĩa là Docker được sử dụng để đóng gói ứng dụng và môi trường thực thi của nó vào một container d

ỦY BAN NHÂN DÂN TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC SÀI GÒN Khoa Công nghệ thông tin ĐỒ ÁN MÔN HỌC Tìm hiểu Docker và xây dựng mô hình CICD Tên thành viên : Trần Ngọc Sơn: 3120410454 Lê Bảo Tài: 3120410457 Vương Trường Chung: 3120410068 Trương Hồ An:3120410024 THÀNH PHỐ HỒ CHÍ MINH, THÁNG 12 NĂM 2023 LỜI CẢM ƠN Lời đầu tiên, chúng em xin chân thành cảm ơn thầy Lương Minh Huấn– giảng viên phụ trách – đã hướng dẫn tận tình chúng em trong thời gian thực hiện đồ án Nhờ có sự giúp đỡ tận tình của thầy chúng em có thể hoàn thành được đồ án một cách tốt nhất Tuy chúng em đã cố gắng hạn chế những sai sót hết mức có thể nhưng vì kiến thức còn hạn hẹp nên chúng em khó tránh khỏi những sai sót trong quá trình thực hiện cũng như là lúc báo cáo đồ án Do đó, chúng em mong nhận được ý kiến đóng góp từ thầy để chúng em có thể khắc phục, sửa chữa Chúng em xin chân thành cảm ơn thầy! Contents Chương 1: Kiến thức về Docker 5 1.1 Giới thiệu sơ lược về Docker 5 Tại sao lại có Docker 5 Docker là gì? 5 Lịch sử ra đời 5 Roadmap phát triển 5 1.2 Kiến trúc tổng thể 7 Docker Engine 7 Docker Hub 8 Một số thuật ngữ 8 1.3 Cách thức hoạt động 9 1.4 Docker mang lại lợi ích gì? Cho ai? Trong hoàn cảnh nào? 10 Lợi ích và hoàn cảnh sử dụng 10 Ai sử dụng Docker 10 1.5 Một số công cụ phổ biến 10 Docker Compose 11 Docker Swarm 11 1.6 So sánh Docker với các công nghệ tương tự 11 Chương 2: Áp dụng Docker 12 2.1 Setup Dockerfile 12 NestJs – backend 12 VueJs – frontend 13 2.2 Setup Docker-Compose 14 Quy trình cơ bản 14 Docker-compose file 15 Chương 3: Mô hình CI/CD 16 CICD là gì ? 16 Triển khai CICD đơn giản 16 Jenkins 17 Tại sao lại có Jenkins? 17 Jenkins là gì? 17 Thành phần của Jenkins 17 Ứng dụng của Jenkins 18 AWS 19 AWS là gì ? 19 Các tính năng vượt trội 19 Dịch vụ quan trọng trên AWS 20 Ansible: 21 Ansible là gì? 21 Thành phần của Ansible 21 Ứng dụng của Ansible 22 Chương 1: Kiến thức về Docker 1.1 Giới thiệu sơ lược về Docker Tại sao lại có Docker Trong quá trình phát triển phần mềm, có thể xuất hiện nhiều vấn đề của sự không tương thích giữa các máy tính của các nhà phát triển và môi trường triển khai Docker ra đời để giải quyết vấn đề trên.Bằng cách đơn giản hóa quá trình triển khai có nghĩa là Docker được sử dụng để đóng gói ứng dụng và môi trường thực thi của nó vào một container duy nhất, đảm bảo rằng ứng dụng sẽ chạy đúng trên môi trường hoặc một máy tính Docker là gì? Docker là một nền tảng cho developers và sysadmin để develop, deploy và run application với container Nó cho phép tạo các môi trường độc lập và tách biệt để khởi chạy và phát triển ứng dụng và môi trường này được gọi là container Khi cần deploy lên bất kỳ server nào chỉ cần run container của Docker thì application của bạn sẽ được khởi chạy ngay lập tức Lịch sử ra đời • Docker được thành lập bởi ông Solomon Hykes and Sebastien Pahl Nó là sản phẩm của nhóm startup Y Combinator phát triển và được công bố năng 2011 • Lúc đầu Docker project là dự án nội bộ của công ty dotCloud, platform-as-a- service ở Pháp • Lần đầu tiên docker được công bố dưới dạng open-source là tháng 3 năm 2013 • Từ phiên bản 0.9 thì docker đã dùng những component riêng được biết bằng Go ( Golang ) để thay thế cho việc dùng LXC(linux system) làm môi trường thực thi • Vào năm 2017 thì docker đã tạo ra Moby project để phát triển vấn đề đa nhân thay cho việc dùng docker engine Roadmap phát triển • Tháng 9-2013 Red hat và docker công bố hợp tác xoay quanh Fedora, RHEL, OpenShift • Tháng 10-2014 công bố tích hợp Docker engine vào windows server và hỗ trợ native cho docker client trong windows • Tháng 11-2014 Docker công bố hợp tác với Stratoscale(công ty làm về data center operating system Vmware là 1 trong các sản phẩm).Ngoài ra, Docker container đã có thể support cho EC2 của Amazon • Tháng 12-2014, IBM công bố hợp tác với Docker và tích hợp docker vào Cloud của IBM • Tháng 6-2015, Docker và 1 số công ty như: CoreOS, Google, Microsoft, AWS, đã công bố liên kết với nhau để cung cấp giải pháp tiêu chuẩn của hệ điều • hành cho software containers Tháng 5-2016 nghiên cứu cho thấy những tổ chức chính tham gia đónng góp • cho docker là: The Docker Teamm Cisco, Google, Huawei,IBM, Microsoft and • Red Hat 1.2 Tháng 6-2016, Microsoft công bố docker có thể sử dụng trên Windown 10 Tháng 5-2019 WSL2 của windows có thể hỗ trợ chạy Docker Kiến trúc tổng thể Hình 1.1: Kiến trúc Docker Docker có 2 thành phần chính: Docker Engine và Docker Hub Docker Engine là giải pháp ảo hóa (virtualization) dựa trên công nghệ container, còn tại Docker Hub là platform Software-as-a-Service để chia sẻ images Docker Engine Docker Engine là ứng dụng dựa trên kiến trúc client-server với các thành phần chính: • Docker daemon đóng vai trò như một server Docker daemon có thể build, run và distribute docker container • Một REST API đóng vai trò như interface để giao tiếp với docker daemon • Một command line interface (CLI) đóng vai trò như một client Docker client sẽ giao tiếp với docker daemon thông qua REST API, cả 2 sẽ kết nối với nhau thông qua UNIX socket hoặc qua giao tiếp mạng Việc giao tiếp theo phương thức này cho phép Docker Client và Docker Daemon có thể chạy trên cùng một hệ thống hoặc khác hệ thống Docker Hub Docker hub là nơi lưu trữ các image (public hoặc private) Ở đây người dùng có thể chia sẻ các customized image Ngoài ra, người dùng có thể tìm và tải các image thông qua docker client Hình 1.2: Trang Docker hub Một số thuật ngữ • Image: Là một package chứa tất cả các thông tin, thư viện, framework, cần thiết để tạo ra một container Thông thường, các image được tạo ra dựa trên các image cha (based image) – image cha được cung cấp sẵn bởi docker • Container: Về cơ bản, container là một công nghệ ảo hóa nhưng thay vì phải giả lập phần cứng như Vmware thì container sẽ chia sẻ hệ điều hành với host Mỗi container đều chạy độc lập với các container khác và hệ thống mà docker đang chạy Do đó người dùng có thể thêm, xóa, sửa container; Kết nối với network; Thậm chí là tạo một image dựa trên trạng thái hiện tại của container mà không ảnh hưởng tới hệ thống host và các container khác Hình 1.3: So sánh kiến trúc của container và Virtual Machines • Daemon: là một loại chương trình trên các hệ điều hành Like-Unix hoạt động ẩn mà không cần sự kiểm soát bởi user • Docker Registry: là nơi lưu trữ riêng của Docker Images Images được push vào registry và client sẽ pull images từ registry Có thể sử dụng registry của riêng bạn hoặc registry của nhà cung cấp như : AWS, Google Cloud, Microsoft Azure 1.3 Cách thức hoạt động Để cho mỗi container có thể chạy như một process độc lập và chiếm không gian ít thì docker sử dụng kiến trúc phân lớp (layer) Những layer này còn được gọi là layer trung gian, chúng được tạo từ những câu lệnh trong Dockerfile khi build một docker image Ví dụ: Với mỗi câu lệnh trên, docker sẽ tạo ra một layer nằm chồng lên container image Các layer sẽ được hash, có nghĩa là docker sẽ lưu các layer vào bộ nhớ cache Điều này sẽ tối ưu thời gian build cho các layer mà không thay đổi giữa những lần build Tức là người dùng sẽ không phải rebuild và copy các file ở bước COPY nếu như câu lệnh COPY không thay đổi Sau khi build xong các câu lệnh, Docker sẽ tạo ra một lớp trắng mới Người dùng có thể truy cập tới layer này sử dụng câu lệnh docker exec –it Bằng cách này người dùng có thể thay đổi image và có thể commit những thay đổi đó bằng câu lệnh docker commit Hình 1.4: Kiến trúc phân lớp của container 1.4 Docker mang lại lợi ích gì? Cho ai? Trong hoàn cảnh nào? Lợi ích và hoàn cảnh sử dụng • Việc sử dụng Docker cho phép ta vận chuyển mã nhanh hơn, tiêu chuẩn hóa hoạt động của ứng dụng, di chuyển mã một cách trơn tru và tiết kiệm tiền bằng cách cải thiện khả năng tận dụng tài nguyên • Với Docker, ta sẽ được nhận một đối tượng duy nhất có khả năng chạy ổn định ở bất kỳ đâu Cú pháp đơn giản và không phức tạp của Docker sẽ cho ta quyền kiểm soát hoàn toàn • Thứ tư là dễ dàng automate (tự động hóa) việc quản lý các docker container thông qua Kubernetes hoặc Docker Swarm • Container Docker giúp cho việc chạy nhiều mã hơn trên từng máy chủ trở nên dễ dàng hơn, cải thiện khả năng tận dụng và tiết kiệm tiền bạc cho chúng ta, giúp dự án có khả năng mở rộng cao Ai sử dụng Docker • Business Analysist: thường dùng docker để chạy môi trường demo cho khách hàng • QA & QC: thường dùng docker để chạy môi trường test để kiểm thử sản phầm • Software Architect dùng để kiểm thử những công nghệ và tính ổn định của các công nghệ trên nhiều nền tảng khác 1.5 Một số công cụ phổ biến Docker Compose Docker Compose là một công cụ được dùng để quản lý và chạy các Docker Container Docker Compose cho phép ta cấu hình các container trong một file YAML duy nhất và chạy tất cả các container chỉ với một câu lệnh Docker Swarm Docker Swarm là một công cụ giúp gom cụm các Docker Docker Swarm có thể gom nhiều Docker Engine lại với nhau thành một Docker Engine “ảo” Tức là bất cứ công cụ nào giao tiếp với Docker Engine thì cũng có thể giao tiếp với Docker Swarm như bình thường 1.6 So sánh Docker với các công nghệ tương tự LXD OpenVZ LinuxVServer Sử dụng nhân được vá để So sánh với Mô phỏng trải nghiệm Một phần mở rộng cung cấp các tính năng ảo Docker vận hành Máy ảo của nhân Linux, cung hóa cấp hệ điều hành Mỗi Máy chủ riêng ảo được chạy nhưng về vùng chứa và cấp các công cụ để ảo như một quy trình riêng biệt trên cùng một hệ thống máy làm như vậy mà không hóa cho người dùng chủ lưu trữ và có hiệu quả cao do không cần mô phỏng tốn chi phí mô phỏng Nó sử dụng Môi Tuy nhiên, nó là cổ điển về số lượng phát hành, vì chưa tài nguyên phần cứng trường ảo để lưu trữ có bản nào kể từ năm 2007 Mặc dù daemon LXD các hệ thống Khách, Nhiều VPS lưu trữ và quản trị, và hỗ trợ Legacy yêu cầu nhân Linux, nó có nghĩa là nó sử trung bình có thể được cấu hình để dụng vùng chứa cho truy cập bằng máy toàn bộ hệ điều hành, khách không phải các ứng Windows hoặc macOS dụng và quy trình riêng lẻ Trường hợp sử Quyền truy cập phần CI / CD và DevOps, dụng cứng trần cho VPS, Vùng chứa và dữ liệu nhiều bản phân phối lớn, Bộ Ứng dụng Linux trên cùng một Người dùng Biệt lập máy chủ Lưu trữ, Hợp nhất máy chủ Khả năng tích dễ dễ hợp Các công ty sử Walmart PayPal, Box FastVPS, Parallels, DreamHost, Amoebasoft, dụng Pixar Animation OpenHosting Inc., Lycos, Studios, Yandex Pháp,MosaixCommunications, Inc Chương 2: Áp dụng Docker 2.1 Setup Dockerfile NestJs – backend FROM node:12.13-alpine As development WORKDIR /usr/src/app COPY package*.json / RUN npm install –only=development COPY RUN npm run build FROM node:12.13-alpine as production ARG NODE_ENV=production ENV NODE_ENV=${NODE_ENV} WORKDIR /usr/src/app COPY package*.json / RUN npm install –only=production COPY COPY –from=development /usr/src/app/dist /dist CMD [“node”, “dist/main”] Giải thích thông số FROM — chỉ định image gốc: python, unbutu, alpine… LABEL — cung cấp metadata cho image Có thể sử dụng để add thông tin maintainer Để xem các label của images, dùng lệnh docker inspect ENV — thiết lập một biến môi trường RUN — Có thể tạo một lệnh khi build image Được sử dụng để cài đặt các package vào container COPY — Sao chép các file và thư mục vào container ADD — Sao chép các file và thư mục vào container CMD — Cung cấp một lệnh và đối số cho container thực thi Các tham số có thể được ghi đè và chỉ có một CMD WORKDIR — Thiết lập thư mục đang làm việc cho các chỉ thị khác như: RUN, CMD, ENTRYPOINT, COPY, ADD,… ARG — Định nghĩa giá trị biến được dùng trong lúc build image ENTRYPOINT — cung cấp lệnh và đối số cho một container thực thi EXPOSE — khai báo port lắng nghe của image VOLUME — tạo một điểm gắn thư mục để truy cập và lưu trữ data Run project với nestjs Bước 1: config file Dockerfile Bước 2: docker build –t Bước 3: docker run –p 8080:8080 app-name VueJs – frontend FROM node:12 WORKDIR /app COPY package*.json RUN npm install COPY RUN npm run build EXPOSE 8080 CMD [“npm”,”run”,”serve”] Run Project cho VueJs Bước 1: docker build –t Hình 2.1: Build dockerfile cho VueJs Bước 2: docker run -it -p 8080:8080 -v /app/node_modules rm test:latest 2.2 Setup Docker-Compose Quy trình cơ bản Cơ bản quy trình dùng docker compose gồm ba bước: 1 Xác định môi trường ứng dụng của bạn bằng Dockerfile để nó có thể được lưu trữ ở mọi nơi 2 Xác định các dịch vụ tạo nên ứng dụng của bạn trong docker-compose.yml để chúng có thể chạy cùng nhau trong một môi trường biệt lập 3 Chạy docker-compose up và bắt đầu chạy toàn bộ ứng dụng của bạn Docker-compose file Ghi chú: services: để khai báo những service có trong docker-compose build: để khai báo đường dẫn tới service và có thể thêm đường dẫn đến docker file reset: always dùng khi db gặp sự cố thì tự khởi động lại image: khai báo tên image khi build container_name: khai báo tên container khi build port: ánh xạ port từ container sang port sang máy local environment: tương tự như file env để setup môi trường links: để chỉ ra liên kết của các image với nhau volumes: là nơi chứa data Chương 3: Mô hình CI/CD 3.1 CICD là gì ? CI/CD là viết tắt của Continuous Integration và Continuous Delivery (hoặc Continuous Deployment), đây là một phương pháp trong quy trình phát triển phần mềm để tự động hóa quá trình kiểm thử và triển khai mã nguồn 1 Continuous Integration (CI): Là quá trình tích hợp tự động mã nguồn từ các thành viên của nhóm phát triển Mỗi khi có thay đổi trong mã nguồn, CI sẽ tự động kích hoạt quá trình kiểm thử tự động để đảm bảo rằng mã mới không làm hỏng tính ổn định của hệ thống 2 Continuous Delivery (CD): Là quá trình tự động hóa việc triển khai (deploy) mã nguồn từ môi trường phát triển đến môi trường sản phẩm một cách liên tục Mục tiêu là để có thể triển khai các thay đổi mà không cần sự can thiệp thủ công, giúp giảm thiểu lỗi và tăng tính ổn định của hệ thống 3 Continuous Deployment (CD): Tương tự như Continuous Delivery, nhưng với Continuous Deployment, các thay đổi sẽ được triển khai tự động đến môi trường sản phẩm mà không cần sự can thiệp thủ công Điều này có nghĩa là mọi thay đổi qua các bước kiểm thử sẽ tự động triển khai nếu tất cả các bước kiểm thử đều thành công Quy trình CI/CD giúp tăng cường sự linh hoạt, tính ổn định và tăng tốc trong quá trình phát triển phần mềm bằng cách giảm thời gian và công sức cần thiết cho các bước kiểm thử và triển khai Triển khai CICD đơn giản Triển khai CI/CD có thể được thực hiện theo một số bước cơ bản Dưới đây là hướng dẫn giả sử bạn đang bắt đầu từ một dự án phần mềm và muốn triển khai CI/CD: Continuous Integration (CI): Quản lý mã nguồn: • Sử dụng một hệ thống quản lý mã nguồn như Git để theo dõi và quản lý mã nguồn Automated Builds: • Cấu hình công cụ tự động hóa quy trình xây dựng (build) như Jenkins, Travis CI, hoặc GitLab CI để tự động xây dựng mã nguồn mỗi khi có thay đổi Automated Tests: • Thêm bộ kiểm thử tự động (automated tests) vào quy trình xây dựng để đảm bảo tính ổn định của mã nguồn Các loại kiểm thử có thể bao gồm unit tests, integration tests, và end-to-end tests Continuous Delivery/Continuous Deployment (CD): Quy trình Triển khai (Deployment Pipeline): • Xây dựng một quy trình triển khai tự động, từ môi trường phát triển cho đến môi trường thử nghiệm và môi trường sản phẩm Environment Configuration: • Quản lý cấu hình môi trường một cách tự động để đảm bảo rằng ứng dụng có thể chuyển đổi giữa các môi trường một cách dễ dàng Rollback Mechanism: • Thêm chức năng tự động rollback để đảm bảo rằng nếu có vấn đề trong quá trình triển khai, hệ thống có thể quay lại phiên bản trước đó một cách an toàn Monitoring và Logging: • Tích hợp công cụ theo dõi và ghi log để theo dõi hiệu suất của ứng dụng sau mỗi lần triển khai 3.2.Jenkins Tại sao lại có Jenkins? Trong quá trình phát triển phần mềm, đặc biệt là trong mô hình Agile và DevOps, việc tích hợp liên tục và triển khai liên tục trở nên quan trọng Jenkins được thiết kế để tự động hóa các bước này, giúp tăng cường chất lượng phần mềm, giảm thời gian triển khai và tạo điều kiện cho quá trình phát triển linh hoạt hơn Jenkins là gì? Jenkins là một công cụ mã nguồn mở được sử dụng để tự động hóa các quy trình phần mềm, đặc biệt là trong các quy trình CI/CD Được xây dựng trên Java và hỗ trợ nhiều loại công nghệ và ngôn ngữ lập trình Thành phần của Jenkins Jenkins Server: Nền tảng chính để cài đặt và chạy Jenkins Ví dụ: Một doanh nghiệp phần mềm quyết định triển khai Jenkins trên một máy chủ riêng để tự động hóa quy trình phát triển và triển khai của họ Jenkins Server sẽ chạy liên tục và theo dõi các thay đổi trong kho mã nguồn, kích hoạt các công việc và xây dựng tự động khi cần Jobs/Projects: Các công việc cần thực hiện, bao gồm các bước như biên dịch mã nguồn, kiểm thử, triển khai, vv Ví dụ: Một job trong Jenkins có thể là quá trình triển khai tự động của một ứng dụng web Công việc này sẽ bao gồm các bước như biên dịch mã nguồn, kiểm thử tự động, và triển khai lên môi trường sản xuất Mỗi công việc đại diện cho một phần của quy trình tự động hóa Plugins: Mở rộng chức năng của Jenkins, giúp tích hợp với nhiều công cụ khác nhau Ví dụ: Để tích hợp với công cụ kiểm thử tự động như Selenium, nhóm phát triển có thể cài đặt và sử dụng plugin Selenium trong Jenkins Plugin này mở rộng chức năng của Jenkins để có khả năng chạy các bài kiểm thử tự động trên trình duyệt, tăng cường độ tin cậy của quy trình kiểm thử Builds: Quá trình biên dịch và kiểm thử mã nguồn Ví dụ: Mỗi lần có sự thay đổi trong kho mã nguồn, Jenkins sẽ khởi động một build Quá trình này bao gồm việc biên dịch mã nguồn, tạo các phiên bản thử nghiệm, và kiểm thử Kết quả của build này sẽ quyết định liệu ứng dụng có thể triển khai hay không Workspaces: Nơi Jenkins lưu trữ mã nguồn và các tệp cần thiết để thực hiện công việc.Ví dụ: Khi Jenkins thực hiện một công việc, nó sẽ tạo một workspace để lưu trữ mã nguồn và tất cả các tệp cần thiết Điều này bao gồm cả mã nguồn từ kho mã nguồn, các tệp cấu hình, và bất kỳ tài nguyên nào khác cần thiết để thực hiện công việc Workspaces giúp Jenkins duy trì một môi trường cô lập cho mỗi công việc Ứng dụng của Jenkins CI/CD: Triển khai liên tục và Kiểm thử liên tục: Ví dụ: Một nhóm phần mềm sử dụng Jenkins để triển khai liên tục ứng dụng web của họ Khi một nhà phát triển thực hiện một commit vào kho mã nguồn, Jenkins tự động kích hoạt quy trình CI, trong đó bao gồm biên dịch mã nguồn, chạy các bài kiểm thử tự động và triển khai ứng dụng nếu tất cả các bước thành công Điều này đảm bảo rằng mọi thay đổi đều được kiểm thử và triển khai một cách nhanh chóng và đáng tin cậy Tự động hóa công việc lặp đi lặp lại: Ví dụ: Một dự án phần mềm lớn sử dụng Jenkins để tự động hóa quá trình biên dịch mã nguồn Khi có bất kỳ sự thay đổi nào trong kho mã nguồn, Jenkins tự động bắt đầu quá trình biên dịch, kiểm thử tự động và tạo bản triển khai Điều này giúp giảm công sức của nhóm phát triển, đồng thời đảm bảo rằng mỗi phiên bản mới của ứng dụng được kiểm thử đầy đủ và có thể triển khai một cách tự động Quản lý dự án: Ví dụ: Một dự án phần mềm lớn sử dụng Jenkins để quản lý công việc và theo dõi tiến độ Jenkins cung cấp giao diện người dùng đồ họa, trong đó nhóm phát triển có thể tạo và quản lý các công việc, xem trạng thái của các công việc, và theo dõi tiến độ của dự án Điều này giúp cả nhóm hiểu rõ hơn về trạng thái của dự án và có khả năng đưa ra các quyết định dựa trên thông tin thực tế và chi tiết AWS AWS là gì ? Amazon Web Services (AWS) là giải pháp đá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 vụ đầy đủ tính năng từ các trung tâm dữ liệu trên toàn thế giới Hàng triệu khách hàng – bao gồm các công ty khởi nghiệp tăng trưởng nhanh nhất, các tập đoàn lớn nhất cũng như các cơ quan hàng đầu của chính phủ – đều tin tưởng vào AWS để giảm chi phí, trở nên linh hoạt hơn và đổi mới nhanh hơn Các tính năng vượt trội Đầy đủ chức năng nhất AWS có nhiều dịch vụ hơn và nhiều tính năng hơn trong các dịch vụ đó, hơn bất kỳ nhà cung cấp đám mây nào khác–từ các công nghệ cơ sở hạ tầng như máy tính, ổ lưu trữ và cơ sở dữ liệu–đến các công nghệ mới nổi, như machine learning và trí tuệ nhân tạo, kho dữ liệu và phân tích, và Internet of Things Điều này giúp bạn chuyển các ứng dụng hiện có của bạn lên đám mây nhanh hơn, dễ dàng hơn và hiệu quả hơn về chi phí cũng như xây dựng gần như mọi thứ bạn có thể hình dung AWS cũng có chức năng sâu nhất trong các dịch vụ đó Ví dụ, AWS cung cấp nhiều loại cơ sở dữ liệu nhất được xây dựng có mục đích cho các loại ứng dụng khác nhau để bạn có thể chọn công cụ phù hợp cho công việc để có chi phí và hiệu suất tốt nhất Cộng đồng khách hàng và đối tác lớn nhất AWS có cộng đồng lớn và linh hoạt nhất với hàng triệu khách hàng hoạt động và hàng chục ngàn đối tác trên toàn cầu Khách hàng trên hầu hết các ngành công nghiệp thuộc mọi quy mô, bao gồm công ty khởi nghiệp, doanh nghiệp và tổ chức công, đang chạy mọi trường hợp sử dụng có thể diễn ra trên AWS Mạng lưới đối tác AWS (APN) bao gồm hàng nghìn đơn vị tích hợp hệ thống chuyên về dịch vụ AWS và hàng chục nghìn nhà cung cấp phần mềm độc lập (ISV) điều chỉnh công nghệ của mình để hoạt động trên AWS Bảo mật nhất AWS được thiết kế để trở thành môi trường điện toán đám mây bảo mật và linh hoạt nhất hiện nay Cơ sở hạ tầng cốt lõi của chúng tôi được xây dựng để đáp ứng các yêu cầu bảo mật cho quân đội, ngân hàng toàn cầu và các tổ chức khác với mức độ nhạy cảm cao Điều này được hỗ trợ bởi một bộ công cụ bảo mật đám mây sâu rộng với hơn 300 dịch vụ và tính năng bảo mật, tuân thủ và quản trị cũng như hỗ trợ 143 tiêu chuẩn bảo mật và chứng nhận tuân thủ Tốc độ đổi mới nhanh nhất Với AWS, bạn có thể tận dụng các công nghệ mới nhất để thử nghiệm và đổi mới nhanh hơn Chúng tôi liên tục đẩy nhanh tốc độ đổi mới để phát minh ra các công nghệ hoàn toàn mới mà bạn có thể sử dụng để chuyển đổi doanh nghiệp của mình Ví dụ, vào năm 2014, AWS đã tiên phong trong không gian điện toán không có máy chủ với việc ra mắt AWS Lambda, cho phép các nhà phát triển chạy mã của họ mà không cần cung cấp hoặc quản lý máy chủ Và AWS đã xây dựng Amazon SageMaker, một dịch vụ machine learning được quản lý hoàn toàn, trao quyền cho các nhà phát triển và nhà khoa học mỗi ngày sử dụng machine learning–mà không cần bất kỳ kinh nghiệm nào trước đó Chuyên môn vận hành đã được chứng minh là tốt nhất AWS có kinh nghiệm, sự trưởng thành, độ tin cậy, bảo mật và hiệu suất chưa từng có mà bạn có thể tin tưởng cho các ứng dụng quan trọng nhất của mình Trong hơn 17 năm, AWS đã cung cấp dịch vụ đám mây cho hàng triệu khách hàng trên toàn thế giới, phục vụ nhiều trường hợp sử dụng đa dạng AWS có nhiều kinh nghiệm vận hành nhất, trên quy mô lớn hơn so với bất kỳ nhà cung cấp đám mây nào Dịch vụ quan trọng trên AWS EC2 (Elastic Compute Cloud): Là dịch vụ máy ảo cho phép bạn chạy ứng dụng trên các máy ảo có khả năng điều chỉnh S3 (Simple Storage Service): Dịch vụ lưu trữ đối tượng, cho phép lưu trữ và truy xuất dữ liệu từ bất kỳ đâu trên internet RDS (Relational Database Service): Cung cấp cơ sở dữ liệu quan hệ quản lý và dễ mở rộng Lambda: Cho phép chạy mã không cần quản lý máy chủ, thường được sử dụng cho các chức năng (functions) serverless IAM (Identity and Access Management): Quản lý quyền và truy cập vào các tài nguyên AWS VPC (Virtual Private Cloud): Cho phép tạo mạng ảo cô lập trong AWS Route 53: Dịch vụ quản lý tên miền và DNS Elastic Beanstalk: Tự động triển khai và quản lý ứng dụng web CloudFormation: Dịch vụ tự động hóa triển khai và quản lý các tài nguyên AWS

Ngày đăng: 11/03/2024, 10:07

Tài liệu cùng người dùng

Tài liệu liên quan