Insights for CTOs: Phần 1 – Xây dựng và vận hành các ứng dụng trên nền tảng điện toán đám mây

Với vai trò là Senior Solutions Architect, tôi đã nói chuyện với các giám đốc công nghệ ( CTOs ) và ban lãnh đạo điều hành của các doanh nghiệp lớn như các ngân hàng lớn, các doanh nghiệp phần mềm như là một dịch vụ( SaaS – Software as a Service ), các doanh nghiệp quy mô vừa và các công ty khởi nghiệp. Trong loạt bài này, tôi sẽ chia sẻ những thông tin quý giá có được từ các CTOs và các nhà lãnh đạo kỹ thuật khác nhau trong hành trình sử dụng cloud của họ trong tổ chức của mình. Tôi đã thực hiện những bài học này và tóm tắt các phương pháp hay nhất về kiến trúc nhằm giúp bạn xây dựng và vận hành thành công các ứng dụng trên cloud. Loạt bài này cũng sẽ bao gồm các chủ đề về quản lý chi phí trên cloud, bảo mật, dữ liệu hiện đại và trí tuệ nhân tạo (AI), các mô hình vận hành trên cloud và chiến lược di chuyển lên cloud.

Tối ưu hóa chi phí và hiệu suất với các dịch vụ AWS

Hiệu quả giữa chi phí cho việc sử dụng công nghệ so với lợi tức đầu tư (ROI) được đánh giá liên tục. Khi sử dụng cloud, bạn “sử dụng bao nhiêu thì chỉ cần trả bấy nhiêu“. Điều này có nghĩa là các chi tiêu để dành cho công nghệ của bạn là chi phí hoạt động chứ không phải các chi phí vốn, như đã thảo luận trong Phần 3: Kinh tế học trong cloud – OPEX so với CAPEX.

Vì vậy, làm cách nào để bạn tối ưu hóa ROIs của các chi tiêu trên cloud của mình? Các phần dưới đây sẽ cung cấp các tùy chọn lưu trữ và giúp bạn chọn mô hình lưu trữ phù hợp nhất với nhu cầu của mình.

Đánh giá các tùy chọn máy chủ của bạn
Các máy chủ EC2 và chiến lược Lift and Shift.

Sử dụng khả năng cung cấp/xoá bỏ linh hoạt trên cloud của các máy chủ Amazon Elastic Compute Cloud (Amazon EC2) sẽ giúp bạn đáp ứng nhu cầu kinh doanh chính xác hơn và tối ưu hóa chi phí tính toán. Các máy chủ EC2 cho phép bạn sử dụng chiến lược di chuyển “lift and shift” cho các ứng dụng của mình. Điều này giúp bạn tránh được các chi phí phát sinh mà bạn có thể phải trả trước khi lập các kế hoạch.

Hình 1. So sánh on-premises và cloud infrastructure provisioning

Containerized hosting (với EC2 hosts)

Các nhóm kỹ sư có kỹ năng trong lĩnh vực container đã tiết kiệm chi phí bằng cách sử dụng Amazon Elastic Kubernetes Service (Amazon EKS)  hoặc  Amazon Elastic Container Service (Amazon ECS). Điều này là do đơn vị triển khai của bạn là một container thay vì cả máy chủ và Amazon EKS hoặc Amazon ECS có thể đóng gói nhiều container vào một máy chủ duy nhất. Quản lý việc thay đổi ứng dụng cũng ít rủi ro hơn vì bạn có thể tận dụng sự điều phối tích hợp sẵn của Amazon EKS hoặc Amazon ECS để quản lý việc triển khai không gián đoạn.

Kiến trúc Serverless 

Sử dụng AWS Lambda  và  AWS Fargate để mở rộng quy mô phù hợp với nhu cầu sử dụng thay đổi liên tục . Chúng tôi đã thấy các khách hàng của AWS SaaS xây dựng các cách thức đo lường tốt hơn về “chi phí trên mỗi người dùng” của một ứng dụng bằng cách sử dụng serverless. Điều này đạt được là do thay vì trả tiền cho thời gian hoạt động của máy chủ, bạn chỉ trả tiền khi thực sự phục vụ người dùng ( mức mili giây cho Lambda) khi bạn chạy ứng dụng của mình.

Những cân nhắc thêm về việc lựa chọn nền tảng tính toán phù hợp

