SlideShare a Scribd company logo
1 of 80
Download to read offline
.NET Cloud-Native Bootcamp
Goal of this boot camp.
Introduce you to practices, platforms and tools for
building modern .NET applications.
Hi there.
Who are we?
9-9:15AM Introduction
9:15-9:30AM Getting good at software
9:30-10AM All about microservices
10-10:15AM What’s cloud-native all about?
10:15-10:45AM Introducing Cloud Foundry
10:45-11AM BREAK TIME
11-12:30PM Cloud-native .NET technologies and
patterns
12:30-1PM LUNCH
1-4PM Hands on exercises
4-4:30PM Wrap up
Why do you need to be good at software?
Customers
expect it.
Meet
demand to
operate at
scale.
Gives you
more
business
options.
Your
competitors
are doing it.
It makes
everyone
happier.
Ok, but how do
I know that I’m
doing well at
software?
Improved speed. Faster cycle time, more
frequently deployments.
Improved scale. More requests per
second to apps and services.
Improved stability. Greater uptime of
customer-facing service.
Improved security. Achieving 100% patch
coverage.
Improved simplicity. Reduce complexity
of processes and tools.
What are microservices?
It refers to an architectural style that supports
constant change in your environment. This is
accomplished by creating applications out of
independent, loosely-coupled, domain-oriented
services.
Microservices architecture Monolithic architecture
Single focused services. Software solves many challenges in one software
package.
Loosely coupled. Tightly coupled.
Delivered continuously. Delivered all together, on a schedule.
Scale independently. Scale everything together.
Independent teams own service lifecycle. Many teams own pieces of the service lifecycle.
Emphasis on distributed systems patterns. Emphasis on delivery and organizational processes.
Diverse technologies managed through
automation.
Single, long-lived technology stacks.
Short onboarding period for new developers. Larger codebase requires significant time to ramp
up new team members.
Moving to
microservices?
Here’s what to
consider.
Do you have a pressing reason to do it?
Can you rearrange your teams?
Are you ready to decompose your monoliths?
How will you decompose?
Are you currently doing CI / CD?
Is your production environment automated?
How will you discover services at runtime?
What can you do to prevent cascading failures?
Are you ready to evolve your data platforms?
Do you need to modernize your messaging and
event stream processing toolchain?
Are you ready for modern logging, monitoring?
What is “cloud-native” all about?
This is an approach to building and operating
software that takes advantage of the
cloud-computing model. Often seen as a
combination of microservices, continuous
delivery, containers, and DevOps.
It’s all about software that’s built for scale, built for
continuous change, built to tolerate failure, built
for manageability.
Most cloud-native applications comply with the 12 factor criteria.
• One codebase tracked in version control
• Explicitly declared dependencies
• Configurations stored in the environment
• Backing services treated as attached resources
• Separate build, release, and run stages
• Apps executed as stateless processes
• Services exported via port binding
• Scaled out via more processes
• Fast startup and graceful shutdown
• Parity among dev, staging, and production environments
• Logs treated as event streams
• Admin tasks run as one-off processes
There’s a
maturity
model on
your way to
cloud native.
• No file system dependency
• Self contained application
• Platform managed ports/address
• Consume off-platform services
Cloud Ready
• Twelve factor app
• Horizontal scalable
• Leverage platform for HA
Cloud Friendly
• Designed for failure
• Apps unaffected by dependencies
• Proactive failure testing
• Metrics and monitoring baked in
• Cloud agnostic runtime
Cloud Resilient
• Microservice architecture
• API-first designCloud Native
So, what actually makes up a cloud-native platform?
Introducing
Pivotal Cloud Foundry
Pivotal Cloud Foundry Architecture
DYNAMIC ROUTE SERVICES / API MANAGEMENT
APP MICROSERVICES TECHNOLOGY
Spring Boot Steeltoe
Spring Cloud
Services
DATA MICROSERVICES TECHNOLOGY
Spring
Cloud Data
Flow
Cloud
Cache
RabbitMQ MySQL
YOUR APPLICATIONS
PLATFORM
Elastic Runtime Concourse
App
Autoscaler
PCF Metrics CredHub
Orgs, Spaces,
Roles and
Permissions
EMBEDDED OS
CLOUD ORCHESTRATION
CONTAINER ORCHESTRATIONWindows Linux
Amazon
Web Services
Microsoft
Azure
Google
Cloud
Platform
Open Stack VMWare
SERVICE
BROKER API
PIVOTAL
APPLICATION
SERVICE
PIVOTAL
CLOUD FOUNDRY
BOSH
MODERN
CLOUD NATIVE
PLATFORM
MULTI CLOUD
16
App Manager UI
Application Manager
Service
Service Broker
Service Nodes
Service Broker
Service Nodes
Service
Services
Service Broker
Service Nodes
Service
CLI – Cmd Line
Terminal Window
Platform Runtime - Cloud Foundry
App Log Aggregator
Login Server
Dynamic Router
Cloud Controller
UAA
Diego
Messaging (NATS)
Metrics Collection
HA Proxy LB
CC-Bridge
Rep
Executor
Rep
Executor
+ =
BBSAuctioneer
Windows
Cell
Linux
Cell
PCF 2.0
Any App
Every Cloud
One Platform
18
Deploying .NET applications? It doesn’t have to be
terrible.
Traditional .NET deployment on
VMs
Pivotal Cloud Foundry
Provision a VM
Configure IP, DNS
Configure firewall
Windows updates, reboot…
Install IIS
Deploy application
Configure app pool
Configure SSL
Configure load balancer
~$ cf push
~$ cf push
Code Complete & Tested
Find available hosts
Install & configure runtime
Install & configure middleware
Pull application source code
Retrieve dependent libraries
Create application package
Install, configure dependent service(s)
Deploy container to host(s)
Load environment variables
Configure load balancer
Configure firewalls
Update service monitoring tools
Configure log collector
Application in Production
45
seconds
later
$ cf push my-app -p target/myapp.jar
or
$ cf push my-app --docker-image pivotal/my-image
Buildpacks are language-aware
Deploy source code
that the platform
containerizes for
you
or
Deploy container
images that you
build yourself
Deploy source code
that the platform
containerizes for
you
or
Deploy container
images that you
build yourself
Developer
Cloud Foundry
Deploy source code
that the platform
containerizes for
you
or
Deploy container
images that you
build yourself
Developer
Cloud Foundry
Developer
Developer
Developer
Developer
Cloud Foundry
offers exceptional
support for
containers at
runtime.
Builds OCI-compatible containers
Generates both Linux and Windows containers
Option to SSH into running containers
Can rebuild containers to patch root file system
Performs log aggregation and correlation
Offers monitoring and auto scaling of containers
Introduces policy-driven container networking
Can attach persistent storage volumes
Intercept traffic via Route Services
Securely connect to outside services via Broker
Secure-by-default approach to containers
• Application manifests tells cf push
what to do with applications
• What OS stack to run on: Windows
or Linux
• How many instances to create and
how much memory to use.
• Helps automate deployment,
especially of multiple apps at once
• Can list services to be bound to the
application
• YAML format – http://yaml.org
Define application metadata in a manifest file.
27
Things about
Pivotal Cloud
Foundry you
should know.
▪ Built for multi-tenancy
▪ Push code or containers
▪ Application manifests written in YAML
▪ Injects environment variables
▪ Aggregates app logs, correlates with metrics
▪ Monitors app health, reacts
▪ Scale manually or automatically
▪ Built in data services, marketplace
▪ Manages apps and underlying VMs
▪ Natively runs on multiple IaaS platforms
▪ Four layers of high availability built in
▪ Access via GUI, REST API, CLI
▪ Dev GUI = Applications Manager
▪ Ops GUI = Operations Manager
demo
break time
.NET is a unified platform
CORE Primitives • Collections • Reflection • Interop • Linq
THREADING Threads • Thread Pool • Tasks
IO Files • Compression • MMF
NETWORKING Sockets • HTTP • Mail • WebSockets
SERIALIZATION BinaryFormatter • Data Contract • XML
XML XLinq • XML Document • XPath • Schema • XSL
DATA DataSet • DataTable • SQLClient
APIs in .NET Standard 2.0
CORE Primitives • Collections • Reflection • Interop • Linq
THREADING Threads • Thread Pool • Tasks
IO Files • Compression • MMF
NETWORKING Sockets • HTTP • Mail • WebSockets
SERIALIZATION BinaryFormatter • Data Contract • XML
XML XLinq • XML Document • XPath • Schema • XSL
DATA DataSet • DataTable • SQLClient
APIs in .NET Standard 2.0
+20KMore APIs than
.NET Standard 1.x
70%NuGet Packages are
API compatible
https://github.com/dotnet/standard
What’s the story
with .NET Core?
Cross-platform runtime, library, compilers
Fully open source
Modular and built on NuGet packages
Still a subset of .NET Framework scope
Strong CLI tooling available
.NET Core != ASP.NET Core
What’s the story
with ASP.NET
Core?
Runs cross framework (.NET Core
everywhere, and .NET Framework on
Windows)
Fully open source
Handful of supported project types
Can deploy as completely self-contained
Multiple hosting options
Dependency injection baked in
Support for external configuration
The dotnet
CLI tool
dotnet new
dotnet add | remove package
dotnet restore
dotnet build
dotnet run
dotnet test
dotnet publish
Cloud-Native .NET
Where to run cloud-native .NET apps?
Pivotal Cloud Foundry
• .NET 4.x support (web apps, web services, console apps) on Windows.
• Resource and namespace isolation on Windows.
• .NET Core support (web apps, web services, console apps) on Windows or
Linux.
• Buildpacks for Hostable Web Core (HWC) on Windows and .NET Core on
Linux.
• Connect to service brokers for application services
• Native support for health monitoring, autoscaling, log aggregation, container
metrics, and more.
PAS for
Windows
Powered by Windows Server containers
Premium experience for .NET workloads
For legacy apps, access to file system, registry,
GAC
Administrator and developer have SSH capability
Use Windows Event Log drains
Makes it possible for us to add better autoscaling,
C2C networking
Remote app debugging enabled
Building 12 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 using local disk, especially 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
How to implement cloud-native patterns?
Java users have Spring and NetflixOSS.
+ =
Spring Cloud
• Service registration and discovery
• API gateway
• Client-side load balancing
• Git-backed configuration store
• Circuit breakers
• OAuth 2.0 security support
• Distributed tracing
• Event-driven microservices
• Orchestrated data pipelines
Pivotal packaged up key
Spring Cloud capabilities
into a managed bundle
for Pivotal Cloud
Foundry called Spring
Cloud Services.
Enabling cloud-native .NET apps.
Fully open source, part of .NET Foundation
For .NET Framework or .NET Core
Run on Cloud Foundry, or anywhere
Includes:
• Configuration server provider
• Service discovery with Netflix Eureka
• Connectors to OSS data, messaging technology
• Security providers
• Circuit breaker with Netflix Hystrix
• Actuators
Configuration Providers
Cloud Foundry
- VCAP_APPLICATION, VCAP_SERVICES,
CF_*
Config Server
- Access config stored in
Spring Cloud Config Server (backed by Git, Vault, local filesystem)
- Across all instances, all apps, all environments
43
About Spring Cloud Config Server
44
Service Discovery
Service Discovery Client
- .NET client for Netflix Eureka
- Implements Service Discovery design
pattern
- Dynamically discover and call
registered services
- Release 1.1 Supports C2C Networking,
IP Address as Service Address
45
About Eureka Server
46
Circuit Breaker
Circuit Breaker Client
- .NET implementation of Netflix Hystrix
- Bypass failing services with elegant
fall-back behavior (so your users don’t
see nasty error messages)
- Rich metrics and monitoring
- Available in Steeltoe 1.1
47
About Hystrix
48
Cloud Connectors
- MySQL
- Postgres
- MS-SQL
- Redis
- RabbitMQ
- OAuth (for UAA or
Pivotal Single Sign-on)
49
Connectors for common data services
Security Providers
- OAuth2 SSO Provider
- JWT resource protection
- Redis Key Ring Repository
50
Management Endpoints (Actuators)
- /info
arbitrary app info, e.g. git build tag
- /health
application health information
- /trace
circular buffer of last 100 http requests/responses
- /loggers
shows and modifies configuration of loggers down to the class level
51
Available in Steeltoe 1.1-rc3 and above
Open Source and Flexible
Steeltoe works...
with .NET Core and with the .NET framework
on Windows and on Linux
standalone and running on Cloud Foundry
52
...and it’s now part of the
Microservices Configuration
Steeltoe Configuration Providers
• 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
• Two custom providers
• CloudFoundry
• ConfigServer
• Application type support
• ASP.NET - MVC, WebForm, WebAPI, WCF
• ASP.NET Core
• Console apps (.NET Framework and .NET Core)
Steeltoe Config Server Client Provider
• Enables Spring Cloud Config Server to be used as a configuration source
• OSS Config Server - Steeltoe.Extensions.Configuration.ConfigServerCore
• SCS Config Server - Pivotal.Extensions.Configuration.ConfigServerCore
• Application type support
• ASP.NET - MVC, WebForm, WebAPI, WCF
• ASP.NET Core
• Console apps (.NET Framework and .NET Core)
Spring Cloud Config Server Overview
• Supports different back ends
• Local or remote git repos
• Hashicorp Vault
• File System
• Exposes resource HTTP API
• Default starts on port=8080
• Configuration pulled by
• AppName
• Profile
• Label – optional
Spring Cloud Config Server Overview
• Serves resources:
• /application.yml
• /application.properties
• /application-{profile}.yml
• /application-{profile}.properties
• /{appname}-{profile}.yml
• /{appname}-{profile}.properties
• /{appname}/{profile}[/{label}]
• /{label}/{appname}-{profile}.yml
• /{label}/{appname}-{profile}.properties
• For a git backend
• Configure URL of git repo
• {appname} & {profile} maps to file & directory in repo
• {label} -> git branch
• Git backend example:
• Repo contains files:
• application.yml
• application-development.yml
• foo.yml
• foo-development.yml
• bar.yml
• Client request contains:
• {appname}=foo
• {profile}=development
• Config server returns in precedence order:
• foo-development.yml
• foo.yml
• application-development.yml
• application.yml
Steeltoe Config Server Client Provider
• Use AddConfigServer(environment) extension method on ConfigurationBuilder to
add Config Server client provider
• At Build(), client calls Config Server and retrieves configuration data
• Must configure the Config Server client settings
• Easiest to put settings in appsettings.json or other file based config source
• Must add the providers settings before AddConfigServer(environment) so client
can find settings
• Two settings are required at minimum
• spring:application:name defines the ‘{appName}’ portion of the Config
Server request
• spring:cloud:config:uri defines the REST endpoint of the Config Server
• IHostEnvironment.EnvironmentName is used for ‘{profile}’ portion of Config
Server request
Using Config Server on Cloud Foundry
• Create instance of Config Server using CF CLI
• cf create-service p-config-server standard cserver –c
config.json
• config.json specifies URL of git repo it uses for configuration data
• Use cf service to check status of service
• Bind instance to applications
• cf bind-service appName cserver
• Also specify binding in manifest.yml
• ‘services:’ section-> add ‘cserver’
• Steeltoe Config Server Client detects p-config-server binding
• Overrides appsettings.jsonclient settings with binding information
• Enables easier development and testing locally; and then push to CF with no
changes
Microservices Discovery
Steeltoe Service Discovery Client Overview
• Provides configurable generalized interface for Service Registry interaction
• Steeltoe.Discovery.ClientCore
• Single configurable provider today:
• Eureka – client for Netflix Eureka Service registry
• Application type support
• ASP.NET - MVC, WebForm, WebAPI, WCF
• ASP.NET Core
• Console apps (.NET Framework and .NET Core)
Spring Cloud Service Registry Basics
• Use Service IDs, not URLs, to locate
services
• Client-side or server-side load
balancing
Steeltoe Eureka Client
• Enables interaction with Netflix Eureka Service Registry
• OSS Netflix Eureka Server – use Steeltoe.Discovery.ClientCore
• PCF Netflix Eureka Server - use Pivotal.Discovery.ClientCore
• Three step process to enable the Steeltoe Eureka client
• Configure Discovery client settings – use values from the built Configuration
• Add Discovery client to service container - AddDiscoveryClient(Configuration)
• Use Discovery client – UseDiscoveryClient() - starts up client background thread
• For Eureka, registered services are pulled from Eureka Server
• Discovery client settings
• Normally just add settings to Configuration
• Put in appsettings.json, or Config Server repo, etc.
• General client settings and for discovering services: eureka:client:….
• Settings for registering as a service: eureka:instance:…
Using Steeltoe Eureka Client to Find
Services
• Inject IDiscoveryClientinto your Controller, View, etc.
• Can use the interface to access registered services by name –
GetInstances(name)
• Alternatively, use DiscoveryHttpClientHandler– an HttpClientHandlerfor
use with HttpClient
• Integrates service lookup with issuing HttpClient requests
• Handler intercepts requests and attempts to resolve ‘host’ portion of the request
URL as a service name
• Replaces it with resolved address if successful
• Leaves alone if not
Using Eureka Server on Cloud Foundry
• Create instance of Eureka Server using CF CLI
• cf create-service p-service-registry standard
myDiscoveryService
• Use cf service to check status of service
• Bind instance to applications
• cf bind-service appName myDiscoveryService
• Also specify binding in manifest.yml
• ‘services’ section-> add ‘myDiscoveryService’
• Steeltoe Discovery Client detects p-service-registry binding
• Overrides appsettings.jsonclient settings with binding information
• Use Eureka Server dashboard to examine registered services
Microservices Connectivity
Steeltoe Connectors Overview
• Simplify using Cloud Foundry services
• Can configure settings for local usage (e.g. appsettings.json, Config Server, etc.)
• When app pushed to Cloud Foundry bindings auto detected and override settings
• Adds Connection or DbContext objects to service container
• Several connector NuGets
• Steeltoe.CloudFoundry.Connector.MySql
• Steeltoe.CloudFoundry.Connector.Postgres
• Steeltoe.CloudFoundry.Connector.Rabbit
• Steeltoe.CloudFoundry.Connector.Redis
• Steeltoe.CloudFoundry.Connector.OAuth
• Application type support
• ASP.NET - MVC, WebForm, WebAPI, WCF
• ASP.NET Core
• Console apps (.NET Framework and .NET Core)
Cloud Security Providers
Steeltoe Security Provider Overview
• Secure your .NET apps on Cloud Foundry
• Access JWT protected resources (such as the Cloud Controller API)
• Integrate your application with Pivotal Single Sign on, leveraging OAuth2
• Adds a Redis key ring storage option for ASP.NET Core Data Protection
• Two security NuGets
• Steeltoe.Security.DataProtection.Redis
• Steeltoe.Security.Authentication.CloudFoundry
• Application type support
• ASP.NET - MVC, WebForm, WebAPI, WCF
• ASP.NET Core
• Console apps (.NET Framework and .NET Core)
Circuit Breaker
Steeltoe Circuit Breaker Overview
• Stop sending requests to a
failing service (allowing time
to recover)
• Fail gracefully by
implementing fall-back
behavior
Cloud Management
Steeltoe Management Endpoints
/info
arbitrary app info, e.g. git build tag
/health
application health information
/trace
circular buffer of last 100 http requests/responses
/loggers
shows and modifies configuration of loggers down to the class level
lunch time
Exercise #1
Goal: Set up environment and generate an ASP.NET Core
microservice.
Expected Result: Laptop configured with Cloud Foundry CLI, Visual
Studio Code, .NET Core SDK. PWS account created and Spring
Cloud Services instance deployed. ASP.NET core microservice
created and deployed to Cloud Foundry.
Exercise #2
Goal: See how to use the Config Server for centralized
configuration.
Expected Result: ASP.NET Core microservice created and set to
use new configuration provider. Service deployed to Cloud Foundry
and leveraging Spring Cloud Services Configuration Server.
Exercise #3
Goal: Explore service registration and discovery practices.
Expected Result: Register existing microservice with a service
registry. Update a client application so that it discovers the
microservice and uses it.
Exercise #4
Goal: Check out Cloud Foundry support for .NET applications.
Expected Result: The ASP.NET Core microservice scales
automatically, recovers from failures, and emits logs that the
platform aggregates and displays.
Cloud-native
.NET isn’t only
possible, it’s
now required.
Are you ready?
Upgrade your patterns
Introduce new tools
Upgrade your platform
Experiment and deploy things!
Learn more!
http://pivotal.io/microservices
https://www.microsoft.com/net/learn/architecture
http://steeltoe.io
https://github.com/steeltoeoss

