© Copyright 2019 Pivotal Software, Inc. All rights Reserved.
Didier Burkhalter @didierDIB
Platform Architect, Pivotal
Nicolas Pintaux @npintaux
Platform Architect, Pivotal
July 4th, 2019
Cloud-Native .Net
des applications containerisées .Net sur
Linux, Windows et tous les clouds
Cover w/ Image
Agenda
■ Why move my .Net applications to the
Cloud ?
■ A map of Cloud-native patterns
■ How to apply these patterns to your .Net
Cloud Native apps
■ Demo
On premise Data Centre
.Net Applications
Why move my .Net applications to the Cloud ?
Databases
Transformation path (expected)
● Windows 2008/2012 -> Windows 2019 / Linux
● ASP.Net 3x -> ASP.Net 4.5 -> .Net Core
● SQL Server DB ->> SQL / NoSQL Cloud data sources
● Windows / .Net technos >> polyglot platforms
● … erase other technical and process debts
Reason #1: deal with the legacy workloads
- Reduction in Operational Costs
- Framework EOLs
- Improving SLA
Why move my .Net applications to the Cloud?
How do you deal with?
● Hardcoded IPs?
● Hardcoded credentials?
● Discovery of other services?
● Existing pipelines?
Should you:
● Ask other teams to write .Net code ?
● Rewrite the other applications ?
Reason #2: make your applications discuss
with other applications:
- Inherited from business acquisitions
- new developments
- To integrate with 3rd party components
Java applications
.Net Applications
Cloud-native patterns overview
(... when you need to redesign things)
A map of Cloud Native patterns
Design Security Behavior Team
● 12 factors
● API first
● Contract
● Stateless
● Circuit breaker
● Domain-Driven
Design
● Client LB
● External Config
● Service
Discovery
● Asynchronous
● Data service
abstractions
● Vault
● Continuous
Update/Patch
● Threat
Detection
● Credential/Certif
icate Rotation
● Single Sign-On
● Instantaneous
scale-up/down
● Continuous
upgrade/patch
● Event-driven
● Disposable
● Observable
(SLO/SLI)
● Resiliency
● Product centric
● Observability
(SLO/SLI)
● Small iterations
● CI/CD
● Chaos
Engineering
● Site Reliability
Engineering
A map for Cloud Native patterns
Stateless
DDD /
Bounded
context / fine
grain
12 factors
Circuit
breaker
Client LB
YP / Service
Registry
asynchronous
API first
API gateway
event driven
disposable
(12X)
chaos
engineering
CI/CD
Small iterations
Continuous refactoring
instant scale up
/ scale down
site reliability
engineering
Continuous
update / patch
Vault
External
config’s
Contract
Data services
abstractions
anti fragile
/
resiliency
product centric observability
SLO / SLI
Design
Security
Behavior
Team
Distributed
Architectures
Value via
communication
How to apply these patterns to your apps?
The example we will use
Music Store initial architecture
MusicStore UI
C# .Net Core
MusicStore Service
C# .Net Core
https
Order Service
C# .Net Core
ShoppingCart Service
C# .Net Core
Issues:
● Availability of Store Service
● Hard-coded IP addresses
● Hardcoded MySQL credentials
● Private API
Music Store distributed architecture
MusicStore UI
C# .Net Core
MusicStore Service
C# .Net Core
Service Discovery
Netflix Eureka
https
Order Service
C# .Net Core
ShoppingCart Service
C# .Net Core
Circuit Breaker
Music Store: extending the architecture
MusicStore UI
C# .Net Core
MusicStore Service
C# .Net Core
Service Discovery
Netflix Eureka
https
Order Service
C# .Net Core
ShoppingCart Service
C# .Net Core
Circuit Breaker
API gateway
Spring Cloud Gateway
https
Introducing Steeltoe
● Steeltoe is an open source framework that
enables .NET developers to implement industry
standard best practices when building resilient
microservices for the cloud.
● Provide “pair” capacities with other languages
and frameworks (like Spring Cloud)
● Works on both Windows and Linux
.NET Standard
Support both .NET
Framework 4.x and .NET Core
applications
Nuget distributed
Since 2017, managed by the
Steeltoe features
Circuit Breaker
Connectors
Discovery
Configuration
Security
Logging/Mgmt
● MySQL
● RabbitMQ
● PostgreSQL
● Redis
● MS SQL
● Custom Fallback
● Automatic healing
● Remember State
● Service Registry
● Cloud Foundry
● Spring Cloud Config Server
● Command-line arguments
● File sources
● Environment variables
● OAuth2 SSO
● JWT Tokens
● Redis Key Storage
Provider
● CredHub API Client
● /info
● /health
● /trace
● /loggers
“Simple, effective and future-proof”
Demo
Use the tools you are comfortable with
“Soft” remote API’s references to
Musicstore in MusicStore UI
Use the tools you are comfortable with
Inject MySQL references and connect in MusicSto
Use the tools you are comfortable withprovided by the platform
Use the tools you are comfortable with
Collect “Closed/Open” circuits
and traffic activity
Music Store: extending the architecture & provide
observability
MusicStore UI
C# .Net Core
MusicStore Service
C# .Net Core
Service Discovery
Netflix Eureka
https
Order Service
C# .Net Core
ShoppingCart Service
C# .Net Core
Circuit Breaker
API gateway
Spring Cloud Gateway
https
Prometheus
Database
Grafana
Dashboard
Bibliography - Get started with Steeltoe
The best way to get started is to take a look at our docs, clone a sample from the GitHub
repo, and contact the team in Slack with questions and feedback.
Learn more → http://steeltoe.io
The demonstration code https://github.com/SteeltoeOSS/Samples/tree/master/MusicStore
Lots of samples → https://github.com/steeltoeoss
Get the bits → https://www.nuget.org/profiles/steeltoe
Modernizing .NET Applications: https://content.pivotal.io/ebooks/modernizing-net-applications
From .NET Framework to .NET Core → https://docs.microsoft.com/en-us/dotnet/core/porting/
Tell your friends → @SteeltoeOSS
Building the Future
● Contributor Summit
● Hackathon
● Cloud Foundry Certification
● User Day & PCF User Group
● Unconference
20% discount code: CFEU19PIV20
https://www.cloudfoundry.org/event/summit/
Register Today Use
Discount Code
S1P200_EMEA
October 7–10, 2019
Austin Convention Center
and Save!
ASP.NET Core Architecture
Platform
Run modern apps Run containerized
workloads
Run scale-to-0
functions
Ecosystem of Pivotal
and partner services
Multi-cloud VMware Openstack AWS
Google
Cloud
Azure
Platform security Innovative engineering of extensive automation and go-fast-to-stay-safe approach
Pivotal
Application Service
Pivotal
Container Service
Pivotal
Function Service
Pivotal
Marketplace
Pivotal Cloud Foundry is a unified cloud-native platform.
Tools
Committed to
open-source software
Pivotal packages mature
open-source software (OSS) for
consumption. We’re a leading
contributor to OSS projects and
commercialize the best of the
industry.
We believe that productive developers are
happy developers. Pivotal invests R&D into
engineering the best tools for building software.
Transforming how the world builds software
© Copyright 2019 Pivotal Software, Inc. All rights Reserved.

