Why even bother to modernize an application when it is running just fine? How would we even get started with so many options readily available on the Microsoft Azure platform? What about the costs? Getting your tried and trusted application ready for the Cloud can seem like an incredibly daunting task for you and your team.
No need to get worried. We can show you how to climb the mountain.
2. www.aspex.be 22
We work closely with you to build up technical
insight into your software.
We give you full SaaS support and offer added-value
through our experience and management tools.
---
Visit www.aspex.be for more information
Thomas Van Laere
2015 - TODAY
Microsoft Azure
Consultant
@Thomas_VanLaere
12. www.aspex.be 12
Approach A: Cloud Infrastructure Ready
12
vCenter Server and
vSphere support
6.5, 6.0, 5.5
Windows Guest OS
support
Windows Server 2016 NEW
Windows Server 2012 R2
Windows Server 2012
Windows Server 2008 R2
Linux Guest OS support RHEL 5.*, 6.* and 7.*
Cent OS 5.*, 6.* and 7.*
Ubuntu 14.04 and 16.04 LTS NEW
SUSE Enterprise Server 11 SP3, SP4
OEL 6.4 and 6.5
Debian 7 and 8 support NEW
Azure platform support Managed Disk NEW
Up to 4TB data disk support NEW
Encrypted Storage NEW
Azure Hybrid Use Benefit NEW
13. www.aspex.be 13
Approach A: Cloud Infrastructure Ready
13
Other Tools
Azure Site Recovery
Azure Database Migration Service
Database Migration Service
14. www.aspex.be 14
Approach A: Cloud Infrastructure Ready
14
Rehost the on-premise application using IaaS on Azure
Existing Apps
On-Premise
IaaS
CONS
— Smaller value
— Manual patching
— Manual upgrades
— No auto scaling
— No auto high availability
PROS
— Architecture remains
— Quick migration
— Least amount of effort
15. www.aspex.be 15
Where do we start - Approaches
15
Cloud
Infrastructure
Ready
Cloud
Native
Existing
Application or
Service
Cloud
DevOps
Ready
16. www.aspex.be 16
Approach B: Cloud DevOps Ready
16
Increase benefits by Containerizing with Windows Server Containers and
deploying them to Azure or on-premises
Existing Apps
On-Premise
Lift & Shift PROS
— Architecture remains
— Increased density
— Lower deployment cost
— Improved productivity
— High Availability
— Orchestration tooling
— Azure Service Fabric
— Azure Container Service
+ Potential
other Azure
services
26. www.aspex.be 26
Approach B: Cloud DevOps Ready
26
Image2Docker
— PowerShell
— Simplify creation of Dockerfiles
— Open Source tool with support
from Docker Inc.
— Built-in artifact discovery
27. www.aspex.be 27
Approach B: Cloud DevOps Ready
27
Scenario: Deploy to Azure VM through Docker Engine
Dev environment
(Windows 10 w/ Docker for Windows)
SQL Server Container
Windows Server Core
ASP.NET 4.6.2 Container
Windows Server Core
Docker
Image
Repository
1 > docker-compose build
2> docker-compose
Azure VM (Test/Accept)
(Windows 10 w/ Docker for Windows)
SQL Server Container
Windows Server Core
ASP.NET 4.6.2 Container
Windows Server Core
Docker
Image
Repository
2b> docker run
28. www.aspex.be 28
Approach B: Cloud DevOps Ready
28
Scenario: Deploy to Azure VM through Azure Container Registry
ACRDev environment
(Windows 10 w/ Docker for Windows)
SQL Server Container
Windows Server Core
ASP.NET 4.6.2 Container
Windows Server Core
Docker
Image
Repository
1 > docker-compose build
Azure VM (Test/Accept)
(Windows 10 w/ Docker for Windows)
SQL Server Container
Windows Server Core
ASP.NET 4.6.2 Container
Windows Server Core
Docker
Image
Repository
4> docker-compose up
29. www.aspex.be 29
Approach B: Cloud DevOps Ready
29
Scenario: Deploy to Azure VM through your CI/CD pipeline (IaaS)
1. Dev environment
2. Code repo 3. Build
ACR
4. Release 5. Test/Accept
SQL
Web
SQL
Web
30. www.aspex.be 30
Approach B: Cloud DevOps Ready
30
Scaling, High Availability in Production
ASP.NET 4.6.2 Container
Windows Server CoreASP.NET 4.6.2 Container
Windows Server CoreASP.NET 4.6.2 Container
Windows Server CoreASP.NET 4.6.2 Container
Windows Server CoreASP.NET 4.6.2 Container
Windows Server CoreASP.NET 4.6.2 Container
Windows Server CoreASP.NET 4.6.2 Container
Windows Server CoreASP.NET 4.6.2 Container
Windows Server Core
— Azure SQL Database Single/Elastic Pools
— Azure SQL Database Managed Instance
— SQL Server Cluster
31. www.aspex.be 31
Approach B: Cloud DevOps Ready
31
Azure Container Service - Kubernetes
Kubernetes Cluster – Production
Windows Server 2016 nodes
Private VNETNode
Docker HostNode
Docker HostNode
Docker HostNode
Docker HostNode
Web_1
Web_2
Master Node
-Deployment
-Proxy
-Scheduling
-Etc..
K
Pod 1
Pod 2
32. www.aspex.be 32
Approach B: Cloud DevOps Ready
32
Previous Scenario: Deploy to Azure VM through your CI/CD pipeline (IaaS)
1. Dev environment
2. Code repo 3. Build
ACR
4. Release 5. Test/Accept
SQL
Web
SQL
Web
33. www.aspex.be 33
Approach B: Cloud DevOps Ready
33
Scenario: Deploy to Orchestrators in Production (IaaS)
1. Dev environment
2. Code repo 3. Build
ACR
4. Release 5. Production
ACS
SQL
Web
34. www.aspex.be 34
Approach B: Cloud DevOps Ready
34
Scenario: Move to Azure Container Instances (PaaS)
1. Dev environment
2. Code repo 3. Build
ACR
4. Release 5. Production
ACI
SQL
Web
*Preview
35. www.aspex.be 35
Approach B: Cloud DevOps Ready
35
Increase benefits by Containerizing with Windows Server Containers and
deploying them to Azure or on-premises
Existing Apps
On-Premise
Lift & Shift
CONS
— Learning Curve
— Paradigm Shift
PROS
— Architecture remains
— Increased density
— Lower deployment cost
— Improved productivity
— High Availability
— Orchestration tooling
+ Potential
other Azure
services
36. www.aspex.be 36
Where do we start - Approaches
36
Cloud
Infrastructure
Ready
Cloud
Native
Cloud
DevOps
Ready
Existing
Application or
Service
37. www.aspex.be 37
Approach C: Cloud Optimized
37
Extend apps with Azure Cloud Services
Existing Apps
On-Premise
PROS
— Optimized for long term Agility
— Optimized for scale
— Optimized for high availability
— Modern architecture
Cloud-optimized
38. www.aspex.be 38
Approach C: Cloud Optimized
Traditional Application
— Few Processes
— Componentized with layers and
libraries
— Scaling achieved by cloning the app
— Multiple VMs/Containers
— Split up functionality into multiple
processes
— Scaling achieved through cloning
individual processes.
Microservices Application
39. www.aspex.be 39
Approach C: Cloud Optimized
39
Traditional Application Microservices Application
App X App X
40. www.aspex.be 40
Approach C: Cloud Optimized
40
What about Azure App Services? (aka Azure Web Apps)
ASP.NET
MCV
Web Forms
Web API
SignalR
Web Pages
WCF
App has
Server/Custom
Dependencies?
Cloud Optimized Approach
Azure App Service
No
Cloud DevOps Approach
Yes
41. www.aspex.be 41
Approach C: Cloud Optimized
41
Extend apps with Azure Cloud Services
Existing Apps
On-Premise
CONS
— Increased time and budget
— Code refactoring
— New features
— Learning curve
PROS
— Optimized for long term Agility
— Optimized for scale
— Optimized for high availability
— Modern architecture
Cloud-optimized
42. www.aspex.be 42
Data Migration
42
Data Migration
Azure SQL DB Managed Instance
— Built-in HA
— Built-in Scaling
— Built-in Patching
— Built-in Upgrades
— Private IP address via VNET
SQL Server – On-Premise
— No migration / changes
— Hybrid scenarios
— S2S-VPN / ExpressRoute
— Latency
SQL Server – Azure VMs
— Fast migration
— Hybrid scenarios
— Manual HA
— Manual Scaling
— Manual Patching
43. www.aspex.be 43
Other Recommended Improvements
43
Other Recommended Improvements
.NET Versions
— Recompile .NET 2.0, 3.5 apps to 4.x
ASP.NET Caching
— InProc vs. Distributed Caching
— Azure Redis Cache
Centralized Logging
— Native support for log tracing and diagnostics
Security
— Encryption, MFA, RBAC, HSM, etc..
Identity
— Azure Active Directory, AD Connect