More Related Content

What's hot

Cloud Foundry for PHP developers
Cloud Foundry for PHP developersCloud Foundry for PHP developers
Cloud Foundry for PHP developersDaniel Krook
 
Cloud Foundry BOSH CPI for OpenStack
Cloud Foundry BOSH CPI for OpenStackCloud Foundry BOSH CPI for OpenStack
Cloud Foundry BOSH CPI for OpenStackAnimesh Singh
 
Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic RelationshipCloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic RelationshipMatt Stine
 
Containers and microservices for realists
Containers and microservices for realistsContainers and microservices for realists
Containers and microservices for realistsKarthik Gaekwad
 
Automated Lifecycle Management - CloudFoundry on OpenStack
Automated Lifecycle Management - CloudFoundry on OpenStackAutomated Lifecycle Management - CloudFoundry on OpenStack
Automated Lifecycle Management - CloudFoundry on OpenStackAnimesh Singh
 
Cloud Foundry, the Open Platform As A Service
Cloud Foundry, the Open Platform As A ServiceCloud Foundry, the Open Platform As A Service
Cloud Foundry, the Open Platform As A ServicePatrick Chanezon
 
Breaking the Monolith
Breaking the MonolithBreaking the Monolith
Breaking the MonolithVMware Tanzu
 
