cloud-barista / cm-model

Apache License 2.0
0 stars 1 forks source link

Update network models #5

Closed yunkon-kim closed 1 month ago

yunkon-kim commented 1 month ago

Ref: https://github.com/cloud-barista/cm-honeybee/issues/35

(제안사항)

  1. Gateway의 경우 Array 형태로 인터페이스 마다 존재 할 수 있도록 개선
  2. IP의 경우에도 Array 형태로, 여러 IP를 담을 수 있도록 개선
yunkon-kim commented 1 month ago

Honeybee agent가 수정하는 Raw 데이터 형태와 클라우드 마이그레이션에서 활용되는 On-premise 모델 간에 차이가 있어 개선이 필요해 보이는 사항

yunkon-kim commented 1 month ago

(참고) 이해를 돕기 위한 차원에서 on-premise infra를 모델링/모델화 컨셉을 설명 드립니다.

클라우드 마이그레이션 수행에 필요한 On-premise infra 정보를 중심으로 추상화 및 모델링(참고: 여기서 추상화는 OOP에서 통용되는 추상화를 의미합니다 ^^;;)된 상태입니다.

: 네트워크에 여러 서버가 배포됨을 가정 https://github.com/cloud-barista/cm-model/blob/46b1eab0358847360742d16d66b6c6e16916ab69/infra/onprem/infra.go#L3-L7

: 관련하여, 여러 서버가 배포되는 대표 네트워크를 Gateway로 보고 추상화 및 모델링 https://github.com/cloud-barista/cm-model/blob/46b1eab0358847360742d16d66b6c6e16916ab69/infra/onprem/infra.go#L61-L64

: 서버를 기준의 추상화 (CPU. Memory, RootDisk, Interface, OS 등) 및 모델링 https://github.com/cloud-barista/cm-model/blob/46b1eab0358847360742d16d66b6c6e16916ab69/infra/onprem/infra.go#L9-L17

: 한 서버내의 NIC(vNIC)를 추상화 및 모델링 https://github.com/cloud-barista/cm-model/blob/46b1eab0358847360742d16d66b6c6e16916ab69/infra/onprem/infra.go#L45-L49

yunkon-kim commented 1 month ago

@ish-hcc 현황 파악 및 개선 사항을 분명히 하기 위한 차원에서 문의 드립니다.

  1. Gateway의 경우 Array 형태로 인터페이스 마다 존재 할 수 있도록 개선

  2. 제가 고려하지 못한 케이스 같습니다. 어떠한 실제 형상/케이스 인지를 파악해 보기 위해 사례 공유를 부탁 드립니다. (간략히)

  3. 제안 하신 사항이, 아래 모델에 Gateway를 Array 형태로 추가하는 의견이 맞으실까요? https://github.com/cloud-barista/cm-model/blob/46b1eab0358847360742d16d66b6c6e16916ab69/infra/onprem/infra.go#L45-L49

  4. IP의 경우에도 Array 형태로, 여러 IP를 담을 수 있도록 개선

  5. 제안 하신 사항이, 아래 모델의 IpAddress를 리스트로 변경하는 컨셉이 맞으실까요? https://github.com/cloud-barista/cm-model/blob/46b1eab0358847360742d16d66b6c6e16916ab69/infra/onprem/infra.go#L45-L49

(참고 - 모델링 관련 현황)

: 아래 Interfaces가 NICs/vNICs를 나타내고 있으며, 이를 Array 형태로 추상화 및 모델링한 상태 : 현재는 IPv4만 적용됨, 필요시 IPv6 및 다른 properties 추가 가능 https://github.com/cloud-barista/cm-model/blob/46b1eab0358847360742d16d66b6c6e16916ab69/infra/onprem/infra.go#L9-L17

ish-hcc commented 1 month ago

@yunkon-kim 내용 정리해 주셔서 감사합니다.

  1. 실제로 다중 Gateway가 사용되는 경우 경로 충돌로 인해 통신이 안될 우려가 있어 사용되는 경우가 드물긴 합니다만, 실제로 서버에서는 다중 Gateway가 설정이 가능하기 때문에 Interface쪽에 다중 Gateway를 보여 드리도록 제안을 드렸습니다. VPN을 사용하는 경우에도 다중 Gateway로 보이는 경우도 있습니다. 인프라 마이그레이션을 위해서 필요한 사항이 아니라면 Raw데이터 에서만 참고해도 될 것 같다고 생각되긴 합니다. 현재는 Honeybee에서 전체 노드의 모든 Gateway를 확인하면서 여러번 같은 IP로 확인된 IP를 대표 Gateway로 제공하도록 하였습니다.

다중 게이트웨이로 보이는 경우는 다음과 같습니다.

  1. IP 주소는 말씀해주신대로 NetworkInterfaceProperty.IPAdress 부분의 List 형태가 맞습니다.
ish-hcc commented 1 month ago

@yunkon-kim 정정 합니다. 다중 Gateway는 인터페이스당 Gateway가 1개만 설정이 가능합니다. (인터페이스당 Array 형태 X) 여러 인터페이스가 있는 경우 인터페이스당 1개의 Gateway가 존재합니다.

yunkon-kim commented 1 month ago

@ish-hcc 사례 공유 감사드립니다 👍

공유해 주신 현황을 반영하여 개선하여 공유 드리겠습니다.

추상화 모델링 컨셉을 고려하여, 아래와 같이 개선 계획을 공유드립니다. 개선 방향에 대해 검토를 부탁드리며, 편하게 의견을 남겨주시면 좋을 것 같습니다.

(As-Is) 라우팅 테이블 정보 중, 클라우드 마이그레이션 시에 필요한 정보 만을 Gateway에 담으면 된다고 보고 추상화 및 모델링됨 (To-Be)

(As-Is) NetworkInterfaceProperty.IpAdress 처럼 1개의 IPv4Address만 지정 가능한 상태 (To-Be)

https://github.com/cloud-barista/cm-model/blob/46b1eab0358847360742d16d66b6c6e16916ab69/infra/onprem/infra.go#L45-L49

yunkon-kim commented 1 month ago

Resolved by #6