스파게티 말고 다른 선택이 있나요?

음식에 대해서 말하자면 절대 아니에요. 스파게티는 원료가 적고 준비가 빠르며 맛이 항상 좋아요. 적어도 저한테는 그렇습니다.)내가 진정으로 말하고 싶은 것은 스파게티 코드다.한 끼와 달리 파스타는 몇 분 안에 다 먹지 않는다.그것은 머무르고, 뻗고, 변화하고, 성장하고, 성장한다.마이크로 서비스도 마찬가지다.만약 당신이 마이크로 서비스부터 시작한다면, 당신은 항상 세립도 서비스를 어떻게 자르는지 고려해야 한다.마지막으로 스파게티 효과는 코드에서 편성 부품으로 옮겨졌다.이 구성 요소는 현재 모든 소형 서비스를 알고 서로 연결해야 한다.아직까지 자동화나 디지털화가 이뤄지지 않은 수작업 활동도 마찬가지다.이 과정은 끊임없이 확장되고 변화하는 문서에 규정되어 있다.일정 규모와 수량을 초과하는 수동 활동은 유지 보수 비용이 매우 비싸다.
묘사한 장면은 당연히 매우 과장된 것이다. 물론 스파게티 효과는 일정 시간 후에 발생하지 않을 것이다.그러나 내 경험에 따르면, 나는 그것이 너무 자주 끝났다고 보고할 수 있다.
그러나 구조, 가독성, 특히 유지보수성을 확보하는 데 도움을 줄 수 있는 방법도 있다.나는 여기서 실행 가능한 절차나 업무 흐름을 더욱 자세하게 보고 싶다.이러한 서비스에는 Zapier, Pipedream 또는 IFTTT 등이 포함됩니다.이러한 서비스는 이해할 수 있고 실행 가능한 절차를 정의하는 것을 가능하게 한다.그러나 이런 서비스는 너무 제한적이거나 전문화되어 있다.BPMN은 보다 유연한 방법을 제공합니다.네, 알고 있습니다. BPMN?그거 코볼 시대부터 아니에요?아니면 그 전에?짧은 대답은 없다. 그렇게 오래되지는 않았지만 15년이 넘게 존재해 왔다.
간단하게 말하면 소프트웨어는 하나의 동작과 하나의 집행으로 구성된다.실행은 몇 개의 작은 임무로 구성될 수 있다.실행이 끝날 때 결과가 생성됩니다.
async function doSomething() {
  const responses = await Promise.all([
    firstAsyncTask(), secondAsyncTask()
  ]);
  if (responses[0].someAttribute === true) {
    // do some very complex things here
  } else {
    // do some even more complex things here
  }

  if (responses[1].someOtherAttribute === false) {
    // http request to a random service
  }

  return "a very hard-earned result"
}

async function firstAsyncTask(): Promise<{ someAttribute: boolean }> {
  return { someAttribute: true };
}
async function secondAsyncTask(): Promise<{ someOtherAttribute: boolean }> {
  return { someOtherAttribute: false };
}

만약 두 개 이상의 임무를 포함하는 실행을 누군가에게 설명하려고 한다면, 보통 시각적 보조 도구를 사용해서, 이 임무들을 동그라미나 네모난 상자에 쓰고, 그것들을 연결하고, 지점을 추가할 수도 있다.BPMN은 이러한 시각 묘사를 표준화했다.BPMN 규범을 읽지 않은 사람은 지금 벌어지고 있는 일을 이해할 수 있다고 말하고 싶다.

만약 이런 시각적 표현이 기술적으로 실행할 수 있다면 어떤 일이 일어날까요?이것이 바로 작업 흐름 엔진이 작용하는 곳이다.기본적으로 이 작업들은 소프트웨어가 실행할 수 있도록 설정하기만 하면 된다.스크립트 또는 HTTP 요청일 수 있습니다.
이론은 여기까지, 버킷리스트는 여기까지.지금 너는 안심하고 생각할 수 있다. 물론 좋은 생각이지만 실천에서는 통하지 않는다.
이 글을 통해 나는 너의 상반된 관점을 설득하려고 한다.이것은 이론적인 문제일 뿐만 아니라, 나는 너희들이 모든 일의 실제 행동을 볼 수 있도록 격려하고 싶다.나는 이미 예견했다. 너는 어떠한 BPMN 지식도 필요 없고, 너는 작업 흐름 엔진에 관한 기술 지식도 필요 없고, 너는 로컬에 어떠한 소프트웨어도 설치할 필요가 없다.첫 번째 결과를 신속하게 보려면 Camunda Cloud accountRestzeebe만 사용하십시오.
그래서 만약 당신이 이 점을 할 수 있다면, 당신은 10분을 더 희생할 수 있습니까?이것이 바로 클라우드에서 첫 번째 작업 흐름을 시작하고 실행하는 데 필요한 모든 내용이다.

1분


