+ AWS CodePipeline: Dịch vụ phân phối liên tục để tự động hóa quy trình phát hành phần mềm.Bậc miễn phí cung cấp 1 pipeline hoạt động miễn phí mỗi tháng.. + Amazon CodeCatalyst: Dịch vụ
Amazon SES
Các ưu đãi miễn phí này bao gồm ba loại:
+ Dùng thử ễn phí: Các ưu đãi bản dùng thử ắn hạmi ng n
+ 12 tháng miễn phí: Dành cho khách hàng mới, có sẵn trong 12 tháng sau ngày đăng ký AWS
+ Luôn miễn phí: Các ưu đãi không tự động hết hạn sau 12 tháng, dành cho cả khách hàng mới và hiện tại
Sau đây ta sẽ tìm hiểu rõ hơn các dịch vụ đám mây trên:
Máy chủ đám mây là một máy chủ ảo hóa chạy trên đám mây trên cơ sở hạ tầng thuộc sở hữu của nhà cung cấp dịch vụ đám mây Trước đây, các tổ ức phải mua ch và duy trì máy chủ vật lý của riêng mình Họ sử dụng máy chủ để ạy và lưu trữ ch ứng dụng, cũng như tính toán khối lượng công việc cần thiết để xử lý và phân tích dữ ệu Máy chủ ợc đặt tại chỗ ặc trong các trung tâm dữ ệu lân cận Ngày li đư ho li nay, tổ ức của bạn có thể triển khai máy chủ đám mây ả ở bất cứ đâu trên thế ch o giới Những không gian ảo này chạy trên các máy chủ vật lý được mua và duy trì bởi các nhà cung cấp dịch vụ đám mây bên thứ ba Bản sao máy chủ ảo, hay máy chủ đám mây, mang lại hiệu suất, các lựa chọn cấu hình và khả năng sử dụng giống như một máy chủ vật lý Bạn có thể truy cập vào máy chủ đám mây không giới hạn thuộc hàng trăm loại cấu hình khác nhau Khi có sức mạnh này, bạn có thể ạy và ch lưu trữ tất cả các loại ứng dụng và khối lượng công việc trên đám mây
Amazon EC2 là một phần của các dịch vụ đám mây của AWS, và nó cung cấp nhiều công cụ và tài nguyên DevOps miễn phí thông qua Bậc miễn phí của AWS Dưới đây là một số công cụ và tài nguyên DevOps miễn phí liên quan đến Amazon EC2:
+ AWS CodeBuild: Dịch vụ dựng mã được quản lý, giúp biên dịch mã nguồn, chạy kiểm thử và tạo ra phần mềm
+ Amazon CodeCatalyst: Dịch vụ phát triển phần mềm thống nhất giúp xây dựng và phân phối nhanh chóng các ứng dụng trên AWS
+AWS CodePipeline: Dịch vụ phân phối liên tục để tự động hóa quy trình phát hành phần mềm
Bậc miễn phí của AWS cung cấp các ưu đãi cho các dịch vụ này, bao gồm: + AWS CodeBuild: 100 phút dựng mã miễn phí mỗi tháng
+ Amazon CodeCatalyst: 2,000 phút dựng mã, 60 giờ môi trường phát triển, 10 GB lưu trữ mã nguồn và 64 GB lưu trữ môi trường phát triển tổng cộng
+ AWS CodePipeline: 1 pipeline hoạt động miễn phí mỗi tháng
Ngoài ra, bạn cũng có thể sử dụng các dịch vụ khác như Amazon ECS cho việc quản lý container và AWS Lambda cho điện toán không máy chủ, cũng như các công cụ giám sát và ghi nhật ký như AWS CloudWatch để hỗ ợ quy trình DevOps tr trên EC2
Amazon S3, một phần của Amazon Web Services (AWS), cung cấp lưu trữ đối tượng có khả năng mở rộng và độ bền cao Amazon S3 cung cấp một giao diện web đơn giản, cho phép bạn sử dụng để lưu trữ và truy xuất dữ ệu với khối lượng bấli t kỳ vào bất cứ ời điểm nào, từ bất cứ nơi nào Sử dụng dịch vụ này, bạn có thể dễ th dàng xây dựng những ứng dụng dùng bộ lưu trữ dành cho đám mây Do Amazon S3 có khả năng mở rộng cao và bạn chỉ ải trả ền cho những gì bạn dùng, bạn có thể ph ti bắt đầu từ quy mô nhỏ và phát triển cá ứng dụng bạn muốn mà không phải hy sinh c về ệu năng hoặc độ tin cậhi y
Dịch vụ Amazon S3 còn được thiết kế để có tính linh hoạt cao Bạn có thể lưu trữ bất kỳ loại cũng như khối lượng dữ liệu nào mong muốn, đọc cùng một đoạn dữ liệu hàng triệu lần hoặc chỉ để phục hồi sự cố khẩn cấp, xây dựng một ứng dụng FTP đơn giản hoặc ứng dụng web.
4 phức tạp chẳng hạn như trang web bán lẻ Amazon.com Amazon S3 cho phép các nhà phát triển tự do tập trung vào đổi mới thay vì phải lo tìm cách lưu trữ dữ liệu của mình
Dưới đây là một số công cụ và tài nguyên DevOps liên quan đến Amazon S3 mà chúng ta có thể sử dụng miễn phí thông qua Bậc miễn phí của AWS:
AWS CodeBuild là dịch vụ build mã được quản lý, tự động biên dịch mã nguồn, chạy thử nghiệm và tạo phần mềm Bậc miễn phí của dịch vụ cung cấp 100 phút xây dựng mã hàng tháng, cho phép bạn biên dịch và chạy các dự án nhỏ, thử nghiệm tính năng hoặc tích hợp với các dịch vụ AWS khác một cách dễ dàng.
+ AWS CodePipeline: Dịch vụ phân phối liên tục để tự động hóa quy trình phát hành phần mềm.Bậc miễn phí cung cấp 1 pipeline hoạt động miễn phí mỗi tháng
+ Amazon CodeCatalyst: Dịch vụ phát triển phần mềm thống nhất giúp xây dựng và phân phối nhanh chóng các ứng dụng trên AWS.Bậc miễn phí cung cấ 2,000 phút p dựng mã, 60 giờ môi trường phát triển, 10 GB lưu trữ mã nguồn và 64 GB tổng lưu trữ môi trường phát triển
Ngoài ra, Amazon S3 có thể tích hợp với các dịch vụ khác như Amazon ECS cho việc quản lý container và AWS Lambda cho điện toán không máy chủ, cũng như AWS CloudWatch cho việc giám sát và ghi nhật ký, hỗ ợ quy trình DevOps.tr
Amazon RDS (Amazon Relational Database Service) là dịch vụ lưu trữ đám mây của AWS, cung cấp giải pháp cài đặt, vận hành và mở rộng cơ sở dữ liệu quan hệ Amazon RDS nổi bật với khả năng mở rộng linh hoạt, chi phí thấp, tự động hóa các tác vụ quản lý như cấu hình, sao lưu và phục hồi Dịch vụ này đảm bảo hiệu suất cao, tính sẵn sàng, bảo mật và tương thích mạnh mẽ với các hệ thống khác.
AWS cung cấp nhiều công cụ và tài nguyên DevOps miễn phí thông qua Bậc miễn phí của AWS, bao gồm:
+ Amazon RDS Free Tier: Cho phép bạn sử dụng miễn phí 750 giờ mỗi tháng của các phiên bản db.t2.micro, db.t3.micro, và db.t4g.micro, chạy MySQL, MariaDB, PostgreSQL, hoặc SQL Server (phiên bản Express), cùng với 20 GB lưu trữ SSD (gp2) và 20 GB lưu trữ cho sao lưu
+ AWS CodeBuild: Dịch vụ dựng mã được quản lý, cung cấp 100 phút dựng mã miễn phí mỗi tháng
+ AWS CodePipeline: Dịch vụ phân phối liên tục, cung cấp 1 pipeline hoạt động miễn phí mỗi tháng
+ Amazon CodeCatalyst: Dịch vụ phát triển phần mềm thống nhất, cung cấp 2,000 phút dựng mã, 60 giờ môi trường phát triển, 10 GB lưu trữ mã nguồn và 64 GB tổng lưu trữ môi trường phát triển
Ngoài ra, Amazon RDS có thể tích hợp với các công cụ khác như Amazon ECS cho việc quản lý container và AWS Lambda cho điện toán không máy chủ, cũng như AWS CloudWatch cho việc giám sát và ghi nhật ký, hỗ ợ quy trình DevOps.tr
Tìm hiểu về AWS CodePipeline
A/ ới thiệu chi tiết về AWS CodePipeline:Gi
AWS CodePipeline là dịch vụ phân phối liên tục mà bạn có thể sử dụng để lập mô hình, trực quan hóa và tự động hóa các bước cần thiết để phát hành phần mềm của mình Bạn có thể nhanh chóng lập mô hình và định cấu hình các giai đoạn khác nhau của quy trình phát hành phần mềm CodePipeline tự động hóa các bước cần thiết để liên tục phát hành các thay đổi phần mềm của bạn
* Phân phối liên tục và tích hợp liên tục:
- CodePipeline là dịch vụ phân phối liên tục tự động hóa việc xây dựng, thử nghiệm và triển khai ần mềm của bạn vào sản xuấ ph t.
- Phân phối liên tục là một phương pháp phát triển phần mềm trong đó quy trình phát hành được tự độ hóa Mọi thay đổi phần mềm đều được tự động xây dựng, thử ng nghiệm và triển khai vào sản xuất Trước lần đẩy cuối cùng vào sản xuất, một người, một bài kiểm tra tự động hoặc một quy tắc kinh doanh sẽ quyết định thời điểm lần đẩy cuối cùng sẽ xảy ra Mặc dù mọi thay đổi phần mềm thành công đều có thể được đưa vào sản xuất ngay lập tức với quá trình phân phối liên tục, nhưng không phải tất cả các thay đổi đều cần được phát hành ngay lập tứ c.
- Tích hợp liên tục là một phương pháp phát triển phần mềm trong đó các thành viên của nhóm sử dụng hệ thống kiểm soát phiên bản và thường xuyên tích hợp công việc của họ vào cùng một vị trí, chẳng hạn như chi nhánh chính Mỗi thay đổi đều được xây dựng và xác minh để phát hiện lỗi tích hợp nhanh nhất có thể Tiếp diễn phân phối liên tục và liên tục
Tích hợp liên tục tập trung vào tự động hóa các quy trình xây dựng và kiểm thử mã, ngược lại triển khai liên tục tự động hóa toàn bộ quá trình phát hành phần mềm cho đến khi đưa vào sản xuất.
* Có thể làm gì với CodePipeline?
Sử dụng CodePipeline để tự động xây dựng, kiểm tra và triển khai các ứng dụng của mình trên đám mây Cụ thể:
- Tự động hóa quy trình phát hành: CodePipeline tự động hóa hoàn toàn quy trình phát hành từ đầu đến cuối, bắt đầu từ kho lưu trữ nguồn cho đến quá trình xây dựng, thử nghiệm và triển khai Có thể ngăn các thay đổi di chuyển qua quy trình bằng cách đưa hành động phê duyệt thủ công vào bất kỳ giai đoạn nào ngoại trừ giai đoạn Nguồn Bạn có thể phát hành khi bạn muốn, theo cách bạn muốn, trên hệ ống bạth n chọn, trên một hoặc nhiều phiên bản
- Thiết lập quy trình phát hành nhất quán: Xác định một bộ các bước nhất quán cho mỗi thay đổi mã CodePipeline chạy từng giai đoạn phát hành theo tiêu chí của bạn
- Tăng tốc độ phân phối trong khi cải thiện chất lượng: Bạn có thể tự động hóa quy trình phát hành của mình để cho phép các nhà phát triển của bạn kiểm tra và phát hành mã tăng dần cũng như tăng tốc độ phát hành các tính năng mới cho khách hàng của bạn
- Sử dụng các công cụ yêu thích: Có thể kết hợp các công cụ nguồn, bản dựng và triển khai hiện có vào quy trình
- Xem nhanh tiến trình: Có thể xem lại trạng thái thời gian thực của quy trình, kiểm tra chi tiết của bất kỳ cảnh báo nào, ử lại các giai đoạn hoặc hành động không th thành công, xem chi tiết về các bản sửa đổi nguồn được sử dụng trong quá trình thực hiện quy trình mới nhất trong từng giai đoạn và chạy lại bất kỳ quy trình nào theo cách ủ công th
- Xem chi tiết lịch sử: Có thể xem chi tiết về ệc thực hiện, bao gồm cả ần bắvi ph t đầu và thời gian kết thúc, thời lượng chạy và ID thực thi
* Sơ đồ sau đây minh họa các giai đoạn chính trong một quy trình phát hành mẫu bằng cách sử dụng CodePipeline:
- Khi nhà phát triển thực hiện các thay đổi đối với kho lưu trữ nguồn, CodePipeline sẽ tự động phát hiện các thay đổi Những thay đổi đó được xây dựng và nếu bất kỳ thử nghiệm nào được định cấu hình thì các thử nghiệm đó sẽ được chạy Sau khi quá trình kiểm tra hoàn tất, mã được xây dựng sẽ ợc triển khai đến các máy chủ đư chạy thử để ểm tra Từ máy chủ ạy thử, CodePipeline chạy nhiều thử nghiệm hơn, ki ch chẳng hạn như thử nghiệm tích hợp hoặc tải Sau khi hoàn thành thành công các thử nghiệm đó và sau khi phê d ệt hành động phê duyệt thủ công đã thêm vào quy uy
13 trình, CodePipeline sẽ triển khai mã đã được thử nghiệm và phê duyệt cho các phiên bản sản xuất
- CodePipeline có thể triển khai ứng dụng cho phiên bản EC2 bằng cách sử dụng CodeDeploy, AWS Elastic Beanstalk hoặc AWS OpsWorks Stacks CodePipeline cũng có thể triển khai các ứng dụng dựa trên bộ ứa cho các dịch vụ bằng cách sử ch dụng Amazon ECS Các nhà phát triển cũng có thể sử dụng các điểm tích hợp được cung cấp cùng với CodePipeline để cắm vào các công cụ ặc dịch vụ khác, bao ho gồm dịch vụ xây dựng, nhà cung cấp thử nghiệm hoặc các mục tiêu hoặc hệ thống triển khai khác
- Quy trình có thể đơn giản hoặc phức tạp tùy theo yêu cầu của quy trình phát hành
* Làm cách nào để bắt đầu với CodePipeline? Để bắt đầu với CodePipeline:
1 Tìm hiểu cách CodePipeline hoạt động bằng cách đọc phần khái niệm CodePipeline
2 Chuẩn bị sử dụng CodePipeline bằng cách làm theo các bước trong Bắt đầu với CodePipeline
3 Thử nghiệm với CodePipeline bằng cách làm theo các bước trong phần hướng dẫn CodePipeline
4 Sử dụng CodePipeline cho các dự án mới hoặc hiện tại của bạn bằng cách làm theo các bước trong Tạo quy trình trong CodePipeline
- Nếu chưa quen với CodePipeline, có thể làm theo hướng dẫn trong hướng dẫn này sau khi làm theo các bước trong chương này để thiết lập
- Bảng điều khiển CodePipeline bao gồm thông tin hữu ích trong một bảng điều khiển có thể thu gọn mà bạn có thể mở từ ểu tượng thông tin hoặc bất kỳ liên kếbi t thông tin nào trên trang Bạn có thể đóng bảng này bất cứ lúc nào
- Bảng điều khiển CodePipeline cũng cung cấp cách tìm kiếm nhanh chóng các tài nguyên của bạn, chẳng hạn như kho lưu trữ, dự án xây dựng, ứng dụng triển khai và quy trình Chọn Đi tới tài nguyên hoặc nhấn phím “/”, rồi nhập tên của tài nguyên Bất kỳ kết quả phù hợp nào sẽ ất hiện trong danh sách Tìm kiếm không phân biệxu t chữ hoa chữ thường Bạn chỉ thấy những tài nguyên mà bạn có quyền xem
- Trước khi có thể sử dụng AWS CodePipeline lần đầu tiên, bạn phải tạo tài khoản AWS và tạo người dùng quản trị đầu tiên của mình
* Các trường hợp sử dụng và thực tiễn tốt nhất của CodePipeline:
- Sử dụng CodePipeline với Amazon S3, AWS CodeCommit và AWS CodeDeploy
Khi bạn tạo quy trình, CodePipeline sẽ tích hợp với các sản phẩm và dịch vụ AWS đóng vai trò là nhà cung cấp hành động trong từng giai đoạn trong quy trình của bạn Khi bạn chọn các giai đoạn trong trình hướng dẫn, bạn phải chọn giai đoạn nguồn và ít nhất một giai đoạn xây dựng hoặc triển khai Trình hướng dẫn tạo các giai đoạn cho bạn với tên mặc định không thể thay đổi Đây là các tên giai đoạn được tạo khi bạn thiết lập quy trình ba giai đoạn đầy đủ trong trình hướng dẫn:
+ Giai đoạn hành động nguồn có tên mặc định là “Nguồn”
+ Giai đoạn hành động xây dựng có tên mặc định là “Build”
+ Giai đoạn hành động triển khai có tên mặc định là “Giai đoạn”
- Sử dụng CodePipeline với nhà cung cấp hành động bên thứ ba (GitHub và Jenkins)
Bạn có thể tạo quy trình tích hợp với các sản phẩm của bên thứ ba như GitHub và Jenkins Các bước trong Hướng dẫn:
+ Lấy mã nguồn từ kho lưu trữ GitHub
+ Sử dụng Jenkins để xây dựng và kiểm tra mã nguồn
+ Sử dụng AWS CodeDeploy để triển khai mã nguồn được xây dựng và thử nghiệm cho các phiên bản Amazon EC2 chạy Amazon Linux hoặc Microsoft Windows Server
- Sử dụng CodePipeline với AWS CodeStar để xây dựng quy trình trong dự án mã
AWS CodeStar là một dịch vụ đám mây cung cấp giao diện người dùng thống nhất để quản lý các dự án phát triển phần mềm trên AWS Nó tích hợp với CodePipeline để kết hợp các tài nguyên AWS vào quy trình phát triển dự án Bảng thông tin AWS CodeStar cho phép tự động hóa việc tạo ứng dụng, kho lưu trữ, mã nguồn, tệp cấu hình xây dựng, phương pháp triển khai và các phiên bản lưu trữ hoặc không có máy chủ cần thiết cho một dự án mã hoàn chỉnh.