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 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
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
6. 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
7. 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
8. How to apply these patterns to your apps?
The example we will use
9. 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
10. 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
11. 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
12. 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
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
16. Use the tools you are comfortable with
“Soft” remote API’s references to
Musicstore in MusicStore UI
17. Use the tools you are comfortable with
Inject MySQL references and connect in MusicSto
18. Use the tools you are comfortable withprovided by the platform
19. Use the tools you are comfortable with
Collect “Closed/Open” circuits
and traffic activity
20. 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
21. 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
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/
25. 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.
26. 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.