26/08/2021
São Paulo - MuleSoft Meetup Group
API MANAGEMENT NO KUBERNETES COM ANYPOINT SERVICE
MESH
2
Renato de Oliveira
Integration Architect na Harpia Cloud
• +10 anos desenvolvimento e integração
• Desde 2016 trabalhando com MuleSoft
• Certificações:
• MuleSoft Certified Integration Architect
• MuleSoft Certified Platform Architect
• MuleSoft Certified Developer – Mule 4
• MuleSoft Certified Developer – Integration and API Associate
• MuleSoft Certified Developer - API Design Associate (RAML 1.0)
• MuleSoft Meetup Speaker
3
● Microservices
● Anypoint Service Mesh
● Demo
● Licenciamento
Agenda
Microservices
5
Microservices Reflexão
● Todos nós já sabemos os ganhos que podemos obter através de uma arquitetura baseada e
microservices, mas será que sabemos as complexidades de uma arquitetura assim?
6
Microservices Complexidades
● Discovery
● Governança
● Maior complexidade na segurança (superfície maior exposta)
● Maior complexidade monitoramento, requer observabilidade
● Requer DevOps
7
Microservices Ferramentas
● Linguagem de Programaçao (C#, Java, NodeJs, Python, Go Lang, etc ...)
● Banco de dados (MongoDb, Sql Server, Oracle, MySql, Redis, etc ...)
● Git / Jenkins / Azure DevOps
● Docker
● Kubernetes / Openshift
● Grafana / Prometheus / Elastic Stack
● Istio / Envoy
● API Gatway / API Manager / API Portal
● Identity Provider
Istio
● O Istio é um Service Mesh de código aberto que faz camadas transparentes em aplicativos
distribuídos existentes.
8
Microservice sem Istio
9
Microservice com Istio
10
Anypoint Service Mesh
12
Anypoint Service Mesh
● Anypoint Service Mesh permite que você estenda sua rede de microservices, incluindo seus
aplicativos não Mulesoft na esfera Anypoint Platform.
● Exchange/Design Center: API Portal (Discovery)
- Catalogo
- Documentação
- Especificação (operações, entradas e saídas)
- Exemplos
- Diagramas
- Gestão de acesso
● API Manager (Governança, Segurança, Métricas)
- Aplicação de politicas de segurança
- Visualização de métricas de API
13
Anypoint Service Mesh
14
Anypoint Service Mesh
15
API Management sem Anypoint Service Mesh
Demo
Instalar Anypoint Service Mesh
Anypoint Service Mesh - Instalar
● Baixar Anypoint Service Mesh CLI:
● Instalar Anypoint Service Mesh
18
mkdir -p $HOME/.asm && curl -Ls http://anypoint.mulesoft.com/servicemesh/xapi/v1/install > $HOME/.asm/asmctl
&& chmod +x $HOME/.asm/asmctl && export PATH=$PATH:$HOME/.asm
asmctl install
Anypoint Service Mesh - Instalar
● Visualizar POD’s do Anypoint Service Mesh
19
kubectl get pods -n service-mesh
Anypoint Service Mesh - Instalar
● Instalar o Adapter
20
kubectl apply -f nto-payment-asm-adapter.yaml
apiVersion: servicecatalog.k8s.io/v1beta1
kind: ServiceInstance
metadata:
name: nto-payment-service-mesh-adapter
namespace: nto-payment
labels:
service-mesh.mulesoft.com/kind: adapter
spec:
clusterServiceClassExternalName: anypoint-service-
mesh-adapter
clusterServicePlanExternalName: small
parameters:
clientId: <<client id>>
clientSecret: <<client secret>>
platformUri: https://stgx.anypoint.mulesoft.com
replication:
replicas: 2
Anypoint Service Mesh - Instalar
● Visualizar POD’s do Anypoint Service Mesh
21
asmctl adapter list
Anypoint Service Mesh - Instalar
● Listar as aplicações
● Alterar a label do serviço para habilitar o sidecar com o Anypoint Service Mesh
22
kubectl get deployments -n nto-payment
kubectl -n nto-payment patch deploy customer-app --type=json -
p='[{"op": "replace", "path":
"/spec/template/metadata/labels/service-
mesh.mulesoft.com","value":"enable"}]'
Anypoint Service Mesh - Instalar
● Realizar o binding das API’s com o adapter
23
kubectl apply -f demo-bind-customer-api.yaml
apiVersion: servicecatalog.k8s.io/v1beta1
kind: ServiceBinding
metadata:
name: customer-api-binding
namespace: nto-payment
labels:
service-mesh.mulesoft.com/kind: adapter-binding
spec:
instanceRef:
name: nto-payment-service-mesh-adapter
parameters:
apiId: <<autodiscovery>>
service: customer-service
Anypoint Service Mesh - Instalar
24
Licenciamento
Licenciamento
https://docs.mulesoft.com/service-mesh/1.1/provision-adapter-configure-service-mesh-CLI
Obrigado

Workshop anypoint service mesh

  • 1.
    26/08/2021 São Paulo -MuleSoft Meetup Group API MANAGEMENT NO KUBERNETES COM ANYPOINT SERVICE MESH
  • 2.
    2 Renato de Oliveira IntegrationArchitect na Harpia Cloud • +10 anos desenvolvimento e integração • Desde 2016 trabalhando com MuleSoft • Certificações: • MuleSoft Certified Integration Architect • MuleSoft Certified Platform Architect • MuleSoft Certified Developer – Mule 4 • MuleSoft Certified Developer – Integration and API Associate • MuleSoft Certified Developer - API Design Associate (RAML 1.0) • MuleSoft Meetup Speaker
  • 3.
    3 ● Microservices ● AnypointService Mesh ● Demo ● Licenciamento Agenda
  • 4.
  • 5.
    5 Microservices Reflexão ● Todosnós já sabemos os ganhos que podemos obter através de uma arquitetura baseada e microservices, mas será que sabemos as complexidades de uma arquitetura assim?
  • 6.
    6 Microservices Complexidades ● Discovery ●Governança ● Maior complexidade na segurança (superfície maior exposta) ● Maior complexidade monitoramento, requer observabilidade ● Requer DevOps
  • 7.
    7 Microservices Ferramentas ● Linguagemde Programaçao (C#, Java, NodeJs, Python, Go Lang, etc ...) ● Banco de dados (MongoDb, Sql Server, Oracle, MySql, Redis, etc ...) ● Git / Jenkins / Azure DevOps ● Docker ● Kubernetes / Openshift ● Grafana / Prometheus / Elastic Stack ● Istio / Envoy ● API Gatway / API Manager / API Portal ● Identity Provider
  • 8.
    Istio ● O Istioé um Service Mesh de código aberto que faz camadas transparentes em aplicativos distribuídos existentes. 8
  • 9.
  • 10.
  • 11.
  • 12.
    12 Anypoint Service Mesh ●Anypoint Service Mesh permite que você estenda sua rede de microservices, incluindo seus aplicativos não Mulesoft na esfera Anypoint Platform. ● Exchange/Design Center: API Portal (Discovery) - Catalogo - Documentação - Especificação (operações, entradas e saídas) - Exemplos - Diagramas - Gestão de acesso ● API Manager (Governança, Segurança, Métricas) - Aplicação de politicas de segurança - Visualização de métricas de API
  • 13.
  • 14.
  • 15.
    15 API Management semAnypoint Service Mesh
  • 16.
  • 17.
  • 18.
    Anypoint Service Mesh- Instalar ● Baixar Anypoint Service Mesh CLI: ● Instalar Anypoint Service Mesh 18 mkdir -p $HOME/.asm && curl -Ls http://anypoint.mulesoft.com/servicemesh/xapi/v1/install > $HOME/.asm/asmctl && chmod +x $HOME/.asm/asmctl && export PATH=$PATH:$HOME/.asm asmctl install
  • 19.
    Anypoint Service Mesh- Instalar ● Visualizar POD’s do Anypoint Service Mesh 19 kubectl get pods -n service-mesh
  • 20.
    Anypoint Service Mesh- Instalar ● Instalar o Adapter 20 kubectl apply -f nto-payment-asm-adapter.yaml apiVersion: servicecatalog.k8s.io/v1beta1 kind: ServiceInstance metadata: name: nto-payment-service-mesh-adapter namespace: nto-payment labels: service-mesh.mulesoft.com/kind: adapter spec: clusterServiceClassExternalName: anypoint-service- mesh-adapter clusterServicePlanExternalName: small parameters: clientId: <<client id>> clientSecret: <<client secret>> platformUri: https://stgx.anypoint.mulesoft.com replication: replicas: 2
  • 21.
    Anypoint Service Mesh- Instalar ● Visualizar POD’s do Anypoint Service Mesh 21 asmctl adapter list
  • 22.
    Anypoint Service Mesh- Instalar ● Listar as aplicações ● Alterar a label do serviço para habilitar o sidecar com o Anypoint Service Mesh 22 kubectl get deployments -n nto-payment kubectl -n nto-payment patch deploy customer-app --type=json - p='[{"op": "replace", "path": "/spec/template/metadata/labels/service- mesh.mulesoft.com","value":"enable"}]'
  • 23.
    Anypoint Service Mesh- Instalar ● Realizar o binding das API’s com o adapter 23 kubectl apply -f demo-bind-customer-api.yaml apiVersion: servicecatalog.k8s.io/v1beta1 kind: ServiceBinding metadata: name: customer-api-binding namespace: nto-payment labels: service-mesh.mulesoft.com/kind: adapter-binding spec: instanceRef: name: nto-payment-service-mesh-adapter parameters: apiId: <<autodiscovery>> service: customer-service
  • 24.
    Anypoint Service Mesh- Instalar 24
  • 25.
  • 26.
  • 27.