Activity7入门学习(一)

官网链接:https://activiti.gitbook.io/activiti-7-developers-guide/getting-started/getting-started-activiti-cloud

Getting Started - Activiti Cloud

Getting start with Activiti Cloud

Activiti Cloud是一组从头设计的云原生组件,可在分布式环境中工作。我们选择了Kubernetes作为我们的主要部署基础设施,我们使用Spring Cloud / Spring Boot和Docker来对这些组件进行容器化。

我们经历了一段非常有价值的旅程,遇到了非常有激情的开发人员、社区以及希望利用这些技术(以及业务自动化解决方案)缩短上市时间并提高云业务敏捷性的现有和潜在客户。我们也为这些社区做出了贡献,确保我们所使用的开源项目能够得到我们有价值的反馈和贡献。

Activiti Cloud包括5个基本构建块:
.Activiti Cloud Runtime Bundle:(Activiti云运行时包)
.Activiti Cloud Query:(Activiti云查询)
.Activiti Cloud Audit:(Activiti云审计)
.Activiti Cloud Connectors:(Activiti云连接器)
.Activiti Cloud Notifications Service (GraphQL):(Activiti云通知服务(GraphQL))

这些构建块是Spring Boot starter,可以附加到任何Spring Boot (2.x)应用程序.这些构建块通过Spring Cloud功能进行了增强,这些功能提供了Cloud Native功能。
通过使用这些组件,您可以创建Activiti云应用程序:

.能否根据需求独立伸缩
.能否在完全孤立的周期中进行管理
.能否独立升级和维护
.能否使用正确的工具提供特定领域的特性

在本教程中,我们希望通过在Kubernetes中部署这些构建块的示例集来演示如何开始。我们强烈建议拥有一个真正的Kubernetes集群,如GKE、PKS或EKS。
我们已经在AWS上测试了这篇博文的内容(使用Kops, PKS, GKE和Jenkins X).
让我们从Kubernetes、HELM和Activiti Cloud开始。

Prerequisites(先决条件)

将内容部署到Kubernetes的最快、最简单的方法是使用HELM图表。正如官方文档中所描述的,HELM是:
“一个简化安装和管理Kubernetes应用程序的工具。就像Kubernetes的apt/yum/homebrew。”
作为Activiti Cloud的一部分,我们创建了一组分层的HELM图表,可以用来部署几个组件,其中一些与基础设施(如SSO和网关)相关,
一些与应用程序相关的组件,如运行时捆绑包、审计服务、查询服务和云连接器。

在这个快速入门中,我们将更具体地看: https://github.com/Activiti/activiti-cloud-full-chart/tree/master/charts/activiti-cloud-full-example
和Activiti云查询:https://github.com/AlfrescoArchive/activiti-cloud-query/tree/master/charts/activiti-cloud-query
父图,常见部分位于:https://github.com/Activiti/activiti-cloud-common-chart/tree/master/charts/common
所有图表档案被移动到:https://github.com/Activiti/activiti-cloud-helm-charts
通用海图是所有海图的基础海图:https://github.com/Activiti/activiti-cloud-common-chart
位于组件文件夹中的组件图表,如:
Runtime -https://github.com/AlfrescoArchive/example-runtime-bundle/tree/master/charts/runtime-bundle
Example cloud connector -https://github.com/AlfrescoArchive/example-cloud-connector/tree/master/charts/activiti-cloud-connector
Audit -https://github.com/AlfrescoArchive/activiti-cloud-audit/tree/master/charts/activiti-cloud-audit
Query -https://github.com/AlfrescoArchive/activiti-cloud-query/tree/master/charts/activiti-cloud-query
本“Activiti云完整示例”部署了以下组件:

Activiti Cloud application full example chart

 

 

需要注意的一件重要事情是,Activiti Cloud的每个组件都可以独立使用。此示例旨在展示一个大规模部署场景。
您可以从一个运行时Bundle(它提供流程和任务运行时)开始,但如果您想要扩大规模,则需要知道您的目标是什么,这张图表正是向您展示了这一点。
Install Kubectl and HELM(安装Kubectl和HELM)
Kubectl :https://kubernetes.io/docs/tasks/tools/
HELM: https://github.com/helm/helm/#install. Please use helm version 3.

