SlideShare a Scribd company logo
1 of 20
© Copyright 2018 Pivotal Software, Inc. All rights Reserved.
Cloud Native .NET
Spring Cloud Connect
Fall 2019
Cornelius Mendoza
cmendoza@pivotal.io
Why containerize
Windows .NET
Workloads
Driving Business Outcomes
● OS Versioning
● Operational efficiency / Patching
● Reduce licensing costs
● Simplify Scalability
● Improve Availability
● Increase Development Agility
Cloud Native Journey
Cloud Native
Cloud Resilient
Cloud Friendly
Cloud Ready
● Microservice Architecture
● Function/Event/API first design
● Design for failure
● Proactive testing for failure
● Apps are unaffected by
dependent service failure
● 12 Factor apps
● Horizontally scalable
● Leverage platform for HA
● No file system requirements
● Containerized
● Platform managed addresses and ports
● Consume Platform services
● Integrated Metrics and
Monitoring
● Cloud agnostic runtime
implementation
Windows
Containers
Win-C Standard Containers
● Officially supported in Windows 2016 – We been
doing containers since Windows 2012R2
● Win-C container standard
● Support for Kubernetes deployed containers in
Windows 2019 (Build 1903+)
● Containers need to be rebuilt for major version
releases of Windows
● Hyper-V isolation for kernel-mode isolation for
enhanced security
● Implemented using Microsoft Container APIs
What fits in a
Windows
Container?
Supporting legacy applications
● Minimal operating system
● Full Windows install (C:Windows)
● Structured file system (C:, C:Program Files)
● Registry
● .NET runtime
● Different .NET runtimes side by side - host OS is
neutral to the version(s)
● Patch host operating system with no regard to
apps within
Writing Twelve Factor ASP.NET Applications
● Avoid in-process session state*
● For ASP.NET override MachineKey in web.config and on ASP.NET Core avoid
persisting keyring to filesystem*
● On ASP.NET avoid environment specific configuration in web.config
● Avoid Integrated Windows Authentication
● Avoid the GAC
● Avoid custom IIS handlers
● Avoid anything that uses the Windows registry
● Avoid libraries that depend on DPAPI
● Avoid using local disk for storing application state*
● Avoid using any Windows specific or disk-based logging*
● Avoid any 32-bit specific libraries or libraries that can’t be bin deployable*
● Platform dependent naming conventions - i.e. environment variables
● MSI deployed libraries requiring host level access
Benefits of PCF
for .NET Apps
How Pivotal Application Service
(PAS) and PAS for Windows
evolves the .NET DevOps
experience.
● Deploy .NET Core or .NET Framework apps.
● For .NET Framework, uses Windows Server Containers,
first delivered with Windows Server 2016.
● Automatically builds a full, OCI-compliant container
image, supplying key .NET, IIS, and Windows features.
● Transparently patches all .NET applications with
updated container base images from Microsoft, live in
production with no downtime.
● Scale out .NET running apps, manually or based on CPU
load or traffic.
● Deploy Windows Updates in rolling fashion to all live
Windows VMs with BOSH.
● Provide .NET debugging and troubleshooting features.
Deploy source code
that the platform
containerizes for
you
or
Deploy container
images that you
build yourself
push source
code
Developer
Cloud Foundry
Cloud Controller
triggers staging
Diego creates
container
Diego mounts
root file system
Diego lays down
buildpack,
source code
Diego builds and
uploads droplet
Diego schedules
containers onto
Cells
Running app!
Focus on developer productivity
Build all things .NET... Run all things .NET...
✓ .NET Full Framework/.NET Core
✓ Early application lifecycle and
evolving CI/CD pipelines
✓ Limited testing coverage
✓ Frequent changes to code
✓ Complex deployments with many
service dependencies
✓ On-demand services
✓ Multi-tenant deployments
✓ High-compliance requirements
✓ .NET Core
✓ Mature application lifecycle and
CI/CD pipelines
✓ Comprehensive testing coverage
✓ Infrequent changes to code
✓ Self contained application
deployments
✓ Service deployments
✓ Customer hosted deployments
✓ Flexible compliance requirements
“Use the right tool for the job”
Spring Cloud Services for .NET
Using Steeltoe Libraries for .NET Applications
Health Actuators
Add this...
Get this!!
Externalized Configuration
• Built on ASP.NET Core Configuration & Options extensions
• https://github.com/aspnet/Configuration
• https://github.com/aspnet/Options
• https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration
Dealing with Failures
• Stop sending requests to a failing
service (allowing time to recover)
• Fail gracefully by implementing fall-
back behavior
• Open Circuit = Failed method
• Closed Circuit = Successful method
Dealing with Failures
Implement HystrixCommand
RunAsync() Method
Runs every time, in own
thread
RunFallbackAsysnc() Method
Only run when RunAsync() fails
(Circuit is now open)
Dealing with Failures
Visibility into Failures Application Wide
Discovering Services
• Use Service IDs, not URLs, to locate services
• Client-side or server-side load balancing
Discovering Services
AddDiscoveryClient(config) Method
Adds Discovery client to the service
container
UseDiscoveryClient() Method
Starts up the client in a background
thread
Demo
Improving Developer Productivity
Here is my .NET code
Run it in the cloud for me
I do not care how
Cloud-Native .NET

