Quản lý Môi trường Phát triển với Amazon CodeCatalyst

Môi trường Phát triển Amazon CodeCatalyst là một môi trường phát triển dựa trên đám mây mà bạn có thể sử dụng trong CodeCatalyst để nhanh chóng làm việc trên mã nguồn được lưu trữ trong các kho lưu trữ nguồn của dự án của bạn. Các công cụ dự án và thư viện ứng dụng được bao gồm trong Môi trường Phát triển của bạn được xác định bởi một tệp devfile trong kho lưu trữ nguồn của dự án của bạn.

Giới thiệu

Trong bài viết trước của CodeCatalyst, Tương tác Nhóm với Amazon CodeCatalyst, tôi tập trung vào khả năng hợp tác của CodeCatalyst và cách nó liên quan đến nhân vật chính của Dự án Kỳ diệu. Ở đầu Chương 2, Maxine đang gặp khó khăn trong việc cấu hình môi trường phát triển của mình. Cô ấy đã làm việc 2 ngày trong công việc mới và vẫn không thể xây dựng mã ứng dụng. Cô đã xác định được hơn 100 phụ thuộc mà cô thiếu. Tài liệu đã lỗi thời và không ai có vẻ biết nơi lưu trữ các phụ thuộc. Tôi có thể thông cảm với Maxine. Trong bài viết này, tôi sẽ tập trung vào việc quản lý môi trường phát triển để chỉ ra cách CodeCatalyst loại bỏ gánh nặng của việc quản lý các cấu hình cụ thể cho khối công việc và tạo ra các môi trường phát triển có sẵn đáng tin cậy khi cần.

Yêu cầu tiên quyết

Nếu bạn muốn theo dõi hướng dẫn này, bạn cần phải:

Có một ID Xây dựng AWS để đăng nhập vào CodeCatalyst.

Thuộc về một không gian và đã được gán vai trò quản trị viên không gian trong không gian đó. Để biết thêm thông tin, xem Tạo một không gian trong CodeCatalyst, Quản lý các thành viên của không gian của bạn và Vai trò quản trị viên không gian.

Có một tài khoản AWS được liên kết với không gian của bạn và có vai trò IAM trong tài khoản đó. Để biết thêm thông tin về vai trò và chính sách vai trò, xem Tạo một vai trò dịch vụ CodeCatalyst.

Hướng dẫn

Tương tự như các bài viết trước trong loạt bài viết CodeCatalyst của chúng tôi, tôi sẽ sử dụng bản mẫu Ứng dụng Web Ba tầng Hiện đại. Bản mẫu cung cấp mã mẫu và luồng làm việc CI/CD để giúp việc bắt đầu dễ dàng hơn trên các kết hợp khác nhau của ngôn ngữ lập trình và kiến ​​trúc. Để theo dõi, bạn có thể sử dụng lại dự án bạn đã tạo trước đó hoặc bạn có thể tham khảo bài viết trước đó hướng dẫn cách tạo dự án bằng bản mẫu.

Một trong những khía cạnh khó nhất trong thời gian làm việc của tôi như một nhà phát triển là cách thức để đóng góp nhanh chóng vào dự án mới. Mỗi khi tôi tìm cách làm việc trên một dự án mới, việc đạt được điểm mà tôi có thể đóng góp ý nghĩa vào mã nguồn của dự án luôn khó khăn hơn việc viết mã thực sự. Một phần quan trọng góp phần vào sự không hiệu quả này là sự thiếu hụt của quy trình quản lý môi trường phát triển cục bộ. Tôi sẽ khám phá cách CodeCatalyst có thể giúp giải quyết thách thức này. Đối với hướng dẫn này, tôi muốn thêm một bài kiểm tra mới cho phép kiểm tra cục bộ của Amazon DynamoDB. Để đạt được điều này, tôi sẽ sử dụng Môi trường Phát triển CodeCatalyst.

Môi trường Phát triển CodeCatalyst là các môi trường phát triển dựa trên đám mây được quản lý mà bạn có thể sử dụng để truy cập và sửa đổi mã được lưu trữ trong kho lưu trữ nguồn. Bạn có thể khởi chạy Môi trường Phát triển cụ thể cho dự án sẽ tự động kiểm tra mã nguồn của dự án của bạn hoặc bạn có thể khởi chạy môi trường trống để sử dụng cho việc truy cập các nhà cung cấp nguồn bên thứ ba. Bạn có thể tìm hiểu thêm về Môi trường Phát triển CodeCatalyst trong Hướng dẫn Sử dụng CodeCatalyst.

