Tôi nghĩ rằng xuất phát từ nền tảng của nhà phát triển sẽ khiến việc trở thành một 'tín đồ' thực sự khó khăn hơn, câu hỏi của bạn đã gần 3 tuổi nên thật thú vị khi nghe bạn tìm thấy hành trình như thế nào, tôi sẽ đưa ra câu trả lời từ quan điểm của quản trị viên hệ thống về các ứng dụng bạn đã đề cập ở trên và hy vọng nó sẽ làm sáng tỏ hoặc đưa ra một viễn cảnh phi kỹ thuật sẽ giải thích tại sao một người (quản trị viên hoặc nhà phát triển) sẽ bắt đầu xem xét chính xác những gì bạn đã hỏi, ví dụ như từ các nhà phát triển phối cảnh quan hệ giữa x, y, z là những công cụ nào lớn hơn tổng của các phần của chúng?
Tôi thực sự nghĩ rằng quản trị viên hệ thống chiếm ưu thế ở đây, hầu hết các ứng dụng bạn đề cập trong câu hỏi của bạn đều giải quyết được 'vấn đề' của quản trị viên và khi làm như vậy cung cấp một môi trường trung tâm dữ liệu trừu tượng hơn và điều này sẽ dễ lập trình hơn cho các nhà phát triển và mới ' chiến lược của người sùng đạo (đọc chiến lược / nhóm, người sùng đạo không phải là một người). Vậy mối quan hệ với các ứng dụng bạn đề cập là gì? Làm thế nào điều này cung cấp một cách tiếp cận toàn diện cho dịch vụ CNTT?
OpenStack: Một công cụ cho phép bạn xây dựng đám mây riêng của mình, do đó có thể so sánh với một cái gì đó như AWS
Đó là những gì nó có, nhưng nó làm gì? - hệ điều hành có tên chủ yếu là DOS - nó vận hành đĩa của bạn bằng cách trừu tượng hóa BIOS, OpenStack vận hành trung tâm dữ liệu của bạn và trừu tượng hóa cơ sở hạ tầng của bạn (IaaS - là Jargon cho hệ điều hành trung tâm dữ liệu). Bây giờ trung tâm dữ liệu của bạn có một API, một cú pháp lệnh và một giao diện, OpenStack có thể lái xe hypervisors, switch, router, tường lửa, mạng khu vực lưu trữ, cân bằng tải, host Docker vv .. OpenStack sử dụng phần cứng của bạn sản xuất 'cắm' hoặc các chức năng cụ thể có thể tồn tại duy nhất trong phần mềm như phần mềm định nghĩa một cái gì đóhoặc ảo hóa chức năng mạng. Trên OpenStack này và tất cả các đám mây khác, có thể điều phối cơ sở hạ tầng của riêng họ bằng cách đọc các tập lệnh bạn ném vào công cụ điều phối hoặc được kích hoạt dựa trên các quy tắc (tăng tỷ lệ, giảm quy mô, v.v.). Vì vậy, openstack là một lớp trừu tượng khổng lồ, ví dụ tôi không quan tâm tôi có công tắc gì, cung cấp cho tôi một mạng với lệnh này hoặc xây dựng cho tôi một tải phức tạp cân bằng, HA, có sẵn công khai, tự động mở rộng, đăng ký tên miền, lưu trữ gắn thingy - với kịch bản này, tôi tìm thấy trên internet.
Docker: Một "VM nhẹ", dựa trên một vài khái niệm nhân Linux, có thể được sử dụng để chạy các tiến trình một cách cô lập, ví dụ như trong môi trường lưu trữ web được chia sẻ.
Docker là một lớp trừu tượng khác và giống như đám mây là một công nghệ đột phá, nó thay đổi ngành công nghiệp vì nó giải quyết được nhiều "vấn đề" hoạt động như phụ thuộc phần mềm, nâng cấp, cách ly dữ liệu và tính di động tuyệt đối. Java trở nên phổ biến vì tính di động của mã nguồn mà các nhà phát triển không phải nghĩ tới, một JVM đang chạy có nghĩa là mã của họ sẽ chạy trên máy pha cà phê miễn là nó hỗ trợ java. Docker giải quyết một vấn đề tương tự, để chạy Ứng dụng của tôi, bạn cần một máy chủ docker, không phải, bạn cần phiên bản python, kernel này, bản phân phối linux này, v.v., ứng dụng vẫn có những phụ thuộc đó, nhưng máy chủ bên dưới không quan tâm và quản trị viên không quan tâm bạn làm gì trong một container bị cô lập ( đến một điểm). Docker đang thay đổi cả mô hình phát triển và vận hành, coi toàn bộ hệ điều hành và đó là các dịch vụ như một hệ nhị phân. chúng ta có thể lấy chúng từ kho lưu trữ , phiên bản chúng, sửa đổi chúng, chạy chúng với các tham số, v.v.
Chef: Một công cụ để thiết lập và cấu hình một hệ điều hành, ví dụ như bên trong VM.
Có, và không gây khó chịu như hai người đầu tiên, Chef, Puppet, ansible, salt, quản lý vận hành trung tâm hệ thống và rất nhiều ứng dụng khác trong không gian này cung cấp một cách để các nhà phát triển và quản trị viên triển khai mô hình, nâng cấp và các hành động khác (config thay đổi), dường như không có bất kỳ tiêu chuẩn nào trong việc xem xét những nỗ lực này giống như có đám mây . Nhưng chúng ta không đối phó với thứ gì đó dứt khoát như Cơ sở hạ tầng, vì vậy, việc tìm hiểu những thứ này sẽ khó hơn và không thể chuyển đổi được từ cái này sang cái khác.
Vagrant: Theo hiểu biết của tôi là tự động hóa việc tạo và quản lý VM: Thiết lập chúng, bắt đầu và dừng chúng. Điều này có thể được thực hiện bằng cách sử dụng VM cục bộ hoặc từ xa, ví dụ trên nền tảng đám mây.
Đây là một ứng dụng kỳ lạ trong danh sách các ứng dụng bạn đề cập, Vagrant là công cụ dành cho nhà phát triển và đồ chơi dành cho quản trị viên, bạn có thể nhanh chóng đứng lên trong môi trường phát triển với vagrant, ví dụ: Tôi muốn phát triển ứng dụng Android, lấy IDE từ mơ hồ, tôi nghĩ rằng nó sẽ bị Docker vượt qua sớm.
bạn có thể cho tôi một lời khuyên về cách bắt đầu sử dụng tất cả những thứ này không (nó khá nhiều cùng một lúc và tôi chưa biết bắt đầu từ đâu)?
Đây là lý do tại sao tôi nghĩ quản trị viên chiếm ưu thế, chúng tôi đã phải thực hiện hầu hết việc này một cách thủ công và biết điều gì có thể sai, biểu hiện rối, điện toán đám mây và điều phối docker sẽ dễ dàng hơn với chúng tôi, các nhà phát triển sẽ thấy họ có nhiều tiếp tuyến Lời khuyên cho bất kỳ tín đồ tiềm năng nào là trước tiên hãy là quản trị viên.