Chúng ta đều đã nghe những con số thống kê về IoT. Tùy thuộc vào nguồn tin, con số dự đoán là từ 20 đến 75 tỷ đối tượng sẽ được kết nối với Internet vào năm 2020. Mặc dù một số người đã nhấn mạnh rằng Internet of Things bị thổi phồng và cường điệu quá mức, nhưng kể cả với con số ước tính 20 tỷ, thì sự thay đổi biển đang đến là rất quan trọng. Vào cuối năm 2015, Gartner ước tính rằng 6,4 tỷ thiết bị sẽ được sử dụng vào năm 2016, phản ánh mức tăng 30% mỗi năm.
Ấn tượng và sâu rộng như Internet of Things là từ quan điểm công nghệ, câu hỏi lớn hơn là về cách các công ty chuẩn bị đối phó với việc quản lý và triển khai các thiết bị ở cấp doanh nghiệp. Giải pháp cấp độ doanh nghiệp DevOps mang đến những thay đổi trên phạm vi rộng về cách thức phát triển, thử nghiệm và triển khai phần mềm. Ngày nay, các thay đổi phải được thực hiện với tốc độ của thị trường và không có gì lạ khi các công ty phát hành các bản nâng cấp phần mềm thậm chí theo ngày.
Nhưng IoT đưa nhu cầu đó lên một cấp độ khác; với một loạt các thiết bị, nền tảng, hệ điều hành và ngôn ngữ liên quan đến hệ sinh thái này, chưa kể đến các lỗ hổng bảo mật, phải có một lộ trình được xác định rõ ràng để triển khai.
Câu trả lời đã xuất hiện trong những năm gần đây dưới giải pháp "container". Nói một cách đơn giản, các container trả lời câu hỏi làm thế nào để phần mềm chạy một cách đáng tin cậy khi chuyển từ môi trường này sang môi trường khác. Các container thực hiện điều này bằng cách cung cấp toàn bộ môi trường phần mềm trong một gói, bao gồm ứng dụng, cộng với tất cả các phụ thuộc, thư viện và các tệp nhị phân khác và các tệp cấu hình cần thiết để chạy nó.
Điều này hơi giống với cách các máy ảo sắp xếp hợp lý việc phát triển và kiểm thử phần mềm bằng cách cung cấp nhiều phiên bản của một hệ điều hành cho người dùng cuối từ một máy chủ. Sự khác biệt lớn là các container không yêu cầu trình ảo hóa và chỉ chạy 1 thể hiện của hệ điều hành; Nhìn chung, điều này tương đương với bộ nhớ ít hơn nhiều và thời gian chạy nhanh hơn.
Các kết nối không dây băng thông thấp đặc trưng của các thiết bị IoT không hoạt động tốt với các bản cập nhật dựa trên công nghệ "push"; kết nối có thể bị mất hoặc các thiết bị có thể được thiết lập để nhận các bản cập nhật không thường xuyên. Các container có một cách tiếp cận khác đối với các bản cập nhật IoT bằng cách chỉ gửi các khác biệt (image diffs hoặc differentials). Như một chuyên gia đã chỉ ra ,
Một thiết bị đưa ra yêu cầu cập nhật firmware dang "pull" sẽ nhận được các mảnh dữ liệu có cập nhật (diff) chứ không phải toàn bộ hình ảnh của firmware. Các bản cập nhật dựa trên diff sẽ hoàn thành nhanh hơn nhiều, giúp giảm thời gian thiết bị cần kết nối và giảm khả năng thất bại, do đó giảm bớt nhu cầu truyền dữ liệu cho các mạng băng thông thấp.
Ngày càng có nhiều công cụ dựa trên container trên thị trường mà các nhà phát triển và các bên liên quan khác có thể sử dụng để xây dựng, thử nghiệm và triển khai các giải pháp Internet of Things của họ. Chúng tôi đã phác thảo 5 trong số những người phổ biến nhất dưới đây.
Docker
Docker là một dự án nguồn mở gần như đồng nghĩa với việc container hóa. Mặc dù ý tưởng về container hóa không phải là mới, Docker đã phổ biến khái niệm này bằng cách cung cấp cho các nhà phát triển và người thử nghiệm một cơ chế đóng gói, phân phối và triển khai nhanh chóng và dễ sử dụng cho các thùng chứa phần mềm.
Docker được xem như một tài sản quan trọng trong phát triển IoT bởi vì nếu cung cấp chi phí thời gian chạy thấp và cập nhật dễ dàng mở rộng. Theo Anna Gerber , sự hấp dẫn của ứng dụng được docker hóa (dockerized) là sau khi bạn đã xây dựng một hình ảnh, bạn có thể gửi và chạy nó ở hầu hết mọi nơi.
Ngoài việc được biết đến trong công nghiệp vì dễ cài đặt và sử dụng đơn giản, Docker còn có một hệ sinh thái công cụ đáng gờm, như dịch vụ đăng ký phân cụm (Docker Swarm) (Docker Hub) và dịch vụ đám mây (Docker Cloud).
Kubernetes
Kubernetes là một trình quản lý cụm container nguồn mở nhằm mục đích cung cấp một nền tảng cho việc tự động hóa việc triển khai, nhân rộng và vận hành các conainter chứa ứng dụng trên các cụm máy chủ. Được thiết kế ban đầu bởi Google, Kubernetes có lợi thế sau 15 năm nghiên cứu của Google. Do đó, Kubernetes cũng thu hút được cộng đồng người dùng mạnh mẽ và là một trong những dự án hàng đầu trên Github .
Kubernetes nổi tiếng là khó cài đặt hơn với một số cấu hình thủ công cần thiết, mặc dù một số công cụ đang tạo ra để làm cho quá trình thiết lập đơn giản hơn.
Mặc dù không phù hợp với sự phát triển của IoT, Kubernetes cũng có trong danh sách này vì vai trò quan trọng của nó trong không gian chứa ứng dụng. Một startup gần đây có tên Heptio , được khởi xướng bởi những người sáng lập Kubernetes, tìm cách làm cho các container Kubernetes có thể mở rộng và thân thiện hơn với người dùng, điều này sẽ mở ra những con đường cho việc áp dụng Kubernetes cho các ứng dụng IoT dựa trên điện toán đám mây.
Resin.io
Resin.io là một startup nhằm mục đích mang lại lợi ích của các container Linux cho thế giới IoT và đặc biệt là các thiết bị nhúng. Theo trang web của phần mềm, "resin.io giúp đơn giản hóa việc triển khai, cập nhật và duy trì mã chạy trên các thiết bị từ xa. Chúng tôi đang đưa quy trình phát triển và triển khai web vào phần cứng".
Theo lời của một người trong cuộc, "giá trị của resin.io là về cơ bản nó tạo ra một khung DevOps hiện đại của người dùng để triển khai mã trên hàng ngàn thiết bị IoT".
Công ty đã tiến một bước xa hơn theo hướng này bằng cách phát hành ResinOS 2.0 , sử dụng phân phối Linux tùy chỉnh để chạy các container Docker trên các thiết bị nhúng.
Kontena
Kontena là một startup khác đang tìm cách đổi mới một phần của hệ sinh thái container đang phát triển thông qua việc tích hợp dễ dàng với môi trường đám mây và microservice.
Theo trang web giới thiệu, "các công nghệ container, như Docker, có thể khó khăn cho việc triển khai quy mô lớn. Kontena giúp việc triển khai, quản lý, chia tỷ lệ và giám sát các ứng dụng được đóng gói trên bất kỳ cơ sở hạ tầng đám mây nào rất dễ dàng".
Kontena là mã nguồn mở, dễ dàng mở rộng và hoạt động trên mọi hệ thống chạy Linux. Mặc dù chưa có ví dụ nào ứng dụng cho IoT, nhưng Kontena có tiềm năng đóng góp đáng kể để đơn giản hóa việc triển khai các ứng dụng IoT được đóng gói.
Một lần nữa, như các thông cáo báo chí gần đây đã làm rõ: "Kontena được xây dựng để tối đa hóa hạnh phúc của nhà phát triển bằng cách đơn giản hóa các ứng dụng được đóng gói trên bất kỳ cơ sở hạ tầng nào: tại chỗ, đám mây hoặc lai".
Dịch vụ container Amazon EC2
Amazon EC2 Container Service (ECS) là dịch vụ điện toán đám mây của gã khổng lồ thương mại điện tử để quản lý các container. "Nó cho phép người dùng chạy và thay đổi các ứng dụng hoặc microservice trên các nhóm máy chủ được gọi là cụm thông qua các lệnh gọi API và định nghĩa tác vụ". Theo trang web AWS ECS .
Amazon EC2 Container Service (ECS) là một dịch vụ quản lý container hiệu suất cao, có khả năng mở rộng cao, hỗ trợ các container Docker và cho phép bạn dễ dàng chạy các ứng dụng trên một cụm được quản lý của các phiên bản Amazon EC2. Amazon ECS loại bỏ nhu cầu bạn cài đặt, vận hành và mở rộng cơ sở hạ tầng quản lý cụm của riêng bạn.
Giá trị của EC2 là nó thúc đẩy hệ sinh thái AWS rộng lớn, tìm cách làm cho việc quản lý container trở nên ít phức tạp hơn, đồng thời cung cấp tích hợp dễ dàng cho các ứng dụng Dockerized được xây dựng trên IoT.
Theo Anush Gasparyan