Codemotion DevCast: App Modernization in the Cloud
1. App Modernization: how to make
better use of the Cloud
Lorenzo Barbieri
Cloud Solution Architect
linkedin.com/in/geniodelmale
2. (Hybrid) Cloud app continuum
Engineering
Complexity
and
Cost
Agility – Time to Market – Total Cost of Ownership – IT Simplification
Existing on-
premises
applications
VMs
Rehost
Containers
&
App
Services
Refactor
Microservices
Rearchitect
Serverless
Rebuild
New
SaaS apps
Replace
App Modernization
Lift & Shift
3. Platform Services
Infrastructure Services
Web
Apps
Mobile
Apps
API
Apps
Notification
Hubs
Hybrid
Cloud
Backup
StorSimple
Azure Site
Recovery
Import/Export
SQL
Database CosmostDB
Redis
Cache
Azure
Search
Storage
Tables
SQL Data
Warehouse
Azure AD
Health Monitoring
AD Privileged
Identity
Management
Operational
Analytics
Cloud
Services
Batch
Service
Fabric
Visual Studio
Application
Insights
Azure DevOps
Domain Services
HDInsight Machine
Learning Stream Analytics
Data
Factory
Event
Hubs
Data Lake
Analytics Service
IoT Hub
Data
Catalog
Security &
Management
Azure Active
Directory
Multi-Factor
Authentication
Automation
Portal
Key Vault
Store/
Marketplace
VM Image Gallery
& VM Depot
Azure AD
B2C
Scheduler
Xamarin
App Center
Power BI
Embedded
SQL Server
Stretch Database
Mobile
Engagement
Functions
Cognitive Services Bot Framework Cortana
Security Center
AKS
(Kubernetes
Service)
VM
Scale Sets
Data Lake Store
BizTalk
Services
Service Bus
Logic
Apps
API
Management
Content
Delivery
Network
Media
Services
Media
Analytics
ACI
(Container
Instaces)
Event Grid
5. Modernizing web apps with Azure
No consistent service level/uptime.
No scaling if unexpected traffic.
Reduced agility/lack of flexibility.
Monolithic applications, legacy code.
Lack of resources for new initiatives.
Limited technical support.
Challenges App Service benefits
Built-in no-configuration auto-
scaling, load balancing and failover.
CI/CD/DevOps out of the box.
Serverless options for all app
scenarios.
Frees IT to focus on innovation.
Use existing skills, tools & frameworks.
6. What is a container?
Virtualize the hardware
VMs as units of scaling
Virtual machines
App
Containers
Virtualize the operating system
Applications as units of scaling
Container
App
7. What are microservices?
APP APP APP
Monolithic
Large, all-inclusive app
Microservices
Small, independent services
A Software Architectural Style
Applications are composed of small, independent modules
that communicate with each other using well-defined APIs.
Not platform specific.
Decoupled
These service modules are highly decoupled building
blocks that are small enough to implement a single
functionality but together can form larger systems
Independently versioned, deployed & scaled
With a microservices architecture, developers can create,
manage and improve application services independently,
even using different languages
Containers provide the consistent format and isolation
desired by microservices.
8. How can containers help your app modernization journey?
From traditional systems to a portfolio of modern apps
App
Container
App
Existing/New
Applications
Lift and shift to
containers
Each host often runs
8 containers
at a time1
Microservices
Seconds to
deploy, churns
12x faster1
Continuous innovation with DevOps
46x more frequent for code delivery2
1: Datadog Report: 8 Surprising Facts About Real Docker Adoption; 2: 2017 state of DevOps Report
10. Containers in Azure
App Service
Deploy web apps
or APIs using
containers in a
PaaS environment
Service Fabric
Modernize legacy
.NET Framework
applications to
microservices
AKS
Scale and orchestrate
containers using
Kubernetes
Container Instance
Elastically burst
from your Azure
Kubernetes Service
(AKS) cluster
Ecosystem
Bring your
Partner solutions
that run great on
Azure
Azure Container Registry Docker Hub
Choice of developer tools and clients
15. Do you want more?
http://bit.ly/MasteringServerless
16. Thank you!
Lorenzo Barbieri
Cloud Solution Architect
lorenzo.barbieri@microsoft.com
https://www.geniodelmale.info
LinkedIn.com/in/geniodelmale
Connect with me on LinkedIn