DEPLOYMENT

16
SDL Proprietary and Confidential SDL Proprietary and Confidential DEPLOYMENT Fredhopper Cloud Infrastructure

description

DEPLOYMENT. Fredhopper Cloud Infrastructure. Outline. Problem Approach “Demo”. The Problem. Multiple products, in different versions Custom on-premise deployments Many manual steps for routine operations work Diverse environments Hardware differences Operating Systems and versions - PowerPoint PPT Presentation

Transcript of DEPLOYMENT

Page 1: DEPLOYMENT

SDL Proprietary and ConfidentialSDL Proprietary and Confidential

DEPLOYMENT

Fredhopper Cloud Infrastructure

Page 2: DEPLOYMENT

2

1. Problem

2. Approach

3. “Demo”

Outline

Page 3: DEPLOYMENT

3

• Multiple products, in different versions

• Custom on-premise deployments

• Many manual steps for routine operations work

• Diverse environments

– Hardware differences

– Operating Systems and versions

– Java VM versions

The Problem

Page 4: DEPLOYMENT

4

Managing stateDeployment

Agent• One agent per machine, running as service/daemon• Abstraction from operating system and hardware• Provides access to resources on machine via REST interface

• Clients for command line and Fredhopper Data Manager

Managing changeController

• One controller per separate environment• Abstraction from network topology• Provides access to resources in network via REST interface

• Dashboard as client• Configuration describes “should”

Approach

Page 5: DEPLOYMENT

5

• Installation: The ”bits”, factory for instances

• Instances: Keeps configuration and index, provides processes

• Processes: Daemons/Services/Tools in the context of an instance

• Verbs: Primitives for invoking processes

Deployment Agent - Concepts

Page 6: DEPLOYMENT

6

• Service: a particular deployment model

– Specific to the product

• Service Instance: a particular instance of the service, owned by a customer

• Triggers: requests from a user for a change

– Available triggers depend on service instance

Controller - Concepts

Page 7: DEPLOYMENT

7

<service-plans>

<load-balancer

name="rightscale"

factory="com.fredhopper.controller.rightscale.RightScaleLoadBalancerClientFactory">

...

</load-balancer>

<installation-directory

name="default"

directory="/data/distributions"

allow-upload="true"/>

<service-plan customer="internal">

<service-instance

name="dm:dm"

installation=“fredhopper-data-manager-1.0.4“

load-balancer="none"

factory="com.fredhopper.controller.kitchen.distributed.DataManagerServiceInstanceFactory"/>

</service-plan>

..

</service-plans>

Controller Configuration (1)

Page 8: DEPLOYMENT

8

<service-plan customer="demo">

<service-instance

name="fas:live1"

installation="fas-assembly-7.2.0"

load-balancer="rightscale“

factory="com.fredhopper.controller.fas.MasterSlaveServiceInstanceFactory">

<property name=“control.dataManagerServiceInstance">dm:dm</property>

<property name="ms.masterHasLive">true</property>

</service-instance>

<service-instance

name="suggest:live1"

installation="suggest-distribution-2.0"

load-balancer="rightscale"

factory="com.fredhopper.controller.suggest.SuggestServiceInstanceFactory">

<property name=“suggest.fasServiceInstance">fas:live1</property>

</service-instance>

</service-plan>

Controller Configuration (2)

Page 9: DEPLOYMENT

9

Demo

Page 10: DEPLOYMENT

Copyright © 2008-2012 SDL plc. All rights reserved.. All company names, brand names, trademarks, service marks,

images and logos are the property of their respective owners.

This presentation and its content are SDL confidential unless otherwise specified, and may not be copied, used or

distributed except as authorised by SDL.

Page 11: DEPLOYMENT

11

• Identification of core concepts is key

– Removing concepts is hard

– Avoid complexity

• Versioning and Fail-Fast Behaviors

– Detect problems, and report them immediately and clearly

• System Identification and “Support for Support”

– If something in the higher layers breaks the agent is the last resort for gathering valuable information

– Auditing/Logging

• Infrastructure components are hard to upgrade

– Cannot get enough testing in synthetic and production scenarios

– Stable API to ensure compatibility with future versions

– Plugins and alternative implementations of core components

• UI is important

– People want to see that everything is good, ‘no news is good news’ does not work

• Complexity in high-level language, not in scripts

– Well-known language and environment

– Easily testable

– Adaptable for new products: installations deliver the glue code, coded against available API

Deployment Agent - Results & Learnings

Page 12: DEPLOYMENT

12

• Also infrastructure glue, Deployment Agent results apply

– Concepts, Integration, Extensibility, Testing

– Testing is hard: cannot duplicate production environment easily

• Software updates are common

– New services

– Improved deployment models

• Must provide real benefit for adoption

– Upgrades of service software

– Scaling models to reduce costs

• Centralized model enables access to the big picture

– Support/Operations can solve routine tasks quickly

– I/O scaling is needed, CPU is irrelevant: partitioning seems inevitable

Controller - Results

Page 13: DEPLOYMENT

13

Customer A

Service Instance fas:live1

EC2 Instance 1

DA Instance indexer

DA Instance live

EC2 Instance 2

DA Instance live

... EC2 Instance n

DA Instance live

Service Instance suggest:live1

EC2 Instance n+1

DA Instance suggest

... EC2 Instance m

DA Instance suggest

Customer B

Service Instance

service:other

Customer internal

Service instance dm:dm

EC2 instance(s)

DA instance customerA-fas:live1-reindex

...

Controller - Structure

Page 14: DEPLOYMENT

14

Trigger•Upload Data•Create trigger

Input Validation•Required parameters

•MD5 checks

ETL•create DM instance in pool

•run kitchen•wait for status callback and poll for process exit

Output Validation•status•files produced FAS Reindex

Trigger Execution Example: FAS Full Data Load

Page 15: DEPLOYMENT

Situation – On-Premise

15

Custom Scripts

Load-Balancing

FAS

Monitoring

Frontend

Sh

op

pe

rs

Integrators

Integrators

Business Users

SysAdmins Hardware

Inte

gra

tors

Page 16: DEPLOYMENT

Situation – Cloud Environment

16

FH Operations

Deployment Agent

Load-Balancing

Fredhopper

Monit

oringFrontend

Sh

op

pe

rs

Hardware

Inte

gra

tors

Monitoring

FH Operations

Con

trol

ler

Ser

vic

e A

PI

Inte

grat

ors

Business U

sers