IBM ISW 교육 - 1일차

zuckerfrei·2023년 6월 8일
0

IBM ISW

목록 보기
1/2

한국IBM이 파트너사를 대상으로 제공하는 ISW 교육을 수강중이다.
교육은 2023년 6월 7~9일 3일 동안 진행되며, MSA 기초 개념강의부터 ISW을 직접 활용할 수 있는 실습까지 제공된다.

이 중 1일차 교육을 수강하면서 정리한 내용을 공유한다.

MSA를 설계/구성하는 것은 기술적으로 까다로운 부분이 많은데,
고급 엔지니어가 많지 않더라도 충분히 MSA를 구성할 수 있을 만한 ISW같은 솔루션이 나온다니,,
솔루션으로 대체되는 인력이 되지 말자는 다짐을 해본다.




1. MSA

  • 데이터를 최대한 작게 자르고 자르는 것
    • 그러나 이게 반드시 정답은 아니고,, 비즈니스 기능 단위로 쪼개는 것을 권장
  • monolithic → MSA 전환
    • 확장성, 비용 절감 등등 장점
    • 다만, MSA에서는 데이터 정합성이 맞지 않을 수도 있다는 것을 전제로 깔고가기 때문에 단점이 명확함
  • ACID
    • 데이터베이스 내에서 일어나는 하나의 트랜잭션(transaction)의 안전성을 보장하기 위해 필요한 성질 참조
    • Atomic : 원자성은 한 트랜잭션의 연산들이 모두 성공하거나, 반대로 전부 실패되는 성질
    • Consistency : 일관성은 트랜잭션이 일어난 이후의 데이터베이스가 데이터베이스의 제약이나 규칙을 만족해야하는 것
    • Isolation :격리는 모든 트랜잭션이 독립적으로 실행되는 것 = 동시에 실행된 트랜잭션이 순차적으로 실행된 트랜잭션의 결과와 동일한 데이터 상태여야 하는 것
    • Durability :내구성 하나의 트랜잭션이 성공적으로 수행되었다면, 해당 트랜잭션에 대한 로그가 남아야하는 성질
  • greenfield
    • 처음부터 MSA로 구축하는 것
  • brownfield
    • 기존 레거시에서 MSA로 이관하는 것
    • 상대적으로 Greenfield보다 어렵다..
  • 2PC (2 Phase Commit)
    • 동일제품 db 2대 간에 서로 데이터 정합성 체크하는 것
    • msa에서는 db종류도 다 달라서 아예 고려대상이 아님 → 그럼 msa에서 데이터 정합성은 어떻게? → saga
  • saga
    • “내 데이터 바뀌었어 너도 바꿔” 메시지 전달
    • 만약 그러다가 메시지 전달이 실패하면? 정합성 영원히 깨짐
    • 데이터를 계속 모니터링하다가 문제가 생기면 수동으로 정합성을 맞춤.. 이 외에 방법이 없음
    • Kafka 같은 메시지 브로커를 사용하여 최대한 데이터 정합성을 보장하고자 함


2. ISW 제품 소개

"low-code로 MSA를 설계/개발/배포할 수 있는 도구를 제공하는 플랫폼"

ISW = Industry Solutions Workbench


  • 제품 overview
    • solution designer
      • DDD 원칙으로 MSA설계, 도메인 지식이 필요하며 전체적인 아키텍쳐를 구성하는 부분
    • solution hub
      • ci/cd 빌드, 패키징, 테스트 및 배포
    • solution envoy
      • 모니터링, 인프라관리, 보안, 런타임 관리
  • 애플리케이션 현대화 및 클라우드 전환을 생각한다면 도입을 고려할 수 있음
    • 기존 레거시와 함께 병행하면서 전환 시도하는 사례도 있다.


3. ISW 개발 환경 설정

ISW 실습을 위해 개발 환경을 잡아야 한다.

