SlideShare a Scribd company logo
An app modernization story with
Cloud Run
Mete Atamel
Developer Advocate at Google
@meteatamel
atamel.dev/tags/app-modernization
Stage 0: Prototype (Late 2015 / Early 2016)
Goal: Get something up and running
Reader
Transformer
Web API
Server: ASP.NET (4.6) Windows app on IIS hosting
Client: Android and iOS app with Ionic Framework
Prototype: Pros & Cons
+Worked!
+Easy to understand
+Easy to deploy
+Inexpensive
-Too much coupling
-Bad DevEx (FTP to see logs!)
-No redundancy
-No persistence
-No resilience
Prototype: Lessons Learned
1. Stick to MVP
2. Research your options
3. Avoid coupling at all costs
4. Design with future in mind
Stage 1: Lift & Shift (Late 2016 / Early 2017)
Goal: Improve resiliency and redundancy
Compute Engine Windows VMs on Google Cloud
Compute
Engine
Compute
Engine
Cloud Load
Balancer
Lift & Shift: Pros & Cons
+Easy to move with ASP.NET Framework Template
+Redundancy & load-balancing with Instance Template & Groups
+Possiblity of autoscaling
+Much better DevEx with Stackdriver logging, VM snapshots etc.
-More expensive than IIS hosting
Lift & Shift: Lessons Learned
1. Moving to Cloud was not that difficult
2. Cloud is much more than just hosting
The app served us well until 2019...
1. .NET Core
2. Containers
3. Windows dependency
4. Costs
Stage 2: Containarization (Early 2019)
Goal: Remove Windows dependency and cost
Re-write in ASP.NET Core (2.2), containerize w/ Docker &
deploy to App Engine Flex (Linux)
App Engine
Containarization: Pros & Cons
+No more Windows dependency & licensing
+Free autoscaling
+Revision management
+Traffic splitting
-VM based
-Pricing
-Slow deploys
Containarization: Lessons Learned
1. Refactor for clear benefits
2. Solid functional tests are crucial
3. Project organization matters
4. There’s no magic bullet
Container to
production
in seconds
Natively
Serverless
One experience,
where you want it
Cloud Run
Bringing serverless to containers
Around mid 2019...
HTTPS Endpoint
Public
• Website
• API endpoint
Private
• Internal services
• Async tasks
• Mobile backend
• Webhook
Billable time
Instance
Billable Time
Request 1 Start Request 1 EndRequest 2 Start Request 2 End
Instance Time
Billable
Non-billable
Stage 3: Serverless (Mid 2019)
Goal: Move from VM minute-based pricing to serverless pricing
Update to ASP.NET Core (3.0) & deploy to Cloud Run
Cloud Run
Serverless: Pros & Cons
+No VMs
+Serverless billing, much cheaper
+Quick deployments (seconds)
+Great DevEx (integrated logging, revision and traffic
management, etc.)
+Based on open-source Knative
-Still a monolith with monolith issues
Monolith issues
1. Scaling: all or nothing
2. Cold starts
3. In-memory state
4. No way to update individual services
Monolith decomposition questions
1. How do you break the monolith?
2. How do microservices communicate?
3. How do you handle persistence without
coupling?
Stage 4: Monolith to microservices (Early 2020)
Cloud Scheduler
Cloud
Pub/Sub
Converter
(Private)
Cloud Storage
Web
(Public)
Cloud Firestore
Reader
(Private)
Monolith to microservices: Pros & Cons
+Loosely coupled architecture
+Ability to update individual pieces
+Ability to use different languages
+Better utilization of resources
+Persistence
-Many moving parts
-More complex deployment
-Probably more expensive than a monolith?
Grand Lessons Learned
● Transformation does not have to be all or nothing
● Even simple lift & shift can have huge benefits
● Non-optimal solutions can be a stepping stone to
more optimal solutions
● Expect some kind of re-write for cloud at some point
● Monolith decomposition is hard! Need a good reason
beyond separation of concerns
@meteatamel
atamel.dev/tags/app-modernization
github.com/meteatamel/amathus
github.com/meteatamel/cloudrun-tutorial
cloud.google.com/run
Thank you!

More Related Content