Cloud-Native .Net des applications containerisées .Net sur Linux, Windows et tous les clouds

  • 1.
    © Copyright 2019Pivotal Software, Inc. All rights Reserved. Didier Burkhalter @didierDIB Platform Architect, Pivotal Nicolas Pintaux @npintaux Platform Architect, Pivotal July 4th, 2019 Cloud-Native .Net des applications containerisées .Net sur Linux, Windows et tous les clouds
  • 2.
    Cover w/ Image Agenda ■Why move my .Net applications to the Cloud ? ■ A map of Cloud-native patterns ■ How to apply these patterns to your .Net Cloud Native apps ■ Demo
  • 3.
    On premise DataCentre .Net Applications Why move my .Net applications to the Cloud ? Databases Transformation path (expected) ● Windows 2008/2012 -> Windows 2019 / Linux ● ASP.Net 3x -> ASP.Net 4.5 -> .Net Core ● SQL Server DB ->> SQL / NoSQL Cloud data sources ● Windows / .Net technos >> polyglot platforms ● … erase other technical and process debts Reason #1: deal with the legacy workloads - Reduction in Operational Costs - Framework EOLs - Improving SLA
  • 4.
    Why move my.Net applications to the Cloud? How do you deal with? ● Hardcoded IPs? ● Hardcoded credentials? ● Discovery of other services? ● Existing pipelines? Should you: ● Ask other teams to write .Net code ? ● Rewrite the other applications ? Reason #2: make your applications discuss with other applications: - Inherited from business acquisitions - new developments - To integrate with 3rd party components Java applications .Net Applications
  • 5.
    Cloud-native patterns overview (...when you need to redesign things)
  • 6.
    A map ofCloud Native patterns Design Security Behavior Team ● 12 factors ● API first ● Contract ● Stateless ● Circuit breaker ● Domain-Driven Design ● Client LB ● External Config ● Service Discovery ● Asynchronous ● Data service abstractions ● Vault ● Continuous Update/Patch ● Threat Detection ● Credential/Certif icate Rotation ● Single Sign-On ● Instantaneous scale-up/down ● Continuous upgrade/patch ● Event-driven ● Disposable ● Observable (SLO/SLI) ● Resiliency ● Product centric ● Observability (SLO/SLI) ● Small iterations ● CI/CD ● Chaos Engineering ● Site Reliability Engineering
  • 7.
    A map forCloud Native patterns Stateless DDD / Bounded context / fine grain 12 factors Circuit breaker Client LB YP / Service Registry asynchronous API first API gateway event driven disposable (12X) chaos engineering CI/CD Small iterations Continuous refactoring instant scale up / scale down site reliability engineering Continuous update / patch Vault External config’s Contract Data services abstractions anti fragile / resiliency product centric observability SLO / SLI Design Security Behavior Team Distributed Architectures Value via communication
  • 8.
    How to applythese patterns to your apps? The example we will use
  • 9.
    Music Store initialarchitecture MusicStore UI C# .Net Core MusicStore Service C# .Net Core https Order Service C# .Net Core ShoppingCart Service C# .Net Core Issues: ● Availability of Store Service ● Hard-coded IP addresses ● Hardcoded MySQL credentials ● Private API
  • 10.
    Music Store distributedarchitecture MusicStore UI C# .Net Core MusicStore Service C# .Net Core Service Discovery Netflix Eureka https Order Service C# .Net Core ShoppingCart Service C# .Net Core Circuit Breaker
  • 11.
    Music Store: extendingthe architecture MusicStore UI C# .Net Core MusicStore Service C# .Net Core Service Discovery Netflix Eureka https Order Service C# .Net Core ShoppingCart Service C# .Net Core Circuit Breaker API gateway Spring Cloud Gateway https
  • 12.
    Introducing Steeltoe ● Steeltoeis an open source framework that enables .NET developers to implement industry standard best practices when building resilient microservices for the cloud. ● Provide “pair” capacities with other languages and frameworks (like Spring Cloud) ● Works on both Windows and Linux .NET Standard Support both .NET Framework 4.x and .NET Core applications Nuget distributed Since 2017, managed by the
  • 13.
    Steeltoe features Circuit Breaker Connectors Discovery Configuration Security Logging/Mgmt ●MySQL ● RabbitMQ ● PostgreSQL ● Redis ● MS SQL ● Custom Fallback ● Automatic healing ● Remember State ● Service Registry ● Cloud Foundry ● Spring Cloud Config Server ● Command-line arguments ● File sources ● Environment variables ● OAuth2 SSO ● JWT Tokens ● Redis Key Storage Provider ● CredHub API Client ● /info ● /health ● /trace ● /loggers
  • 14.
  • 15.
  • 16.
    Use the toolsyou are comfortable with “Soft” remote API’s references to Musicstore in MusicStore UI
  • 17.
    Use the toolsyou are comfortable with Inject MySQL references and connect in MusicSto
  • 18.
    Use the toolsyou are comfortable withprovided by the platform
  • 19.
    Use the toolsyou are comfortable with Collect “Closed/Open” circuits and traffic activity
  • 20.
    Music Store: extendingthe architecture & provide observability MusicStore UI C# .Net Core MusicStore Service C# .Net Core Service Discovery Netflix Eureka https Order Service C# .Net Core ShoppingCart Service C# .Net Core Circuit Breaker API gateway Spring Cloud Gateway https Prometheus Database Grafana Dashboard
  • 21.
    Bibliography - Getstarted with Steeltoe The best way to get started is to take a look at our docs, clone a sample from the GitHub repo, and contact the team in Slack with questions and feedback. Learn more → http://steeltoe.io The demonstration code https://github.com/SteeltoeOSS/Samples/tree/master/MusicStore Lots of samples → https://github.com/steeltoeoss Get the bits → https://www.nuget.org/profiles/steeltoe Modernizing .NET Applications: https://content.pivotal.io/ebooks/modernizing-net-applications From .NET Framework to .NET Core → https://docs.microsoft.com/en-us/dotnet/core/porting/ Tell your friends → @SteeltoeOSS
  • 22.
    Building the Future ●Contributor Summit ● Hackathon ● Cloud Foundry Certification ● User Day & PCF User Group ● Unconference 20% discount code: CFEU19PIV20 https://www.cloudfoundry.org/event/summit/
  • 23.
    Register Today Use DiscountCode S1P200_EMEA October 7–10, 2019 Austin Convention Center and Save!
  • 24.
  • 25.
    Platform Run modern appsRun containerized workloads Run scale-to-0 functions Ecosystem of Pivotal and partner services Multi-cloud VMware Openstack AWS Google Cloud Azure Platform security Innovative engineering of extensive automation and go-fast-to-stay-safe approach Pivotal Application Service Pivotal Container Service Pivotal Function Service Pivotal Marketplace Pivotal Cloud Foundry is a unified cloud-native platform.
  • 26.
    Tools Committed to open-source software Pivotalpackages mature open-source software (OSS) for consumption. We’re a leading contributor to OSS projects and commercialize the best of the industry. We believe that productive developers are happy developers. Pivotal invests R&D into engineering the best tools for building software.
  • 27.
    Transforming how theworld builds software © Copyright 2019 Pivotal Software, Inc. All rights Reserved.