在下一节中,我们将向您展示如何使用Amazon Web Services EKS或谷歌Cloud Platform GKE创建Kubernetes集群。我们让您决定哪个云平台最适合您。
您也可以使用Docker Desktop在本地机器上部署Activiti Cloud完整示例。我们建议使用云基础设施,以获得更快和更流畅的体验,但如果您需要本地安装,
您可以检查:https://hub.alfresco.com/t5/alfresco-process-services/activiti-7-deep-dive-series-deploying-and-running-a-business/ba-p/288347#jive_content_id_Deploying_and_Running_a_Business_Process
Steps 1 and 2: Create a K8 cluster and configure it(步骤1和步骤2:创建并配置K8集群)
选项A:using Amazon EKS
选项B:using Google Cloud-GKE
Step 3: Deploy Activiti Cloud Full Example(步骤3:部署Activiti Cloud完整示例)
第一步是运行以下命令将Activiti Cloud HELM图表注册到HELM:

helm repo add activiti-cloud-helm-charts https://activiti.github.io/activiti-cloud-helm-charts/
helm repo update

Activiti云完整示例图可以定制,以打开和关闭不同的功能,但是有一个必须的参数需要提供,这是本次安装将使用的外部域名:
1-a) Configure your deployment for AWS(为AWS配置部署)
对于这一步,您需要一个公共域名。如果你没有,使用Route 53注册一个新的公共域名。
转到AWS管理控制台,打开Route 53控制台。转到托管区域并选择一个公共托管区域并创建一个新的记录集。使用“*”字符命名,以便创建通配符。
在Alias Target中,选择我们前面部署的Ingress控制器(ELB)的DNS名称。

New Record Set in Route 53.

 

 

在下一节中使用“your-public-domain”部署Activiti Helm图表。在我们的例子中:raphaelallegre.com
1-b) Configure your deployment for GCP(为GCP配置部署)
对于GCP,使用“.nip。部署Activiti Helm图表。在我们的示例中:35.194.42.164.nip.io
2) Deploy the Helm chart(部署Helm图表)
一旦你解决了你的域名,通过运行Helm install命令,使用您的公共域名设置global.gateway.domain key来安装Helm chart。
在我们的例子中,将字符串“REPLACEME”替换为上一步中的域。

helm install example activiti-cloud-helm-charts/activiti-cloud-full-example --version 7.5.0 --set global.gateway.domain=REPLACEME --set global.keycloak.clientSecret=$(uuidgen) --set global.gateway.http=false

在AWS的例子中,我们使用:

global.gateway.domain=raphaelallegre.com

在我们的GCP例子中,我们使用:

global.gateway.domain=35.194.42.164.nip.io

Here is the example result for AWS:
启动成功界面

