Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Istio
The elegant way to implement microservices
Inho Kang
Principal Sales Consultant
Infrastructure, Cloud Platform
Confidential – Oracle Internal/Restricted/Highly Restricted
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Safe Harbor Statement
The following is intended to outline our general product direction. It is intended for
information purposes only, and may not be incorporated into any contract. It is not a
commitment to deliver any material, code, or functionality, and should not be relied upon
in making purchasing decisions. The development, release, and timing of any features or
functionality described for Oracle’s products remains at the sole discretion of Oracle.
Confidential – Oracle Internal/Restricted/Highly Restricted 2
 .Net Developer
 CBD, SOA Methodology Consulting
 ITA/EA, ISP Consulting
 Oracle Corp.
 Middleware
 Open Source, Cloud Native Application
 OCAP Team
 DevRel
innoshom@gamil.com
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Program Agenda
Microservice
Evolution of Microservice Implementation
About Istio
Istio Architecture
Demo
1
2
3
4
Confidential – Oracle Internal/Restricted/Highly Restricted 4
4
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Microservice
Confidential – Oracle Internal/Restricted/Highly Restricted 5
‘패턴언어(Pattern Language)’는 건축가 Christopher Alexander가 집이나 마을을 설계할 때 반복적으로
활용하면 좋을, 작은 단위의 설계 패턴들을 모아 정리한 것에서 시작되었다.
Monolithic Applications
• 단일, Monolithic App
• 전체 App을 함께 배포해야 함
• 전체 App이 단일 DB 사용
• 기술 계층 중심으로 구성
• 각각의 런타임 인스턴스에 상태를 보관
• 전체 App이 하나의 기술 스택을 채택
• SOAP 사용
Microservices
• 다수의, 더 작아진 최소 기능의 Microservices
• 각 Microservice를 독립적으로 배포
• 각 Microservice는 각자의 데이터 저장소를 가짐
• 비즈니스 기능 중심으로 구성
• 상태는 외부에 보관
• 각 Microservice가 각자의 기술을 선택
• HTTP를 통한 REST, Messaging, 또는 Binary
마이크로 서비스 아키텍처 스타일(Microservice architecture style)"은 독립적으로 배포 가능한
서비스들의 묶음으로 소프트웨어 애플리케이션을 설계하는 방법
Middleware/App Server
Transactions/Synchronous API Calls/Asynchronous
Monolith Problem : 1. Scaling 2. Performance 3. Deploy 4. Down
Micro Services
A collection of smaller applications all working together to deliver
a total experience to the end user.
Increased efficiency
• Splitting your services gives you the ability to scale
only the parts of the site that is slow
• Less wastage of service resource
• More cost efficient
• An individual slow performing service doesn’t slow
all services
• Less user frustration
Micro Services
A collection of smaller applications all working together to deliver
a total experience to the end user.
Easier Updates
• Updating a smaller code base is easier
• Less likely to have a regression issue
• Less likely to push a feature that isn’t ready from
another team
• Disable or slowly fail users over to the new version
• You don’t put any other part of the service at risk
• Easier roll back if the update fails
Micro Services
A collection of smaller applications all working together to deliver
a total experience to the end user.
Increased stability
• Gracefully fail parts of the site
• If one service fails the rest of the site still operates
• Clever use of JS calls to services can detect failures
and mask it from the end user
• Much better end user experience
User Interface
Application
Datastore
Infrastructure
Resulting SoftwareTypical Enterprise Organization Structure
Head of IT
Head of
Operation
Head of DBAs
Head of
Infrastructure
Head of App
Dev
Head of UI
Head of
Development
An Enormous Monolith
Conway’s Law: Software reflects the structure of the
organization that produced it
Build small product-focused teams – strict one team
to one microservice mapping
Many Small Microservices
Resulting SoftwareMicroservices Organization Structure
API
Application
Datastore
Infrastructure
API
Application
Datastore
Infrastructure
API
Application
Datastore
Infrastructure
API
Application
Datastore
Infrastructure
Product Lead
Project Manager Sys Admin DBA
JavaScript
Developer
Developer
Developer
Sys Admin
Storage Admin
Graphic ArtistNoSQL Admin
Product Lead
Project Manager Sys Admin DBA
JavaScript
Developer
Developer
Developer
Sys Admin
Storage Admin
Graphic ArtistNoSQL Admin
Product Lead
Project Manager Sys Admin DBA
JavaScript
Developer
Developer
Developer
Sys Admin
Storage Admin
Graphic ArtistNoSQL Admin
Product Lead
Project Manager Sys Admin DBA
JavaScript
Developer
Developer
Developer
Sys Admin
Storage Admin
Graphic ArtistNoSQL Admin
Edge
Load
Balancer
Zuul
(Proxy Svc)
Playback
(Legacy Dev.)
API
(g/w)
Middle Tier & Platform
EVCache
Cassandra
Reference: http://microservices.io
http://microservices.io
 Patterns of Microserivce
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Evolution of Microservice Implementation
Confidential – Oracle Internal/Restricted/Highly Restricted 15
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
istio
The elegant way of microservice implemention
Confidential – Oracle Internal/Restricted/Highly Restricted 22
An open platform to connect, manage, and secure microservices
 Connect: Resiliency, discovery, load balancing
 Manage: Traffic control, policy enforcement
 Monitor: Metrics, Logging, Tracing
 Secure: End-to-end Authentication and