PDF
Dylan Beattie "Architecture: The Stuff That's Hard to Change"
PDF
Sergii Bielskyi "Azure Logic App and building modern cloud native apps"
PPTX
Azure Functions Overview
PPTX
Logic Apps – Deployments
PPTX
SenchaCon 2016: An Ext JS Dashboard for IoT Data - Dan Gallo
PDF
Google Cloud Functions & Firebase Crash Course
PDF
Make your animations perform well - Anna Migas - Codemotion Rome 2017
PPTX
Building microservices with azure functions
Dylan Beattie "Architecture: The Stuff That's Hard to Change"
Sergii Bielskyi "Azure Logic App and building modern cloud native apps"
Azure Functions Overview
Logic Apps – Deployments
SenchaCon 2016: An Ext JS Dashboard for IoT Data - Dan Gallo
Google Cloud Functions & Firebase Crash Course
Make your animations perform well - Anna Migas - Codemotion Rome 2017
Building microservices with azure functions

What's hot (20)

PDF
Understanding Microservices
PPTX
Introduction to Azure Functions - Tutorial
PPTX
Serverless patterns v2 public
PPTX
Introduction to Azure Functions
PPTX
The 7 deadly sins of micro services
PPTX
Logic apps and PowerApps - Integrate across your APIs
PPTX
Building loosely coupled integrations with Logic Apps
PPTX
Introduction to serverless compute with azure functions
PDF
Building serverless integration solutions with Microsoft Azure
PPTX
Azure serverless architectures
PPTX
Evolving Services Into A Cloud Native World
PPTX
Azure Functions - Introduction
PDF
Joe Emison - 10X Product Development
PPTX
Creating reusable pieces in Logic Apps
PPTX
TUTTO SU VISUAL STUDIO ALM 2015
PPTX
New Serverless World, Cloud Native Apps
PPTX
Using Azure Functions for Integration
PPTX
Integration Monday - BizTalk Migrator Deep Dive
PDF
Connect + Docker + AWS = Bitbucket Pipelines
PPTX
WRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESS
Understanding Microservices
Introduction to Azure Functions - Tutorial
Serverless patterns v2 public
Introduction to Azure Functions
The 7 deadly sins of micro services
Logic apps and PowerApps - Integrate across your APIs
Building loosely coupled integrations with Logic Apps
Introduction to serverless compute with azure functions
Building serverless integration solutions with Microsoft Azure
Azure serverless architectures
Evolving Services Into A Cloud Native World
Azure Functions - Introduction
Joe Emison - 10X Product Development
Creating reusable pieces in Logic Apps
TUTTO SU VISUAL STUDIO ALM 2015
New Serverless World, Cloud Native Apps
Using Azure Functions for Integration
Integration Monday - BizTalk Migrator Deep Dive
Connect + Docker + AWS = Bitbucket Pipelines
WRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESS
Ad

Similar to Mete Atamel "An app modernization story with Cloud Run" (20)

PDF
Innovation with Open Sources and App Modernization for Developers | Ian Y. Choi
PDF
Evolving to Cloud-Native - Anand Rao
PPTX
UGIdotNET App Modernisation Keynote
PPTX
Codemotion DevCast: App Modernization in the Cloud
PDF
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
PDF
AWS Community Day - Amy Negrette - Gateways to Gateways
PDF
Application modernization with azure PaaS and FaaS
PPTX
App Modernization: From 0 to Hero
PDF
Power your move to the cloud 20180611
PPTX
Containerize all the things!
PDF
Seminar Modernizing Your Development Using Microservices, Container & Kubernetes
PDF
.NET Cloud-Native Bootcamp
PPTX
What serverless means for enterprise apps
PDF
.NET Cloud-Native Bootcamp- Los Angeles
PPTX
The Ideal Approach to Application Modernization; Which Way to the Cloud?
PDF
Evolving to Cloud-Native - Nate Schutta (2/2)
PPTX
Cloud-Native .NET
PPTX
Azure Application Modernization
PPTX
Docker for the Enterprise with Containers as a Service by Banjot Chanana
PDF
Your Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
Innovation with Open Sources and App Modernization for Developers | Ian Y. Choi
Evolving to Cloud-Native - Anand Rao
UGIdotNET App Modernisation Keynote
Codemotion DevCast: App Modernization in the Cloud
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
AWS Community Day - Amy Negrette - Gateways to Gateways
Application modernization with azure PaaS and FaaS
App Modernization: From 0 to Hero
Power your move to the cloud 20180611
Containerize all the things!
Seminar Modernizing Your Development Using Microservices, Container & Kubernetes
.NET Cloud-Native Bootcamp
What serverless means for enterprise apps
.NET Cloud-Native Bootcamp- Los Angeles
The Ideal Approach to Application Modernization; Which Way to the Cloud?
Evolving to Cloud-Native - Nate Schutta (2/2)
Cloud-Native .NET
Azure Application Modernization
Docker for the Enterprise with Containers as a Service by Banjot Chanana
Your Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
Ad