Bảng sau cung cấp những cân nhắc để triển khai mô hình hiệu quả nhất về chi phí cho một số trường hợp sử dụng mà bạn có thể gặp phải khi xây dựng kiến trúc của mình:

Các tùy chọn về tính toán
Các trường hợp sử dụng ứng dụngMáy chủ ảo EC2ContainerServerless
Các kiến trúc ứng dụng MonolithicY
Các kiến trúc ứng dụng MicroservicesYY
Lưu lượng truy cập người dùng được duy trìYY
Lưu lượng truy cập người dùng không xác địnhY
Trạng thái ứng dụng ( Application state ) chưa được lưu trữ hoàn toàn ở CSDLYY
Giao tiếp ứng dụng đồng bộ ( synchronous )YY

Xây dựng mô hình hoạt động trên nền tảng đám mây và quản lý rủi ro

Cách xây dựng một khung năng lực về people, governance, và platform hiệu quả được tóm tắt trong các phần sau và được thảo luận chi tiết trong Phần 5: Tổ chức các nhóm để cho phép xây dựng / điều hành / quản lý hiệu quả.

People

Nếu đội ngữ của bạn chỉ quen làm việc với các ứng dụng trên máy ảo, việc yêu cầu họ chuyển sang mô hình không máy chủ đám mây mà không được đào tạo đầy đủ có thể dẫn tới việc hoạt động kém hiệu quả. Chúng tôi khuyên bạn nên bắt đầu từ quy mô nhỏ. Chọn một số ít các ứng dụng có rủi ro thấp nhưng có giá trị về kinh tế và cho phép nhóm của bạn xây dựng kinh nghiệm về cloud của họ.

Governance

Nếu nhóm của bạn không có đủ kinh nghiệm để đưa ra các quyết định về kiến trúc trên cloud, hãy xây dựng Trung tâm xuất sắc về đám mây (CCOE – Cloud center of excellence ) để thực thi một cách tiếp cận nhất quán nhằm xây dựng ứng dụng trên cloud. Nếu không có đội ngũ này, việc quản lý chi phí, bảo mật và độ tin cậy sẽ khó khăn hơn. Yêu cầu nhóm CCOE thường xuyên xem xét tính phù hợp của kiến trúc ứng dụng (chi phí, hiệu suất, khả năng phục hồi) trước các điều kiện kinh doanh thay đổi. Điều này sẽ giúp bạn từng bước phát triển kiến trúc khi thích hợp.

Platform

Trong môi trường trung tâm dữ liệu truyền thống , các thay đổi được triển khai “In Place” ( thực hiện triển khai thay đổi ngay trên các máy chủ đang phục vụ người dùng ). Các thay đổi này khá tốn thời gian và “ cần có sự tham gia của tất cả mọi người”. Việc triển khai trên đám mây thay thế phương pháp tiếp cận tại chỗ bằng phương pháp triển khai blue/green, như trong Hình 2.

Với chiến lược này, các phiên bản ứng dụng mới có thể được triển khai trên các máy mới (Green) đang chạy song song với các máy cũ (Blue). Sau khi phiên bản mới được xác thực, chuyển lưu lượng truy cập sang máy mới (Green) và chúng trở thành bản chạy production. Mô hình này làm giảm rủi ro và tăng tốc độ thay đổi.

Hình 2. Mô hình triển khai AWS blue / green

Bảo mật ứng dụng và cơ sở hạ tầng của bạn

Các biện pháp kiểm soát bảo mật trong đám mây được xác định và thực thi trong phần mềm, điều này mang lại rủi ro và cơ hội. Nếu không được quản lý bằng một quy trình quản lý thay đổi mạnh mẽ, cấu hình tường lửa sai có thể tạo ra các mối đe dọa không mong muốn.

Để tránh điều này, hãy sử dụng các kiến trúc mẫu tiêu biểu như “cơ sở hạ tầng dưới dạng mã” ( infrastructure as code ) thể hiện tất cả việc khởi tạo và cấu hình cơ sở hạ tầng dưới dạng mẫu khai báo (tệp JSON hoặc YAML). Sau đó, áp dụng quy trình “Git pull request” tương tự đối với quản lý thay đổi cơ sở hạ tầng như cách bạn làm đối với các ứng dụng của mình để thực thi quản trị hạ tầng của bạn một cách mạnh mẽ. Bạn có thể sử dụng các công cụ như AWS CloudFormation hoặc AWS Cloud Development Kit (AWS CDK)  để triển khai các mẫu cơ sở hạ tầng vào môi trường đám mây của bạn.