Hình 1. Tạo Môi trường Phát triển mới

Để bắt đầu, tôi di chuyển đến trang Môi trường Phát triển trong phần Mã của menu điều hướng. Sau đó, tôi sử dụng Tạo Môi trường Phát triển để khởi chạy môi trường của tôi. Đối với bài viết này, tôi đang sử dụng IDE AWS Cloud9, nhưng bạn có thể theo dõi với IDE bạn cảm thấy thoải mái nhất. Trong màn hình tiếp theo, tôi chọn Làm việc trong Nhánh Mới và gán local_testing cho tên nhánh mới, và tôi đang tạo nhánh từ main. Tôi để lại các tùy chọn mặc định còn lại và bấm Tạo.

Hình 2. Tùy chọn Tạo Môi trường Phát triển

Sau khi chờ chưa đầy một phút, IDE của tôi đã sẵn sàng trong một tab mới và tôi đã sẵn sàng bắt đầu công việc. Điều đầu tiên tôi thấy trong Môi trường Phát triển của mình là một cửa sổ thông tin yêu cầu tôi có muốn điều hướng đến Cài đặt Môi trường Phát triển không. Bởi vì tôi cần bật tính năng kiểm tra cục bộ của Dynamodb, không chỉ cho bản thân tôi mà còn cho các nhà phát triển khác sẽ cộng tác vào dự án này, tôi cần cập nhật devfile của dự án. Tôi chọn để điều hướng đến tab cài đặt vì tôi biết đó chứa thông tin về devfile của dự án và cho phép tôi truy cập tệp để chỉnh sửa.

Hình 3. Banner Chào mừng Bộ công cụ

Devfiles cho phép bạn mô hình hóa cấu hình và phụ thuộc của Môi trường Phát triển để bạn có thể tái tạo Môi trường Phát triển nhất quán và giảm công sức thủ công trong việc thiết lập các môi trường trong tương lai. Các công cụ và thư viện ứng dụng được bao gồm trong Môi trường Phát triển của bạn được xác định bởi devfile trong kho lưu trữ nguồn của dự án của bạn. Vì dự án này được tạo từ một bản mẫu, có một tệp devfile được cung cấp. Đối với các dự án trống, một tệp devfile CodeCatalyst mặc định được tạo khi bạn lần đầu khởi chạy một môi trường. Để tìm hiểu thêm về devfile, xem https://devfile.io.

Trong tab cài đặt, tôi tìm thấy một liên kết đến devfile được cấu hình. Khi tôi nhấp vào nút chỉnh sửa, một tab tệp mới được khởi chạy và tôi có thể bây giờ thực hiện các thay đổi. Trước tiên, tôi thêm một phần env vào container chứa Môi trường Phát triển của chúng tôi. Bằng cách thêm một biến môi trường và giá trị, bất kỳ khi nào Môi trường Phát triển Mới được tạo từ kho lưu trữ dự án này, giá trị đó sẽ được bao gồm. Tiếp theo, tôi thêm một container thứ hai vào Môi trường Phát triển sẽ chạy DynamoDB cục bộ. Tôi có thể làm điều này bằng cách thêm một thành phần container mới. Tôi sử dụng hình ảnh Docker DynamoDB đã được xác minh của Amazon cho môi trường của tôi. Đính kèm thêm hình ảnh cho phép bạn mở rộng Môi trường Phát triển và bao gồm các công cụ hoặc dịch vụ có sẵn cục bộ. Các cập nhật của tôi được làm nổi bật trong các phần màu xanh dưới đây.

Hình 4. Mẫu Devfile

Tôi lưu các thay đổi và điều hướng trở lại tab Cài đặt Môi trường Phát triển. Tôi nhận thấy rằng các thay đổi của tôi đã được tự động phát hiện và tôi được yêu cầu khởi động lại môi trường phát triển của mình để các thay đổi có hiệu lực. Việc sửa đổi devfile yêu cầu khởi động lại. Bạn có thể khởi động lại Môi trường Phát triển bằng bộ công cụ hoặc từ giao diện CodeCatalyst.