More from Fwdays (20)

PDF
"Mastering UI Complexity: State Machines and Reactive Patterns at Grammarly",...
PDF
"Effect, Fiber & Schema: tactical and technical characteristics of Effect.ts"...
PPTX
"Computer Use Agents: From SFT to Classic RL", Maksym Shamrai
PPTX
"Як ми переписали Сільпо на Angular", Євген Русаков
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
PDF
"Validation and Observability of AI Agents", Oleksandr Denisyuk
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
PPTX
"Co-Authoring with a Machine: What I Learned from Writing a Book on Generativ...
PPTX
"Human-AI Collaboration Models for Better Decisions, Faster Workflows, and Cr...
PDF
"AI is already here. What will happen to your team (and your role) tomorrow?"...
PPTX
"Is it worth investing in AI in 2025?", Alexander Sharko
PDF
''Taming Explosive Growth: Building Resilience in a Hyper-Scaled Financial Pl...
PDF
"Scaling in space and time with Temporal", Andriy Lupa.pdf
PDF
"Database isolation: how we deal with hundreds of direct connections to the d...
PDF
"Scaling in space and time with Temporal", Andriy Lupa .pdf
PPTX
"Provisioning via DOT-Chain: from catering to drone marketplaces", Volodymyr ...
PPTX
" Observability with Elasticsearch: Best Practices for High-Load Platform", A...
PPTX
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
PPTX
"Istio Ambient Mesh in production: our way from Sidecar to Sidecar-less",Hlib...
"Mastering UI Complexity: State Machines and Reactive Patterns at Grammarly",...
"Effect, Fiber & Schema: tactical and technical characteristics of Effect.ts"...
"Computer Use Agents: From SFT to Classic RL", Maksym Shamrai
"Як ми переписали Сільпо на Angular", Євген Русаков
"AI Transformation: Directions and Challenges", Pavlo Shaternik
"Validation and Observability of AI Agents", Oleksandr Denisyuk
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
"Co-Authoring with a Machine: What I Learned from Writing a Book on Generativ...
"Human-AI Collaboration Models for Better Decisions, Faster Workflows, and Cr...
"AI is already here. What will happen to your team (and your role) tomorrow?"...
"Is it worth investing in AI in 2025?", Alexander Sharko
''Taming Explosive Growth: Building Resilience in a Hyper-Scaled Financial Pl...
"Scaling in space and time with Temporal", Andriy Lupa.pdf
"Database isolation: how we deal with hundreds of direct connections to the d...
"Scaling in space and time with Temporal", Andriy Lupa .pdf
"Provisioning via DOT-Chain: from catering to drone marketplaces", Volodymyr ...
" Observability with Elasticsearch: Best Practices for High-Load Platform", A...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"Istio Ambient Mesh in production: our way from Sidecar to Sidecar-less",Hlib...

Recently uploaded (20)

PDF
Empathic Computing: Creating Shared Understanding
PDF
Modernizing your data center with Dell and AMD
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Approach and Philosophy of On baking technology
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Big Data Technologies - Introduction.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Encapsulation theory and applications.pdf
PPTX
Cloud computing and distributed systems.
Empathic Computing: Creating Shared Understanding
Modernizing your data center with Dell and AMD
The Rise and Fall of 3GPP – Time for a Sabbatical?
Chapter 3 Spatial Domain Image Processing.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Approach and Philosophy of On baking technology
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
NewMind AI Monthly Chronicles - July 2025
Review of recent advances in non-invasive hemoglobin estimation
Unlocking AI with Model Context Protocol (MCP)
Big Data Technologies - Introduction.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
Encapsulation theory and applications.pdf
Cloud computing and distributed systems.