Authorization
Google, IBM, and Lyft
announce first public
release at May, 2017
Intelligent Routing and Load Balancing
Control traffic between services with dynamic
route configuration, conduct A/B tests, release
canaries, and gradually upgrade versions using
red/black deployments
Resilience Across Languages and Platforms
Increase reliability by shielding applications from
flaky networks and cascading failures in adverse
conditions
Fleet-Wide Policy Enforcement
Apply organizational policy to the interaction
between services, ensure access policies are
enforced and resources are fairly distributed
among consumers
In-Depth Telemetry and Reporting
Understand the dependencies between services,
the nature and flow of traffic between them, and
quickly identify issues with distributed tracing.
Traffic is transparently
intercepted and proxied. App is
unaware of Envoy’s presence
 Core component of Traffic
Management in Istio
 Manage & Configure all Envoy Proxy
 Routing Rule
 Configure Failure Recovery
features (timeouts,retries and
Circuit Breaker)
 Canonical Model of all Service Mesh
 Mesos, Consul, CF, Eureka…
 Intermediation Layer btw application
code and infra backends
(access control systems, telemetry capturing
systems, quota enforcement systems, billing
systems)
 Precondition Checking
- White list, ACL Check
 Quota Management
 Telemetry Reporting
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Demo
Confidential – Oracle Internal/Restricted/Highly Restricted 37
Reference: https://istio.io/docs/guides/bookinfo.html
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Wrap-Up
Confidential – Oracle Internal/Restricted/Highly Restricted 45
• Chris Richardson : http://Micoservice.io
• Service Mesh : http://philcalcado.com/2017/08/03/pattern_service_mesh.html
• Istio : http://istio.io
• Istio gluecon 2017 : https://istio.io/talks/istio_talk_gluecon_2017.pdf
• Nginx Proxy : https://www.infoq.com/news/2017/09/nginx-platform-service-
mesh
• Mastering Chaos : https://www.slideshare.net/JoshEvans2/mastering-chaos-
a-netflix-guide-to-microservices
• Spring Cloud vs k8s : https://goo.gl/kMQnzmre
• https://www.slideshare.net/SpringCentral/spring-boot-microservices-
containers-and-kubernetes-how-to
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 48

