Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cloud-Migrator v0.3.0 release #11

Closed
10 tasks done
yunkon-kim opened this issue Aug 2, 2024 · 52 comments
Closed
10 tasks done

Cloud-Migrator v0.3.0 release #11

yunkon-kim opened this issue Aug 2, 2024 · 52 comments
Assignees

Comments

@yunkon-kim
Copy link
Member

yunkon-kim commented Aug 2, 2024

Cloud-Migrator v0.3.0 릴리스 추진 계획

릴리스 일정 및 대상

통합 및 연동 테스트 방법 (담당: 전체)

통합 및 연동 테스트 목적 (v0.3.0)

  • 서브시스템간 API 및 GUI를 통해 기능을 유기적으로 수행할 수 있는 통합 시스템 기반 확보
  • Cloud-Migrator v0.3.0 포함 기능은 올해 풀 스펙을 목표로 함
  • Cloud-Migrator v0.3.0 단일 플랫폼으로 시연 예정 👉 포털 기반의 통합 시험 절차 및 결과서로 대체
  • Cloud-Migrator 플랫폼 목표치
    • 컴퓨팅 인프라 전환을 지원하는 클라우드 마이그레이션 플랫폼 기술 개발
    • 3종 클라우드 전환 지원: AWS, Azure, NCP
    • 3종 자원 전환 지원: 물리 서버를 VM으로 전환하기 위한 자원 (목표치 달성 완료, 고도화에 집중)
  • SW 마이그레이션 기능 테스트 및 통합 추진 (WebConsole 통합 대상 X)

릴리스 및 통합 세부 일정

📌 (Live 문서) Cloud-Migrator v0.3.0 release 계획 및 현황

image

🔈 일정에 이슈가 있는 경우, 사전에 이슈화 및 조율하여 주십시오.
🙏 연관된 API 그룹/세트의 개발이 완료될 때 마다, 상시/소규모 pre-release/release 추진하여 주시길 부탁드립니다.
👉 서브시스템들의 API docs: https://cloud-barista.github.io/api/

image

완료일정 작업 비고
9/4(수) 예정 API 및 활용 방법 제공, 서브시스템간 API 검토 및 논의 Swagger API v2.0 문서 제공 (실제 구동 여부 무관)
10/8(화) 서브시스템 프리릴리스 및 중간 점검 구현이 완료된 API들에 한해 약식 테스트 및 통합
11/29(금) 서브시스템간 테스트, 통합, 최종 점검 후, 각 서브시스템 저장소 v0.2.x 프리릴리스 Butterfly를 통해 시나리오 구동 확인
12/5(목) 각 서브시스템별 최종 확인/보완 및 각 서브시스템 저장소 v0.3.0 릴리스
12/5(목) Cloud-Migrator 플랫폼 v0.3.0 릴리스

서브시스템간 연간 관계 및 테스트/통합 순서

🤗 다음은 서브시스템간 연관 관계 및 테스트/통합 순서를 간략히 정리한 자료입니다. 참고하시기 바랍니다.

image

통합 주요 기능 및 관계도

image

서브시스템간 상호 작용 및 흐름

🧜‍♀️ Sequence Diagrams: https://github.com/cloud-barista/cloud-migrator/blob/main/docs/sequence-diagrams-for-user-scenarios.md

Important

작성된 흐름을 바탕으로 의견을 나누고, 원활하게 통합하기 위해 작성된 자료입니다.
아래 서술된 연동 시나리오를 자세한 표현한 자료입니다.

Note

여전히 개선이 필요한 자료입니다. 상호 작용 및 흐름에 대해 점차 개선해 나가면 좋겠습니다.
담당 파트를 검토 후, 개선이 필요한 부분들에 대한 의견과 도움을 부탁드립니다.
개선/보완 사항들은 PR로 오픈 후, 건 별로 논의하면 좋을 것 같습니다.

Warning

다만, Sequence Diagram 작성 자체에 지나친 노력를 기울이지 않았으면 합니다.

Cloud-Migrator v0.3.0 연동 시나리오

  • [운영자] 환경 구성

    1. 서브시스템 구동 가이드에 따라 플랫폼 전체 구동 및 환경 설정
  • [사용자] 컴퓨팅 인프라 마이그레이션

    1. 웹 콘솔 접속
    2. 소스 컴퓨팅 환경 연결 및 조회
    3. 수집기 배포 및 형상 정보 추출/조회 (Raw: 형상 정보 메트릭, Refined: 소스 모델(온프레미스 모델))
    4. 컴퓨팅 인프라 소스 모델(온프레미스 모델) 등록, 수정, 관리 등
    5. 컴퓨팅 인프라 목표 모델(클라우드 모델) 등록, 추천, 수정, 관리 등
    6. 인프라 마이그레이션 워크플로우 템플릿 조회, 인프라 마이그레이션 워크플로우 작성, 수정, 생성, 등
    7. 인프라 마이그레이션 워크플로우 실행 및 제어
    8. 인프라 마이그레이션 상태 및 현황 확인
  • [사용자] SW 마이그레이션 (TBD)

    1. 웹 콘솔 접속
    2. 소스 컴퓨팅 환경 연결 및 조회
    3. 수집기 배포 및 형상 정보 추출/조회 (Raw: 형상 정보 메트릭, Refined; 소스 모델 (SW 모델))
    4. SW 소스 모델(Legacy SW 모델) 등록, 수정, 관리 등
    5. SW패키지 등록, 조회, 수정, 관리 등
    6. SW 목표 모델(???) 등록, 수정 관리 등
    7. SW 마이그레이션 워크플로우 템플릿 조회, SW 마이그레이션 워크플로우 작성, 수정, 생성, 등
    8. SW 마이그레이션 워크플로우 실행 및 제어
    9. SW 마이그레이션 상태 및 현황 확인
  • [사용자] 컴퓨팅 인프라 마이그레이션 및 가격/비용 추정

    1. 웹 콘솔 접속
    2. 소스 컴퓨팅 환경 연결 및 조회
    3. 수집기 배포 및 형상 정보 추출/조회 (Raw: 형상 정보 메트릭, Refined: 소스 모델(온프레미스 모델))
    4. 컴퓨팅 인프라 소스 모델(온프레미스 모델) 등록, 수정, 관리 등
    5. 컴퓨팅 인프라 목표 모델(클라우드 모델) 등록, 추천, 수정, 관리 등
    6. 인프라 추정 가격(Price) 정보 수집(등록) 및 조회
    7. 인프라 마이그레이션 워크플로우 템플릿 조회, 인프라 마이그레이션 워크플로우 작성, 수정, 생성, 등
    8. 인프라 마이그레이션 워크플로우 실행 및 제어
    9. 인프라 마이그레이션 상태 및 현황 확인
    10. 인프라 사용 비용(Cost) 정보 수집(등록) 및 조회

저장소별 추진 사항 (담당: 각 저장소 메인테이너)

  • 서브시스템간 통합 테스트 및 트러블슈팅
  • 서브시스템 문서화 - README 등 문서의 모든 정보를 v0.3.0으로 미리 지정
  • (상시) pre-release v0.2.x 수행
  • (참고) 잦은 변경이 예상되는 건들은, 필수 사항들을 중심으로 간결하게 작해주시면 될 것 같습니다.

저장소별 상세 추진 사항

Click to see details

서브시스템 개발 및 테스트

  • 서브시스템 기능 개발 및 테스트
  • 연관 서브시스템간 API를 통한 통합 테스트
    • 트러블슈팅 위주로 진행
    • 기능 추가/개선 지양 (GitHub issue로 생성)

서브시스템 실행 지원

서브시스템 문서화

  • README 업데이트
    • README 등 문서의 모든 정보를 v0.3.0으로 미리 지정
  • API 문서 업데이트 및 링크 제공
  • 서브시스템 API 또는 UI 활용 가이드 작성/업데이트
    • 서브시스템 사용자를 위한 활용 가이드
    • 설치/기능/API/Design/활용 등은 필요에 따라 추가 작성 바랍니다.

서브시스템 Release 생성

통합 플랫폼 릴리스

담당: ETRI 멤버

각 장소의 Pre-release v0.2.x 및 통합 테스트 수행사항을 바탕으로 통합 플랫폼 릴리스를 진행


연기된 사항

