기술 옵션 식별

완료됨

기존 자전거 임대 시스템과 두 번째 캠퍼스에 사용 중인 시스템 간에 비즈니스 프로세스를 적절히 통합하기 위한 시간이 많지 않습니다. 자신의 기존 Azure 전문지식을 최대한 활용하기를 원하며 Azure가 이러한 문제를 해결하는 데 사용할 수 있는 다양한 기술을 포함한다고 읽은 경우를 가정합니다.

이 단원에서는 비즈니스 프로세스를 자동화하고 통합하는 데 사용할 수 있는 Azure 기술 옵션을 살펴봅니다.

일반적인 비즈니스 문제

비즈니스에서 고객에게 높은 품질의 제품 및 서비스를 보증하는 한 가지 방법은 엄격한 비즈니스 프로세스를 디자인하고 구현하는 것입니다. 그러한 프로세스는 여러 단계, 사람 및 소프트웨어 패키지를 포함할 수 있습니다. 각 프로세스는 근로자가 차례대로 수행하는 단순한 작업 라인에서 실행될 수도 있고 분기 또는 루프로 실행될 수도 있습니다. 단시간에 실행될 수도 있고 몇 일 또는 몇 주가 걸려야 완료될 수도 있습니다.

비즈니스는 두 번째 비즈니스와 병합되거나 파트너 조직과 통합되는 경우 종종 문제가 발생합니다. 관리자는 서로 다른 소프트웨어를 사용하여 구현되었을 수 있는 두 조직에서 사용되는 별도의 프로세스를 어떻게 통합할 수 있습니까?

소프트웨어에서 모델링된 비즈니스 프로세스를 흔히 워크플로라 합니다. Azure는 여러 시스템을 통합하는 워크플로를 만들고 구현하는 데 사용할 수 있는 네 가지 기술을 포함합니다.

  • Logic Apps
  • Microsoft Power Automate
  • WebJobs
  • Azure Functions

네 가지 기술에는 몇 가지 유사점이 있습니다. 다음은 그 예입니다.

  • 이들은 모두 입력을 허용할 수 있습니다. 입력은 워크플로에 제공되는 데이터 또는 파일의 한 부분입니다.
  • 이들은 모두 작업을 실행할 수 있습니다. 작업은 워크플로가 실행되는 간단한 작업이며 종종 데이터를 수정하거나 다른 작업을 수행할 수 있습니다.
  • 이들은 모두 조건을 포함할 수 있습니다. 조건은 다음으로 실행할 작업을 결정할 수 있는 입력에 대해 실행되는 테스트입니다.
  • 이들은 모두 출력을 생성할 수 있습니다. 출력은 워크플로에 의해 만들어지는 데이터 또는 파일의 한 부분입니다.

또한 이러한 기술을 사용하여 만들어진 워크플로는 일정에 따라 시작되거나 몇몇 외부 이벤트에 의해 트리거될 수 있습니다.

디자인 중심 기술

비즈니스 분석가들이 비즈니스 프로세스를 논의하고 계획할 때, 그들은 종이에 다이어그램을 그릴 수 있습니다. Logic Apps 및 Microsoft Power Automate에서도 유사한 워크플로 디자인 방법을 선택할 수 있습니다. 둘 다 워크플로를 그릴 수 있는 사용자 인터페이스를 포함합니다. 이 접근 방식을 디자인 중심 접근 방식이라 합니다.

Logic Apps

Logic Apps는 배포된 애플리케이션의 이종 구성 요소를 자동화, 오케스트레이션 및 통합하기 위한 Azure 내의 서비스입니다. Logic Apps에서 디자인 중심 접근 방식을 사용하면 복잡한 비즈니스 프로세스를 모델링하는 복잡한 워크플로를 도출할 수 있습니다. 다음 스크린샷은 워크플로를 정의하는 데 사용하는 Logic Apps 디자이너 및 디자인 캔버스를 보여 줍니다.

Screenshot of the Logic Apps workflow designer in the Azure portal.

또는 코드로 작업하는 것을 선호하는 경우 다음 스크린샷에서 보여 주듯이 코드 보기를 사용하여 JSON 표기법으로 워크플로를 만들거나 편집할 수 있습니다.

Screenshot of the Logic Apps code editor in the Azure portal.