Register for Camunda Cloud . 등록 양식을 작성하고 이메일 주소를 확인하십시오.

2분


Log in to the cloud console 첫 번째 그룹을 만듭니다.그룹을 클릭하여 그룹의 상세한 정보로 이동합니다.

3분


API 클라이언트 만들기: 클러스터와 통신하는 데 필요합니다.그룹 키로 볼 수 있습니다.만약 이 열쇠가 없다면, 집단의 문은 닫힌 상태를 유지할 것이다.클라이언트를 만들면 자격 증명이 있는 대화 상자가 표시됩니다.내보내기 문장을 포함하는 파일도 다운로드할 수 있습니다.이 파일은 모든 정보를 한 파일에 묶기 때문에 가장 간단한 방법이다.

4분


Log in to Restzeebe. 당신은 자신에 대한 질문에 대답할 수 있습니다. 이 질문들은 제품 개선에 도움이 될 것입니다. 그리고 시작할 수 있습니다.

5분


생성된 클라이언트를 가져옵니다.파일을 처음 다운로드했을 때 입력 필드에 전체 내용을 입력할 수 있습니다.그런 다음 필요한 정보를 추출합니다.또는 필요한 모든 데이터: ClusterId, ClientId 및 ClientSecret을 하나씩 입력할 수 있습니다.
가져오기를 통해 Restzeebe의 첫 번째 작업을 성공적으로 완료했습니다.

6분


다음 단계에서, 당신은 처음으로 집단과 상호작용을 할 것입니다.클러스터 상태를 가져옵니다.만약 이 조작이 성공한다면, 집단과 처음으로 소통한 것을 의미합니다.지금까지 이것은 상대적으로 지루했다. 네가 탁구를 얻었는데 탁구를 얻었다고 말할 수 있다.

7~10분


지금은 감동적인 부분이다:) 첫 번째 모델을 배치한다.Restzeebe는 시작 및 종료 이벤트로 구성된 간단한 첫 번째 워크플로우를 배치합니다.중간에 중간 소식 사건이 하나 있다.이것은 설정된 파라미터와 일치하는 메시지가 도착할 때까지 시작된 실례가 메시지 노드에서 기다린다는 것을 의미합니다.
워크플로우(및 인스턴스)를 보려면 Operate(링크 강조 표시)를 엽니다.지금까지 하나의 작업 흐름만 배치했기 때문에, 이 항목은 계기판에서만 볼 수 있습니다.
이제 새로운 실례를 시작합니다.기본적으로 Restzeebe를 사용하여 워크플로우를 시작할 수 있습니다.BPMN 프로세스 Id만 필요합니다. 위 워크플로우를 이미 배치했기 때문에 새 인스턴스를 시작하는 것은 의미가 있습니다.배포된 응답에서 워크플로우의 BPMN 프로세스 Id를 찾을 수 있습니다.입력 필드에 이 ID를 입력해야 합니다.
작업을 다시 시작하고 페이지를 새로 고치면 활성 인스턴스가 표시됩니다.이 실례는 메시지 노드에서 기다리고 있습니다.
마지막 단계에서 그룹에 메시지를 보낼 수 있습니다.동작 설명에서 입력 필드를 미리 채우는 아이콘을 발견할 수 있습니다.메시지를 보내고 조작으로 전환합니다.이 실례는 지금쯤 완성되었을 것이다.
축하합니다. 당신은 이미 구름 속에서 당신의 첫 번째 업무 흐름을 집행했습니다!

이거 너무 쉬운 거 아니에요?


물론 이것은 매우 간단한 작업 절차이다.어쩌면 너는 지금 생각하고 있을지도 모른다. 와, 정말이야?내가 이 때문에 20분의 생명을 낭비했다고?나는 단지 너에게 말할 수 있을 뿐이다. 이것은 단지 시작일 뿐이다.이것은 너의 Hello World 과정이다.
처음에 묘사한 바와 같이 모든 것은 하나의 과정이다.모든 용례에 하나의 작업 흐름을 만들어 작업 흐름 엔진에서 운행하게 하는 것은 당연히 불합리한 것이다.그러나 이것은 의미가 있다는 충분한 예가 있다.
나는 이 문장을 스파게티로 끝내고 싶다.내가 절차를 설계하고 집행할 때 스파게티 효과가 빨리 발생하지 않겠는가?답이 명확하다: 네.그러나 내 관점에서 볼 때 가장 큰 차이점은 그것이 뚜렷하게 보인다는 데 있다.이것은 곧 두통을 초래할 것이다.)
이태리 고기 국수 연맹에 또 다른 레시피가 나올 줄은 몰랐으면 좋겠다.)

나로 하여금 이 문장이 유용한지 아닌지를 알게 해라!만약 당신이 이런 내용을 좋아한다면 나를 따라오십시오. GitHub
제목 사진 작성자Mae MuUnsplash
마지막 사진은 Dan Smedley에서 찍었다Unsplash

좋은 웹페이지 즐겨찾기