SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 14 day free trial to unlock unlimited reading.
7.
Just a few of our millions of .NET customers…
dot.net/customers
8.
• Build and run scalable applications in modern, dynamic environments
• Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this
approach.
• Enables loosely coupled systems resilient, manageable, and observable
• Enables engineers to make high-impact changes frequently and predictably with minimal toil.
Company Experience
Netflix Has 600+ services in production. Deploys a hundred times per day.
Uber Has 1,000+ services stored in production. Deploys several thousand
builds each week.
WeChat Has 300+ services in production. Makes almost 1,000 changes per
day.
*CNCF definition
Key: Speed, Agility, & Scalability
9.
The 12-Factor Application – A methodology to adopt for cloud-native apps
1. Codebase
2. Dependencies
3. Configurations
4. Backing Services
5. Build, Release, Run
6. Processes
7. Port Binding
8. Concurrency
9. Disposability
10. Dev/Prod Parity
11. Logging
12. Admin Process
https://12factor.net/
https://content.pivotal.io/blog/beyond-the-twelve-factor-app
10.
Leveraging containers for Microservices
A container is a standard unit of software that packages up code and
all its dependencies, so the application runs quickly and reliably from
one computing environment to another.
11.
Azure Container Registry (ACR)
Use familiar, open-
source Docker CLI tools
Azure Container Registry
geo-replication
Manage images for all
types of containers
Manage a Docker private registry as a first-class Azure resource
12.
Scheduling Affinity/anti-
affinity
Health
monitoring
Failover
Scaling Networking Service
discovery
Coordinated
app upgrades
Azure Kubernetes Service (AKS)
The elements of orchestration
14.
Key Patterns for Microservices
1. API Gateway vs. Direct communication
- API Gateways implementation with Ocelot / Azure API Management
2. Resilient cloud applications
- Retries with exponential backoff plus Circuit breaker policy
3. HealthCheck
…
15.
Direct communication vs the API Gateway pattern
Direct communication to microservices
(“NO API Gateway usage”)
Using the API Gateway pattern
20.
Service Mesh tools:
• Envoy from Lyft Engineering
• Linkerd from https://buoyant.io
• Traefik from https
For example, Service Fabric Mesh uses Envoy out-of-the-box and “transparently”:
You can also use with Kubernetes but you need to implement/deploy it:
These tools provide features such as:
• Retry
• Circuit-breaking
• Latency and other metrics
• Failure- and latency-aware load balancing
• Distributed tracing
• Protocol upgrade
• Version-aware routing
• Cluster failover, etc
If using those, you don’t need an implementation of retries and circuit breaker as part of every microservice.
Instead, you will be using one as a sidecar pattern or host proxy.
Moving resilient patterns to the platform (Retries/Circuit-Breaker):
21.
Other Considerations..
• Communication Patterns
• Asynchronous messaging patterns
• Event driven architecture
• Data Management
• CQRS
• Deployment patterns
• Cross Cutting Concerns
• Externalized Configurations
• Service Discovery
….
Containers offer a logical packaging mechanism in which applications can be abstracted from the environment in which they actually run.
This decoupling allows container-based applications to be deployed easily and consistently, regardless of the target environment
Containerization provides a clean separation of concerns – isolation.
Developers focus on their application logic and dependencies; IT Ops focus on deployment and management.
Efficiently manage a single registry replicated across multiple regions. Geo-replication enables you to manage global deployments as one entity to simplify operations and management.
Reduce the network latency and eliminate any ingress/egress charges by keeping your registry in the same data center as your deployments. ACR gives you local, network-close storage of your container images and full control over naming and organization of the images.
TechReady 23
0 likes
Be the first to like this
Views
Total views
180
On SlideShare
0
From Embeds
0
Number of Embeds
0
You have now unlocked unlimited access to 20M+ documents!
Unlimited Reading
Learn faster and smarter from top experts
Unlimited Downloading
Download to take your learnings offline and on the go
You also get free access to Scribd!
Instant access to millions of ebooks, audiobooks, magazines, podcasts and more.
Read and listen offline with any device.
Free access to premium services like Tuneln, Mubi and more.