Cloud Native Patterns with Bluemix Developer Console
Cloud Native Patterns with Bluemix Developer ConsoleCloud Native Patterns with Bluemix Developer Console
Cloud Native Patterns with Bluemix Developer ConsoleMatthew Perrins
 
Docker, Cloud Foundry, Bosh & Bluemix
Docker, Cloud Foundry, Bosh & BluemixDocker, Cloud Foundry, Bosh & Bluemix
Docker, Cloud Foundry, Bosh & BluemixIBM
 
Why to Cloud Native
Why to Cloud NativeWhy to Cloud Native
Why to Cloud NativeKarthik Gaekwad
 
Docker for the enterprise
Docker for the enterpriseDocker for the enterprise
Docker for the enterpriseBert Poller
 
Jelastic DevOps Platform Product Overview for ISVs
Jelastic DevOps Platform Product Overview for ISVsJelastic DevOps Platform Product Overview for ISVs
Jelastic DevOps Platform Product Overview for ISVsJelastic Multi-Cloud PaaS
 
Alibaba Cloud Conference 2016 - Docker Enterprise
Alibaba Cloud Conference   2016 - Docker EnterpriseAlibaba Cloud Conference   2016 - Docker Enterprise
Alibaba Cloud Conference 2016 - Docker EnterpriseJohn Willis
 
