agenda turbonomic introduction architectural lessons ... · turbonomic.com additional benefits -...

59
Microservices 11/15/2016

Upload: others

Post on 23-Sep-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

Microservices

11/15/2016

Page 2: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

AgendaTurbonomic IntroductionArchitectural Lessons LearnedOrganizational Lessons LearnedQ&A

Copyright 2016, Turbonomic

Page 3: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Turbonomic Introduction

Copyright 2016, Turbonomic

Page 4: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

A Marketplace of Buyers and Sellers

Buy

Provider VDC

Org VDC

Switch

Array

Physical Machine

Zone

RegionNetwork

4

Data Center

Storage Controller

Storage

vPOD

dPOD

Container

Copyright 2016, Turbonomic

Page 5: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Commodity

A Marketplace of Buyers and Sellers

Service Entity

SellBuy

5

Copyright 2016, Turbonomic

Page 6: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Unified Demand-Driven Control Platform

6

Copyright 2016, Turbonomic

Page 7: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Proof Points in The Journey…

7

Copyright 2016, Turbonomic

Page 8: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

The Monolith

Copyright 2016, Turbonomic

Page 9: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com9

Analytics

Database

Mediation Components

UCSVC

Repository

Abstraction

JVM

UI ServicesMonolith JTomcat

Eclipse ModelingFramework

Home Grown Repository

MedCom

Turbonomic Legacy Platform

Copyright 2016, Turbonomic

Page 10: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.comCopyright Martin Fowler

Page 11: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Summary of Initial State

• Monolithic Architecture • Monolithic Team Structure• Release Every Six Months• Few Metrics Captured

Copyright 2016, Turbonomic

Page 12: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Catalysts for Change

Growth in Customer Base – to over 1500

More Large Environments – up to 100K VMs under management

Geographical Spread of Team – US / Canada / Italy / Greece / Russia

More Frequent Deliveries – Several Times a Year vs. Every 6 mos

Expanding Feature Base – Across the Datacenter

Copyright 2016, Turbonomic

Page 13: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Current Turbonomic ChallengesTurbonomic Today• In-Memory Repository • First-Generation Analytics Algorithm • Monolithic Services Platform• Flex UI Technology

Consequences• Real-Time Capacity Management & Planning at Scale• Requires Multiple Turbo Instances Plus Aggregator• System Management / Upgrade Complexity• Performance Bottlenecks• Security Issues

Copyright 2016, Turbonomic

Page 14: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Lesson 1: Adopt and Apply Architectural Principles

Copyright 2016, Turbonomic

Page 15: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Separation of Concerns:A component should only implement the business function it is mandated to cover and not be concerned with other issues. For example, an Analysis component contains code to compute a set of actions.

Principle

Components can easily and quickly be modified, or even removed and replaced. This could be for a number of reasons, e.g.• Upgrade – as functionality is extended and efficiency increased,

the user can take advantage of the latest version• New technology – as technology changes, it can be quickly

incorporated into new modules, completely replacing the old

Benefit

Copyright 2016, Turbonomic

Page 16: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

PrincipleFaçadesThe primary requirement is that all components are known through their interfaces.

Benefit

Clear Interfaces – Independent Implementation; More Robust Testing, less confusion for developers

Copyright 2016, Turbonomic

Page 17: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Principles

Runtime Dependency ResolutionIf component A depends on component B (e.g., Market depends on a Pricing Function), B is provided to A rather than A being coded with the way to find B. This results in concise and configurable components.

Code InstrumentationComponents will need to be instrumented in order to be managed at runtime. Java components should be manageable using an API that they expose.

VersioningServices and API Endpoints can be versioned in configuration so that upgrades to software can be managed and controlled.

Copyright 2016, Turbonomic

Page 18: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

- Maintenance: Upgrade, re-configure and examine Individual Components through a single configuration pane-

- No Need to Stop Everything

Benefits

- Delivery: Each component Runs in A Container and can be independently updated

Copyright 2016, Turbonomic

Page 19: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Additional Benefits- Scalability: new Algorithms, and technology choices, Horizontal

Scale-Out for Increased Capacity – ability to visualize and control arbitrarily large datacenter estates in a single instance

- Performance: Each component runs in its own container and Turbonomic will find the best place for it.

- Resilience: Architecture enables HA

Well-formed ComponentsWell-formed components are those that adhere to the principles listed above. In addition, well-formed components are delivered with built-in, non-regression functional and performance tests. In addition, standard documentation is packaged with components and may be browsed once deployed.

Copyright 2016, Turbonomic

Page 20: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Lesson 2: Borrow Freely

