宋净超 从开源 Istio 到企业级服务:如何在企业中落地服务网格
to Enterprise Service Mesh 宋净超(Jimmy Song) September 24, 2022 Shanghai, China Cloud Native Application Networking Secure, Observe and manage microservices Outline ● Background ● Enterprise Service Enterprise team structure gap (Workspace, Tenants, etc) ○ UI&UX Background ● Leads to complexity and lack of operational agility ● You can't be Cloud Native at scale without a modern application- aware network different from the perspective of a developer building and operating an application Why is Istio? TSB: The Application-Aware Networking Platform Istio: Control Plane Tetrate Service Bridge: Management0 码力 | 30 页 | 4.79 MB | 5 月前3全栈服务网格 - Aeraki 助你在 Istio 服务网格中管理任何七层流量
Management ❏ MetaProtocol - Service Mesh 通用七层协议框架 #IstioCon Protocols in a Typical Microservice Application Service Service Service Service Service Service Message Broker RPC RPC RPC Message Message with application layer error codes ○ HTTP status code ○ Redis Get error ○ ... ● Observability with application layer metrics ○ HTTP status code ○ Thrift request latency ○ ... ● Application layer authorization: Identity/Source IP/ Dest Port ○ Request level auth is impossible #IstioCon BookInfo Application - AwesomeRPC ProductPage Reviews v1 AwesomeRPC (header: user != Jason) AwesomeRPC (header:0 码力 | 29 页 | 2.11 MB | 1 年前3Leveraging Istio for Creating API Tests - Low Effort API Testing for Microservices
from the data – 10x speed in creating API tests • Can also be sped up by just navigating the application UI – Create E2E tests, component tests and service tests from the same data • Key product benefits of improved API tests • Istio benefits – Venky / Prasad – point here • Demo • Questions 2 Structure | CONFIDENTIAL 3 API-driven applications exploding Service Testing Component Testing E2E API Local Service Testing by Devs Component, E2E Tests Service Tests Learning from usage of application and services Dev Usage Staging/UAT Env API catalog | CONFIDENTIAL #Rollbacks MTTR0 码力 | 21 页 | 1.09 MB | 1 年前3Istio Security Assessment
finding, NCC Group uses a composite risk score that takes into account the severity of the risk, application’s exposure and user population, technical difficulty of exploitation, and other factors. For an purpose, an attacker could create a malicious file with the same hash as the original. A user or application would not be able to tell the difference between the legitimate and malicious files based on the Scale NCC Group uses a composite risk score that takes into account the severity of the risk, application’s exposure and user population, technical difficulty of exploitation, and other factors. The risk0 码力 | 51 页 | 849.66 KB | 1 年前3Istio at Scale: How eBay is building a massive Multitenant Service Mesh using Istio
Scala, etc. ● Running on variety of Hardware ○ General-purpose x86 servers ○ GPUs #IstioCon Application Deployment: Cloud Layout ● Region: A metro region ● DC: One or more Data Centers in each Region customer ○ PoPs are mini AZs Region R1 AZ 1 AZ 2 AZ n Data Center DC1 Region Rn #IstioCon Application Deployment: Cloud Layout ● Multiple K8s Clusters in an AZ ○ Each K8s cluster ~ 200 - 5,000 nodes Region Rn #IstioCon Application Specs Region R1 Application Deployment: Federation ● Hierarchy of control planes ● Global Control Plane ○ Users provide application specs to Global Control-Plane0 码力 | 22 页 | 505.96 KB | 1 年前3Optimal Canary Deployments using Istio and how it scores over Spring Cloud and Kubernetes
balancer) www.my-application.com External Traffic 75% 25% Deployment Canary Releases Using Kubernetes Deployment POD POD POD S E R V I C E (Load balancer) www.my-application.com External Traffic I C E (Load balancer) www.my-application.com External Traffic POD POD 0% 100% Deployment Deployment Deployment Canary Releases Using Kubernetes – Across application Layers Deployment POD POD S S E R V I C E (Load balancer) www.my-application.com External Traffic 75% 25% POD POD POD POD S E R V I C E (ClusterIP) 75% 25% POD POD Cross-version Traffic My-data-service Service Demo-canary0 码力 | 9 页 | 1011.00 KB | 1 年前3生产环境 istio
app app app app apiVersion: "nais.io/v1alpha1" kind: "Application" metadata: name: app labels: team: pension spec: image: navikt/app:1 port: 8080 replicas: inbound: - name: consumer-a app apiVersion: "nais.io/v1alpha1" kind: "Application" metadata: name: app labels: team: pension spec: image: navikt/app:1 port: 8080 replicas: -f nais.yaml application deployment service virtualservice autoscaler networkpolicy servicerole servicerolebinding serviceentry apiVersion: "nais.io/v1alpha1" kind: "Application" metadata: name:0 码力 | 42 页 | 3.45 MB | 1 年前3Istio is a long wild river: how to navigate it safely
| grep -v envoy | wc -l | xargs) -ne 0 ]; do sleep 1; done”] This preStop hook will wait for application connections to be drained before stopping the container. 18 Workaround: Use postStart and preStop that Envoy is stopped after any other container in a pod ● Use a `preStop` lifecycle hook in the application container manifest: lifecycle: preStop: exec: connection draining may not complete, leading to 5xx errors Example: for sleep 30 + sleep 45 in the application container, we set terminationGracePeriodSeconds to 90 seconds. 20 Warning: These are workarounds0 码力 | 69 页 | 1.58 MB | 1 年前3Performance tuning and best practices in a Knative based, large-scale serverless platform with Istio
use Istio gateway service istio-ingressgateway as its underlying service. Knative Activator or Application Front door design #IstioCon - Traffic Splitting, blue/green deployment How Istio is leveraged Inspection #IstioCon - Security with Service Mesh enabled • mutual TLS is enabled to secure the user application traffic end to end in production • Allow platform to use Istio authorization policy to control flow with Istio mesh/mTLS #IstioCon o Init-container added which cost ~5 seconds for Knative application pod code start. o Every sidecar needs full mesh information by default. Not a scalability solution0 码力 | 23 页 | 2.51 MB | 1 年前3Istio audit report - ADA Logics - 2023-01-30 - v1.0
as observability, traffic management and security without requiring users to add these to their application code. It also offers more advanced features to support A/B testing, canary deployments, rate limiting pilot/cmd/pilot-agent /status/server.go#L4 99 if envoy != nil { envoy.Close() } if application != nil { application.Close() } https://github.com/is tio/istio/blob/959887 237eee77be3e2715 2438c479aa4c4712 serve using grpcServer if r.ProtoMajor == 2 && strings.HasPrefix(r.Header.Get("content-type"), "application/grpc") { s.grpcServer.ServeHTTP(w, r) return } // Otherwise, this is meant for the standard HTTP0 码力 | 55 页 | 703.94 KB | 1 年前3
共 22 条
- 1
- 2
- 3