12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클

  • 1.
    Copyright © 2017,Oracle and/or its affiliates. All rights reserved. | Istio The elegant way to implement microservices Inho Kang Principal Sales Consultant Infrastructure, Cloud Platform Confidential – Oracle Internal/Restricted/Highly Restricted
  • 2.
    Copyright © 2017,Oracle and/or its affiliates. All rights reserved. | Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. Confidential – Oracle Internal/Restricted/Highly Restricted 2
  • 3.
     .Net Developer CBD, SOA Methodology Consulting  ITA/EA, ISP Consulting  Oracle Corp.  Middleware  Open Source, Cloud Native Application  OCAP Team  DevRel innoshom@gamil.com
  • 4.
    Copyright © 2017,Oracle and/or its affiliates. All rights reserved. | Program Agenda Microservice Evolution of Microservice Implementation About Istio Istio Architecture Demo 1 2 3 4 Confidential – Oracle Internal/Restricted/Highly Restricted 4 4
  • 5.
    Copyright © 2017,Oracle and/or its affiliates. All rights reserved. | Microservice Confidential – Oracle Internal/Restricted/Highly Restricted 5
  • 6.
    ‘패턴언어(Pattern Language)’는 건축가Christopher Alexander가 집이나 마을을 설계할 때 반복적으로 활용하면 좋을, 작은 단위의 설계 패턴들을 모아 정리한 것에서 시작되었다. Monolithic Applications • 단일, Monolithic App • 전체 App을 함께 배포해야 함 • 전체 App이 단일 DB 사용 • 기술 계층 중심으로 구성 • 각각의 런타임 인스턴스에 상태를 보관 • 전체 App이 하나의 기술 스택을 채택 • SOAP 사용 Microservices • 다수의, 더 작아진 최소 기능의 Microservices • 각 Microservice를 독립적으로 배포 • 각 Microservice는 각자의 데이터 저장소를 가짐 • 비즈니스 기능 중심으로 구성 • 상태는 외부에 보관 • 각 Microservice가 각자의 기술을 선택 • HTTP를 통한 REST, Messaging, 또는 Binary 마이크로 서비스 아키텍처 스타일(Microservice architecture style)"은 독립적으로 배포 가능한 서비스들의 묶음으로 소프트웨어 애플리케이션을 설계하는 방법
  • 7.
    Middleware/App Server Transactions/Synchronous APICalls/Asynchronous Monolith Problem : 1. Scaling 2. Performance 3. Deploy 4. Down
  • 8.
    Micro Services A collectionof smaller applications all working together to deliver a total experience to the end user. Increased efficiency • Splitting your services gives you the ability to scale only the parts of the site that is slow • Less wastage of service resource • More cost efficient • An individual slow performing service doesn’t slow all services • Less user frustration
  • 9.
    Micro Services A collectionof smaller applications all working together to deliver a total experience to the end user. Easier Updates • Updating a smaller code base is easier • Less likely to have a regression issue • Less likely to push a feature that isn’t ready from another team • Disable or slowly fail users over to the new version • You don’t put any other part of the service at risk • Easier roll back if the update fails
  • 10.
    Micro Services A collectionof smaller applications all working together to deliver a total experience to the end user. Increased stability • Gracefully fail parts of the site • If one service fails the rest of the site still operates • Clever use of JS calls to services can detect failures and mask it from the end user • Much better end user experience
  • 11.
    User Interface Application Datastore Infrastructure Resulting SoftwareTypicalEnterprise Organization Structure Head of IT Head of Operation Head of DBAs Head of Infrastructure Head of App Dev Head of UI Head of Development An Enormous Monolith Conway’s Law: Software reflects the structure of the organization that produced it
  • 12.
    Build small product-focusedteams – strict one team to one microservice mapping Many Small Microservices Resulting SoftwareMicroservices Organization Structure API Application Datastore Infrastructure API Application Datastore Infrastructure API Application Datastore Infrastructure API Application Datastore Infrastructure Product Lead Project Manager Sys Admin DBA JavaScript Developer Developer Developer Sys Admin Storage Admin Graphic ArtistNoSQL Admin Product Lead Project Manager Sys Admin DBA JavaScript Developer Developer Developer Sys Admin Storage Admin Graphic ArtistNoSQL Admin Product Lead Project Manager Sys Admin DBA JavaScript Developer Developer Developer Sys Admin Storage Admin Graphic ArtistNoSQL Admin Product Lead Project Manager Sys Admin DBA JavaScript Developer Developer Developer Sys Admin Storage Admin Graphic ArtistNoSQL Admin
  • 13.
  • 14.
  • 15.
    Copyright © 2017,Oracle and/or its affiliates. All rights reserved. | Evolution of Microservice Implementation Confidential – Oracle Internal/Restricted/Highly Restricted 15
  • 22.
    Copyright © 2017,Oracle and/or its affiliates. All rights reserved. | istio The elegant way of microservice implemention Confidential – Oracle Internal/Restricted/Highly Restricted 22
  • 23.
    An open platformto connect, manage, and secure microservices  Connect: Resiliency, discovery, load balancing  Manage: Traffic control, policy enforcement  Monitor: Metrics, Logging, Tracing  Secure: End-to-end Authentication and Authorization Google, IBM, and Lyft announce first public release at May, 2017
  • 24.
    Intelligent Routing andLoad Balancing Control traffic between services with dynamic route configuration, conduct A/B tests, release canaries, and gradually upgrade versions using red/black deployments Resilience Across Languages and Platforms Increase reliability by shielding applications from flaky networks and cascading failures in adverse conditions
  • 25.
    Fleet-Wide Policy Enforcement Applyorganizational policy to the interaction between services, ensure access policies are enforced and resources are fairly distributed among consumers In-Depth Telemetry and Reporting Understand the dependencies between services, the nature and flow of traffic between them, and quickly identify issues with distributed tracing.
  • 26.
    Traffic is transparently interceptedand proxied. App is unaware of Envoy’s presence
  • 30.
     Core componentof Traffic Management in Istio  Manage & Configure all Envoy Proxy  Routing Rule  Configure Failure Recovery features (timeouts,retries and Circuit Breaker)  Canonical Model of all Service Mesh  Mesos, Consul, CF, Eureka…
  • 31.
     Intermediation Layerbtw application code and infra backends (access control systems, telemetry capturing systems, quota enforcement systems, billing systems)  Precondition Checking - White list, ACL Check  Quota Management  Telemetry Reporting
  • 37.
    Copyright © 2017,Oracle and/or its affiliates. All rights reserved. | Demo Confidential – Oracle Internal/Restricted/Highly Restricted 37
  • 44.
  • 45.
    Copyright © 2017,Oracle and/or its affiliates. All rights reserved. | Wrap-Up Confidential – Oracle Internal/Restricted/Highly Restricted 45
  • 47.
    • Chris Richardson: http://Micoservice.io • Service Mesh : http://philcalcado.com/2017/08/03/pattern_service_mesh.html • Istio : http://istio.io • Istio gluecon 2017 : https://istio.io/talks/istio_talk_gluecon_2017.pdf • Nginx Proxy : https://www.infoq.com/news/2017/09/nginx-platform-service- mesh • Mastering Chaos : https://www.slideshare.net/JoshEvans2/mastering-chaos- a-netflix-guide-to-microservices • Spring Cloud vs k8s : https://goo.gl/kMQnzmre • https://www.slideshare.net/SpringCentral/spring-boot-microservices- containers-and-kubernetes-how-to
  • 48.
    Copyright © 2017,Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 48