NOTES:
               _   _       _ _   _    _____ _                 _ 
     /\       | | (_)     (_) | (_)  / ____| |               | |
    /  \   ___| |_ ___   ___| |_ _  | |    | | ___  _   _  __| |
   / /\ \ / __| __| \ \ / / | __| | | |    | |/ _ \| | | |/ _` |
  / ____ \ (__| |_| |\ V /| | |_| | | |____| | (_) | |_| | (_| |
 /_/    \_\___|\__|_| \_/ |_|\__|_|  \_____|_|\___/ \__,_|\__,_|
 Version: 7.1.0-SNAPSHOT

Thank you for installing activiti-cloud-full-example-7.1.0-M4

Your release is named example.

To learn more about the release, try:

  $ helm status example
  $ helm get example

Get the application URLs:

Activiti Gateway         : http://gateway.default.alfrescodemo.co.uk/
Activiti Identity        : http://identity.default.alfrescodemo.co.uk/auth
Activiti Modeler         : http://gateway.default.alfrescodemo.co.uk/modeling
Activiti Runtime Bundle  : http://gateway.default.alfrescodemo.co.uk/rb
Activiti Cloud Connector : http://gateway.default.alfrescodemo.co.uk/example-cloud-connector
Activiti Query           : http://gateway.default.alfrescodemo.co.uk/query
Activiti Audit           : http://gateway.default.alfrescodemo.co.uk/audit
Notifications GraphiQL   : http://gateway.default.alfrescodemo.co.uk/notifications/graphiql
Notifications WebSockets : http://gateway.default.alfrescodemo.co.uk/notifications/ws/graphql
Notifications Graphql    : http://gateway.default.alfrescodemo.co.uk/notifications/graphql

To see deployment status, try:

  $ kubectl get pods -n default
raphaels-mbp-1:development raphaelallegre$ 

下面是BPMN 2建模应用程序。默认用户:modeler /密码。

Activiti BPMN 2 process modelling application.

 

 有关BPMN建模应用程序的更多信息,请查看:

Step 4: Use the deployed services(步骤4:使用已部署的服务)
如果您还没有安装它,请在您的机器上安装它(Postman Client)。
然后,使用命令下载Activiti云邮差集合:

curl -o Activiti_v7_REST_API.postman_collection.json https://raw.githubusercontent.com/Activiti/activiti-cloud-examples/develop/Activiti%20v7%20REST%20API.postman_collection.json

在Postman中使用Import按钮导入集合。

在调用任何服务之前,您需要在Postman中创建一个新的环境。您可以通过转到管理环境图标(cog)来做到这一点。

 

 

然后“Add”一个新环境,并为其添加一个名称。
现在您需要为环境配置变量:“gateway”、“idm”和“realm”
对于网关,您需要复制与您的Ingress相关联的url, idm也是如此,这是使用Keycloak的SSO和idm。对于领域,输入" activiti ":

 

 单击Save或Update,然后就可以开始使用该环境了。确保你在右边的下拉菜单中选择了环境:

 

 如前面的截图所示,如果您到keycloak目录并选择“getKeycloakToken testuser”,您将得到将用于验证进一步请求的令牌。

请注意,这个令牌是时间敏感的,它将自动失效,因此如果开始得到未经授权的错误,您可能需要重新获取它。
获得用户的令牌后,就可以与所有用户端点进行交互。例如,你可以创建一个请求来查看哪些流程定义部署在我们的example Runtime Bundle中:

 

 现在你也可以从我们的SimpleProcess中启动一个新的流程实例:

 

 

{
  "processDefinitionKey": "SimpleProcess",
  "variables": {
    "firstName": "salaboy",
    "lastName": "salaboy",
    "age": 99
  },
  "payloadType":"StartProcessPayload"
}

您可以检查审计服务是否包含与刚刚启动的流程实例相关联的事件。

 

 并且查询服务已经包含了关于进程执行的信息:

 

 现在,您已经准备好开始使用这些服务来自动化您自己的业务流程。

最后,你可以通过浏览器访问Swagger的所有服务文档:

http://activiti-cloud-gateway.external-ip.nip.io/rb/swagger-ui/index.html
http://activiti-cloud-gateway.external-ip.nip.io/audit/swagger-ui/index.html
http://activiti-cloud-gateway.external-ip.nip.io/query/swagger-ui/index.html

 

 我们所有的服务都使用SpringFox来生成这个文档并为它提供一个UI

Summary(总结)
在本教程中,我们已经了解了如何创建Kubernetes集群(使用GKE或EKS),并使用Activiti Cloud HELM图表部署Activiti Cloud应用程序。
如果你不熟悉Kubernetes, Docker和GKE或AWS,这可能看起来是很多新的信息,我们的任务是简化这些入门指南中涵盖的所有步骤。
因此,我们建议您签出Jenkins X项目,它极大地简化了关于创建集群和配置项目基本基础设施的前两个部分。
作为Activiti云计划的一部分,我们正在确保我们遵循来自Kubernetes、Docker和Spring云社区的最佳实践,我们正在提供修复程序和反馈,以使该技术堆栈最适合云原生应用程序。
如果您对本教程有任何问题或反馈,请随时通过专门的。

 

posted @ 2022-12-13 21:10  WK_BlogYard  阅读(1101)  评论(0编辑  收藏  举报