More Related Content

What's hot

Managing enterprise applications with the WSO2 App Factory
Managing enterprise applications with the WSO2 App FactoryManaging enterprise applications with the WSO2 App Factory
Managing enterprise applications with the WSO2 App Factory
WSO2
 
Command central 9.7: Features Overview
Command central 9.7: Features OverviewCommand central 9.7: Features Overview
Command central 9.7: Features Overview
Software AG
 

What's hot (19)

Asp.Net 3 5 Part 1
Asp.Net 3 5 Part 1Asp.Net 3 5 Part 1
Asp.Net 3 5 Part 1
 
Cloud Foundry Summit 2015: 12 Factor Apps For Operations
Cloud Foundry Summit 2015: 12 Factor Apps For OperationsCloud Foundry Summit 2015: 12 Factor Apps For Operations
Cloud Foundry Summit 2015: 12 Factor Apps For Operations
 
NI Week 2019 Overview
NI Week 2019 OverviewNI Week 2019 Overview
NI Week 2019 Overview
 
Beautifying the Beautiful: Theming WSO2 API Manager
Beautifying the Beautiful: Theming WSO2 API ManagerBeautifying the Beautiful: Theming WSO2 API Manager
Beautifying the Beautiful: Theming WSO2 API Manager
 
Streams in Parallel Development by Sven Erik Knop
Streams in Parallel Development by Sven Erik KnopStreams in Parallel Development by Sven Erik Knop
Streams in Parallel Development by Sven Erik Knop
 
Porting Projects to .NET 5
Porting Projects to .NET 5Porting Projects to .NET 5
Porting Projects to .NET 5
 
Managing enterprise applications with the WSO2 App Factory
Managing enterprise applications with the WSO2 App FactoryManaging enterprise applications with the WSO2 App Factory
Managing enterprise applications with the WSO2 App Factory
 
React - Year In Review 2017
React - Year In Review 2017React - Year In Review 2017
React - Year In Review 2017
 
Single Source of Truth in a Distributed World by Sven Erik Knop
Single Source of Truth in a Distributed World by Sven Erik KnopSingle Source of Truth in a Distributed World by Sven Erik Knop
Single Source of Truth in a Distributed World by Sven Erik Knop
 
Learning from the Early Adopters of DevOps: A Guidebook to Success featuring ...
Learning from the Early Adopters of DevOps: A Guidebook to Success featuring ...Learning from the Early Adopters of DevOps: A Guidebook to Success featuring ...
Learning from the Early Adopters of DevOps: A Guidebook to Success featuring ...
 