Áp dụng mô hình bảo mật phân lớp “phòng thủ theo chiều sâu” ( defense in depth ) cho các tầng ứng dụng của bạn, như thể hiện trong Hình 3, để ngăn chặn các cuộc tấn công từ chối dịch vụ phân tán (DDoS) và lớp ứng dụng. Phần 2: Bảo vệ tài khoản, dữ liệu và ứng dụng AWS cung cấp một cuộc thảo luận chi tiết về bảo mật.

Hình 3. Phòng thủ theo chiều sâu

Nơi lưu trữ dữ liệu

Trong môi trường truyền thống, thường rất khó để cung cấp một cơ sở dữ liệu riêng biệt cho mỗi microservice. Do đó, ứng dụng hoặc microservice thường được tách biệt ở lớp tính toán và cơ sở dữ liệu trở thành yếu tố phụ thuộc được chia sẻ chính, điều này có thể làm giảm khả năng thích ứng với thay đổi cho ứng dụng của bạn.

Đám mây cung cấp các cơ sở dữ liệu được quản lý hoàn toàn, có thể khởi tạo thông qua API như  Amazon Relational Database Service (Amazon RDS)(SQL), Amazon DynamoDB (NoSQL) và các cơ sở dữ liệu khác. Điều này cho phép bạn cô lập các microservice của mình từ đầu đến cuối và tạo ra một kiến trúc linh hoạt hơn. Ví dụ: trong cell-based architecture, nơi người dùng được đưa vào các “cell” ngăn xếp ứng dụng độc lập, biệt lập, “blast radius” của một tác động, chẳng hạn như thời gian ngừng hoạt động của ứng dụng hoặc vấn đề với trải nghiệm người dùng, được giới hạn cho mỗi cell.

Database engines

Cơ sở dữ liệu quan hệ thường là là kiểu cơ sở dữ liệu khởi đầu mặc định cho nhiều tổ chức. Mặc dù cơ sở dữ liệu quan hệ cung cấp tốc độ và tính linh hoạt để khởi động một ứng dụng mới, nhưng chúng lại mang đến sự phức tạp khi bạn cần mở rộng quy mô theo chiều ngang.

Nhu cầu ứng dụng của bạn sẽ xác định xem bạn sử dụng cơ sở dữ liệu quan hệ hay không quan hệ. Trong đám mây, cơ sở dữ liệu được quản lý hoàn toàn, được khởi tạo bằng API cung cấp cho bạn các tùy chọn để phù hợp chặt chẽ với trường hợp sử dụng ứng dụng của bạn. Ví dụ: cơ sở dữ liệu trong bộ nhớ như Amazon ElastiCache  giảm độ trễ cho nội dung trang web và cơ sở dữ liệu khóa-giá trị như DynamoDB cung cấp phần phụ trợ có thể mở rộng theo chiều ngang để xây dựng giỏ hàng thương mại điện tử.

Tóm tắt

Chúng tôi thừa nhận rằng trách nhiệm của CTO có thể khác nhau giữa các tổ chức; tuy nhiên, blog này thảo luận về những lưu ý chính thường gặp khi xây dựng và vận hành một ứng dụng trên đám mây.

Các bài viết khác trong loạt bài này

Việc chọn nền tảng lưu trữ ứng dụng phù hợp tùy thuộc vào trường hợp sử dụng ứng dụng của bạn và có thể ảnh hưởng đến chi phí hoạt động của ứng dụng trên đám mây. Hãy xem xét các khía cạnh về con người, quản trị và nền tảng một cách cẩn thận vì chúng sẽ ảnh hưởng đến sự thành công hay thất bại trong việc áp dụng đám mây của bạn. Sử dụng các kiến trúc triển khai mẫu sẽ giúp bạn giảm thiểu rủi ro. Các nơi lưu trữ dữ liệu được quản lý mở ra cho bạn sự lựa chọn các tuỳ trọn cơ sở dữ liệu đa dạng ( SQL và NOSQL) . Trong bài tiếp theo của loạt bài này, chúng ta sẽ tìm hiểu về việc Bảo vệ tài khoản, dữ liệu và ứng dụng AWS, chúng ta sẽ khám phá các nguyên tắc và phương pháp hay nhất để áp dụng khi đề cập đến vấn đề bảo mật trên đám mây.


Bài được dịch từ bài viết trên AWS Blogs, bạn có thể xem bài viết gốc tại đây.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: