Outline NET application Architecture Portal Modernization Maturity Model




















































- Slides: 52
Outline • • . NET application Architecture Portal Modernization Maturity Model • Cloud Infrastructure Ready • Cloud Dev. Ops Ready • Cloud Optimized Call to Action Q&A
. NET Application Architecture Portal • Microservices, Web, Mobile and UWP apps • 250 K+ e. Book downloads since //Build 2017 • Sample applications top rated on Git. Hub https: //github. com/dotnet-architecture/ dot. net/architecture
. NET Application Architecture Portal • Existing. NET developers and Solution Architects • Accompanied with journeys of modernizing two existing ASP. NET (Web. Forms, MVC) applications on e. Shop. Modernizing Git. Hub repository http: //aka. ms/modernizeebook
Modernization • IT SIMPLIFICATION Standardization • AGILITY Dev. Ops practices using continuous delivery & containers • TIME TO MARKET Scalability and HA Insights and Analytics • TOTAL COST OF OWNERSHIP Infrastructure Cost Ongoing Maintenance
Cloud Maturity Model
1. Cloud Infrastructure ready Simply Rehost your on-premise application to Iaa. S on Azure PROS Existing Apps . NET Web apps (on-prem. ) ü No re-architect or new code ü Least effort for quick migration ü Supported on the least common denominator on Azure Lift & Shift . NET Web apps (Cloud) On-Premises Iaa. S Cloud Relational Database Using: Servers or VMs on-premises Virtual Machines (VM) SQL Server, Oracle, My. SQL, etc. Azure SQL DB Managed Instance
1. Cloud Infrastructure ready Tools and Resources • Azure Migrate
1. Cloud Infrastructure ready Tools and Resources • Azure Migrate • Azure Site Recovery service overview
1. Cloud Infrastructure ready Tools and Resources • Azure Migrate • Azure Site Recovery service overview • Azure SQLDB Managed Instance and Database Migration Service
1. Cloud Infrastructure ready Tools and Resources • Azure Migrate • Azure Site Recovery service overview • Azure SQLDB Managed Instance and Database Migration Service • Migrating VMs in AWS to Azure VMs • New options to modernize your application with Azure SQL Database • Configuring Communications between VNETS • Upgrading an ASP. NET Web application to ASP. NET 4. X
1. Cloud Infrastructure ready Simply Rehost your on-premise application to Iaa. S on Azure PROS Existing Apps . NET Web apps (on-prem. ) ü No re-architect or new code ü Least effort for quick migration ü Supported on the least common denominator on Azure On-Premises Iaa. S Cloud Relational Database CONS × Smaller Cloud Value × Manual Patching, Upgrades × No Automated App Scaling and High Availability Lift & Shift . NET Web apps (Cloud) Using: Servers or VMs on-premises Virtual Machines (VM) SQL Server, Oracle, My. SQL, etc. SQL DB Managed Instance
Modernization Maturity Model Cloud Optimized Lift and Shift Existing. NET apps Cloud Infrastructure. Ready Cloud. Optimized Existing Apps & Services. NET Framework on-premises • • Cloud Dev. Ops. Ready Lift and shift approaches No code changes
2. Cloud Dev. Ops ready Get more Cloud benefit by Containerizing your app with Windows Server Docker Containers and deploying them to Azure cloud or on-premises. PROS ü ü ü Existing Apps . NET Web apps (on-prem. ) No re-architect or new code Increased density & lower deployment cost Improved productivity and Dev. Ops agility Portability of apps and dependencies High availability and Orchestration with ACS/K 8 and Service Fabric On-Premises Relational Database Using: Servers or VMs on-premises SQL Server, Oracle, My. SQL, etc. Lift & Shift . NET Web apps (Cloud)
Docker Containers • Docker helps automating the deployment of applications as portable, self-sufficient containers that can run on any cloud or on-premises. No more: “It works in my dev machine!. . . Why not in production? ” Now it is: “If it works in Docker, it works in production” Keywords about WHY Docker? - Dependencies (self-sufficient) - Deployment
Virtual Machines compared to Docker Containers App 1 App 2 App 3 Bins/Libs Guest OS + Network isolation at container level + Resources constraints at container level App/Svc 1 App/Svc 2 App/Svc 3 Bins/Libs Hypervisor Container Engine Host Operating System Infrastructure
Docker Engine for Linux and Windows Microsoft Azure 19
Docker and. NET • . NET Framework images Windows Server Core • . NET Core Docker images x. Plat. (Linux & Windows Nano Server) See at Docker Hub
Try for yourself: https: //github. com/dotnet-architecture/e. Shop. Modernizing
Image 2 Docker tool • Ports existing Windows application workloads to Docker • IIS and ASP. NET apps Extract ASP. NET websites config/dependencies from a VM or server • Generates dockerfiles for Windows Docker images, based on analysis of existing Windows machines. • Open Source community tool, powered by Docker (the company) Windows IIS ASP. NET dockerfiles
Scenario: Deploy to Azure VM through a Docker Registry Microsoft Azure Docker Registry PC Dev Environment VM for Test Environment Windows 10 or later Docker for Windows ASP. NET (. NET Framework) on Windows Server Core Container Windows Server 2016 or later Docker Engine Docker Hub or Azure Container Registry Docker engine and Docker CLI docker push Docker-compose up docker pull SQL Server on Windows Server Core Container Local Docker Image Repository (*) docker-compose build or docker build (*) SQL Server in a container should only be used for dev/test environments. Move to high available systems, like Azure SQL Database, for production environments
Scenario: Deploy to Azure VM through CI/CD pipelines 5. 2. Application code repo (SCC) 3. 4. Build, CI CD, deploy Test/Staging Azure VM Windows Server 2016 Docker Engine (*) VSTS docker push Code Push git push Custom Image Docker registry Docker Hub (Internet) or Azure Container Registry (Azure) Inner loop 1. Code, run, debug VSin. Application Insights (*) SQL Server a container should only be used for dev/test environments. Move to high available systems, like Azure SQL Database, for production environments Dev environment
Why do you need orchestrators when moving to production? How to scale-out application containers? And with no Iaa. S/VM operations? SQL Server on Windows Server Core Container Azure SQL Database Or Azure SQL Database Managed Instance Or SQL Server cluster on-premises üOrchestrators ü High Availability ü Paa. S service
Azure Product Orchestrator Description Good for Common workloads Kubernetes is an open-source platform for automating deployment, scaling, and operations of application containers across clusters of hosts Production-ready & Windows/Linux ecosystem Microservices based on containers Mesosphere DC/OS As a datacenter operating system, DC/OS is itself a distributed system, a cluster manager and a container platform Production-ready & Linux ecosystem Microservices based on containers Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and developers can establish and manage a cluster of Docker nodes as a single virtual system Production-ready & Linux ecosystem Microservices based on containers Service Fabric Azure Service Fabric is a distributed systems platform that makes it easy to package, deploy, and manage scalable and reliable microservices Production-ready & Linux ecosystem a) Stateful svc & Actors b) Microservices based on plain processes c) Microservices based on containers Kubernetes Azure Container Service Azure Service Fabric
Azure Product Orchestrator Kubernetes Azure Container Service Mesosphere DC/OS Docker Swarm Azure Service Fabric Description Good for Common workloads Kubernetes is an open-source platform for automating deployment, scaling, and operations of application containers across clusters of hosts Production-ready & Windows/Linux ecosystem Microservices based on containers As a datacenter operating system, DC/OS is itself a distributed system, a cluster manager and a container platform Production-ready & Linux ecosystem Microservices based on containers Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and developers can establish and manage a cluster of Docker nodes as a single virtual system Production-ready & Linux ecosystem Microservices based on containers Azure Service Fabric is a distributed systems platform that makes it easy to package, deploy, and manage scalable and reliable microservices Production-ready & Linux ecosystem a) Stateful svc & Actors b) Microservices based on plain processes c) Microservices based on containers
Scenario: Direct deployment to a Kuberbetes cluster in ACS Microsoft Azure PC Dev Environment Kubernetes Cluster – Production Windows 10 or later Docker for Windows Kubectl (K 8 s CLI) ACS K 8 s Cluster Windows Server 2016 nodes Private vnet Node docker build Local Docker Image Repository Kubectl (K 8 s CLI) 1 docker push o epl pp D A d man cluster Com to kubectl create -f app-deploy. yml 2 t ymen Azure Load Balancer Docker host Node Master Node - DNS Scheduler Proxy Etc. Docker host Additional nodes (*) SQL Server in a container should only be used for dev/test environments. Move to high available systems, like Azure SQL Database, for production environments
Scenario: Deploy to Kubernetes through CI/CD pipelines ACS – Kubernetes 2. Application code repo (SCC) 3. 4. Build, CI CD, deploy VSTS (*) docker push Code Push git push Custom Image Docker registry Docker Hub (Internet) or Azure Container Registry (Azure) Inner loop 1. Code, run, debug VSin. Application Insights (*) SQL Server a container should only be used for dev/test environments. Move to high available systems, like Azure SQL Database, for production environments Dev environment
Try for yourself: Deploy e. Shop. Modernized to Kubernetes Deploy e. Shop. Modernized to Service. Fabric
2. CONS in Cloud Dev. Ops ready Get more Cloud benefit by Containerizing your app with Windows Server Docker Containers and deploying them to Azure using production orchestration PROS ü ü ü Existing Apps . NET Web apps (on-prem. ) No re-architect or new code Increased density & lower deployment cost Improved productivity and Dev. Ops agility Portability of apps and dependencies High availability and Orchestration with ACS/K 8 and Service Fabric CONS × Containerization is an additional step in the learning curve On-Premises Relational Database Using: Servers or VMs on-premises SQL Server, Oracle, My. SQL, etc. Lift & Shift . NET Web apps (Cloud)
2. Cloud Dev. Ops ready Tools and Resources • New options to modernize your application with Azure SQL Database • Azure SQLDB Managed Instance and Database Migration Service • Configuring Communications between VNETS • Upgrading an ASP. NET Web application to ASP. NET 4. X • Azure Site Recovery service overview • Migrating VMs in AWS to Azure VMs
Cloud Maturity Model
3. Going to Cloud-Optimized (Full Paa. S) Extend your apps with new services based upon Server less computing, Microservices architecture and Paa. S services (App. Service) to fully exploit the advantages of the cloud. PROS Existing Apps . NET Web apps (on-prem. ) ü Optimized for long term agility On-Premises Relational Database Using: Servers or VMs on-premises SQL Server, Oracle, My. SQL, etc. Wrap-up
Microservices application Traditional application (monolith) • • A traditional application has most of its functionality within a few processes that are componentized with layers and libraries. Scales by cloning the app on multiple servers/VMs/Containers App 1 • • A microservice application segregates functionality into separate smaller services. Scales out by deploying each service independently with multiple instances across servers/VMs App 1 App 2
3. Going to Cloud-Optimized (Full Paa. S) Extend your apps with new services based upon Server less computing, Microservices architecture and Paa. S services (App. Service) to fully exploit the advantages of the cloud. PROS Existing Apps . NET Web apps (on-prem. ) ü Optimized for long term agility ü Optimized for scale and high availability ü Modern Architecture with Microservices and Cloud Native technologies On-Premises Relational Database Using: Servers or VMs on-premises SQL Server, Oracle, My. SQL, etc. Wrap-up
When to use Azure App Service? (Paa. S for Web Apps) Server-side applications in. NET Framework A NO dependencies Use just. NET Framework on pure Paa. S App has server/custom dependencies? YES, dependencies B Use. NET Framework on Windows Containers Server/custom dependencies: i. e. MSI to install on server, COM/COM+ components, ISAPI, etc. Cloud-Optimized for web apps Cloud Dev. Ops-Ready for web apps
3. Going to Cloud-Optimized (Full Paa. S) Extend your apps with new services based upon Server less computing, Microservices architecture and Paa. S services (App. Service) to fully exploit the advantages of the cloud. PROS Existing Apps . NET Web apps (on-prem. ) ü Optimized for long term agility ü Optimized for scale and high availability ü Modern Architecture with Microservices and Cloud Native technologies On-Premises Relational Database CONS × Requires significant code refactoring or rewriting (increased time and budget) Using: Servers or VMs on-premises SQL Server, Oracle, My. SQL, etc. Wrap-up
Modernization Maturity Model
Data Migration SQL Server On. Prem ü No Migration or changes ü Hybrid Scenarios × Setup VPN or Express Route for mission control workloads × Network Latency SQL Server on Azure VM’s (Iaa. S) ü ü ü × Fast migration with minimal changes Eliminates hardware costs Hybrid deployment available Manual Patching, Scaling and HA Azure Database Migration Service Azure SQL DB Managed Instance (Paa. S)* ü Built-in HA, Scaling, Upgrades ü VNET support for private IP address ü Eliminates hardware & administrative costs Azure Database Migration Service
Hybrid – Connecting ‘SQL Server On. Prem’ to Azure Secure point-to-site connectivity Secure site-to-site VPN connectivity Express. Route private connectivity • • Developers POC Efforts Small scale deployments Connect from anywhere • SMB, Enterprises • Connect to Azure compute • • SMB & Enterprises Mission critical workloads Backup/DR, media, HPC Connect to all Azure services
Managing Identity • Enable Azure AD Domain services in a few clicks • Users, passwords and groups sync’d from Azure AD tenant • Reflection of Azure AD Azure Your virtual network Azure AD Domain Services Your Azure Iaa. S workloads/apps Azure Active Directory Windows Server Active Directory
Other Recommended Improvements. NET VERSIONS • Recompile. NET 2. 0, 3. 5 apps to target latest. NET 4. X version ASP. NET CACHING • In. Proc vs. Distributed Caching • Azure Redis Cache provides a session state provider (link here) CENTRALIZED LOGGING • Azure provides native support for log tracing and diagnostics (Blob storage, File Storage, Table Storage) SECURITY • Encryption, MFA, RBAC, Hardware Security Model and more
Call to Action http: //aka. ms/modernizeebook http: //dot. net/architecture
https: //myignite. microsoft. com/evaluations https: //aka. ms/ignite. mobileapp
Call to Action http: //aka. ms/modernizeebook http: //dot. net/architecture
Please evaluate this session Your feedback is important to us! The s lide w ill be This s repla lide is req u ced o nsite ired. Do N throu O gh Sil T delete o ver Fo x Pro r alter the ducti ons w slide. ith an upda ted Q R code. From your PC or Tablet visit My. Ignite at http: //myignite. microsoft. com From your phone download and use the Ignite Mobile App by scanning the QR code above or visiting https: //aka. ms/ignite. mobileapp