Introduction to Microservices and Cloud Native Application Architecture
Introduction to Microservices and Cloud Native Application ArchitectureIntroduction to Microservices and Cloud Native Application Architecture
Introduction to Microservices and Cloud Native Application ArchitectureDavid Currie
 
Cloud foundry architecture and deep dive
Cloud foundry architecture and deep diveCloud foundry architecture and deep dive
Cloud foundry architecture and deep diveAnimesh Singh
 
Modern Application Development v1-0
Modern Application Development  v1-0Modern Application Development  v1-0
Modern Application Development v1-0Greg Hoelzer
 
All Things Open : Crash Course in Open Source Cloud Computing
All Things Open : Crash Course in Open Source Cloud Computing All Things Open : Crash Course in Open Source Cloud Computing
All Things Open : Crash Course in Open Source Cloud Computing Mark Hinkle
 
ClouNS - A Cloud-native Application Reference Model for Enterprise Architects
ClouNS - A Cloud-native Application Reference Model for Enterprise ArchitectsClouNS - A Cloud-native Application Reference Model for Enterprise Architects
ClouNS - A Cloud-native Application Reference Model for Enterprise ArchitectsNane Kratzke
 
56k.cloud training
56k.cloud training56k.cloud training
56k.cloud trainingBrian Christner
 
Network Automation Journey, A systems engineer NetOps perspective
Network Automation Journey, A systems engineer NetOps perspectiveNetwork Automation Journey, A systems engineer NetOps perspective
Network Automation Journey, A systems engineer NetOps perspectiveWalid Shaari
 

What's hot (20)

Cloud Foundry for PHP developers
Cloud Foundry for PHP developersCloud Foundry for PHP developers
Cloud Foundry for PHP developers
 
Cloud Foundry BOSH CPI for OpenStack
Cloud Foundry BOSH CPI for OpenStackCloud Foundry BOSH CPI for OpenStack
Cloud Foundry BOSH CPI for OpenStack
 
Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic RelationshipCloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
 
Containers and microservices for realists
Containers and microservices for realistsContainers and microservices for realists
Containers and microservices for realists
 
Automated Lifecycle Management - CloudFoundry on OpenStack
Automated Lifecycle Management - CloudFoundry on OpenStackAutomated Lifecycle Management - CloudFoundry on OpenStack
Automated Lifecycle Management - CloudFoundry on OpenStack
 
Cloud Foundry, the Open Platform As A Service
Cloud Foundry, the Open Platform As A ServiceCloud Foundry, the Open Platform As A Service
Cloud Foundry, the Open Platform As A Service
 
Breaking the Monolith
Breaking the MonolithBreaking the Monolith
Breaking the Monolith
 
Cloud Native Patterns with Bluemix Developer Console
Cloud Native Patterns with Bluemix Developer ConsoleCloud Native Patterns with Bluemix Developer Console
Cloud Native Patterns with Bluemix Developer Console
 
Docker, Cloud Foundry, Bosh & Bluemix
Docker, Cloud Foundry, Bosh & BluemixDocker, Cloud Foundry, Bosh & Bluemix
Docker, Cloud Foundry, Bosh & Bluemix
 
Why to Cloud Native
Why to Cloud NativeWhy to Cloud Native
Why to Cloud Native
 
Docker for the enterprise
Docker for the enterpriseDocker for the enterprise
Docker for the enterprise
 
Jelastic DevOps Platform Product Overview for ISVs
Jelastic DevOps Platform Product Overview for ISVsJelastic DevOps Platform Product Overview for ISVs
Jelastic DevOps Platform Product Overview for ISVs
 
Alibaba Cloud Conference 2016 - Docker Enterprise
Alibaba Cloud Conference   2016 - Docker EnterpriseAlibaba Cloud Conference   2016 - Docker Enterprise
Alibaba Cloud Conference 2016 - Docker Enterprise
 
Introduction to Microservices and Cloud Native Application Architecture
Introduction to Microservices and Cloud Native Application ArchitectureIntroduction to Microservices and Cloud Native Application Architecture
Introduction to Microservices and Cloud Native Application Architecture
 
Cloud foundry architecture and deep dive
Cloud foundry architecture and deep diveCloud foundry architecture and deep dive
Cloud foundry architecture and deep dive
 
Modern Application Development v1-0
Modern Application Development  v1-0Modern Application Development  v1-0
Modern Application Development v1-0
 
All Things Open : Crash Course in Open Source Cloud Computing
All Things Open : Crash Course in Open Source Cloud Computing All Things Open : Crash Course in Open Source Cloud Computing
All Things Open : Crash Course in Open Source Cloud Computing
 
ClouNS - A Cloud-native Application Reference Model for Enterprise Architects
ClouNS - A Cloud-native Application Reference Model for Enterprise ArchitectsClouNS - A Cloud-native Application Reference Model for Enterprise Architects
ClouNS - A Cloud-native Application Reference Model for Enterprise Architects
 