CI CD Daridabad MuleSoft meetup
CI CD Daridabad MuleSoft meetupCI CD Daridabad MuleSoft meetup
CI CD Daridabad MuleSoft meetup
 
Command central 9.7: Features Overview
Command central 9.7: Features OverviewCommand central 9.7: Features Overview
Command central 9.7: Features Overview
 
NGINX Basics and Best Practices Workshop
NGINX Basics and Best Practices WorkshopNGINX Basics and Best Practices Workshop
NGINX Basics and Best Practices Workshop
 
Persistent Storage for Containerized Applications
Persistent Storage for Containerized ApplicationsPersistent Storage for Containerized Applications
Persistent Storage for Containerized Applications
 
Demo on JavaFX
Demo on JavaFXDemo on JavaFX
Demo on JavaFX
 
Embracing Git and Distributed Teams
Embracing Git and Distributed TeamsEmbracing Git and Distributed Teams
Embracing Git and Distributed Teams
 
Webinar: Introduction to CloudBees Jenkins Platform
Webinar: Introduction to CloudBees Jenkins PlatformWebinar: Introduction to CloudBees Jenkins Platform
Webinar: Introduction to CloudBees Jenkins Platform
 
Cross Community CI project
Cross Community CI projectCross Community CI project
Cross Community CI project
 
ClearCase Escape Plan
ClearCase Escape PlanClearCase Escape Plan
ClearCase Escape Plan
 

Similar to Cloud-Native .NET

FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
WSPDC & FEDSPUG
 
Windows Server 2012 R2 Jump Start - WEB
Windows Server 2012 R2 Jump Start - WEBWindows Server 2012 R2 Jump Start - WEB
Windows Server 2012 R2 Jump Start - WEB
Paulo Freitas
 
Adopting PCF At An Automobile Manufacturer
Adopting PCF At An Automobile ManufacturerAdopting PCF At An Automobile Manufacturer
Adopting PCF At An Automobile Manufacturer
VMware Tanzu
 

Similar to Cloud-Native .NET (20)

Pivotal Cloud Foundry 2.1: Making Transformation Real Webinar
Pivotal Cloud Foundry 2.1: Making Transformation Real WebinarPivotal Cloud Foundry 2.1: Making Transformation Real Webinar
Pivotal Cloud Foundry 2.1: Making Transformation Real Webinar
 
The Fastest Way to Redis on Pivotal Cloud Foundry
The Fastest Way to Redis on Pivotal Cloud FoundryThe Fastest Way to Redis on Pivotal Cloud Foundry
The Fastest Way to Redis on Pivotal Cloud Foundry
 
Modern Web-site Development Pipeline
Modern Web-site Development PipelineModern Web-site Development Pipeline
Modern Web-site Development Pipeline
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp
 
Pivotal Cloud Foundry 2.5: A First Look
Pivotal Cloud Foundry 2.5: A First LookPivotal Cloud Foundry 2.5: A First Look
Pivotal Cloud Foundry 2.5: A First Look
 
Pivotal CloudFoundry on Google cloud platform
Pivotal CloudFoundry on Google cloud platformPivotal CloudFoundry on Google cloud platform
Pivotal CloudFoundry on Google cloud platform
 
Visual studio 2019 launch
Visual studio 2019 launch Visual studio 2019 launch
Visual studio 2019 launch
 
Pivotal Platform: A First Look at the October Release
Pivotal Platform: A First Look at the October ReleasePivotal Platform: A First Look at the October Release
Pivotal Platform: A First Look at the October Release
 
Explore asp.net core 3.0 features
Explore asp.net core 3.0 featuresExplore asp.net core 3.0 features
Explore asp.net core 3.0 features
 
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan GoksuSpring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
 
Leveraging HybridMultiCloud for Devops and Automation Platform
Leveraging HybridMultiCloud for Devops and Automation PlatformLeveraging HybridMultiCloud for Devops and Automation Platform
Leveraging HybridMultiCloud for Devops and Automation Platform
 