유의미한 마이그레이션 항목 및 목표 수립 예정 (2025년 초)

세부 내용

통합 시험 목표 및 대상 (TBD)

  • 목표: 3종 클라우드로 3종 자원 전환 지원
  • 소스 컴퓨팅 환경:
    • 컴퓨팅 인프라:
      • TBD (종류, 규모, 형상 등)
    • SW:
    • TBD (종류, 규모, 형상 등)
  • 목표 컴퓨팅 환경:
    • 컴퓨팅 인프라
      • 3종 클라우드: AWS, (추가 2종 선정 필요)
      • 7종 자원:
        • VM 인프라 6종: VPC/Subnet, SG, SSH key, Public-IP, VM, Disk, 등
    • SW:
      • TBD (종류, 규모, 형상 등)

(10/10) 제3차워크샵 회의록

  • 마이그레이션 테스트베드 환경
    • 서버의 개수가 중요?
    • OS, SW등의 다양성이 중요?
    • 중요도를 바탕으로 베스트베드 형상 로드맵 도출 필요
@MZC-CSC
Copy link

MZC-CSC commented Aug 9, 2024

@yunkon-kim
추진 계획 기반으로 테스트 가능한 api들이 있으면 어느 정도 파악이 가능하니 우선 급한 부분은 다음과 같을 것 같습니다.

  • 현재 각 연계 시스템들을 정상적으로 구동을 못 시키고 있어서 아직 연계 기능의 정상 동작 유무 파악이 안되고 있는데 각 기관별로 Docker‐Compose 작성 관련 Wiki 참고해서 제안사항의 내용처럼 각 Framework별로 ETRI Docker Hub 기반 Docker 이미지와 연계된 Docker 이미지(예:MySQL) 기반으로 구동하는 방법에 대한 가이드(README or docker-compose.yaml)의 빠른 처리가 필요 할 것 같습니다.

  • cm-damselfly의 경우 현재 공개된 API가 없기 때문에 웹에 필요한 화면 기획 및 규모 파악을 위해 가급적 cm-damselfly의 api는 조금 더 빨리 공개되면 좋을 것 같습니다.

  • API부터 선 공개되더라도 아무런 기능 동작이 없는 것 보다는 가능하면 간단한 연계 테스트가 가능하도록 Dummy 데이터 기반으로 동작했으면 좋겠습니다.

  • 연동 시나리오 범위 확정 및 통합 테스트를 위한 웹 기반의 상세 시나리오를 엑셀 등의 파일을 공유해서 온라인에서 공통으로 작성 필요
    01

  • 기능 테스트를 위한 환경 정보 등록을 비롯하여 전체 Flow가 웹에서 어떤 순서로 진행되는지 각 F/w의 세부 기능 파악이 필요 함.

    • xxx 과정에서는 어떤 F/w의 어떤 API를 어떤 식으로 이용하는지와 같은 Flow 상의 연계 API 사용 가이드도 필요 함.
      • 개별 F/w의 API 사용 가이드는 9/4 배포 예정인 사용 가이드에 포함될 것으로 예상함.
    • 위 연동 시나리오와 동일할 수도 있지만 연동 시나리오는 큰 틀의 시나리오라서 세세한 기능 테스트가 빠질 수 있기에 , 현재 항목의 경우 개별 기능 테스트에 가까워서 각 기능에 어떤 API가 사용되는지 파악이 필요 함.)

메가존이 필요한 것 요약

  • ETRI Docker Hub에 Push된 Docker Image & ETRI Docker Hub에 Push된 Image기반 사용법(docker-compose.yaml)
  • API 및 API 활용 순서와 세부 사용 방법
  • 환경 설정부터 각 F/w간의 세부 Flow및 API 관계
    [서브시스템간 연간 관계 및 테스트/통합 순서(안)] / [통합 주요 기능 및 관계도]가 일부 관련 설명이 될 듯
  • 웹 기반 테스트 시나리오

@ish-hcc
Copy link
Member

ish-hcc commented Aug 11, 2024

@yunkon-kim

cb-spider

  • cb-spider 관련하여 Azure의 경우 현재 Deprecated 된 SDK가 사용중임에 따라 공식 가이드에 맞춰 개발하는데 어려움이 있거나 현재 사용중인 SDK에서 사용이 불가능한 경우가 다수 존재합니다. 따라서, 추후 개발 용이성을 위해 신규 SDK를 적용하여 테스트 후 PR 진행 상태입니다.
    [Azure] Apply new SDK and fix of getting image list cb-spider#1275

cm-grasshopper

  • grasshopper 의 경우 소프트웨어 저장소를 따로 두기 보다 마이그레이션 관점으로 보고
    소프트웨어 별로 Ansible과 SSH, OS별 패키지 매니저 (apt, yum)을 활용
    SQLite에 소프트웨어 별로 등록하고, 매칭 될 수 있는 이름 목록을 같이 등록할 수 있도록 하려고 합니다

Related Issue: cloud-barista/cm-grasshopper#4

예로 telegraf 를 설치하려고 할때
Ansible로 등록된 telegraf가 있으면 대상 노드에 Ansible을 통해 설치 할 수 있도록 하고,

apache2 를 설치한다고 할 경우
SQLite DB에 소프트웨어 명은 apache2로 등록하고 설치 방식은 패키지 매니저 사용,
매칭될 수 있는 이름: httpd, apache, apache2
와 같이 저장하여

설치하고자 하는 목록중에 httpd, apache, apache2 중 하나가 매칭 될 경우 패키지 매니저를 통해 설치가 진행될 수 있도록 하는 방안으로 진행하려고 합니다

사용자 스크립트도 비슷한 방식으로 등록 가능할 것으로 보입니다.

  • Ansible에서 K8S 및 Helm 제어가 지원이 되긴 하지만 K8S와 관련해서는 세부 구조및 구동 방법 파악을 위해서 시간을 좀 더 투자할 필요가 있어보입니다.

  • grasshopper 에서 Conatainer 및 K8S 기반 마이그레이션 수행 시 목표 환경에서는 모두 K8S로 마이그레이션을 진행할지 아니면, Container -> Container, K8S -> K8S 로 그대로 마이그레이션 할 지 논의가 필요할 것 같습니다.

  • 또한, K8S 환경을 마이그레이션 한다고 할 때, 많은 제약 사항이 발생할 것 같습니다. 예로 간단하게 Pod 관점에서 마이그레이션을 수행하는 것은 간단하게 컨테이너 마이그레이션과 비슷하게 진행 되겠지만, 그 외 커스텀 리소스, 서비스, 인그레스 등 복잡성을 요구하는 리소스들에 대해서는 많은 고민이 필요할 것 같습니다.

  • Helm의 경우에도 간단하게 helm repo 등록 -> 설치 는 간단하게 진행될 수 있갰지만, values.yaml 을 수정하거나 그 외 커스텀을 요구하는 경우에는 별도로 고민해볼 필요가 있을것 같습니다.

@hippo-an
Copy link
Contributor

안녕하세요.
현재 (2024-08-12) 기준 ant 에서 테스트 한 csp 는 다음과 같습니다.

  • AWS, AZURE, GCP, ALIBABA, TENCEN, IBM

해당 링크에 spider 의 price info 관련 지원 현황 정보가 나와있습니다.

AZURE 와 IBM 의 경우 일부 spec 정보를 미지원하는 이슈가 있습니다.
테스트 진행한 azure 와 ibm 의 경우 지원하는 spec 정보에 대해서 테스트를 진행한 것으로 파악됩니다.

@hippo-an
Copy link
Contributor

hippo-an commented Sep 23, 2024

안녕하세요! @yunkon-kim

cloud-migrator 3.0 release 와 관련하여 작성해주신 Cloud-Migrator v0.3.0 연동 시나리오에서 cm-ant 에 대한 내용이 누락되어 질문드립니다.

  1. cm-ant 의 사용 시나리오를 v0.3.0 의 연동 시나리오에 포함할 것인가에 대한 여부
  2. 만약 시나리오에 포함한다면 cm-ant 의 기능에 대한 포함 범위

v0.3.0 연동 시나리오 관점에서 상기 두가지 사항에 대한 확정 부탁드립니다.


현재 ant 에서 가능한 기능을 바탕으로 제안 가능한 시나리오는 2가지 흐름입니다.