56k.cloud training
56k.cloud training56k.cloud training
56k.cloud training
 
Network Automation Journey, A systems engineer NetOps perspective
Network Automation Journey, A systems engineer NetOps perspectiveNetwork Automation Journey, A systems engineer NetOps perspective
Network Automation Journey, A systems engineer NetOps perspective
 

Similar to .NET Cloud-Native Bootcamp- Los Angeles

.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native BootcampVMware Tanzu
 
Best Practices for Building Hybrid-Cloud Architectures | Hans Jespersen
Best Practices for Building Hybrid-Cloud Architectures | Hans JespersenBest Practices for Building Hybrid-Cloud Architectures | Hans Jespersen
Best Practices for Building Hybrid-Cloud Architectures | Hans Jespersenconfluent
 
OCP Datacomm RedHat - Kubernetes Launch
OCP Datacomm RedHat - Kubernetes LaunchOCP Datacomm RedHat - Kubernetes Launch
OCP Datacomm RedHat - Kubernetes LaunchPT Datacomm Diangraha
 
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...Ludovic Piot
 
PCF: Platform for a New Era - Kubernetes for the Enterprise - London
PCF: Platform for a New Era - Kubernetes for the Enterprise - LondonPCF: Platform for a New Era - Kubernetes for the Enterprise - London
PCF: Platform for a New Era - Kubernetes for the Enterprise - LondonVMware Tanzu
 
IBM Open Cloud Update XCITE Fall 2014
IBM Open Cloud Update   XCITE Fall 2014IBM Open Cloud Update   XCITE Fall 2014
IBM Open Cloud Update XCITE Fall 2014Christopher Ferris
 
Service fabric and azure service fabric mesh
Service fabric and azure service fabric meshService fabric and azure service fabric mesh
Service fabric and azure service fabric meshMikkel Mørk Hegnhøj
 
Using cloud native development to achieve digital transformation
Using cloud native development to achieve digital transformationUsing cloud native development to achieve digital transformation
Using cloud native development to achieve digital transformationUni Systems S.M.S.A.
 
Red Hat Openshift on Microsoft Azure
Red Hat Openshift on Microsoft AzureRed Hat Openshift on Microsoft Azure
Red Hat Openshift on Microsoft AzureJohn Archer
 
Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...
Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...
Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...Jack-Junjie Cai
 
Getting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on BluemixGetting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on BluemixJake Peyser
 
Getting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on BluemixGetting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on BluemixDev_Events
 
Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015WaveMaker, Inc.
 
8 - OpenShift - A look at a container platform: what's in the box
8 - OpenShift - A look at a container platform: what's in the box8 - OpenShift - A look at a container platform: what's in the box
8 - OpenShift - A look at a container platform: what's in the boxKangaroot
 
Migrating Java EE applications to IBM Bluemix Platform-as-a-Service
Migrating Java EE applications to IBM Bluemix Platform-as-a-ServiceMigrating Java EE applications to IBM Bluemix Platform-as-a-Service
Migrating Java EE applications to IBM Bluemix Platform-as-a-ServiceDavid Currie
 
Cloud Deployment Toolkit
Cloud Deployment ToolkitCloud Deployment Toolkit
Cloud Deployment ToolkitBret Piatt
 
VMworld 2015: Build and Run Cloud Native Apps in your Software Defined Data C...
VMworld 2015: Build and Run Cloud Native Apps in your Software Defined Data C...VMworld 2015: Build and Run Cloud Native Apps in your Software Defined Data C...
VMworld 2015: Build and Run Cloud Native Apps in your Software Defined Data C...VMworld
 
CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018Krishna-Kumar
 
Hybrid Cloud DevOps with Apprenda and UrbanCode Deploy
Hybrid Cloud DevOps with Apprenda and UrbanCode DeployHybrid Cloud DevOps with Apprenda and UrbanCode Deploy
Hybrid Cloud DevOps with Apprenda and UrbanCode DeployClaudia Ring
 

Similar to .NET Cloud-Native Bootcamp- Los Angeles (20)

.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp
 
Best Practices for Building Hybrid-Cloud Architectures | Hans Jespersen
Best Practices for Building Hybrid-Cloud Architectures | Hans JespersenBest Practices for Building Hybrid-Cloud Architectures | Hans Jespersen
Best Practices for Building Hybrid-Cloud Architectures | Hans Jespersen
 
OCP Datacomm RedHat - Kubernetes Launch
OCP Datacomm RedHat - Kubernetes LaunchOCP Datacomm RedHat - Kubernetes Launch
OCP Datacomm RedHat - Kubernetes Launch
 
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...
 
PCF: Platform for a New Era - Kubernetes for the Enterprise - London
PCF: Platform for a New Era - Kubernetes for the Enterprise - LondonPCF: Platform for a New Era - Kubernetes for the Enterprise - London
PCF: Platform for a New Era - Kubernetes for the Enterprise - London
 
IBM Open Cloud Update XCITE Fall 2014
IBM Open Cloud Update   XCITE Fall 2014IBM Open Cloud Update   XCITE Fall 2014
IBM Open Cloud Update XCITE Fall 2014
 
Service fabric and azure service fabric mesh
Service fabric and azure service fabric meshService fabric and azure service fabric mesh
Service fabric and azure service fabric mesh
 
Using cloud native development to achieve digital transformation
Using cloud native development to achieve digital transformationUsing cloud native development to achieve digital transformation
Using cloud native development to achieve digital transformation
 
Red Hat Openshift on Microsoft Azure
Red Hat Openshift on Microsoft AzureRed Hat Openshift on Microsoft Azure
Red Hat Openshift on Microsoft Azure
 
Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...
Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...
Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...
 
Getting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on BluemixGetting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on Bluemix
 
Getting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on BluemixGetting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on Bluemix
 
Getting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on BluemixGetting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on Bluemix
 
Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015
 
8 - OpenShift - A look at a container platform: what's in the box
8 - OpenShift - A look at a container platform: what's in the box8 - OpenShift - A look at a container platform: what's in the box
8 - OpenShift - A look at a container platform: what's in the box
 
Migrating Java EE applications to IBM Bluemix Platform-as-a-Service
Migrating Java EE applications to IBM Bluemix Platform-as-a-ServiceMigrating Java EE applications to IBM Bluemix Platform-as-a-Service
Migrating Java EE applications to IBM Bluemix Platform-as-a-Service
 
Cloud Deployment Toolkit
Cloud Deployment ToolkitCloud Deployment Toolkit
Cloud Deployment Toolkit
 
VMworld 2015: Build and Run Cloud Native Apps in your Software Defined Data C...
VMworld 2015: Build and Run Cloud Native Apps in your Software Defined Data C...VMworld 2015: Build and Run Cloud Native Apps in your Software Defined Data C...
VMworld 2015: Build and Run Cloud Native Apps in your Software Defined Data C...
 
CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018
 