Delivering Cloud Native Batch Solutions - Dodd Pfeffer
Delivering Cloud Native Batch Solutions - Dodd PfefferDelivering Cloud Native Batch Solutions - Dodd Pfeffer
Delivering Cloud Native Batch Solutions - Dodd Pfeffer
 
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
 
How to Scale Operations for a Multi-Cloud Platform using PCF
How to Scale Operations for a Multi-Cloud Platform using PCFHow to Scale Operations for a Multi-Cloud Platform using PCF
How to Scale Operations for a Multi-Cloud Platform using PCF
 
Windows Server 2012 R2 Jump Start - WEB
Windows Server 2012 R2 Jump Start - WEBWindows Server 2012 R2 Jump Start - WEB
Windows Server 2012 R2 Jump Start - WEB
 
Morning Coffee - Windows Server 2016
Morning Coffee - Windows Server 2016Morning Coffee - Windows Server 2016
Morning Coffee - Windows Server 2016
 
ASP.NET
ASP.NETASP.NET
ASP.NET
 
Pivotal Platform - December Release A First Look
Pivotal Platform - December Release A First LookPivotal Platform - December Release A First Look
Pivotal Platform - December Release A First Look
 
Webcast urbancodemobiltomainframe
Webcast urbancodemobiltomainframeWebcast urbancodemobiltomainframe
Webcast urbancodemobiltomainframe
 
Adopting PCF At An Automobile Manufacturer
Adopting PCF At An Automobile ManufacturerAdopting PCF At An Automobile Manufacturer
Adopting PCF At An Automobile Manufacturer
 

More from VMware Tanzu

More from VMware Tanzu (20)

What AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItWhat AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About It
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023
 
Enhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleEnhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at Scale
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023
 
Platforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductPlatforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a Product
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready Apps
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptx
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - French
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - English
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - French
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software Engineer
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs Practice
 
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsSpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
 

Recently uploaded

The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 

Recently uploaded (20)

%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 

