azure spring cloud...simplify your cloud development for spring applications responsibilities diy...

38
Azure Spring Cloud Asir Selvasingh Principal PM Architect --- Java on Azure September 2020

Upload: others

Post on 27-Jan-2021

6 views

Category:

Documents


1 download

TRANSCRIPT

  • Azure Spring Cloud

    Asir Selvasingh

    Principal PM Architect --- Java on Azure

    September 2020

  • On KubernetesYou do not have to learn or

    manage Kubernetes

  • Nov 2018 Nov 2019

    52.5 Million+ Spring Boot downloads per month

    95 Million+ Spring Boot downloads per month

    Spring – trusted and growing

    Source – The State of Spring 2020

    https://tanzu.vmware.com/content/ebooks/state-of-spring-2020

  • Why Spring and Spring Cloud Apps

    “The Spring and Spring/Boot frameworks

    (57%) dominate today when it comes to

    building microservices ” – Jakarta EE

    Developer Survey

  • The world’s leading brands run on Azure

  • App Configuration

    Event Hubs

    Service Bus

    Storage

    Redis

    Functions

    Spring on Azure cloud.spring.io/spring-cloud-azure/

    SQL Database

    MySQL

    PostgreSQL

    Maria DB

    Cosmos DB

    • SQL

    • MongoDB

    • Cassandra

    • Gremlin

    SQL Database

    PostgreSQL

    MySQL

    Active Directory (AAD)

    AAD B2C

    Spring Cloud Spring Data Spring Security

    R2DBC Spring Cache

    Redis Cache

    Storage

    Spring Messaging

    Spring Resource

    Service Bus

    Micrometer

    Monitor (includes Log Analytics)

  • Spring BootBuild anything

    Spring CloudCoordinate anything

    designed to get you up and running as quickly as possible,

    with minimal upfront configuration of

    Spring

    provides a set of tools that makes communication

    between microservices

    easier

    Spring-based Microservices

  • Spring-based MicroservicesSpring

    Cloud Apps

    Spring Cloud

    Components

    Spring Cloud

    Components

    Cloud

    Services

    App

    Consumers

    Breaker

    dashboard

    Service

    registry

    Distributed

    tracing

    Config

    dashboard

    IoT

    Mobile

    Browser

    API

    Gateway

    Microservices

    Microservices

    Microservices

    Message brokers

    Databases

  • Common Impediments

    High effort required to manage cloud infrastructure for Spring boot applications

    Application lifecycle is difficult to manage

    Painful to troubleshoot application issues

    Spring

    Cloud Apps

    Spring Cloud

    Components

    Spring Cloud

    Components

    Cloud

    Services

    App

    Consumers

    Breaker

    dashboard

    Service

    registry

    Distributed

    tracing

    Config

    dashboard

    IoT

    Mobile

    Browser

    API

    Gateway

    Microservices

    Microservices

    Microservices

    Message brokers

    Databases

  • Azure Spring Cloud

  • Azure Spring Cloud

    More choices and full integration into Azure’s ecosystem and services

    Fully managedinfrastructure

    Built-in app lifecycle

    management

    Ease of monitoring

    Enterprise ready

    A fully managed service for Spring Boot microservices

  • Azure Spring Cloud

    Jointly developed,

    operated, and supportedManaged service

    Zero code changesOut-of-the-box

    monitoring and tracing

    Tanzu Build Service

  • On KubernetesYou do not have to learn or

    manage Kubernetes

  • ©Microsoft Corporation Azure

    Fully Managed Infrastructure – Azure Spring Cloud

    ▪ Built-in native Spring Cloud

    components

    ▪ Config Server

    ▪ Service Registry

    ▪ Distributed Tracing

    ▪ Circuit Breaker

    (upcoming)

    ▪ Blue/Green for zero downtime

    ▪ Auto Horizontal Scale based

    on metrics or schedule

    ▪ VNET (private network) to

    secure your app and traffic

    Azure Database

    for MySQL

    Azure Cosmos DB

    Azure Cache

    for Redis

    User Git Repository

    Azure Spring Cloud

    agents

    Azure Spring Cloud

    VMware Tanzu

    Build Service

    Azure Kubernetes Service

    Service

    Binding

    Config

    Source

    Service RuntimeUser Environment

    App 1 App 2 App N Config Server Service Registry Lifecycle Mgmt.

    Log Stream Data Encryption

    App Resiliency

    Azure DevOps

    CI/CD

    GitHub

    Jenkins

    Custom Domain Self-Diagnostics

    Metrics Tracing Managed IdentitiesLogs Service Principals

    Azure Monitor Azure Active Directory

  • Simplify your cloud development for Spring applications

    ResponsibilitiesDIY with Spring

    Boot

    Azure Spring

    Cloud Service

    Application

    iteration,

    debugging

    CI/CD

    Build and

    manage Clusters

    Host Spring

    Cloud

    Middleware

    Monitoring and

    logging

    Scaling

    Patching

    Support

    Customer VMware Microsoft

    Azure Database

    for MySQL

    Azure Cosmos DB

    Azure Cache

    for Redis

    User Git Repository

    Azure Spring Cloud

    agents

    Azure Spring Cloud

    VMware Tanzu

    Build Service

    Azure Kubernetes Service

    Service

    Binding

    Config

    Source

    Service RuntimeUser Environment

    App 1 App 2 App N Config Server Service Registry Lifecycle Mgmt.

    Log Stream Data Encryption

    App Resiliency

    Azure DevOps

    CI/CD

    GitHub

    Jenkins

    Custom Domain Self-Diagnostics

    Metrics Tracing Managed IdentitiesLogs Service Principals

    Azure Monitor Azure Active Directory

  • Demo –Azure Spring Cloud

  • Demo

    Deploy Spring Cloud apps to Azure without worrying about:

    Infrastructure and scaling

    Learning or managing K8s

    Spring Cloud middleware – config, registry,

    tracing and gateway, or

    Monitoring

  • Deploy and Visualize

  • Setup Diagnostics

  • Troubleshoot

  • Troubleshoot

  • Which app instance is misbehaving | slow?

  • Which App Instance is misbehaving | slow?

  • Monitor Performance

  • Monitor Performance

  • Monitor Failures

  • Manage secrets – zero-trust model

  • Reference Arch – isolate apps and expose apps to Internet

    Integrate with Azure Firewall & App Gateway to allow | deny traffic to

    FQDNs

    AzureFirewallSubnet

    Corp Firewal

    GatewaySubnet Management subnet

    Jumpbox VM

    hub-virtual-network spoke-virtual-network

    Virtual network

    peering

    Gateway

    On-premises network

    Microsoft

    edge routers

    Local edge

    routers

    ExpressRoute

    circuit

    ExpressRoute

    Gateway

    Customer s network

    Internet

    ...

    Private FQDN

    User configuration

    L3-L7 Connectivity Policies

    Microsoft Threat Intelligence

    Known Malicious IPs and FQDNs

    Threat intel, NAT,

    network and application

    traffic filtering rules

    allow inbound |

    outbound access

    Traffic is denied by default

    RG = corporate-hub

    service-runtime-subnet jumpbox-subnet

    mysql-subnetapps-subnet

    Config Server Service Registry

    ...

    DNS Azure Load

    balancer

    default subnet

    Corp Application

    Gateway

  • Demo code repo

    https://github.com/Azure-Samples/spring-petclinic-microservices

  • Azure Spring Cloud – Recap

  • Azure Spring Cloud - Benefits

    Easily monitor

    your apps

    Built-in application

    lifecycle management

    Simplify infrastructure

    management

    Easily identify performance

    bottlenecksSpring Cloud componentsRun your Spring Boot apps

    Gain insight into app dependencies

    using Azure MonitorDeploy source code or build artifactsScalable global infrastructure

    Aggregate metricsAutomatically wire your app with

    Spring Cloud infrastructure

    Reduce downtime and deployment

    risk

  • On KubernetesYou do not have to learn or

    manage Kubernetes

  • Spring Azure

    App Configuration

    Event Hubs

    Service Bus

    Storage

    Redis

    Functions

    cloud.spring.io/spring-cloud-azure/

    SQL Database

    MySQL

    PostgreSQL

    Maria DB

    Cosmos DB

    • SQL

    • MongoDB

    • Cassandra

    • Gremlin

    SQL Database

    PostgreSQL

    MySQL

    Active Directory (AAD)

    AAD B2C

    Spring Cloud Spring Data Spring Security

    R2DBC Spring Cache

    Redis Cache

    Storage

    Spring Messaging

    Spring Resource

    Service Bus

    Micrometer

    Monitor (includes Log Analytics)

  • Get specialized assistance building Java apps or migrating them to Azure Spring Cloud

    We cana) Guide your design and plan – thru architecture design session / workshop

    b) Help build representative proof of concepts or pilot• By customer and engineers in Java on Azure team

    Nominate yourself …

  • Get specialized assistance building Java apps or migrating them to Azure Spring Cloud

    http://aka.ms/pilot-my-spring-cloud-apps

  • ©Microsoft Corporation

    Azure

    Build your cloud-native solutions today!

    Get started --

    o Deploy Spring apps to Azure Spring Cloud using quickstart

    o Learn using a self-paced workshop on GitHub

    o Deploy an existing app to Azure Spring Cloud

    o Learn more about implementing solutions on Azure Spring Cloud

    o Migrate your Spring Boot, Spring Cloud and Tomcat apps to Azure Spring Cloud

    o Wire Spring apps to interact with Azure services

    https://aka.ms/get-started-with-azure-spring-cloudhttps://github.com/microsoft/azure-spring-cloud-traininghttps://github.com/Azure-Samples/spring-petclinic-microserviceshttps://docs.microsoft.com/en-us/azure/spring-cloud/https://docs.microsoft.com/en-us/azure/developer/java/migration/migrate-spring-boot-to-azure-spring-cloudhttps://docs.microsoft.com/en-us/azure/developer/java/migration/migrate-spring-cloud-to-azure-spring-cloudhttps://aka.ms/migrate-tomcat-to-azure-spring-cloud-servicehttps://docs.microsoft.com/en-us/azure/developer/java/spring-framework/