Hybrid Cloud DevOps with Apprenda and UrbanCode Deploy
Hybrid Cloud DevOps with Apprenda and UrbanCode DeployHybrid Cloud DevOps with Apprenda and UrbanCode Deploy
Hybrid Cloud DevOps with Apprenda and UrbanCode Deploy
 

More from VMware Tanzu

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 ItVMware Tanzu
 
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 2023VMware Tanzu
 
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 ScaleVMware Tanzu
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023VMware Tanzu
 
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 ProductVMware Tanzu
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready AppsVMware Tanzu
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And BeyondVMware Tanzu
 
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.pdfVMware Tanzu
 
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 2023VMware Tanzu
 
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 2023VMware Tanzu
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptxVMware Tanzu
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchVMware Tanzu
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishVMware Tanzu
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVMware Tanzu
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - FrenchVMware Tanzu
 
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 2023VMware Tanzu
 
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 BootVMware Tanzu
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerVMware Tanzu
 
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 PracticeVMware Tanzu
 
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 SolutionsVMware 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

Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessEnvertis Software Solutions
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
2.pdf Ejercicios de programaciĂłn competitiva
2.pdf Ejercicios de programaciĂłn competitiva2.pdf Ejercicios de programaciĂłn competitiva
2.pdf Ejercicios de programaciĂłn competitivaDiego IvĂĄn Oliveros Acosta
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 

Recently uploaded (20)

Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
2.pdf Ejercicios de programaciĂłn competitiva
2.pdf Ejercicios de programaciĂłn competitiva2.pdf Ejercicios de programaciĂłn competitiva
2.pdf Ejercicios de programaciĂłn competitiva
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 