3.1 환경 설정

  1. gitlab fork

    • 교육 자료가 포함된 gitlab repo를 포크
  2. gitpod

    • gitpod의 k8s위에 pod를 하나 생성해서 제공해줌
    • 로컬 개발환경 구축 해도 되는데, gitpod 사용하기로 함
    • gitlab으로 로그인
  1. workspace 생성. 스펙을 large로 변경하여 생성

  2. gitlab repo의 파일구조와 동일한 구조로 브라우저 vscode가 열림

  1. 터미널에서 설치 확인하기
    java, git, maven, node

    주의 : gitpod에서는 /workspace 아래 경로에만 데이터가 저장됨, home dir에서의 설정도 저장 안되니까 주의


3.2 ISW 설정

  1. access token 생성

    Gitlab > Edit Profile > access tokens 에서 생성 후 복사해놓기

    glpa...{중략}...WumjUY
  2. ISW 로그인하기

    ibm 직원들이 프로젝트 fork 떠온 사람들 목록으로 유저 생성해줌

  1. ISW Enablement-Project 프로젝트 접근권한 얻기

    isw-enablement-project 접속해서 request access 클릭
    접근 승인되면 아래처럼 프로젝트 목록 확인 가능

  1. isw workspace에서 생성한 gitlab 토큰 등록

    우측 상단 > user settings > git tokens > create git token

  1. workspace 만들기

    workspace를 만들어서 하위에 플젝을 관리하고자 함

    먼저 workspace를 생성

    태그 중 IBEE로 필터링 후 우리가 직접 만들 position keeping, serving order를 제외한 나머지를 체크하여 생성

    생성 후 각 프로젝트 접속이 되는지 확인

  1. ISW CLI 사용하기
    • 로컬에서 쓰려면 화면 맨 아래 solution cli setup 눌러서 나오는 명령어 따라해서 설치해야함
      • cli는 node로 만들어져있어서 npm 명령어 사용
    • 우리는 이미 깔려있는 gitpod 사용하기 때문에 solution cli setup의 1,2번 단계를 건너뜀
      • npm 설치하면 유저의 홈 경로로 설치되는데, 이 gitpod는 끊기면 workspace 경로 제외한 곳은 초기화되니까 아예 global 옵션 제외하고 설치해버림
      • 그래서 npx를 앞에 붙이고 k5 명령어 사용, 경로는 /workspace/isw-enablement
        npx k5
      • k5 >>> knowis의 약자
  1. CLI 사용한 로그인

    • config 파일 생성

      • solution cli > solution cli setup > 3.Download cli-config file 눌러서 다운로드

      • vscode에서 현재 프로젝트 root 디렉토리에 바로 같은 파일 생성 cli-config.json

      • gitignore 추가해서 public에 올라가지 않도록 관리하기(옵션)

    • CLI 로그인하기 - 터미널에서 아래 명령어 실행
      npx k5 setup --file cli-config.json
    • 아까 받은 user9 아이디로 로그인, 비번은 내가 변경한 것
      gitpod /workspace/isw-enablement (main) $ npx k5 setup --file cli-config.json
      ========= Setup Solution Designer Configuration ==========================================
      --------- > Importing stage designer -----------------------------------------------------
      [SUCCESS] Read StageConfig passes validation
      [SUCCESS] Written stage config file to /home/gitpod/.k5/k5-cli/designer/designtime.config.json
      [SUCCESS] Written stage CA Cert file to /home/gitpod/.k5/k5-cli/designer/designtime.ca.crt
      --------- > stage "designer" will be the default stage -----------------------------------
      [SUCCESS] Read StageConfig passes validation
      [SUCCESS] Written stage config file to /home/gitpod/.k5/k5-cli/default/designtime.config.json
      [SUCCESS] Written stage CA Cert file to /home/gitpod/.k5/k5-cli/default/designtime.ca.crt
      --------- > login to the Solution Designer: https://edu-k5-designer.apps.openshift-01.knowis.cloud 
      ✔ Enter username · user9
      ✔ Enter password · ********
      --------- >> Fetching offline token for user "user9" -------------------------------------
      [INFO]    Successfully received and stored offline token
      ==========================================================================================
      홈 디렉토리에 생성되었으므로, k5 cli쓰고 싶으면 이 명령어 다시 사용해야 함(gitpod 죽은 후)


1일차 개발환경 세팅은 끝났고, 2일차부터 ISW 실습 시작

profile
무설탕 음료를 좋아합니다

0개의 댓글