1. 가격 추정 시나리오

1.1 사용자 컴퓨팅 인프라 마이그레이션 시 목표 추천 모델 스펙을 바탕으로 인프라 추정 가격 정보 수집 및 조회
1.2 사용자 마이그레이션 완료 후 마이그레이션 된 컴퓨팅 인프라 사용 비용 정보 수집 및 조회

자세한 흐름은 다음과 같은 흐름으로 예상됩니다.

1.1.1 추천 모델 스펙으로 인프라 추정 가격 정보 수집 ( spider 시스템 호출을 통하여 ant 에 가격 정보를 수집, 사용자가 입력하는 정보는 없을 것으로 예상)
1.1.2 추천 모델 스펙으로 인프라 추정 가격 정보 조회 ( 가격 정보에 대한 수집이 완료된 후 ant 에 수집된 가격 정보를 제공)

1.2.1 마이그레이션 된 컴퓨팅 인프라 사용 비용 정보 수집 ( spider 시스템 호출을 통하여 ant 에 비용 정보를 수집)
1.2.2 마이그레이션 된 컴퓨팅 인프라 사용 비용 조회 ( 비용 정보 수집이 완료된 후 ant 에 수집된 비용 정보를 제공)

가격 추정 api 에서 현재는 수집과 조회가 호출 순서가 정해진 api 로 분리되어 있습니다. 시나리오에서 수집과 조회의 과정은 웹 콘솔 상에서 사용자의 개입 없이 연속된 api 호출을 통해 발생하는 방식을 고려하고 있습니다.

2. 성능 검증 시나리오

2.1 마이그레이션 완료 후 마이그레이션 된 인프라에 사용자 지정 성능 검증 시나리오를 바탕으로 성능 검증 수행, 결과 조회

자세한 흐름은 다음과 같은 흐름으로 예상됩니다.

2.1.1 마이그레이션 완료 후 마이그레이션 된 인프라에 성능 검증 metrics 수집을 위한 에이전트 설치 (옵션)
2.1.2 성능 검증을 위한 사용자 입력 (엔드포인트, 사용 도메인, 가상 사용자 수, 성능 검증 running time, step 등)
2.1.3 성능 검증 실행 혹은 실행 중인 성능 검증 중단.
2.1.4 성능 검증 결과 및 성능 검증 metrics 조회

감사합니다.

@yunkon-kim
Copy link
Member Author

@hippo-an (@seokho-son double-check 부탁 드립니다.)

안녕하세요. 자세히 이슈를 공유해 주셔서 감사합니다.

먼저, 통합 대상에 대해 말씀드리니 참고 하시면 될 것 같습니다.

  • "목표 클라우드 인프라 전환 비용 검증 및 예측 기술"은 개발/통합 시험 대상입니다.
    • 세부 항목들 중 "목표 클라우드 인프라 전환 비용 예측" 항목은 프로토타입 개발 대상입니다.
  • "목표 클라우드 인프라 온디멘드 성능 평가 및 검증 기술"은 설계/프로토타입 개발 대상입니다.

다음은 자세히 설명해 주신 "가격 추정 시나리오"를 기존 시나리오에 적용해본 (안) 입니다.
: 설명해주신 시나리오가 잘 적용된 것인지 검토 부탁드립니다.

아울러, 등록/조회를 수행하는 서브시스템들의 관계를 명확히 하고자 문의를 드립니다. 아래 Q1, Q2, ... 으로 표기한 부분에 대해 확인 부탁드립니다.

  • [사용자] 컴퓨팅 인프라 마이그레이션
    1. 웹 콘솔 접속
    2. 소스 컴퓨팅 환경 연결 및 조회
    3. 수집기 배포 및 형상 정보 추출/조회 (Raw: 형상 정보 메트릭, Refined: 소스 모델(온프레미스 모델))
    4. 컴퓨팅 인프라 소스 모델(온프레미스 모델) 등록, 수정, 관리 등
    5. 컴퓨팅 인프라 목표 모델(클라우드 모델) 등록, 추천, 수정, 관리 등
      - "1.1.1 추천 모델 스펙으로 인프라 추정 가격 정보 등록"
      Q1. Butterfly에서 Ant로 함께 가격 추정 정보를 등록을 요청(with 목표 모델 (스펙?))하면, 이후 조회 성능을 위해 Ant가 Spider API를 호출하는 흐름인지요?
      - "1.1.2 추천 모델 스펙으로 인프라 추정 가격 정보 조회"
      Q2. Butterfly에서 Ant에 등록된 가격 정보를 조회하는 것일까요?
    6. 인프라 마이그레이션 워크플로우 템플릿 조회, 인프라 마이그레이션 워크플로우 작성, 수정, 생성, 등
    7. 인프라 마이그레이션 워크플로우 실행 및 제어
    8. 인프라 마이그레이션 상태 및 현황 확인
      - "1.2.1 마이그레이션 된 컴퓨팅 인프라 사용 비용 정보 등록"
      Q3. Butterfly에서 Ant로 비용 정보 등록을 요청(with params: migration ID, cost resources 등)하면, 이후 조회 성능을 위해 Ant가 Tumblebug/Spider API 중 어느 것을 호출하는지요?
      - "1.2.2 마이그레이션 된 컴퓨팅 인프라 사용 비용 조회"
      Q4. Butterfly에서 Ant에 등록된 사용 비용을 조회 하는 것 일까요?

추가로 용어들이 아래와 같이 이해하면 될까요? 개인적으로 애매하다는 생각이 들어 확인 차 문의드렸습니다.
: 가격 = Price = 단위 가격 (예, 단위 시간 당 가격, n $/hour)
: 비용 = Cost = 일정 기간 동안 인프라를 운용한 값 (예, Price * 일정 기간)

마지막으로, 지난 회의에서 "CM-Ant의 Scope은 차기 워크샵에서 논의/협의 필요"한 것으로 정리되었습니다.
: 사전에 조율하실 부분들은 조율해주시고, 차기 워크샵에서 (안) 공유 후 협의 진행하시면 될 것 같다는 의견을 공유드립니다.

@hippo-an
Copy link
Contributor

hippo-an commented Sep 23, 2024

@yunkon-kim 명확한 답변 감사합니다.


질문 사항에 대한 답변입니다.

Q1. Butterfly에서 Ant로 함께 가격 추정 정보를 등록을 요청(with 목표 모델 (스펙?))하면, 이후 조회 성능을 위해 Ant가 Spider API를 호출하는 흐름인지요?

  • 네 맞습니다.

Q2. Butterfly에서 Ant에 등록된 가격 정보를 조회하는 것일까요?

  • 네. 맞습니다.

Q3. Butterfly에서 Ant로 비용 정보 등록을 요청(with params: migration ID, cost resources 등)하면, 이후 조회 성능을 위해 Ant가 Tumblebug/Spider API 중 어느 것을 호출하는지요?

  • spider 의 anycall 을 호출합니다.

Q4. Butterfly에서 Ant에 등록된 사용 비용을 조회 하는 것 일까요?

  • 네. 맞습니다.

등록보단 수집으로 표현하는게 의미 전달이 명확했을 것 같네요. 수집으로 정정하도록 하겠습니다.


아울러 용어에 대해 이해하신 바가 맞습니다.

@yunkon-kim
Copy link
Member Author

@hippo-an 확인해 주셔서 감사합니다!

본문에 아래 시나리오를 추가했고요. 기존과 구분하기 위해 별도의 시나리오로 추가해 두었습니다.

  • [사용자] 컴퓨팅 인프라 마이그레이션 및 가격/비용 추정
    1. 웹 콘솔 접속
    2. 소스 컴퓨팅 환경 연결 및 조회
    3. 수집기 배포 및 형상 정보 추출/조회 (Raw: 형상 정보 메트릭, Refined: 소스 모델(온프레미스 모델))
    4. 컴퓨팅 인프라 소스 모델(온프레미스 모델) 등록, 수정, 관리 등
    5. 컴퓨팅 인프라 목표 모델(클라우드 모델) 등록, 추천, 수정, 관리 등
    6. 인프라 추정 가격(Price) 정보 수집(등록) 및 조회
    7. 인프라 마이그레이션 워크플로우 템플릿 조회, 인프라 마이그레이션 워크플로우 작성, 수정, 생성, 등
    8. 인프라 마이그레이션 워크플로우 실행 및 제어
    9. 인프라 마이그레이션 상태 및 현황 확인
    10. 인프라 사용 비용(Cost) 정보 수집(등록) 및 조회