Hình 5. Cài đặt Môi trường Phát triển

Sau khi chờ đợi vài giây để Môi trường Phát triển của tôi khởi động lại, tôi đã sẵn sàng viết bài kiểm tra của mình. Tôi sử dụng trình duyệt tệp của IDE, mở rộng thư mục ./tests/unit của kho lưu trữ và tạo một tệp mới có tên là test_dynamodb.py. Bằng cách sử dụng biến môi trường IS_LOCAL mà tôi đã cấu hình trong devfile, tôi có thể bao gồm một điều kiện trong bài kiểm tra của mình để đặt điểm cuối mà SDK python của Amazon ( Boto3 ) sẽ sử dụng để kết nối với dịch vụ Dynamodb. Điều này có nghĩa là tôi có thể chạy các bài kiểm tra cục bộ trước khi đẩy các thay đổi của mình và vẫn có thể hoàn thành các bài kiểm tra thành công trong luồng làm việc của dự án của mình. Tệp kiểm tra đầy đủ của tôi được bao gồm dưới đây.

Hình 6. Tệp kiểm tra Dynamodb

Bây giờ, sau khi tôi đã hoàn thành các thay đổi cho Môi trường Phát triển bằng cách sử dụng devfile và thêm một bài kiểm tra, tôi đã sẵn sàng chạy bài kiểm tra cục bộ để xác minh. Tôi sẽ sử dụng pytest để đảm bảo các bài kiểm tra đang chạy trước khi đẩy bất kỳ thay đổi nào. Từ thư mục gốc của kho lưu trữ, tôi chạy lệnh pip install -r requirements-dev.txt. Sau khi các phụ thuộc của tôi được cài đặt, tôi sau đó sử dụng lệnh pytest -k unit. Tất cả các bài kiểm tra đều chạy như tôi mong đợi.

Hình 7. Kết quả kiểm tra pytest

Thay vì cài đặt thủ công các phụ thuộc phát triển của tôi trong mỗi môi trường, tôi cũng có thể sử dụng devfile để bao gồm các lệnh và tự động hóa việc thực thi các lệnh đó trong suốt sự kiện vòng đời Môi trường Phát triển. Bạn có thể tham khảo các liên kết cho các lệnh và sự kiện để biết thêm thông tin.

Cuối cùng, tôi đã sẵn sàng đẩy các thay đổi của mình trở  lại kho lưu trữ nguồn CodeCatalyst của mình. Tôi sử dụng phần mở rộng git của Cloud9 để xem xét các thay đổi của mình. Sau khi xem xét, tôi xác minh rằng các thay đổi của tôi là những gì tôi mong đợi, tôi sử dụng phần mở rộng git để đưa các thay đổi vào trạng thái đánh dấu, commit và đẩy tệp kiểm tra mới và devfile đã sửa đổi để các cộng tác viên khác có thể áp dụng các cải tiến mà tôi đã thực hiện.

Hình 8. Các thay đổi được xem xét trong phần mở rộng git CodeCatalyst Cloud9.

Dọn dẹp

Nếu bạn đã tuân theo quy trình làm việc này, bạn nên xóa các tài nguyên bạn triển khai để tránh tiếp tục phải trả các khoản phí. Đầu tiên, hãy xóa hai bộ tài nguyên mà CDK triển khai bằng cách sử dụng bảng điều khiển AWS CloudFormation trong tài khoản AWS mà bạn đã liên kết khi bạn khởi chạy bản thiết kế. Những bộ tài nguyên này sẽ có tên như mysfitsXXXXXWebStack và mysfitsXXXXXAppStack. Thứ hai, hãy xóa dự án từ CodeCatalyst bằng cách điều hướng đến Cài đặt dự án và chọn Xóa dự án.

Kết luận

Trong bài viết này, bạn đã tìm hiểu cách CodeCatalyst cung cấp Môi trường Phát triển có thể cấu hình theo yêu cầu. Bạn cũng đã tìm hiểu cách devfiles giúp bạn xác định trải nghiệm thống nhất khi phát triển trong dự án CodeCatalyst. Vui lòng theo dõi kênh blog DevOps của chúng tôi khi tôi tiếp tục khám phá cách CodeCatalyst giải quyết các thách thức của Maxine và các nhà xây dựng khác.