Skip to content

Commit

Permalink
Fix: removed typos
Browse files Browse the repository at this point in the history
  • Loading branch information
priyaaakansha committed Oct 10, 2023
1 parent aea1acd commit 194c666
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions 70DaysExercises/01-Let's break down a Service Mesh.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@
> *An introduction to Service Mesh, the use-cases, and the problems it aims to solve.*
### What is a Service Mesh?
In modern distributed environments, applications are broken up into small chunks of code that run inside of a container. These containers need to be able to communicate with each other, and while they normally can, in a Kubernetes environment, there is a higher order of control, visiblity, and security that's required. Each of these containers, or services interact with other services, but must do so in an encrypted an authorized manner. There are other challenges with having coordinate service to service communication. What happens when one particular service is unavailable to provide a response? How would you troubleshoot this, and fix it so it doesn't happen again? How can we tune our applications to respond in an appropriate amount of time?
In modern distributed environments, applications are broken up into small chunks of code that run inside of a container. These containers need to be able to communicate with each other, and while they normally can, in a Kubernetes environment, there is a higher order of control, visibility, and security that's required. Each of these containers, or services interact with other services, but must do so in an encrypted and authorized manner. There are other challenges with having coordinate service to service communication. What happens when one particular service is unavailable to provide a response? How would you troubleshoot this, and fix it so it doesn't happen again? How can we tune our applications to respond in an appropriate amount of time?

These are small subset of challenges when it comes to running and managing applications, or microservices on a network. The unpredictability of the network means we shouldn't rely too much on it being there. We also can't keep changing our code to adapt to changing network conditions, so what do we do?

Enter a Service Mesh. A Service Mesh is an application network layer that handles service-to-service communication, by providing a layer for granular traffic control, AuthN, AuthZ, and observability.


### What are the challenges a Service Mesh aims to solve?m
### What are the challenges a Service Mesh aims to solve?
1. Unreliable and changing networks that are complex, while having to adapt while your microservices scale
2. Ensuring a near zero-trust like environment where, RBAC, AuthZ and AuthN are critical.
3. Ensuring a data-loss prevention approach using encryption and traffic filtration techniques
Expand All @@ -37,7 +37,7 @@ A service mesh usually has a few key components:
- A data plane implemented in both the sidecar and gateways
- The Kubernetes cluster it resides on

To describe how a service mesh behaves, an operator will apply a traffic routing or security policy, and the service mesh control plane will push any configuritions or policy to either the gateways or sidecar proxies. The gateway and sidecars will enforce any traffic rule. In the diagram above, the ingress gateway is the first to receive the external inbound request. It will forward it along to the first service in the request path, service A. Service A has a sidecar to process this request, and send back any telemetry data to the control plane. There's more to this but we'll explore in depth in the following days.
To describe how a service mesh behaves, an operator will apply a traffic routing or security policy, and the service mesh control plane will push any configurations or policy to either the gateways or sidecar proxies. The gateway and sidecars will enforce any traffic rule. In the diagram above, the ingress gateway is the first to receive the external inbound request. It will forward it along to the first service in the request path, service A. Service A has a sidecar to process this request, and send back any telemetry data to the control plane. There's more to this but we'll explore in depth in the following days.

### Relationship to Kubernetes
Kubernetes has some challenges in how it can handle things like multi-cluster and cross-cluster communication, identity stewardship. What a Service Mesh does is it takes on the responsibilities for things like:
Expand All @@ -57,7 +57,7 @@ Istio is an open-source service mesh built by Google, IBM, and Lyft, and current
AppMesh is a service mesh implementation that is proprietary to AWS but primarily focuses in on applications deployed to various AWS services such as ECS, EKS, EC2. Its tight-nit integration into the AWS ecosystem allows for quick onboarding of services into the mesh.

#### Consul
Consul is a serivce mesh offering from Hashicorp that also provides traffic routing, observability, and sercurity much like Istio does.
Consul is a service mesh offering from Hashicorp that also provides traffic routing, observability, and security much like Istio does.

#### Linkerd
Linkerd is an open-source service mesh offering that is lightweight. Similar to Istio, it provides traffic management, observability, and security, using a similar architecture. Linkerd adopts a sidecar-pattern using a Rust-based proxy.
Expand All @@ -66,5 +66,5 @@ Linkerd is an open-source service mesh offering that is lightweight. Similar to
Cilium is a Container Networking Interface that leverages eBPF to optimize packet processing using the Linux kernel. It offers some Service Mesh capabilities, and doesn't use the sidecar model. It proceeds to deploy a per-node instance of Envoy for any sort of Layer 7 processing of requests.

### Conclusion
A serivce mesh is a power application networking layer that provides traffic management, observability, and security. We will explore more in #70DaysofServiceMesh
A service mesh is a power application networking layer that provides traffic management, observability, and security. We will explore more in #70DaysofServiceMesh

0 comments on commit 194c666

Please sign in to comment.