Copyright 2016, Turbonomic

Page 21: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Page 22: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

What is a Turbonomic Component?

Carries out Specific a Function (e.g., Mediation, REST API, Analysis)

In addition it Implements interfaces for• Manageability• Messaging• Resilience

• And it runs in a container

Copyright 2016, Turbonomic

Page 23: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Key Interfaces: Resilience

• VMTComponent–Resilience Support

• Purpose: Component Life-Cycle Management

• Provides• Start• Stop• Restart• dumpData

Copyright 2016, Turbonomic

Page 24: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Key Interfaces: Management

• VMTComponent– Manageability Support

• Purpose: Manage components ‘in flight’

• Provides• Status Assessment• Runtime Configuration Changes

Copyright 2016, Turbonomic

Page 25: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Control Plane Architecture

Components- Called by CPL - Lifecycle/Config- Calls CPL - Registration/Websocket- Packaged with CPL as Docker Container

Control Plane Library- REST API to Outside World- Lifecycle- Registration- Security / Authentication- Configuration Changes- WebSocket Endpoints –- - Maintenance UI API- Logging / Flow Tracing / Auditing- Statistics

Shared, Persistent Configuration - Properties For Each Component- Current Status For Each Component

Copyright 2016, Turbonomic

Page 26: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Leverage Modern Open Source Infrastructure

”Buy” Rather Than Build; Many Ways to Get Networked Architecture Wrong

Service Architecture Functions :• Service Registration / Discovery• Networked Configuration• Intelligent Routing• Circuit Breaker• Client-Side Load Balancing• Distributed Tracing

Copyright 2016, Turbonomic

Page 27: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Control Plane Architecture Enablement

Spring Cloud- REST API to Outside World- Lifecycle- Registration- Security / Authentication- Configuration Changes- WebSocket Endpoints –- - Maintenance UI API- Logging / Flow Tracing / Auditing- Statistics

Copyright 2016, Turbonomic

Page 28: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Control Plane Architecture Enablement

Consul• Service Discovery: Clients of Consul can provide a service, other clients

can use Consul to discover providers of a given service.

• Health Checking - Consul clients can provide any number of health checks

• Key/Value Store: Multipurpose Key Value Store

Copyright 2016, Turbonomic

Page 29: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Lesson 3: Document

Even the Basic Stuff

Copyright 2016, Turbonomic

Page 30: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Example: Creating a New Component

Copyright 2016, Turbonomic

Page 31: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Abstraction

Analysis

Automation

Turbonomic Autonomic Platform

Topology Processor

Group/Settings/PolicyManager

Identity Service

Repository / Data Aggregator

ActionOrchestrator

DeploymentManager

Integration API

Mediation APIMedCom MedomMedComMedCom MedComMedCom

UI Eco-system of partners

Market Plan Orchestrator

Cop

yrig

ht 2

016,

Tur

bono

mic

Page 32: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Page 33: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Page 34: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Page 35: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Page 36: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Page 37: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Internal

Config

Interface

Turbonomic Components - Architecture

VMT Component

A

ConfigurationData

Internal

Component A Instance #2

Persistence

Other Component Type

Java Wrapper for Interface A

Persistence

Java Wrapper for Interface A

Copyright 2016, Turbonomic

Page 38: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Lesson 4: Don’t Abandon the Monolith

Too Quickly

Page 39: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Page 40: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Define initial set of Clean interfaces In the monolith itself

Define Reusable Components

Copyright 2016, Turbonomic

Page 41: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Dual Use Components

UI (Flash)

M11.0

Legacy Mediation

Performance

Stability

Single instance scaling limits

Ops MgrManagement

Legacy Monolith

Aggregatorfunctionality

gaps

Obsolete Frameworks

(EMF)

ManageLarge data

centers

Better Manageability

>1M

Entities

Distributed Components

Scalable Repository

GeneralizedScale out HA

XL

New UI M22.0

VC SDK ProbeHyper-V MedCom

ProbeOpenStackPrebe

REST API v2

Copyright 2016, Turbonomic

Page 42: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Lesson 5: Don’t forget about Security

Copyright 2016, Turbonomic

Page 43: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Security Concerns

• Open Source - Determine and Correct Vulnerabilities:

• Container Hardening – Containers should have a minimal set of services. Known Vulnerabilities should be eliminated.

• Inter-service communication: - Secure it

Copyright 2016, Turbonomic

Page 44: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Microservice authentication, and authorization