Logic Apps가 통합에 매우 적합한 한 가지 이유는 200개 이상의 연결이 포함된다는 것입니다. 커넥터는 외부 서비스에 인터페이스를 제공하는 Logic Apps의 구성 요소입니다. 예를 들어 X 커넥터 를 사용하면 짧은 게시물을 보내고 검색할 수 있으며 Office 365 Outlook 커넥터 를 사용하면 전자 메일, 일정 및 연락처를 관리할 수 있습니다. Logic Apps는 앱을 만드는 데 사용할 수 있는 수백 가지의 미리 만들어진 커넥터를 제공합니다. Logic Apps에서 호출하려는 독특하거나 고유한 시스템이 있다면 해당 시스템에서 REST API를 제공하는 경우 자체 커넥터를 만들 수 있습니다.

Microsoft Power Automate

Microsoft Power Automate는 개발 또는 IT 전문 경험이 없더라도 워크플로를 만들 수 있는 서비스입니다. 웹 사이트 또는 Microsoft Power Automate 모바일 앱을 사용하여 다양한 구성 요소를 통합 및 오케스트레이션하는 워크플로를 만들 수 있습니다.

만들 수 있는 흐름 유형은 다음 네 가지가 있습니다.

  • 자동화: 일부 이벤트의 트리거로 시작합니다. 예를 들어 이벤트는 새 짧은 게시물 또는 업로드 중인 새 파일의 도착일 수 있습니다.
  • 버튼: 모바일 디바이스에서 클릭 한 번으로 반복 작업을 실행합니다.
  • 예약: 정기적으로 실행됩니다. 예를 들어, 일주일에 한 번, 특정 날짜 또는 10시간 후에 실행됩니다.
  • 비즈니스 프로세스: 주식 주문 프로세스 또는 불만 제기 절차와 같은 비즈니스 프로세스를 모델링합니다. 흐름 프로세스에는 필수 사용자에게 알림, 승인 기록, 단계 달력 날짜, 흐름 단계 기록 시간이 포함될 수 있습니다.

Microsoft Power Automate는 이러한 유형의 흐름을 만들기 위한 사용하기 쉬운 디자인 표면을 제공합니다. 다음 스크린샷에서 알 수 있듯이 흐름 디자이너를 사용하면 프로세스를 쉽게 디자인하고 배치할 수 있습니다.

Screenshot of the Microsoft Power Automate designer showing a workflow with a file trigger, an Office action to get a user's profile and an Outlook action to send an email.

내부적으로 Microsoft Power Automate는 Logic Apps를 기반으로 합니다. 이 사실은 Power Automate가 Logic Apps와 동일한 범위의 커넥터 및 작업을 지원함을 의미합니다. Microsoft Power Automate에서는 사용자 지정 커넥터를 사용할 수도 있습니다.

디자인 중심 기술 비교

다음 표에서 볼 수 있듯이 Microsoft Power Automate는 기술직이 아닌 직원이 사용하기에 더 적합합니다. 워크플로 디자이너가 IT 전문가, 개발자 또는 DevOps 전문가라면 일반적으로 Logic Apps가 더 적합합니다.

Microsoft Power Automate Logic Apps
대상 사용자 Office 작업자 및 비즈니스 분석자 개발자 및 IT 전문가
대상 시나리오 셀프 서비스 워크플로 만들기 고급 통합 프로젝트
디자인 도구 GUI에만 해당합니다. 브라우저 및 모바일 앱 브라우저 및 Visual Studio 디자이너. 코드 편집 가능
애플리케이션 수명 주기 관리 Power Automate는 테스트 및 프로덕션 환경을 포함합니다. Logic Apps 소스 코드는 Azure DevOps 및 소스 코드 관리 시스템에 포함될 수 있습니다.

코드 중심 기술

팀의 개발자는 여러 비즈니스 애플리케이션을 단일 워크플로에 오케스트레이션 및 통합하려는 경우 코드 작성을 선호할 가능성이 있습니다. 예를 들어 자신의 워크플로 성능을 더 세밀하게 제어해야 하거나 비즈니스 프로세스의 일부로 사용자 지정 코드를 작성해야 하는 경우가 있습니다. 해당 사용자를 위해 Azure는 웹 작업 및 Functions를 포함합니다.

WebJobs 및 WebJobs SDK

Azure App Service는 웹 애플리케이션, 모바일 백 엔드 및 RESTful API를 위한 클라우드 기반 호스팅 서비스입니다. 이러한 애플리케이션은 흔히 몇몇 종류의 백그라운드 작업을 수행해야 합니다. 예를 들어 자전거 임대 시스템에서 사용자가 자전거 사진을 업로드하면 더 작은 썸네일 사진을 생성해야 할 수 있습니다.

WebJobs는 프로그램 또는 스크립트를 자동으로 실행하는 데 사용할 수 있는 Azure App Service의 일부입니다. 두 종류의 웹 작업이 있습니다.

  • 연속. WebJob이 만들어지고 연속 루프에서 실행되면 즉시 시작됩니다. 예를 들어 연속 웹 작업을 사용하여 공유 폴더에서 새 사진을 확인할 수 있습니다.
  • 트리거형. 바인딩 이벤트 또는 일정에 따라 시작하거나 요청 시 수동으로 트리거할 때 시작됩니다.

WebJob이 수행하는 작업을 결정하기 위해 여러 가지 언어로 코드를 작성할 수 있습니다. 예를 들어 셸 스크립트(Windows, PowerShell, Bash)에서 코드를 작성하여 웹 작업을 스크립팅할 수 있습니다. 또는 PHP, Python, Java 또는 JavaScript로 프로그램을 작성할 수 있습니다.

.NET 및 .NET 언어(예: C# 또는 VB.NET)를 사용하여 WebJob을 프로그래밍할 수도 있습니다. 이 경우 작업을 더 쉽게 만들기 위해 웹 작업 SDK를 사용할 수도 있습니다. SDK는 Azure App Service와 상호 작용하는 데 필요한 코드의 양을 줄이는 JobHostConfigurationHostBuilder와 같은 클래스 범위를 포함합니다.

웹 작업 SDK는 C# 및 NuGet 패키지 관리자만 지원합니다.

Azure Functions

Azure 함수는 코드를 호스팅하는 데 필요한 인프라를 걱정할 필요 없이 코드의 작은 부분을 클라우드에서 실행하는 간단한 방법입니다. C#, Java, JavaScript, PowerShell, Python 또는 Azure Functions에서 지원되는 언어 문서에 나와 있는 모든 언어로 함수를 작성할 수 있습니다. 또한 사용 플랜 옵션을 사용하여 코드가 실행되는 시간에 대해서만 비용을 지불합니다. Azure는 사용자의 요구에 응답하여 함수의 크기를 자동으로 조정합니다.

Azure 함수를 만들 때 포털에서 해당 함수용 코드를 작성하여 시작할 수 있습니다. 또는 소스 코드 관리가 필요한 경우 GitHub 또는 Azure DevOps Services를 사용할 수 있습니다.

Azure 함수를 만들려면 템플릿 범위를 선택합니다. 다음 목록은 사용할 수 있는 일부 템플릿의 예입니다.

  • HTTP 트리거입니다. HTTP 프로토콜을 통해 보낸 요청에 응답하여 코드를 실행하려는 경우
  • 타이머 트리거. 일정에 따라 코드를 실행하려는 경우
  • Blob Storage 트리거입니다. Azure Storage 계정에 새 BLOB이 추가될 때 코드를 실행하려는 경우
  • Cosmos DB 트리거입니다. NoSQL 데이터베이스의 새 또는 업데이트된 문서에 응답하여 코드를 실행하려는 경우

Azure Functions는 Azure 내부는 물론 타사의 다양한 서비스에도 통합할 수 있습니다. 해당 서비스는 함수 트리거, 함수에 데이터 입력 보내기, 또는 함수에서 데이터 출력 받기를 수행할 수 있습니다.

코드 중심 기술 비교

대부분의 경우 Azure Functions가 제공하는 단순한 관리 및 더 유연한 코딩 모델 때문에 웹 작업 기본 설정에서 이 기술을 선택할 수 있습니다. 그러나 다음과 같은 이유로 WebJobs를 선택할 수 있습니다.

  • 코드를 기존 App Service 애플리케이션의 일부가 되게 하고 해당 애플리케이션의 일부로(예: 동일한 Azure DevOps 환경에서) 관리하려고 하는 경우.
  • 코드를 트리거하는 이벤트를 수신 대기하는 개체에 대해 정교하게 제어해야 하는 경우. 이 개체는 JobHost 클래스이며 웹 작업에서 해당 동작을 더 유연하게 수정할 수 있습니다.
Azure WebJobs Azure Functions
지원되는 언어 WebJobs SDK를 사용 중인 경우 C# C#, Java, JavaScript, PowerShell 등
자동 크기 조정 아니요
브라우저에서 개발 및 테스트 아니요
사용량 기준 과금 가격 책정 아니요
Logic Apps와 통합 아니요
패키지 관리자 WebJobs SDK를 사용 중인 경우 NuGet NuGet 및 NPM
App Service 애플리케이션의 일부가 될 수 있음 예(App Service 요금제에 따라 호스트됨)
JobHost에 대한 정교한 제어 제공

이제 사용할 수 있는 디자인 중심 및 코드 중심 기술이 어떤 것인지 알게 되었습니다. 그렇다면 어떻게 해야 선택 범위를 좁힐 수 있을까요? 이 문제에 대해 다음 단원에서 살펴보겠습니다.