@yunkon-kim
Copy link
Member Author

yunkon-kim commented Oct 28, 2024

Cloud-Migrator v0.3.0 통합 및 릴리스를 위한 Sequence Diagrams을 공유 드립니다.

  • 링크) https://github.com/cloud-barista/cloud-migrator/blob/main/docs/sequence-diagrams-for-user-scenarios.md
  • 명확한 의견 교류 및 원활한 통합을 목표로 전체 흐름을 정리해본 자료 입니다.
  • 사용자 중심의 시나리오를 바탕으로, 서브시스템간 API 연계를 나타내고자 하였습니다.
  • 그 동안 공유해 주신 회의자료, 스프레드시트, 논의/협의된 사항들을 기반으로 작성되었습니다. 자료 감사드립니다.
  • 참고) Mermaid Sequence Diagram

하지만, 여전히 보완이 필요한 부분들이 있습니다.

담당 파트를 검토해보시고, 개선이 필요한 부분에 대해 의견과 도움을 부탁 드립니다. 🤗

개선/보완 사항들은 PR로 올려주시면 좋을 것 같습니다.
(Slack 논의가 이루어지고 있는 사항들에 대해서도 도움이 되기를 바랍니다.)

(참고) 추후, Cloud-Migrator v0.3.0 통합 및 릴리스 일정을 재 조정하여 공유 드리겠습니다.

감사합니다.

@dev4unet
Copy link
Member

@yunkon-kim
cm-mayfly의 docker-compose도 서서히 마무리해야 해서 최근 올라온 체크 리스트들을 검토하니 cm-mayfly에서 구축할 때 사용해야 할 버전 및 최종 테스트를 위해 아래 버전들로 진행하려고 생각 중입니다.
beetle과 grasshopper는 체크 리스트를 보면 오늘이나 차주에 확정될 듯 싶어서 우선은 edge 버전으로 했으며, 차주 중후반에 mayfly 테스트 예정인데 혹시 변경되어야 할 버전이 있으면 반영하도록 하겠습니다.

cloudbaristaorg/cb-spider:0.10.0
cloudbaristaorg/cb-tumblebug:0.10.0
cloudbaristaorg/cb-mapui:0.10.0
cloudbaristaorg/cm-honeybee:0.2.10
cloudbaristaorg/cm-damselfly:0.2.1
cloudbaristaorg/cm-cicada:0.2.2
cloudbaristaorg/cm-ant:0.2.6

cloudbaristaorg/cm-beetle:edge
csescsta/cm-butterfly-api:edge
csescsta/cm-butterfly-front:edge
cloudbaristaorg/cm-grasshopper:edge

그리고, cb-mapui와 mc-data-manager는 필수로 필요한 서브 시스템은 아니라서 cm-mayfly에서 구축할 필요가 없어 보여서 docker compose의 기본 구축에서 제거를 고려 중입니다.
아무래도 하나의 서버 인스턴스에서 많은 컨테이너가 구동되어야 하기에 불 필요한 컨테이너들을 줄이기 위해 제거를 고려하고 있지만

  • cb-mapui의 경우에는 별다른 설정은 필요 없기에 필요한 경우 기본 구축에 포함해도 상관 없지만
  • mc-data-manager의 경우에는 CSP별 인증 정보 설정의 추가적인 과정이 필요하고 올해에는 굳이 사용할 필요는 없어 보여서 제거를 고려 중이입니다.

참고로, 위 두 시스템은 기본 구축에서는 제외 예정이지만 필요한 경우를 대비해 별도로 설치 및 실행할 수 있도록 별도의 도커 컴포즈 파일(docker-compose-sub.yaml)을 제공하려고 생각 중이기는 합니다.
(예) cm-mayfly infra run -f docker-compose-sub.yaml

@yunkon-kim
Copy link
Member Author

yunkon-kim commented Nov 18, 2024

@dev4unet

정리해 주셔서 감사합니다.

테스트를 위해서는 위에 기재해 주신 버전으로 진행해주시고요. 최종적으로는 cb-xxx은 0.10.x, cm-xxx 0.3.x 버전들을 구동하는 형태로 cm-mayfly 릴리스 진행하여 주시기 바랍니다.

cb-mapui의 경우 별다른 이슈가 없으시다면 기본 구축에 포함하여 주시기 바랍니다.
mc-data-manager는 제안해 주신 (안)으로 추진하여 주십시오.

@yunkon-kim
Copy link
Member Author

@dev4unet @hippo-an (cc. @MZC-CSC @ish-hcc @powerkimhub @seokho-son @sykim-etri @innodreamer)

서브시스템 버전 현황을 공유드립니다. (📍 변경 표시) 이후 통합 및 릴리스 작업에 참고하시기 바랍니다.

cloudbaristaorg/cb-spider:0.10.0
cloudbaristaorg/cb-tumblebug:0.10.1 📍
cloudbaristaorg/cb-mapui:0.10.0
cloudbaristaorg/cm-honeybee:0.2.10
cloudbaristaorg/cm-damselfly:0.2.1
cloudbaristaorg/cm-beetle:0.2.4 📍
cloudbaristaorg/cm-grasshopper:v0.2.3 📍
cloudbaristaorg/cm-cicada:0.2.3 📍
cloudbaristaorg/cm-ant:0.2.7 📍

csescsta/cm-butterfly-api:edge
csescsta/cm-butterfly-front:edge

메인테이너분들께 안내 말씀 드립니다.
※ 각 서브시스템 개발 및 테스트에 활용하신 서브시스템들의 버전(종속성)을 기재해 주시기 바랍니다.

@MZC-CSC
Copy link

MZC-CSC commented Nov 25, 2024

csescsta/cm-butterfly-api:edge
csescsta/cm-butterfly-front:edge

@yunkon-kim
CM-Butterfly v0.2.2 릴리즈 되었습니다.
위에서 명시된 이미지가 아닌 docker hub 의 cloudbaristaorg 사용자에 올라간 CM-Butterfly 실행 가능한 이미지 버전입니다.

cloudbaristaorg/cm-butterfly-api:0.2.2
cloudbaristaorg/cm-butterfly-front:0.2.2

상기 도커 이미지가 v0.3.0 배포 형상이 될 버전(수정사항이 없는 경우)입니다.

CM-Mayfly 의 v0.3.0 릴리즈 이전 테스트에 사용될 이미지 버전 또한 위와 같을 것으로 예상합니다.

@yunkon-kim
Copy link
Member Author

yunkon-kim commented Nov 26, 2024

@dev4unet @hippo-an (cc. @MZC-CSC @ish-hcc @powerkimhub @seokho-son @sykim-etri @innodreamer)

Cloud-Migrator v0.3.0 통합 및 릴리스와 관련한 최종 스케줄을 공유드립니다.

image

Important

  1. 이번주 금요일까지 최종 마무리를 부탁드립니다. (README, Docs, SequenceD, 종속성, 버전, 릴리스 등)
  2. 버전 업그레이드가 예상되는 경우 필히 사전에 공유해 주시기 바랍니다.
    • 파악된 바로는 Tumblebug, Beetle, Cicada 업그레이드 예정

변경된 서브시스템 버전 현황을 공유드립니다. 이후 통합 및 릴리스 작업에 참고하시기 바랍니다.

📍 변경 표시, ☑️ 완료 표시

cloudbaristaorg/cb-spider:0.10.0
cloudbaristaorg/cb-tumblebug:0.10.1 --> 0.10.2 --> 0.10.3 ☑️
cloudbaristaorg/cb-mapui:0.10.0
cloudbaristaorg/cm-honeybee:0.2.10
cloudbaristaorg/cm-damselfly:0.2.1 --> 0.2.2 📍
cloudbaristaorg/cm-beetle:0.2.4 --> 0.2.5 ☑️
cloudbaristaorg/cm-grasshopper:v0.2.3
cloudbaristaorg/cm-cicada:0.2.3 --> 0.2.4 ☑️
cloudbaristaorg/cm-ant:0.2.7
cloudbaristaorg/cm-butterfly-api:0.2.2 --> 0.2.3 📍
cloudbaristaorg/cm-butterfly-front:0.2.2 --> 0.2.3 📍