• AUTHENTICATION microservice• Runs isolated in its own container• Validates user credentials and in the future microservice credentials• JSON Web Token (Stateless)• Similar to OAUTH2 which doesn’t specify a token format. • Decentralized, non-persistent authentication and authorization• JWT contains user authorizations/roles in the payload • JWT is signed by Auth Service and can be verified authentic

• Payload does not contain any sensitive information.• JWTs passed among services (similar to Kerberos)

AUTHSERVICE

OAUTH

AD

LOCAL

3rd Party

Copyright 2016, Turbonomic

Page 45: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Microservice authentication, and authorization

• Stateless • Token contains all the information required to identify the user, and permissions can be added to the

payload. • No need to maintain session state• User can be passed to any microservice copy. Does not need to be bound.

• Reusable

• Secure• Cookies not required (CRSF attacks do not exist)• Can encrypt tokens (JWE) if any sensitive information is carried• Transmit over HTTPS to prevent MIM attacks

• Fast / Efficient• No server side lookups required to deserialize session on each request.• Calculate the HMAC SHA-256 to validate the token and parse content

Copyright 2016, Turbonomic

Page 46: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Lesson Last: Test, Build, Test, Measure and Release Often

Copyright 2016, Turbonomic

Page 47: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Peer Review

.

Organizational Principles for Microservices

Copyright 2016, Turbonomic

Page 48: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Page 49: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Metrics, Metrics and More Metrics

Testing, testing and more Testing

Page 50: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Topology Processor

Group/Settings/Policy Manager

Repository DeploymentManagerMarket

Plan Orchestrator

MedCom

UI

Functionality:Retrieve data from customer env

Key features:• Target type specific• Implemented using SDK framework• Using mediation API

Customer Env

ActionOrchestrator

Mediation Component: “MedCom”

Copyright 2016, Turbonomic

Page 51: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Topology Processor

Topology Processor

Group/Settings/Policy Manager

Repository DeploymentManagerMarket

Plan Orchestrator

MedCom

UI

Functionality:• Orchestrate Mediation Component data

retrieval• Merge/validate data coming from MedComs• Edit topology using policies/settings• Present consistent topology to repo + m2

ActionOrchestrator

Copyright 2016, Turbonomic

Page 52: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Group/Settings/Policy Manager

Topology Processor

Group/Settings/Policy Manager

Repository

ActionOrchestrator

DeploymentManagerMarket

Plan Orchestrator

UI

Functionality:• Group/settings/policy bookkeeping …• … providing them as needed

MedComCopyright 2016, Turbonomic

Page 53: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Deployment Manager

Topology Processor

Group/Settings/Policy Manager

Repository

ActionOrchestrator

DeploymentManagerMarket

Plan Orchestrator

UI

Functionality:• Reservation orchestrator• Deployment orchestrator

MedComCopyright 2016, Turbonomic

Page 54: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Repository

Topology Processor

Group/Settings/Policy Manager

Repository

ActionOrchestrator

DeploymentManagerMarket

Plan Orchestrator

UI

Functionality:• Store/retrieve topologies• Searching capabilities

Key features:• Uses graph database (ArangoDB)

MedComCopyright 2016, Turbonomic

Page 55: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Market

Topology Processor

Group/Settings/Policy Manager

Repository

ActionOrchestrator

DeploymentManagerMarket

Plan Orchestrator

UI

Functionality:• Run analysis on a topology• Generate actions toward desired state

Key features:• Fast• Flexible price function definition• Agnostic to entity and commodity type

MedComCopyright 2016, Turbonomic

Page 56: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Action Orchestrator

Topology Processor

Group/Settings/Policy Manager

Repository

ActionOrchestrator

DeploymentManagerMarket

Plan Orchestrator

UI

Functionality:• Store/retrieve actions• Orchestrate action execution

MedComCopyright 2016, Turbonomic

Page 57: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

Plan Orchestrator

Topology Processor

Group/Settings/Policy Manager

Repository

ActionOrchestrator

DeploymentManagerMarket

Plan Orchestrator

UI

Functionality:• Store/retrieve plans• Orchestrate plan execution

MedComCopyright 2016, Turbonomic

Page 58: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com

UI

Topology Processor

Group/Settings/Policy Manager

Repository

ActionOrchestrator

DeploymentManagerMarket

Plan Orchestrator

UI

Functionality:• Show environment data …• … and actions for desired state

Key features:• Html 5 + Javascript• AngularJS framework• Uses REST API

MedComCopyright 2016, Turbonomic

Page 59: Agenda Turbonomic Introduction Architectural Lessons ... · turbonomic.com Additional Benefits - Scalability: new Algorithms, and technology choices, Horizontal Scale-Out for Increased

turbonomic.com