Mete Atamel "An app modernization story with Cloud Run"

  • 1. An app modernization story with Cloud Run Mete Atamel Developer Advocate at Google @meteatamel atamel.dev/tags/app-modernization
  • 2. Stage 0: Prototype (Late 2015 / Early 2016) Goal: Get something up and running Reader Transformer Web API Server: ASP.NET (4.6) Windows app on IIS hosting Client: Android and iOS app with Ionic Framework
  • 3. Prototype: Pros & Cons +Worked! +Easy to understand +Easy to deploy +Inexpensive -Too much coupling -Bad DevEx (FTP to see logs!) -No redundancy -No persistence -No resilience
  • 4. Prototype: Lessons Learned 1. Stick to MVP 2. Research your options 3. Avoid coupling at all costs 4. Design with future in mind
  • 5. Stage 1: Lift & Shift (Late 2016 / Early 2017) Goal: Improve resiliency and redundancy Compute Engine Windows VMs on Google Cloud Compute Engine Compute Engine Cloud Load Balancer
  • 6. Lift & Shift: Pros & Cons +Easy to move with ASP.NET Framework Template +Redundancy & load-balancing with Instance Template & Groups +Possiblity of autoscaling +Much better DevEx with Stackdriver logging, VM snapshots etc. -More expensive than IIS hosting
  • 7. Lift & Shift: Lessons Learned 1. Moving to Cloud was not that difficult 2. Cloud is much more than just hosting
  • 8. The app served us well until 2019... 1. .NET Core 2. Containers 3. Windows dependency 4. Costs
  • 9. Stage 2: Containarization (Early 2019) Goal: Remove Windows dependency and cost Re-write in ASP.NET Core (2.2), containerize w/ Docker & deploy to App Engine Flex (Linux) App Engine
  • 10. Containarization: Pros & Cons +No more Windows dependency & licensing +Free autoscaling +Revision management +Traffic splitting -VM based -Pricing -Slow deploys
  • 11. Containarization: Lessons Learned 1. Refactor for clear benefits 2. Solid functional tests are crucial 3. Project organization matters 4. There’s no magic bullet
  • 12. Container to production in seconds Natively Serverless One experience, where you want it Cloud Run Bringing serverless to containers Around mid 2019...
  • 13. HTTPS Endpoint Public • Website • API endpoint Private • Internal services • Async tasks • Mobile backend • Webhook
  • 14. Billable time Instance Billable Time Request 1 Start Request 1 EndRequest 2 Start Request 2 End Instance Time Billable Non-billable
  • 15. Stage 3: Serverless (Mid 2019) Goal: Move from VM minute-based pricing to serverless pricing Update to ASP.NET Core (3.0) & deploy to Cloud Run Cloud Run
  • 16. Serverless: Pros & Cons +No VMs +Serverless billing, much cheaper +Quick deployments (seconds) +Great DevEx (integrated logging, revision and traffic management, etc.) +Based on open-source Knative -Still a monolith with monolith issues
  • 17. Monolith issues 1. Scaling: all or nothing 2. Cold starts 3. In-memory state 4. No way to update individual services
  • 18. Monolith decomposition questions 1. How do you break the monolith? 2. How do microservices communicate? 3. How do you handle persistence without coupling?
  • 19. Stage 4: Monolith to microservices (Early 2020) Cloud Scheduler Cloud Pub/Sub Converter (Private) Cloud Storage Web (Public) Cloud Firestore Reader (Private)
  • 20. Monolith to microservices: Pros & Cons +Loosely coupled architecture +Ability to update individual pieces +Ability to use different languages +Better utilization of resources +Persistence -Many moving parts -More complex deployment -Probably more expensive than a monolith?
  • 21. Grand Lessons Learned ● Transformation does not have to be all or nothing ● Even simple lift & shift can have huge benefits ● Non-optimal solutions can be a stepping stone to more optimal solutions ● Expect some kind of re-write for cloud at some point ● Monolith decomposition is hard! Need a good reason beyond separation of concerns