메인테이너분들께 안내 말씀 드립니다.
※ 각 서브시스템 개발 및 테스트에 활용하신 서브시스템들의 버전(종속성)을 기재해 주시기 바랍니다.

@yunkon-kim
Copy link
Member Author

yunkon-kim commented Dec 2, 2024

@ish-hcc @powerkimhub @seokho-son @sykim-etri @innodreamer @dev4unet @hippo-an @MZC-CSC (cc. @dongjae)

Mayfly를 통한 Cloud-Migrator platform 구동 및 portal 접속 현황을 공유드립니다.

전체 테스트를 위해 2가지 문의드립니다.

  1. 각 서브시스템의 초기 설정 사항이 있으면 답글로 남겨주시기 바랍니다.(예, Tumblebug init/init.sh)
  2. 서브시스템 사용시 주의해야할 사항이 있으면 함께 알려주시면 좋을 것 같습니다.

위 사항 파악 후, 기존에 안내드렸던 사용자 시나리오 대로 테스트를 진행하면서 필요한 사항들을 문의드리도록 하곘습니다.

[사용자] 컴퓨팅 인프라 마이그레이션 및 가격/비용 추정

  1. 웹 콘솔 접속
  2. 소스 컴퓨팅 환경 연결 및 조회
  3. 수집기 배포 및 형상 정보 추출/조회 (Raw: 형상 정보 메트릭, Refined: 소스 모델(온프레미스 모델))
  4. 컴퓨팅 인프라 소스 모델(온프레미스 모델) 등록, 수정, 관리 등
  5. 컴퓨팅 인프라 목표 모델(클라우드 모델) 등록, 추천, 수정, 관리 등
  6. 인프라 추정 가격(Price) 정보 수집(등록) 및 조회
  7. 인프라 마이그레이션 워크플로우 템플릿 조회, 인프라 마이그레이션 워크플로우 작성, 수정, 생성, 등
  8. 인프라 마이그레이션 워크플로우 실행 및 제어
  9. 인프라 마이그레이션 상태 및 현황 확인
  10. 인프라 사용 비용(Cost) 정보 수집(등록) 및 조회

(현황 참고)
Mayfly: 모든 서브시스템 구동
image

Cloud-Migrator platform portal 접속 및 로그인: http://localhost/auth/login
image

Cloud-Migrator platform portal 메인 페이지:
image

@MZC-CSC
Copy link

MZC-CSC commented Dec 2, 2024

@yunkon-kim 웹 기반 간단한 테스트는 테스트 시나리오의 [세부 시나리오] 탭의 내용을 참고하시면 조금은 도움이 되리라 봅니다.
https://docs.google.com/spreadsheets/d/1gkw6hW3g8eJmuYWuzog8Fz7SERcecWS_/edit?gid=1260852855#gid=1260852855

@yunkon-kim
Copy link
Member Author

@MZC-CSC 네, 감사합니다. 테스트 진행에 활용하도록 하곘습니다.

@innodreamer
Copy link
Member

@yunkon-kim @dev4unet @MZC-CSC
조금전에 Damselfly v0.2.2를 release 했습니다.
이번 release에는 주로 logging 부분을 update했으며, API URL이나 API parameter들에 대한 변경은 없으니 테스트하실때 v0.2.2를 바로 적용하셔도 될거 같습니다.

@MZC-CSC
Copy link

MZC-CSC commented Dec 3, 2024

