Hộp chứa đang ăn khách trên thế giới. Nếu bạn đã xây dựng và triển khai một ứng dụng trong sản xuất trong vài năm qua, thì khả năng cao là bạn đã triển khai mã của mình trong các vùng chứa. Bạn có thể đã tạo và triển khai các vùng chứa riêng lẻ (Docker, Linux LXC, v.v.) trực tiếp ngay từ đầu, nhưng nhanh chóng chuyển sang công nghệ điều phối vùng chứa như Kubernetes (K8s) hoặc Swarm khi bạn cần phối hợp triển khai nhiều nút và tính sẵn sàng cao (HÀ). Trong thế giới hướng tới vùng chứa này, tương lai của ngăn xếp ứng dụng sẽ như thế nào? Hãy bắt đầu với những gì chúng ta cần từ ngăn xếp ứng dụng “trong tương lai” này.
Chúng ta cần gì từ ngăn xếp ứng dụng trong tương lai này?
-
Cloud Agnostic
Chúng tôi muốn trở thành đám mây bất khả tri với khả năng triển khai tới bất kỳ đám mây nào mà chúng tôi lựa chọn. Lý tưởng nhất là chúng tôi thậm chí có thể kết hợp nhiều nhà cung cấp khác nhau trong một lần triển khai.
-
Tại chỗ
Chúng tôi cần có khả năng chạy chồng ứng dụng của mình tại chỗ bằng phần cứng tùy chỉnh, đám mây riêng và trung tâm dữ liệu được quản lý nội bộ của riêng chúng tôi.
-
Ngôn ngữ bất khả tri
Nó gần như đi đôi với việc nói, nhưng tôi sẽ bổ sung nó cho hoàn chỉnh. Ngăn xếp mở trong tương lai cần hỗ trợ tất cả các ngôn ngữ lập trình phổ biến.
Ngăn xếp ứng dụng trong tương lai
Ngăn xếp ứng dụng trong tương lai sẽ bao gồm bộ ba công nghệ - K8s, Platform-as-a-Service (PaaS) và Database-as-a-Service (DBaaS) :
K8s
Kubernetes là một nền tảng mã nguồn mở di động, có thể mở rộng để quản lý khối lượng công việc và dịch vụ được chứa trong vùng chứa và bạn có thể triển khai ứng dụng của mình trực tiếp tới vùng chứa K8s. Đối với những khách hàng có ứng dụng hiện có, việc đóng gói và triển khai trực tiếp các ứng dụng hiện có của bạn lên K8s là điều hoàn toàn hợp lý.
Tương lai của Ngăn xếp Ứng dụng:K8s, PaaS &DBaaSCnhấp vào Tweet
Tất cả các nhà cung cấp dịch vụ đám mây công cộng đều cung cấp hỗ trợ gốc mạnh mẽ cho K8s và bạn cũng có thể chạy cụm K8s của riêng mình tại chỗ. Docker hiện cũng đã nhảy vào nhóm K8s - vì vậy bạn có toàn quyền linh hoạt. Không có nghi ngờ gì khi K8s là vua của ngọn đồi ngày nay. Trong một vài năm, nó có thể bị đánh bại bởi một giải pháp khác, nhưng công nghệ điều phối vùng chứa vẫn tồn tại.
Giải pháp PaaS
Nếu bạn đang tạo một ứng dụng mới từ đầu, các giải pháp Platform-as-a-Service như Cloud Foundry và OpenShift mang đến những lợi thế hấp dẫn mà bạn có thể tận dụng để tăng tốc độ phát triển ứng dụng của mình vòng đời. PaaS có phải là bắt buộc không? Chắc chắn là không, nhưng tôi nghĩ rằng điều đáng xem xét nếu bạn đang tạo một ứng dụng mới.
Trong một số trường hợp, các giải pháp PaaS có thể chạy trên K8s hoặc nằm bên cạnh nó - từ góc độ ứng dụng, điều đó không thành vấn đề. Nếu tổ chức CNTT của bạn đang triển khai giải pháp PaaS, họ có thể thích nó nếu nó chỉ chạy trên các cụm K8s hiện có của họ. Các giải pháp PaaS được đề cập ở trên cũng có sẵn trên tất cả các đám mây công cộng. Vì vậy, một lần nữa, bạn có đầy đủ tính linh hoạt cần thiết từ nền tảng của mình.
Giải pháp DBaaS
Chạy và quản lý hệ thống cơ sở dữ liệu sản xuất không dành cho những người yếu tim. Nếu bạn nghĩ rằng bạn sẽ cài đặt cơ sở dữ liệu sản xuất của mình trên ba vùng chứa và nó sẽ chạy vui vẻ mãi về sau, bạn có một điều khác sắp xảy ra. Bằng cách sử dụng giải pháp Cơ sở dữ liệu dưới dạng dịch vụ, chúng sẽ xử lý tất cả các khía cạnh hoạt động của việc quản lý cơ sở dữ liệu của bạn để bạn chuẩn bị cho bất kỳ và tất cả những điều không mong muốn.
DBaaS của bạn có thể chạy trên K8s hoặc không. Có thể một số phần của DBaaS chạy trên K8s, nhưng tỷ lệ cược là nó không chạy. Tại sao vậy?
- Bên ngoài các đám mây công cộng phổ biến, không có giải pháp tuyệt vời nào để lưu trữ / khối lượng có chất lượng lên tới EC2 Elastic Block Storage (EBS). Các nhà cung cấp như PortWorx và OpenEBS đang làm việc với nó, nhưng nó vẫn chưa có. Nếu không có giải pháp lưu trữ tốt, thực tế không thể đưa dữ liệu vào vùng chứa của bạn.
- Nếu bạn đang chạy một máy chủ cơ sở dữ liệu sản xuất lớn, nhiều TB, thì việc chạy nó trong các thùng chứa là không hợp lý - bạn sẽ có các máy chuyên dụng lớn với ổ SSD ưa thích .
- Quá năng động - vâng, bạn có thể có quá nhiều điều tốt. Đôi khi, khi mọi thứ thất bại, bạn muốn chúng tiếp tục thất bại để bạn có thể nhìn lại và xem điều gì đang xảy ra. StatefulSets trong Kubernetes là một bước tiến đúng hướng để giải quyết vấn đề này.
Tại ScaleGrid, tầm nhìn của chúng tôi là cung cấp phần DBaaS của ngăn xếp ứng dụng trong tương lai này. Ngày nay, chúng tôi là đa đám mây và cũng có thể chạy tại chỗ hoặc trong trung tâm dữ liệu riêng của bạn. Ngoài ra, nền tảng của chúng tôi là một hệ thống đa ô hỗ trợ nhiều cơ sở dữ liệu, bao gồm MongoDB®, Redis ™ *, MySQL và PostgreSQL.
Để đơn giản, tôi đã loại trừ một số phần khác của ngăn xếp ứng dụng như lưu trữ đối tượng, lưu trữ hệ thống tệp, v.v. Về nguyên tắc, tôi mong đợi các thành phần này sẽ tương tự như thành phần DBaaS. Bài đăng trên blog này được lấy cảm hứng từ buổi gặp mặt PostgreSQL ở Thung lũng Silicon mà tôi đã tham dự vài tuần trước và gửi lời cảm ơn tới Dave Nielsen (@davenielsen) từ RedisLabs vì đã bắt đầu thảo luận về chủ đề này.