.NET Cloud-Native Bootcamp- Los Angeles

  • 2. Goal of this boot camp. Introduce you to practices, platforms and tools for building modern .NET applications.
  • 4. 9-9:15AM Introduction 9:15-9:30AM Getting good at software 9:30-10AM All about microservices 10-10:15AM What’s cloud-native all about? 10:15-10:45AM Introducing Cloud Foundry 10:45-11AM BREAK TIME 11-12:30PM Cloud-native .NET technologies and patterns 12:30-1PM LUNCH 1-4PM Hands on exercises 4-4:30PM Wrap up
  • 5. Why do you need to be good at software? Customers expect it. Meet demand to operate at scale. Gives you more business options. Your competitors are doing it. It makes everyone happier.
  • 6. Ok, but how do I know that I’m doing well at software? Improved speed. Faster cycle time, more frequently deployments. Improved scale. More requests per second to apps and services. Improved stability. Greater uptime of customer-facing service. Improved security. Achieving 100% patch coverage. Improved simplicity. Reduce complexity of processes and tools.
  • 7. What are microservices? It refers to an architectural style that supports constant change in your environment. This is accomplished by creating applications out of independent, loosely-coupled, domain-oriented services.
  • 8. Microservices architecture Monolithic architecture Single focused services. Software solves many challenges in one software package. Loosely coupled. Tightly coupled. Delivered continuously. Delivered all together, on a schedule. Scale independently. Scale everything together. Independent teams own service lifecycle. Many teams own pieces of the service lifecycle. Emphasis on distributed systems patterns. Emphasis on delivery and organizational processes. Diverse technologies managed through automation. Single, long-lived technology stacks. Short onboarding period for new developers. Larger codebase requires significant time to ramp up new team members.
  • 9. Moving to microservices? Here’s what to consider. Do you have a pressing reason to do it? Can you rearrange your teams? Are you ready to decompose your monoliths? How will you decompose? Are you currently doing CI / CD? Is your production environment automated? How will you discover services at runtime? What can you do to prevent cascading failures? Are you ready to evolve your data platforms? Do you need to modernize your messaging and event stream processing toolchain? Are you ready for modern logging, monitoring?
  • 10. What is “cloud-native” all about? This is an approach to building and operating software that takes advantage of the cloud-computing model. Often seen as a combination of microservices, continuous delivery, containers, and DevOps. It’s all about software that’s built for scale, built for continuous change, built to tolerate failure, built for manageability.
  • 11. Most cloud-native applications comply with the 12 factor criteria. • One codebase tracked in version control • Explicitly declared dependencies • Configurations stored in the environment • Backing services treated as attached resources • Separate build, release, and run stages • Apps executed as stateless processes • Services exported via port binding • Scaled out via more processes • Fast startup and graceful shutdown • Parity among dev, staging, and production environments • Logs treated as event streams • Admin tasks run as one-off processes
  • 12. There’s a maturity model on your way to cloud native. • No file system dependency • Self contained application • Platform managed ports/address • Consume off-platform services Cloud Ready • Twelve factor app • Horizontal scalable • Leverage platform for HA Cloud Friendly • Designed for failure • Apps unaffected by dependencies • Proactive failure testing • Metrics and monitoring baked in • Cloud agnostic runtime Cloud Resilient • Microservice architecture • API-first designCloud Native
  • 13. So, what actually makes up a cloud-native platform?
  • 15. Pivotal Cloud Foundry Architecture DYNAMIC ROUTE SERVICES / API MANAGEMENT APP MICROSERVICES TECHNOLOGY Spring Boot Steeltoe Spring Cloud Services DATA MICROSERVICES TECHNOLOGY Spring Cloud Data Flow Cloud Cache RabbitMQ MySQL YOUR APPLICATIONS PLATFORM Elastic Runtime Concourse App Autoscaler PCF Metrics CredHub Orgs, Spaces, Roles and Permissions EMBEDDED OS CLOUD ORCHESTRATION CONTAINER ORCHESTRATIONWindows Linux Amazon Web Services Microsoft Azure Google Cloud Platform Open Stack VMWare SERVICE BROKER API PIVOTAL APPLICATION SERVICE PIVOTAL CLOUD FOUNDRY BOSH MODERN CLOUD NATIVE PLATFORM MULTI CLOUD
  • 16. 16 App Manager UI Application Manager Service Service Broker Service Nodes Service Broker Service Nodes Service Services Service Broker Service Nodes Service CLI – Cmd Line Terminal Window Platform Runtime - Cloud Foundry App Log Aggregator Login Server Dynamic Router Cloud Controller UAA Diego Messaging (NATS) Metrics Collection HA Proxy LB CC-Bridge Rep Executor Rep Executor + = BBSAuctioneer Windows Cell Linux Cell
  • 17. PCF 2.0 Any App Every Cloud One Platform
  • 18. 18 Deploying .NET applications? It doesn’t have to be terrible. Traditional .NET deployment on VMs Pivotal Cloud Foundry Provision a VM Configure IP, DNS Configure firewall Windows updates, reboot… Install IIS Deploy application Configure app pool Configure SSL Configure load balancer ~$ cf push
  • 19. ~$ cf push Code Complete & Tested Find available hosts Install & configure runtime Install & configure middleware Pull application source code Retrieve dependent libraries Create application package Install, configure dependent service(s) Deploy container to host(s) Load environment variables Configure load balancer Configure firewalls Update service monitoring tools Configure log collector Application in Production 45 seconds later
  • 20. $ cf push my-app -p target/myapp.jar or $ cf push my-app --docker-image pivotal/my-image
  • 22. Deploy source code that the platform containerizes for you or Deploy container images that you build yourself
  • 23. Deploy source code that the platform containerizes for you or Deploy container images that you build yourself Developer Cloud Foundry
  • 24. Deploy source code that the platform containerizes for you or Deploy container images that you build yourself Developer Cloud Foundry Developer Developer Developer Developer
  • 25. Cloud Foundry offers exceptional support for containers at runtime. Builds OCI-compatible containers Generates both Linux and Windows containers Option to SSH into running containers Can rebuild containers to patch root file system Performs log aggregation and correlation Offers monitoring and auto scaling of containers Introduces policy-driven container networking Can attach persistent storage volumes Intercept traffic via Route Services Securely connect to outside services via Broker Secure-by-default approach to containers
  • 26. • Application manifests tells cf push what to do with applications • What OS stack to run on: Windows or Linux • How many instances to create and how much memory to use. • Helps automate deployment, especially of multiple apps at once • Can list services to be bound to the application • YAML format – http://yaml.org Define application metadata in a manifest file.
  • 27. 27 Things about Pivotal Cloud Foundry you should know. ▪ Built for multi-tenancy ▪ Push code or containers ▪ Application manifests written in YAML ▪ Injects environment variables ▪ Aggregates app logs, correlates with metrics ▪ Monitors app health, reacts ▪ Scale manually or automatically ▪ Built in data services, marketplace ▪ Manages apps and underlying VMs ▪ Natively runs on multiple IaaS platforms ▪ Four layers of high availability built in ▪ Access via GUI, REST API, CLI ▪ Dev GUI = Applications Manager ▪ Ops GUI = Operations Manager
  • 28. demo
  • 30. .NET is a unified platform
  • 31. CORE Primitives • Collections • Reflection • Interop • Linq THREADING Threads • Thread Pool • Tasks IO Files • Compression • MMF NETWORKING Sockets • HTTP • Mail • WebSockets SERIALIZATION BinaryFormatter • Data Contract • XML XML XLinq • XML Document • XPath • Schema • XSL DATA DataSet • DataTable • SQLClient APIs in .NET Standard 2.0
  • 32. CORE Primitives • Collections • Reflection • Interop • Linq THREADING Threads • Thread Pool • Tasks IO Files • Compression • MMF NETWORKING Sockets • HTTP • Mail • WebSockets SERIALIZATION BinaryFormatter • Data Contract • XML XML XLinq • XML Document • XPath • Schema • XSL DATA DataSet • DataTable • SQLClient APIs in .NET Standard 2.0 +20KMore APIs than .NET Standard 1.x 70%NuGet Packages are API compatible https://github.com/dotnet/standard
  • 33. What’s the story with .NET Core? Cross-platform runtime, library, compilers Fully open source Modular and built on NuGet packages Still a subset of .NET Framework scope Strong CLI tooling available .NET Core != ASP.NET Core
  • 34. What’s the story with ASP.NET Core? Runs cross framework (.NET Core everywhere, and .NET Framework on Windows) Fully open source Handful of supported project types Can deploy as completely self-contained Multiple hosting options Dependency injection baked in Support for external configuration
  • 35. The dotnet CLI tool dotnet new dotnet add | remove package dotnet restore dotnet build dotnet run dotnet test dotnet publish
  • 37. Where to run cloud-native .NET apps? Pivotal Cloud Foundry • .NET 4.x support (web apps, web services, console apps) on Windows. • Resource and namespace isolation on Windows. • .NET Core support (web apps, web services, console apps) on Windows or Linux. • Buildpacks for Hostable Web Core (HWC) on Windows and .NET Core on Linux. • Connect to service brokers for application services • Native support for health monitoring, autoscaling, log aggregation, container metrics, and more.
  • 38. PAS for Windows Powered by Windows Server containers Premium experience for .NET workloads For legacy apps, access to file system, registry, GAC Administrator and developer have SSH capability Use Windows Event Log drains Makes it possible for us to add better autoscaling, C2C networking Remote app debugging enabled
  • 39. Building 12 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 using local disk, especially 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
  • 40. How to implement cloud-native patterns? Java users have Spring and NetflixOSS. + = Spring Cloud • Service registration and discovery • API gateway • Client-side load balancing • Git-backed configuration store • Circuit breakers • OAuth 2.0 security support • Distributed tracing • Event-driven microservices • Orchestrated data pipelines
  • 41. Pivotal packaged up key Spring Cloud capabilities into a managed bundle for Pivotal Cloud Foundry called Spring Cloud Services.
  • 42. Enabling cloud-native .NET apps. Fully open source, part of .NET Foundation For .NET Framework or .NET Core Run on Cloud Foundry, or anywhere Includes: • Configuration server provider • Service discovery with Netflix Eureka • Connectors to OSS data, messaging technology • Security providers • Circuit breaker with Netflix Hystrix • Actuators
  • 43. Configuration Providers Cloud Foundry - VCAP_APPLICATION, VCAP_SERVICES, CF_* Config Server - Access config stored in Spring Cloud Config Server (backed by Git, Vault, local filesystem) - Across all instances, all apps, all environments 43
  • 44. About Spring Cloud Config Server 44
  • 45. Service Discovery Service Discovery Client - .NET client for Netflix Eureka - Implements Service Discovery design pattern - Dynamically discover and call registered services - Release 1.1 Supports C2C Networking, IP Address as Service Address 45
  • 47. Circuit Breaker Circuit Breaker Client - .NET implementation of Netflix Hystrix - Bypass failing services with elegant fall-back behavior (so your users don’t see nasty error messages) - Rich metrics and monitoring - Available in Steeltoe 1.1 47
  • 49. Cloud Connectors - MySQL - Postgres - MS-SQL - Redis - RabbitMQ - OAuth (for UAA or Pivotal Single Sign-on) 49 Connectors for common data services
  • 50. Security Providers - OAuth2 SSO Provider - JWT resource protection - Redis Key Ring Repository 50
  • 51. Management Endpoints (Actuators) - /info arbitrary app info, e.g. git build tag - /health application health information - /trace circular buffer of last 100 http requests/responses - /loggers shows and modifies configuration of loggers down to the class level 51 Available in Steeltoe 1.1-rc3 and above
  • 52. Open Source and Flexible Steeltoe works... with .NET Core and with the .NET framework on Windows and on Linux standalone and running on Cloud Foundry 52 ...and it’s now part of the
  • 54. Steeltoe Configuration Providers • 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 • Two custom providers • CloudFoundry • ConfigServer • Application type support • ASP.NET - MVC, WebForm, WebAPI, WCF • ASP.NET Core • Console apps (.NET Framework and .NET Core)
  • 55. Steeltoe Config Server Client Provider • Enables Spring Cloud Config Server to be used as a configuration source • OSS Config Server - Steeltoe.Extensions.Configuration.ConfigServerCore • SCS Config Server - Pivotal.Extensions.Configuration.ConfigServerCore • Application type support • ASP.NET - MVC, WebForm, WebAPI, WCF • ASP.NET Core • Console apps (.NET Framework and .NET Core)
  • 56. Spring Cloud Config Server Overview • Supports different back ends • Local or remote git repos • Hashicorp Vault • File System • Exposes resource HTTP API • Default starts on port=8080 • Configuration pulled by • AppName • Profile • Label – optional
  • 57. Spring Cloud Config Server Overview • Serves resources: • /application.yml • /application.properties • /application-{profile}.yml • /application-{profile}.properties • /{appname}-{profile}.yml • /{appname}-{profile}.properties • /{appname}/{profile}[/{label}] • /{label}/{appname}-{profile}.yml • /{label}/{appname}-{profile}.properties • For a git backend • Configure URL of git repo • {appname} & {profile} maps to file & directory in repo • {label} -> git branch • Git backend example: • Repo contains files: • application.yml • application-development.yml • foo.yml • foo-development.yml • bar.yml • Client request contains: • {appname}=foo • {profile}=development • Config server returns in precedence order: • foo-development.yml • foo.yml • application-development.yml • application.yml
  • 58. Steeltoe Config Server Client Provider • Use AddConfigServer(environment) extension method on ConfigurationBuilder to add Config Server client provider • At Build(), client calls Config Server and retrieves configuration data • Must configure the Config Server client settings • Easiest to put settings in appsettings.json or other file based config source • Must add the providers settings before AddConfigServer(environment) so client can find settings • Two settings are required at minimum • spring:application:name defines the ‘{appName}’ portion of the Config Server request • spring:cloud:config:uri defines the REST endpoint of the Config Server • IHostEnvironment.EnvironmentName is used for ‘{profile}’ portion of Config Server request
  • 59. Using Config Server on Cloud Foundry • Create instance of Config Server using CF CLI • cf create-service p-config-server standard cserver –c config.json • config.json specifies URL of git repo it uses for configuration data • Use cf service to check status of service • Bind instance to applications • cf bind-service appName cserver • Also specify binding in manifest.yml • ‘services:’ section-> add ‘cserver’ • Steeltoe Config Server Client detects p-config-server binding • Overrides appsettings.jsonclient settings with binding information • Enables easier development and testing locally; and then push to CF with no changes
  • 61. Steeltoe Service Discovery Client Overview • Provides configurable generalized interface for Service Registry interaction • Steeltoe.Discovery.ClientCore • Single configurable provider today: • Eureka – client for Netflix Eureka Service registry • Application type support • ASP.NET - MVC, WebForm, WebAPI, WCF • ASP.NET Core • Console apps (.NET Framework and .NET Core)
  • 62. Spring Cloud Service Registry Basics • Use Service IDs, not URLs, to locate services • Client-side or server-side load balancing
  • 63. Steeltoe Eureka Client • Enables interaction with Netflix Eureka Service Registry • OSS Netflix Eureka Server – use Steeltoe.Discovery.ClientCore • PCF Netflix Eureka Server - use Pivotal.Discovery.ClientCore • Three step process to enable the Steeltoe Eureka client • Configure Discovery client settings – use values from the built Configuration • Add Discovery client to service container - AddDiscoveryClient(Configuration) • Use Discovery client – UseDiscoveryClient() - starts up client background thread • For Eureka, registered services are pulled from Eureka Server • Discovery client settings • Normally just add settings to Configuration • Put in appsettings.json, or Config Server repo, etc. • General client settings and for discovering services: eureka:client:…. • Settings for registering as a service: eureka:instance:…
  • 64. Using Steeltoe Eureka Client to Find Services • Inject IDiscoveryClientinto your Controller, View, etc. • Can use the interface to access registered services by name – GetInstances(name) • Alternatively, use DiscoveryHttpClientHandler– an HttpClientHandlerfor use with HttpClient • Integrates service lookup with issuing HttpClient requests • Handler intercepts requests and attempts to resolve ‘host’ portion of the request URL as a service name • Replaces it with resolved address if successful • Leaves alone if not
  • 65. Using Eureka Server on Cloud Foundry • Create instance of Eureka Server using CF CLI • cf create-service p-service-registry standard myDiscoveryService • Use cf service to check status of service • Bind instance to applications • cf bind-service appName myDiscoveryService • Also specify binding in manifest.yml • ‘services’ section-> add ‘myDiscoveryService’ • Steeltoe Discovery Client detects p-service-registry binding • Overrides appsettings.jsonclient settings with binding information • Use Eureka Server dashboard to examine registered services
  • 67. Steeltoe Connectors Overview • Simplify using Cloud Foundry services • Can configure settings for local usage (e.g. appsettings.json, Config Server, etc.) • When app pushed to Cloud Foundry bindings auto detected and override settings • Adds Connection or DbContext objects to service container • Several connector NuGets • Steeltoe.CloudFoundry.Connector.MySql • Steeltoe.CloudFoundry.Connector.Postgres • Steeltoe.CloudFoundry.Connector.Rabbit • Steeltoe.CloudFoundry.Connector.Redis • Steeltoe.CloudFoundry.Connector.OAuth • Application type support • ASP.NET - MVC, WebForm, WebAPI, WCF • ASP.NET Core • Console apps (.NET Framework and .NET Core)
  • 69. Steeltoe Security Provider Overview • Secure your .NET apps on Cloud Foundry • Access JWT protected resources (such as the Cloud Controller API) • Integrate your application with Pivotal Single Sign on, leveraging OAuth2 • Adds a Redis key ring storage option for ASP.NET Core Data Protection • Two security NuGets • Steeltoe.Security.DataProtection.Redis • Steeltoe.Security.Authentication.CloudFoundry • Application type support • ASP.NET - MVC, WebForm, WebAPI, WCF • ASP.NET Core • Console apps (.NET Framework and .NET Core)
  • 71. Steeltoe Circuit Breaker Overview • Stop sending requests to a failing service (allowing time to recover) • Fail gracefully by implementing fall-back behavior
  • 73. Steeltoe Management Endpoints /info arbitrary app info, e.g. git build tag /health application health information /trace circular buffer of last 100 http requests/responses /loggers shows and modifies configuration of loggers down to the class level
  • 75. Exercise #1 Goal: Set up environment and generate an ASP.NET Core microservice. Expected Result: Laptop configured with Cloud Foundry CLI, Visual Studio Code, .NET Core SDK. PWS account created and Spring Cloud Services instance deployed. ASP.NET core microservice created and deployed to Cloud Foundry.
  • 76. Exercise #2 Goal: See how to use the Config Server for centralized configuration. Expected Result: ASP.NET Core microservice created and set to use new configuration provider. Service deployed to Cloud Foundry and leveraging Spring Cloud Services Configuration Server.
  • 77. Exercise #3 Goal: Explore service registration and discovery practices. Expected Result: Register existing microservice with a service registry. Update a client application so that it discovers the microservice and uses it.
  • 78. Exercise #4 Goal: Check out Cloud Foundry support for .NET applications. Expected Result: The ASP.NET Core microservice scales automatically, recovers from failures, and emits logs that the platform aggregates and displays.
  • 79. Cloud-native .NET isn’t only possible, it’s now required. Are you ready? Upgrade your patterns Introduce new tools Upgrade your platform Experiment and deploy things!