cm-mayfly v0.2.8 릴리스했으며, cm-damselfly:0.2.2 버전이 적용되었으며, ./mayfly를 ./cm-mayfly로 잘 못 설명하고 있는 릴리스 문서와 README.md 내용 수정했습니다. (cloud-barista/cm-mayfly#43)

https://github.com/cloud-barista/cm-mayfly/releases/tag/v0.2.8
cb-spider:0.10.0
cb-tumblebug:0.10.3
cb-mapui:0.10.0
cm-beetle:0.2.5
cm-butterfly-api:0.2.3
cm-butterfly-front:0.2.3
cm-honeybee:0.2.10
cm-damselfly:0.2.2
cm-cicada:0.2.4
cm-grasshopper:0.2.3
cm-ant:0.2.7

@ish-hcc
Copy link
Member

ish-hcc commented Dec 3, 2024

@yunkon-kim @MZC-CSC
mayfly로 구동 확인해 보았습니다. 수고 많으셨습니다.
Task Component 관련해서 변경되어야 할 부분이 있어서 말씀드립니다.

Task Componet 목록에서 특정 Task Componet를 선택하고
아래의 View Task Component JSON 을 눌렀을때 보이는 JSON은

image


image

소스내에 들어있는 lib/airflow/example/task_component 파일들이 아닙니다.
해당 파일들은 cicada 데이터베이스에 자동으로 task component를 주입하기 위해서 사용되는 파일입니다.

실제 Task Component는 GET http://127.0.0.1:8083/cicada/task_component/{Task_Component_ID} 를 통해서 조회되어야 합니다.

image

@yunkon-kim
Copy link
Member Author

@MZC-CSC @ish-hcc
출장으로 이제야 확인 했습니다.

Damselfly 릴리스 바로 반영해주셔서 감사드립니다.

Mayfly 구동 및 테스트 진행하실때 슬랙으로 문의드렸던 증상은 발생하지 않으셨는지요?

@hippo-an
Copy link
Contributor

hippo-an commented Dec 4, 2024

소스내에 들어있는 lib/airflow/example/task_component 파일들이 아닙니다. 해당 파일들은 cicada 데이터베이스에 자동으로 task component를 주입하기 위해서 사용되는 파일입니다.

실제 Task Component는 GET http://127.0.0.1:8083/cicada/task_component/{Task_Component_ID} 를 통해서 조회되어야 합니다.

@ish-hcc
피드백 감사합니다. 현재 콘솔에서 json viewer 에 task component 데이터를 적절하게 노출하지 못하는 것으로 확인했습니다.

  • 현재 example task 만 존재하고,
  • example task 는 수정이 안되기 때문에
    바로 수정을 해도 save 버튼이 적절하게 작동하지 않을 것 같습니다.

현재 시나리오 관점에서 흐름에 문제가 있는 부분은 아닌 것으로 생각되어 통합 이후에 수정 사항으로 리스트업 해서 진행하는 것으로 해도 괜찮을까요?

@ish-hcc
Copy link
Member

ish-hcc commented Dec 4, 2024

@hippo-an 넵 시나리오 관점에서는 해당되지 않아 나중에 수정되어도 괜찮을 것 같습니다. 감사합니다!

@MZC-CSC
Copy link

MZC-CSC commented Dec 4, 2024

@yunkon-kim 노션 이슈가 Password 입력 이슈를 말씀하시는거면 저희쪽 실수네요^^;;;
이노에서 제공하는 물리 서버 위주로 테스트 하면서 User & Password 기반으로 테스트하다 보니 Password를 필수로 잡은 것 같습니다.
Password를 필수 해제하도록 하겠습니다. 우선은 User & Password 기반으로 진행하셔야 할 것 같습니다.^^;;;

@yunkon-kim
Copy link
Member Author

@MZC-CSC Password 관련 부분은 적절히 수정해 주실 것이라 생각하고 있었습니다 ^^

@ish-hcc 께서 Mayfly를 통해 Task Component 부분까지 테스트 진행하셨길래 SSH Key 관련 이슈 없으셨는지 문의 드렸던 내용입니다. 지금 보니 모호하게 문의 드렸던 것 같습니다;;;

@ish-hcc
Copy link
Member

ish-hcc commented Dec 4, 2024

@MZC-CSC @yunkon-kim SSH 관련 이슈는 확인하여 수정중에 있습니다. 테스트를 진행하면서 발견된 버그가 있는거 같아서 말씀드립니다.

Source Services 에서 Connections 에 보이는 항목 중
처음에 하나의 항목을 선택하고 다른 항목을 선택하였을때 요청되는 Connectino ID가 이전 선택 항목의 Connecitno ID로 유지되어 요청되는 것 같습니다.

image

다시 말씀드리면
nfs-server를 선택하였다가 web-server를 선택하여 Collect Infra를 시도하면 요청되는 ID가
nfs-server의 ID에 해당되는 e143ec19-993e-4f06-ab45-81d4a44a98da 로 요청이 됩니다.
새로고침 하여 web-server를 선택하여 요청하면 f75a12f4-4ecd-4e96-abe4-7df314c61d1c 로 제대로 요청됩니다.

image

아래는 nfs-server를 선택하였다가 web-server를 선택하여 Collect Infra를 시도하였을때 Honeybee에서 보이는 로그입니다.
image

@yunkon-kim
Copy link
Member Author

yunkon-kim commented Dec 4, 2024

@powerkimhub @innodreamer @seokho-son @hippo-an

NCP VPC로 인프라 마이그레이션을 수행하는 과정에서 이슈가 있는 것으로 보여 문의를 드립니다.

분석해본 바로는 NCP VPC에 대해 추천된 VM spec과 VM image를 활용해 비용을 산정하는 과정에서 The ProductFamily 'SVR' is Not Included in the ProductFamily. 이슈가 발생하여 확인이 필요합니다.

목표 인프라가 추천되었는데 Produc Family에 SVR이 없는 부분에 확인이 필요합니다. 혹시, 짚히는 부분이 있으시면 공유해 주시기 바랍니다.

  1. Beetle에 추천을 요청해 아래와 같이 NCP VPC에 대한 목표 클라우드 인프라를 얻었습니다.
[
  {
    "Name": "rehosted-ip-10-0-15-222",
    "Description": "a recommended virtual machine",
    "CommonSpec": "ncpvpc+kr+svr.vsvr.hicpu.c002.m004.net.hdd.b050.g002",
    "CommonImage": "ncpvpc+kr+ubuntu20.04"
  },
 {
    "Name":"rehosted-ip-10-0-3-192",
    "Description": "a recommended virtual machine",
    "CommonSpec": "ncpvpc+kr+svr.vsvr.hicpu.c002.m004.net.hdd.b050.g002",
    "CommonImage": "ncpvpc+kr+ubuntu20.04"
  }
]
  1. 일차적으로 Ant 내부 저장소에서 예측 비용을 조회했고, 정보가 없어 Spider API를 호출하고 있습니다.
cm-ant              | 2024-12-04T08:22:52Z | INFO  | message: Fetching estimate cost info for spec: {RecommendSpecs:[{ProviderName:ncpvpc RegionName:kr InstanceType:svr.vsvr.hicpu.c002.m004.net.hdd.b050.g002 Image:ubuntu20.04} {ProviderName:ncpvpc RegionName:kr InstanceType:svr.vsvr.hicpu.c002.m004.net.hdd.b050.g002 Image:ubuntu20.04}] TimeStandard:2024-11-27 00:00:00 +0000 UTC PricePolicy:OnDemand} file:service.go:69 func:cm-ant/internal/core/cost.(*CostService).UpdateAndGetEstimateCost
cm-ant              | 2024-12-04T08:22:52Z | INFO  | message: No matching estimate cost found from database for spec: {ProviderName:ncpvpc RegionName:kr InstanceType:svr.vsvr.hicpu.c002.m004.net.hdd.b050.g002 Image:ubuntu20.04}, fetching from price collector file:service.go:136 func:cm-ant/internal/core/cost.(*CostService).UpdateAndGetEstimateCost.func2
cm-ant              | 2024-12-04T08:22:52Z | INFO  | message: Sending request to client with endpoint [POST - http://cb-spider:1024/spider/priceinfo/ComputeInstance/kr]
cm-ant              |  file:spider_client.go:74 func:cm-ant/internal/infra/outbound/spider.(*SpiderClient).requestWithContext
  1. Spider에서 ProductFamily 'SVR'이 포함되지 않았다는 에러가 발생하여 확인을 부탁드립니다.
cb-spider           | [CB-SPIDER].[ERROR]: 2024-12-04 08:22:53 PriceInfoHandler.go:226, github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/drivers/ncpvpc/resources.(*NcpVpcPriceInfoHandler).GetPriceInfo() - The ProductFamily 'SVR' is Not Included in the ProductFamily.
cb-spider           |
cb-spider           | [CB-SPIDER].[ERROR]: 2024-12-04 08:22:53 PriceInfoHandler.go:100, github.com/cloud-barista/cb-spider/api-runtime/common-runtime.GetPriceInfo() - The ProductFamily 'SVR' is Not Included in the ProductFamily.
cb-spider           |
cm-ant              | 2024-12-04T08:22:53Z | ERROR | message: Unexpected status code: 500, response: {"message":"The ProductFamily 'SVR' is Not Included in the ProductFamily.\n"}
cm-ant              |  file:spider_client.go:84 func:cm-ant/internal/infra/outbound/spider.(*SpiderClient).requestWithContext
cm-ant              | 2024-12-04T08:22:53Z | ERROR | message: error sending get price info data request; spider server has got error file:price.go:32 func:cm-ant/internal/infra/outbound/spider.(*SpiderClient).GetPriceInfoWithContext
cm-ant              | 2024-12-04T08:22:53Z | ERROR | message: Error retrieving estimate cost info spec: {ncpvpc kr svr.vsvr.hicpu.c002.m004.net.hdd.b050.g002 ubuntu20.04}; error retrieving estimate cost info for {ProviderName:ncpvpc RegionName:kr InstanceType:svr.vsvr.hicpu.c002.m004.net.hdd.b050.g002 Image:ubuntu20.04}: failed to send request: spider server has got error file:service.go:75 func:cm-ant/internal/core/cost.(*CostService).UpdateAndGetEstimateCost.func1

(다음은 관련 Full log 입니다.)

cm-beetle           | 8:22AM DBG pkg/core/recommendation/recommendation.go:357 > the recommended infra info: {Status: Description: TargetInfra:{Name: InstallMonAgent:no Label:map[] SystemLabel: Description:A cloud infra recommended by CM-Beetle Vm:[{Name:rehosted-ip-10-0-15-222 SubGroupSize: Label:map[] Description:a recommended virtual machine CommonSpec:ncpvpc+kr+svr.vsvr.hicpu.c002.m004.net.hdd.b050.g002 CommonImage:ncpvpc+kr+ubuntu20.04 RootDiskType: RootDiskSize: VmUserPassword: ConnectionName:} {Name:rehosted-ip-10-0-3-192 SubGroupSize: Label:map[] Description:a recommended virtual machine CommonSpec:ncpvpc+kr+svr.vsvr.hicpu.c002.m004.net.hdd.b050.g002 CommonImage:ncpvpc+kr+ubuntu20.04 RootDiskType: RootDiskSize: VmUserPassword: ConnectionName:}]}}
cm-beetle           | 8:22AM INF pkg/api/rest/middlewares/zerologger.go:56 > request URI=/beetle/recommendation/mci bytes_in=2720 bytes_out=643 id=1733300572918277592 latency_human=57.096833ms method=POST remote_ip=172.19.0.10 status=200
cm-ant              | 2024-12-04T08:22:52Z | INFO  | message: Fetching estimate cost info for spec: {RecommendSpecs:[{ProviderName:ncpvpc RegionName:kr InstanceType:svr.vsvr.hicpu.c002.m004.net.hdd.b050.g002 Image:ubuntu20.04} {ProviderName:ncpvpc RegionName:kr InstanceType:svr.vsvr.hicpu.c002.m004.net.hdd.b050.g002 Image:ubuntu20.04}] TimeStandard:2024-11-27 00:00:00 +0000 UTC PricePolicy:OnDemand} file:service.go:69 func:cm-ant/internal/core/cost.(*CostService).UpdateAndGetEstimateCost
cm-ant              | 2024-12-04T08:22:52Z | INFO  | message: No matching estimate cost found from database for spec: {ProviderName:ncpvpc RegionName:kr InstanceType:svr.vsvr.hicpu.c002.m004.net.hdd.b050.g002 Image:ubuntu20.04}, fetching from price collector file:service.go:136 func:cm-ant/internal/core/cost.(*CostService).UpdateAndGetEstimateCost.func2
cm-ant              | 2024-12-04T08:22:52Z | INFO  | message: Sending request to client with endpoint [POST - http://cb-spider:1024/spider/priceinfo/ComputeInstance/kr]
cm-ant              |  file:spider_client.go:74 func:cm-ant/internal/infra/outbound/spider.(*SpiderClient).requestWithContext
cb-spider           | [CB-SPIDER].[ERROR]: 2024-12-04 08:22:53 PriceInfoHandler.go:226, github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/drivers/ncpvpc/resources.(*NcpVpcPriceInfoHandler).GetPriceInfo() - The ProductFamily 'SVR' is Not Included in the ProductFamily.
cb-spider           |
cb-spider           | [CB-SPIDER].[ERROR]: 2024-12-04 08:22:53 PriceInfoHandler.go:100, github.com/cloud-barista/cb-spider/api-runtime/common-runtime.GetPriceInfo() - The ProductFamily 'SVR' is Not Included in the ProductFamily.
cb-spider           |
cm-ant              | 2024-12-04T08:22:53Z | ERROR | message: Unexpected status code: 500, response: {"message":"The ProductFamily 'SVR' is Not Included in the ProductFamily.\n"}
cm-ant              |  file:spider_client.go:84 func:cm-ant/internal/infra/outbound/spider.(*SpiderClient).requestWithContext
cm-ant              | 2024-12-04T08:22:53Z | ERROR | message: error sending get price info data request; spider server has got error file:price.go:32 func:cm-ant/internal/infra/outbound/spider.(*SpiderClient).GetPriceInfoWithContext
cm-ant              | 2024-12-04T08:22:53Z | ERROR | message: Error retrieving estimate cost info spec: {ncpvpc kr svr.vsvr.hicpu.c002.m004.net.hdd.b050.g002 ubuntu20.04}; error retrieving estimate cost info for {ProviderName:ncpvpc RegionName:kr InstanceType:svr.vsvr.hicpu.c002.m004.net.hdd.b050.g002 Image:ubuntu20.04}: failed to send request: spider server has got error file:service.go:75 func:cm-ant/internal/core/cost.(*CostService).UpdateAndGetEstimateCost.func1
cm-ant              | 2024-12-04T08:22:53Z | INFO  | message: No matching estimate cost found from database for spec: {ProviderName:ncpvpc RegionName:kr InstanceType:svr.vsvr.hicpu.c002.m004.net.hdd.b050.g002 Image:ubuntu20.04}, fetching from price collector file:service.go:136 func:cm-ant/internal/core/cost.(*CostService).UpdateAndGetEstimateCost.func2
cm-ant              | 2024-12-04T08:22:53Z | INFO  | message: Sending request to client with endpoint [POST - http://cb-spider:1024/spider/priceinfo/ComputeInstance/kr]
cm-ant              |  file:spider_client.go:74 func:cm-ant/internal/infra/outbound/spider.(*SpiderClient).requestWithContext
cb-spider           | [CB-SPIDER].[ERROR]: 2024-12-04 08:22:53 PriceInfoHandler.go:226, github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/drivers/ncpvpc/resources.(*NcpVpcPriceInfoHandler).GetPriceInfo() - The ProductFamily 'SVR' is Not Included in the ProductFamily.
cb-spider           |
cb-spider           | [CB-SPIDER].[ERROR]: 2024-12-04 08:22:53 PriceInfoHandler.go:100, github.com/cloud-barista/cb-spider/api-runtime/common-runtime.GetPriceInfo() - The ProductFamily 'SVR' is Not Included in the ProductFamily.
cb-spider           |
cm-ant              | 2024-12-04T08:22:53Z | ERROR | message: Unexpected status code: 500, response: {"message":"The ProductFamily 'SVR' is Not Included in the ProductFamily.\n"}
cm-ant              |  file:spider_client.go:84 func:cm-ant/internal/infra/outbound/spider.(*SpiderClient).requestWithContext
cm-ant              | 2024-12-04T08:22:53Z | ERROR | message: error sending get price info data request; spider server has got error file:price.go:32 func:cm-ant/internal/infra/outbound/spider.(*SpiderClient).GetPriceInfoWithContext
cm-ant              | 2024-12-04T08:22:53Z | ERROR | message: Error retrieving estimate cost info spec: {ncpvpc kr svr.vsvr.hicpu.c002.m004.net.hdd.b050.g002 ubuntu20.04}; error retrieving estimate cost info for {ProviderName:ncpvpc RegionName:kr InstanceType:svr.vsvr.hicpu.c002.m004.net.hdd.b050.g002 Image:ubuntu20.04}: failed to send request: spider server has got error file:service.go:75 func:cm-ant/internal/core/cost.(*CostService).UpdateAndGetEstimateCost.func1
cm-ant              | 2024-12-04T08:22:53Z | ERROR | error="code=500, message={errors occurred during processing: [error retrieving estimate cost info for {ProviderName:ncpvpc RegionName:kr InstanceType:svr.vsvr.hicpu.c002.m004.net.hdd.b050.g002 Image:ubuntu20.04}: failed to send request: spider server has got error error retrieving estimate cost info for {ProviderName:ncpvpc RegionName:kr InstanceType:svr.vsvr.hicpu.c002.m004.net.hdd.b050.g002 Image:ubuntu20.04}: failed to send request: spider server has got error]  500 }" ID:JNZOvWIKYlUhjutNeIcziqbGSpydbGvn Method:POST URI:/ant/api/v1/cost/estimate clientIP:172.19.0.10 file:middlewares.go:108 func:cm-ant/internal/app.Zerologger.func2 latency:78.032817ms status:500
cm-butterfly-front  | 129.254.75.33 - - [04/Dec/2024:08:22:53 +0000] "POST /api/Updateandgetestimatecost HTTP/1.1" 500 550 "http://3.36.106.214/main/models/source-models" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
cm-butterfly-api    | DEBU[2024-12-04T08:22:52Z] BEGIN Transaction --- conn=tx-5737760267314929668 tx=5737760267314929668

@powerkimhub
Copy link
Member

@yunkon-kim


The ProductFamily 'SVR' is Not Included in the ProductFamily.


  • 앞뒤 정황은 고려하지 않고, 위 메시지는 VM ProductFamily 설정 오류 입니다.
  • NCP VPCServer로 설정해보기시 바랍니다.
    • 마지막, 파악된 정보로는 NCP Classic과 동일하게 SVR 이었는데,
    • 현재 CSP API로 제공되는 VM 관련 ProductFamily Name은 Server로 제공 되고 있네요.

[추신]

  • Spider에서는 VM 가격의 경우,
  • CSP에 무관하게 ComputeInstance로 ProductFamily Name이 추상화되어 있습니다.
  • 그런데, 현재 Spider 버전은 NCP VPC의 경우 SVR로 변환되기 때문에
  • 위 이슈와 동일한 오류가 발생할 것입니다.
    • 최신 코드에는 Server로 즉시 반영 해두도록 하겠습니다.
    • 현재 배포는 Server로 수정 활용하시고,
    • 추후 배포되는 Spider 활용 시점부터는 ComputeInstance 추천드립니다.
  • 추상화 관련 참고 (가이드 내용중 NCP VPC 즉시 수정 예정: SVR => Server)

@yunkon-kim
Copy link
Member Author

@powerkimhub 감사합니다!

가격 정보 부분에 해당되는 내용으로 이해가 되고요. 인프라 추천, 생성/배포 시 사용하는 Spec 과는 구분되어지는 것으로 보입니다. 잘 이해한 것이 맞을까요?

(위 내용이 맞다면)
@hippo-an Ant에서 아래 2가지 (안) 중에서 적절히 취사 선택 하셔서 진행해 주시면 될 것 같습니다.

통합 및 테스트 목표 항목이 "3종 CSP에 대해 컴퓨팅 인프라 마이그레이션"이고, AWS, Azure는 비용 예측 정보를 이미 확인한 상태이니 적절한 방향으로 선택하시면 될 것 같습니다.

  • 1안) (치환) SVR -> Server로 임시 치환
  • 2안) (필터) NCP VPC에 대해서 비용 예측을 Skip 처리 (UI에서 목표 모델만 제공), 추후 비용 관련 변경사항 일괄 반영

@hippo-an
Copy link
Contributor

hippo-an commented Dec 4, 2024

@yunkon-kim

로그를 보시면 현재는 ComputeInstance 로 product family 를 설정해 보내고 있습니다.

cm-ant | 2024-12-04T08:22:53Z | INFO | message: Sending request to client with endpoint [POST - http://cb-spider:1024/spider/priceinfo/ComputeInstance/kr]

스파이더의 추상화를 적절히 활용했는데요.

스파이더 버전 업데이트에 맞춰 ncp 의 경우 product family 를 Server 로 명시하는 1안으로 진행하도록하겠습니다.

@yunkon-kim
Copy link
Member Author

@ish-hcc @powerkimhub @seokho-son @sykim-etri @innodreamer @dev4unet @hippo-an @MZC-CSC (cc. @dongjae)

(현재 진행 상황으로 미루어 볼 때)
내일 12/5(목)에 모든 서브시스템 v0.3.0 릴리스 및 Cloud-Migrator v0.3.0 릴리스를 찍을 수 있을 것으로 예상합니다.

충분한 통합 및 테스트가 진행되었기 때문에 내일은 가볍게 버전 정보를 v0.3.0으로 수정 후 릴리스 찍으면 될 것 같습니다.

  • doc, README, docker-compose.yaml 등에 나타난 버전 정보

우선 통합 및 테스트를 완료하고, 공지 드리도록 하겠습니다.

@yunkon-kim
Copy link
Member Author

(cc. @hippo-an @powerkimhub )

cm-ant v0.2.8을 적용하여 인프라 마이그레이션 통합 테스트 수행 중에 "ProductFamily 'Server' is Not Included in the ProductFamily."가 나타났습니다.

유선상으로 계획 변경하여 2안으로 추진하고, 해당 사항은 이후에 해소하는 것으로 논의되었습니다.

2안) (필터) NCP VPC에 대해서 비용 예측을 Skip 처리 (UI에서 목표 모델만 제공), 추후 비용 관련 변경사항 일괄 반영

(로그 참고)

cm-ant              | 2024-12-05T01:37:51Z | INFO  | message: Sending request to client with endpoint [POST - http://cb-spider:1024/spider/priceinfo/Server/kr]
cm-ant              |  file:spider_client.go:74 func:cm-ant/internal/infra/outbound/spider.(*SpiderClient).requestWithContext
cb-spider           | [CB-SPIDER].[ERROR]: 2024-12-05 01:37:51 PriceInfoHandler.go:226, github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/drivers/ncpvpc/resources.(*NcpVpcPriceInfoHandler).GetPriceInfo() - The ProductFamily 'Server' is Not Included in the ProductFamily.
cb-spider           |
cb-spider           | [CB-SPIDER].[ERROR]: 2024-12-05 01:37:51 PriceInfoHandler.go:100, github.com/cloud-barista/cb-spider/api-runtime/common-runtime.GetPriceInfo() - The ProductFamily 'Server' is Not Included in the ProductFamily.
cb-spider           |
cm-ant              | 2024-12-05T01:37:51Z | ERROR | message: Unexpected status code: 500, response: {"message":"The ProductFamily 'Server' is Not Included in the ProductFamily.\n"}
cm-ant              |  file:spider_client.go:84 func:cm-ant/internal/infra/outbound/spider.(*SpiderClient).requestWithContext
cm-ant              | 2024-12-05T01:37:51Z | ERROR | message: error sending get price info data request; spider server has got error file:price.go:28 func:cm-ant/internal/infra/outbound/spider.(*SpiderClient).GetPriceInfoWithContext
cm-ant              | 2024-12-05T01:37:51Z | ERROR | message: Error retrieving estimate cost info spec: {ncpvpc kr svr.vsvr.hicpu.c002.m004.net.hdd.b050.g002 ubuntu20.04}; error retrieving estimate cost info for {ProviderName:ncpvpc RegionName:kr InstanceType:svr.vsvr.hicpu.c002.m004.net.hdd.b050.g002 Image:ubuntu20.04}: failed to send request: spider server has got error file:service.go:75 func:cm-ant/internal/core/cost.(*CostService).UpdateAndGetEstimateCost.func1

@yunkon-kim
Copy link
Member Author

yunkon-kim commented Dec 5, 2024

@ish-hcc @powerkimhub @seokho-son @sykim-etri @innodreamer @dev4unet @hippo-an @MZC-CSC (cc. @dongjae)

안녕하세요. Cloud-Migrator 플랫폼 v0.3.0 통합 테스트를 완료하였습니다 👏

서브시스템별 v0.3.0 릴리스 추진를 부탁드리며, 아래 항목들을 챙겨 주시기 바랍니다.

  • 버전 정보 확인: go.mod, doc, README, docker-compose.yaml, API url 등에 기재된 버전 정보 확인
  • API docs (Swagger) 업데이트
  • 간단한 빌드 테스트

Tip

go.mod에서 다른 서브시스템을 참조하는 경우에 해당 서브시스템이 릴리스될 때 까지 잠시 기다리렸다가 진행해 주시면 좋을 것 같습니다.
간혹 버전 참조 관련 이슈가 있어 제안드리는 부분입니다.

아래 버전을 참고하셔서 위에서 아래 순서대로 진행해 주시기 바랍니다.

  • (완료) cb-spider v0.10.0
  • (완료) cb-tumblebug v0.10.3
  • (완료) cb-mapui v0.10.0
  • (완료) cm-model v0.0.3 (Note - v0.0.3 활용으로 협의 완료)
  • (완료) cm-damselfly v0.3.0
  • cm-honeybee v0.3.0
  • cm-beetle v0.3.0
  • cm-grasshopper v:0.3.0
  • cm-cicada v0.3.0
  • cm-ant v0.3.0
  • cm-butterfly v0.3.0

@MZC-CSC
Copy link

MZC-CSC commented Dec 5, 2024

현재 일부 버전이 추가로 edge 버전에서 테스트가 진행되고 있기에 최종 태깅된 아래 버전으로 cm-mayfly v0.2.9 버전을 릴리스 했습니다.
cm-honeybee:0.2.11
cm-butterfly-api:0.2.4
cm-butterfly-front:0.2.4
cm-ant:0.2.8

참고로, v0.2.9 버전에는 setup 커맨드와 간단한 사용 가이드 추가되었으며 tumblebug의 init과 비슷하다고 보면됩니다.
$ ./mayfly setup credential

필요한 CSP들의 Credential 정보 등록이 끝났으면 loadassets 호출
$ ./mayfly api -s cb-tumblebug -a loadassets

@yunkon-kim
Copy link
Member Author

@MZC-CSC 업데이트 현황을 공유해 주셔서 감사드립니다.

확인차 문의 드립니다. 공유해주신 내용과 관련하여 추가로 테스트해야 할 부분이 있을까요?

있으시면 v0.3.0 릴리스를 잠시 hold 하려고 합니다 :-)

@MZC-CSC
Copy link

MZC-CSC commented Dec 5, 2024

@yunkon-kim 통합 시나리오는 cb-tumblebug의 init 스크립트로 기본 리소스를 등록하는 방향으로 진행했기에 v0.3.0 통합의 핵심 기능 보다는 보조 기능이라서 추가된 기능은 무시하고 현재 상태로 v0.3.0 릴리스를 진행하면 될 것 같습니다.

@yunkon-kim
Copy link
Member Author

@MZC-CSC 넵! 확인 감사합니다.

@MZC-CSC
Copy link

MZC-CSC commented Dec 5, 2024

도커 이미지들이 모두 올라온 것을 확인해서 아래 버전으로 cm-mayfly v0.3.0 버전 릴리스했습니다.
https://github.com/cloud-barista/cm-mayfly/releases/tag/v0.3.0
cb-spider v0.10.0
cb-tumblebug v0.10.3
cb-mapui v0.10.0
cm-damselfly v0.3.0
cm-honeybee v0.3.0
cm-beetle v0.3.0
cm-grasshopper v:0.3.0
cm-cicada v0.3.0
cm-ant v0.3.0
cm-butterfly v0.3.0

@yunkon-kim
Copy link
Member Author

Released Cloud-Migrator v0.3.0: https://github.com/cloud-barista/cloud-migrator/releases/tag/v0.3.0

@yunkon-kim
Copy link
Member Author

yunkon-kim commented Dec 5, 2024

🎉 Announcing the Release of Cloud-Migrator Platform v0.3.0

#19

Cloud-Migrator Platform v0.3.0 릴리스 완료되었습니다. 모두 고생 많으셨습니다!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants