Làm việc cho một công ty lớn với hơn 500 nhân viên CNTT và hơn 1.000 máy chủ, với mỗi máy chủ chạy các ứng dụng kinh doanh riêng, chúng tôi có một thách thức lớn về thông tin và phối hợp trong việc biết nhân viên CNTT nào sẽ liên lạc với máy chủ nào. Vấn đề phối hợp được kết hợp với các nhân viên CNTT khác nhau chịu trách nhiệm cho các lớp khác nhau của ngăn xếp CNTT. Ví dụ, có các nhóm khác nhau chịu trách nhiệm về phần cứng, ảo hóa, hệ điều hành, máy chủ ứng dụng và chính các ứng dụng.
Xem xét thách thức này, trong DevOps có một yêu cầu xác định và ghi lại tất cả các thành phần cấu thành các ngăn xếp công nghệ khác nhau trong môi trường CNTT. Theo truyền thống, điều này có thể đã được thực hiện bằng một giải pháp CMDB sở hữu.
Tôi đã điều tra các giải pháp CMDB điển hình như BMC Atrium và các giải pháp khác cho mục đích này, tuy nhiên vấn đề là chúng dừng ở cấp độ tài liệu CNTT, ở mức cao, theo khung ITIL, nhưng không giải quyết được tài liệu của Stack công nghệ CNTT một cách chi tiết. Tôi cũng đã điều tra các công cụ như Puppet , Ansible và Salt , nhưng các công cụ này tập trung nhiều hơn vào việc triển khai và cấu hình phần mềm, chứ không tập trung vào sự phối hợp của mọi người xung quanh phần mềm.
Ví dụ, một giải pháp khả thi sẽ xác định các khái niệm khác nhau, cùng với các thuộc tính quan trọng đối với các khái niệm này:
- Phần cứng
- Ảo hóa
- Các hệ điều hành
- Máy chủ ứng dụng
- Các ứng dụng
Những khái niệm này sau đó sẽ được liên kết với nhau về mối quan hệ của họ để tạo thành giải pháp. Ví dụ: một ứng dụng sẽ phụ thuộc vào một máy chủ ứng dụng, phụ thuộc vào hệ điều hành, v.v., cùng với giải pháp này sẽ được xác định tại "Hệ thống tài chính". Khi đã xác định một hệ thống, tất cả các siêu dữ liệu được liên kết với các hệ thống này sẽ được thu thập để tạo điều kiện phối hợp cho từng lớp trong ngăn xếp. Tức là sự phối hợp của các nhân viên hỗ trợ kỹ thuật cho mỗi lớp.
Mục đích của một giải pháp như vậy sẽ thực hiện các truy vấn khác nhau đối với các ngăn xếp công nghệ, chẳng hạn như:
- Để xác định ai hỗ trợ thành phần nào
- Những thành phần nào đã lỗi thời
- Những thành phần nào cần được vá
Với ý nghĩ này, những công cụ nguồn mở nào tồn tại để xác định tất cả các thành phần của ngăn xếp công nghệ CNTT, bao gồm cả mối quan hệ của chúng với nhau, trong cơ sở dữ liệu đồ thị như Neo4J?