기술 옵션 식별
기존 자전거 임대 시스템과 두 번째 캠퍼스에 사용 중인 시스템 간에 비즈니스 프로세스를 적절히 통합하기 위한 시간이 많지 않습니다. 자신의 기존 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 디자이너 및 디자인 캔버스를 보여 줍니다.
또는 코드로 작업하는 것을 선호하는 경우 다음 스크린샷에서 보여 주듯이 코드 보기를 사용하여 JSON 표기법으로 워크플로를 만들거나 편집할 수 있습니다.
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는 이러한 유형의 흐름을 만들기 위한 사용하기 쉬운 디자인 표면을 제공합니다. 다음 스크린샷에서 알 수 있듯이 흐름 디자이너를 사용하면 프로세스를 쉽게 디자인하고 배치할 수 있습니다.
내부적으로 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와 상호 작용하는 데 필요한 코드의 양을 줄이는 JobHostConfiguration
및 HostBuilder
와 같은 클래스 범위를 포함합니다.
웹 작업 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 에 대한 정교한 제어 제공 |
예 | 예 |
이제 사용할 수 있는 디자인 중심 및 코드 중심 기술이 어떤 것인지 알게 되었습니다. 그렇다면 어떻게 해야 선택 범위를 좁힐 수 있을까요? 이 문제에 대해 다음 단원에서 살펴보겠습니다.