Trở lại năm 2018, tôi quyết định sử dụng thời gian rảnh của mình để giúp hiện đại hóa công việc kinh doanh của một thành viên trong gia đình. Trong quá trình này, tôi muốn tích lũy một số kinh nghiệm và hiểu biết về AWS.
Cuối cùng, tôi phát hiện ra rằng gần như toàn bộ thời gian rảnh của mình đều dành cho việc học các khái niệm về cơ sở hạ tầng đám mây AWS. Tôi chỉ còn một phần nhỏ thời gian để tập trung vào việc xây dựng giải pháp hiện đại, dựa trên đám mây mà tôi đã nghĩ đến ban đầu. Khi lên kế hoạch cho nhiều yêu cầu tính năng hơn cho ứng dụng, tôi nhận ra rằng mình cần một cách tiếp cận tốt hơn.
Đầu năm 2020, tôi phát hiện ra Heroku. Vì không cần phải lo lắng về cấu hình đám mây cơ bản nên tôi có thể tập trung thời gian vào việc bổ sung các tính năng mới.
Hệ sinh thái Heroku hoạt động rất tốt cho trường hợp sử dụng đơn giản của tôi, nhưng tôi bắt đầu thắc mắc về các trường hợp sử dụng phức tạp hơn. Còn kịch bản trong đó một tập hợp các dịch vụ riêng tư và bảo mật cần tương tác với nhau để có giải pháp xử lý thanh toán thì sao?
Trường hợp sử dụng này có buộc tôi phải sống trong hệ sinh thái của một trong ba nhà cung cấp dịch vụ đám mây lớn không? Tôi sẽ tìm hiểu.
Trong vài năm, tôi may mắn được làm việc trong một môi trường coi trọng vòng đời DevOps . Nhóm DevOps đã xử lý mọi thứ trên đám mây cho tôi, vì vậy tôi có thể tập trung vào việc kiến trúc và xây dựng các dịch vụ vi mô để đáp ứng nhu cầu của khách hàng.
Trong thời gian đó của cuộc đời tôi, môi trường này là ngoại lệ, không phải chuẩn mực. Tôi vừa thực hiện tìm kiếm “các công ty thiếu kiến thức về cơ sở hạ tầng đám mây” trong trình duyệt của mình và kết quả đưa ra một số kết luận khá đáng ngạc nhiên:
Các kết quả tìm kiếm hàng đầu nói về sự thiếu hiểu biết về các khái niệm cốt lõi của đám mây và nhu cầu đào tạo quan trọng để các nhóm hoạt động hiệu quả. Việc đào tạo mà hầu hết các nhóm cần thường bị bỏ qua vì nhu cầu của khách hàng và sản phẩm được giao được ưu tiên cao hơn.
Với cách tiếp cận hiện tại này, hầu hết việc triển khai trên đám mây buộc phải di chuyển với tốc độ chậm hơn và chúng thường gặp phải các lỗ hổng chưa xác định.
Tình trạng bảo mật các dịch vụ vi mô của bạn trên đám mây hiện tại không phải là điều đáng mừng.
Trạng thái lý tưởng cho các giải pháp dựa trên nền tảng đám mây sẽ tuân thủ tuyên bố sứ mệnh cá nhân mà tôi đã thiết lập vài năm trước:
“Hãy tập trung thời gian vào việc cung cấp các tính năng/chức năng giúp nâng cao giá trị tài sản trí tuệ của bạn. Tận dụng các khuôn khổ, sản phẩm và dịch vụ cho mọi thứ khác.”
– J. Vester
Trong bối cảnh này, những người có định hướng hướng tới các giải pháp dựa trên nền tảng đám mây sẽ có thể phát triển với tốc độ phù hợp với mục tiêu của công ty. Chúng không nên bị chậm lại do quá trình học tập liên quan đến cơ sở hạ tầng đám mây cơ bản.
Vì vậy, điều này trông như thế nào khi chúng ta đối mặt với một giải pháp đám mây bao gồm nhiều vi dịch vụ , tất cả những dịch vụ đó cần được cách ly với công chúng và tuân thủ các quy định tuân thủ (như SOC, ISO, PCI hoặc HIPAA)?
Trải nghiệm Heroku năm 2020 của tôi rất tích cực. Vì vậy, tôi muốn xem nó sẽ hoạt động như thế nào với trường hợp sử dụng phức tạp này. Đó là lúc tôi phát hiện ra Không gian riêng tư .
Không gian riêng tư có sẵn như một phần của Heroku Enterprise. Chúng là môi trường dành riêng để chạy các vi dịch vụ trong một mạng bị cô lập. Cách tiếp cận này cho phép các nhóm triển khai dịch vụ của họ vào một mạng không tiếp xúc với Internet công cộng. Về cơ bản, các dịch vụ này hoạt động giống hệt như trong trường hợp sử dụng cơ bản của tôi. Tôi có thể thiết lập chúng thông qua Heroku CLI và các lệnh đơn giản dựa trên Git có thể kích hoạt quá trình triển khai.
Đối với nhu cầu tuân thủ quy định, tôi có thể dựa vào Heroku Shield để giúp tôi tuân thủ PCI DSS, HIPAA, ISO (27001, 27017 và 27018) và SOC (1, 2 và 3).
Ở cấp độ cao, Heroku cho phép tôi triển khai một thiết kế gốc đám mây an toàn có thể được minh họa như thế này:
Ở đây, chúng tôi có một triển khai tận dụng Heroku Shield trong Không gian riêng tư. Điều này cho phép một tập hợp các vi dịch vụ—sử dụng nhiều ngôn ngữ lập trình khác nhau—tương tác với tất cả các mạng thẻ chính và phụ chính, đồng thời tuân thủ các yêu cầu tuân thủ quy định khác nhau. Ngoài ra, tôi còn nhận được thông tin liên lạc an toàn với nền tảng Salesforce và GitLab.
Bằng cách sử dụng Heroku CLI, tôi có thể thiết lập Không gian riêng tư và Khiên Heroku của mình. Trong Heroku, đây được gọi là Không gian riêng tư Lá chắn . Dưới đây là một số ví dụ cấp cao để thực hiện quy trình.
Để tạo Không gian riêng tư Shield mới, chúng tôi sử dụng spaces:create
và thêm tùy chọn --shield
.
$ heroku spaces:create payment-network --shield --team payments-team --region oregon Creating space payment-network in team payments-team... done === payment-network Team: payments-team Region: oregon State: allocating
Nếu trường hợp sử dụng yêu cầu phạm vi Định tuyến giữa các miền không phân loại (CIDR), tôi có thể sử dụng cờ --cidr
và --data-cidr
.
Bạn sẽ nhận thấy rằng tôi đã tạo Không gian riêng tư của mình ở vùng Oregon. Bạn có thể tạo Không gian riêng tư ở một trong 10 khu vực có sẵn (ở Hoa Kỳ, Châu Âu, Châu Á và Úc). Để biết danh sách các khu vực có sẵn, hãy làm như sau:
$ heroku regions ID Location Runtime ───────── ─────────────────────── ────────────── eu Europe Common Runtime us United States Common Runtime dublin Dublin, Ireland Private Spaces frankfurt Frankfurt, Germany Private Spaces london London, United Kingdom Private Spaces montreal Montreal, Canada Private Spaces mumbai Mumbai, India Private Spaces oregon Oregon, United States Private Spaces singapore Singapore Private Spaces sydney Sydney, Australia Private Spaces tokyo Tokyo, Japan Private Spaces virginia Virginia, United States Private Spaces
Đối với mỗi vi dịch vụ cần chạy trong Không gian riêng tư payment-network
, tôi chỉ cần thêm tùy chọn --space
khi chạy apps:create
:
$ heroku apps:create clearing-service --space payment-network Creating app... done, clearing-service
Để cấp cho người tiêu dùng quyền truy cập vào không gian payment-network
, tôi có thể duy trì danh sách IP đáng tin cậy cho phép:
$ heroku trusted-ips:add 192.0.2.128/26 --space payment-network Added 192.0.2.128/26 to trusted IP ranges on payment-network ▸ WARNING: It may take a few moments for the changes to take effect.
Các nhóm thường nhận được chỉ thị từ cấp trên để áp dụng cách tiếp cận dựa trên nền tảng đám mây. Tuy nhiên, nhiều nhóm có lỗ hổng nghiêm trọng trong hiểu biết khi triển khai kiến trúc đám mây an toàn. Nếu bạn đang sử dụng một trong ba nhà cung cấp đám mây lớn thì việc thu hẹp khoảng cách này sẽ phải trả giá—có thể bị bỏ lỡ các mốc thời gian mà chủ sở hữu sản phẩm mong đợi.
Có lựa chọn nào tốt hơn để triển khai đám mây an toàn không? Tôi nghĩ Không gian riêng tư kết hợp với Heroku Shield thể hiện lựa chọn tốt hơn đó. Đối với cá nhân tôi, điều quan trọng là Heroku là một phần của nền tảng giải pháp từ Salesforce, công ty có lịch sử cống hiến trong việc cung cấp giải pháp thay thế áp dụng đám mây tập trung vào sự thành công của khách hàng. Vì vậy, tôi cảm thấy đây là một chiến lược dài hạn cần cân nhắc.
Chúc bạn có một ngày thật tuyệt vời!