Cloud-Native .NET

  • 1. © Copyright 2018 Pivotal Software, Inc. All rights Reserved. Cloud Native .NET Spring Cloud Connect Fall 2019 Cornelius Mendoza cmendoza@pivotal.io
  • 2. Why containerize Windows .NET Workloads Driving Business Outcomes ● OS Versioning ● Operational efficiency / Patching ● Reduce licensing costs ● Simplify Scalability ● Improve Availability ● Increase Development Agility
  • 3. Cloud Native Journey Cloud Native Cloud Resilient Cloud Friendly Cloud Ready ● Microservice Architecture ● Function/Event/API first design ● Design for failure ● Proactive testing for failure ● Apps are unaffected by dependent service failure ● 12 Factor apps ● Horizontally scalable ● Leverage platform for HA ● No file system requirements ● Containerized ● Platform managed addresses and ports ● Consume Platform services ● Integrated Metrics and Monitoring ● Cloud agnostic runtime implementation
  • 4. Windows Containers Win-C Standard Containers ● Officially supported in Windows 2016 – We been doing containers since Windows 2012R2 ● Win-C container standard ● Support for Kubernetes deployed containers in Windows 2019 (Build 1903+) ● Containers need to be rebuilt for major version releases of Windows ● Hyper-V isolation for kernel-mode isolation for enhanced security ● Implemented using Microsoft Container APIs
  • 5. What fits in a Windows Container? Supporting legacy applications ● Minimal operating system ● Full Windows install (C:Windows) ● Structured file system (C:, C:Program Files) ● Registry ● .NET runtime ● Different .NET runtimes side by side - host OS is neutral to the version(s) ● Patch host operating system with no regard to apps within
  • 6. Writing Twelve Factor ASP.NET Applications ● Avoid in-process session state* ● For ASP.NET override MachineKey in web.config and on ASP.NET Core avoid persisting keyring to filesystem* ● On ASP.NET avoid environment specific configuration in web.config ● Avoid Integrated Windows Authentication ● Avoid the GAC ● Avoid custom IIS handlers ● Avoid anything that uses the Windows registry ● Avoid libraries that depend on DPAPI ● Avoid using local disk for storing application state* ● Avoid using any Windows specific or disk-based logging* ● Avoid any 32-bit specific libraries or libraries that can’t be bin deployable* ● Platform dependent naming conventions - i.e. environment variables ● MSI deployed libraries requiring host level access
  • 7. Benefits of PCF for .NET Apps How Pivotal Application Service (PAS) and PAS for Windows evolves the .NET DevOps experience. ● Deploy .NET Core or .NET Framework apps. ● For .NET Framework, uses Windows Server Containers, first delivered with Windows Server 2016. ● Automatically builds a full, OCI-compliant container image, supplying key .NET, IIS, and Windows features. ● Transparently patches all .NET applications with updated container base images from Microsoft, live in production with no downtime. ● Scale out .NET running apps, manually or based on CPU load or traffic. ● Deploy Windows Updates in rolling fashion to all live Windows VMs with BOSH. ● Provide .NET debugging and troubleshooting features.
  • 8. Deploy source code that the platform containerizes for you or Deploy container images that you build yourself push source code Developer Cloud Foundry Cloud Controller triggers staging Diego creates container Diego mounts root file system Diego lays down buildpack, source code Diego builds and uploads droplet Diego schedules containers onto Cells Running app!
  • 9. Focus on developer productivity Build all things .NET... Run all things .NET... ✓ .NET Full Framework/.NET Core ✓ Early application lifecycle and evolving CI/CD pipelines ✓ Limited testing coverage ✓ Frequent changes to code ✓ Complex deployments with many service dependencies ✓ On-demand services ✓ Multi-tenant deployments ✓ High-compliance requirements ✓ .NET Core ✓ Mature application lifecycle and CI/CD pipelines ✓ Comprehensive testing coverage ✓ Infrequent changes to code ✓ Self contained application deployments ✓ Service deployments ✓ Customer hosted deployments ✓ Flexible compliance requirements “Use the right tool for the job”
  • 10. Spring Cloud Services for .NET Using Steeltoe Libraries for .NET Applications
  • 12. Externalized Configuration • Built on ASP.NET Core Configuration & Options extensions • https://github.com/aspnet/Configuration • https://github.com/aspnet/Options • https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration
  • 13. Dealing with Failures • Stop sending requests to a failing service (allowing time to recover) • Fail gracefully by implementing fall- back behavior • Open Circuit = Failed method • Closed Circuit = Successful method
  • 14. Dealing with Failures Implement HystrixCommand RunAsync() Method Runs every time, in own thread RunFallbackAsysnc() Method Only run when RunAsync() fails (Circuit is now open)
  • 15. Dealing with Failures Visibility into Failures Application Wide
  • 16. Discovering Services • Use Service IDs, not URLs, to locate services • Client-side or server-side load balancing
  • 17. Discovering Services AddDiscoveryClient(config) Method Adds Discovery client to the service container UseDiscoveryClient() Method Starts up the client in a background thread
  • 19. Here is my .NET code Run it in the cloud for me I do not care how

Editor's Notes

  1. How Cloud Foundry supports containers as a deployment unit (vs buildpacks) When staging complete the output consists of metadata from the buildpack and a droplet, which is an archive of files that should be layered on top of the Root Filesystem. Cloud Controller asks Diego to launch instances of the application.  Diego does this by scheduling containers on the Cells. File System:  The running application container contains the Root Filesystem and a copy of the application droplet. Metadata:  Cloud Controller provides Diego with metadata to launch the correct process within the Cloud Foundry Container Environment and to monitor the process’ health.
  2. Haiku 5-7-5