20
1 Develop Operation, Operate Development: A journey towards delivery at large scale Behrooz Nobakht @behruz Pavel Bushmelev

Develop Operation, Operate Development: A journey towards service delivery at scale

Embed Size (px)

Citation preview

Page 1: Develop Operation, Operate Development: A journey towards service delivery at scale

1

Develop Operation, Operate Development:A journey towards delivery at large scale

Behrooz Nobakht@behruz

Pavel Bushmelev

Page 2: Develop Operation, Operate Development: A journey towards service delivery at scale

✓ fun, simple, effective

✓ what a shopper experiences until the order is delivered

✓ comprehend in context the shopper’s intentions – implicit and explicit

✓ personal without ever crossing into the individual

Online Shopping

Page 3: Develop Operation, Operate Development: A journey towards service delivery at scale

3

ServiceDeploymentEnvironment

Query API

Data API

Business Configuratio

n API

PIM

Analytics

CRM

Page 4: Develop Operation, Operate Development: A journey towards service delivery at scale

4

When it started

Chef

2005

Puppet

2008

FredhopperManagedServices

2009

OpsWorks

2013

Page 5: Develop Operation, Operate Development: A journey towards service delivery at scale

5

App

How we have evolved

App App ScriptsDeployHTTP API

On-Premise Deployment

AppApp ScriptsDeployHTTP API

ManagedService

Deployment

Page 6: Develop Operation, Operate Development: A journey towards service delivery at scale

6

How to operate massive deployments with JVM?

Magnitude of Scale

Page 7: Develop Operation, Operate Development: A journey towards service delivery at scale

7

What is a server?

Development

● Um, huh?!● … pause …● We deliver to Ops.● They deploy!

Operations

● What version to install● What process to start● Which data to use● How to access logs● How to monitor● How to sync load

balancers

Page 8: Develop Operation, Operate Development: A journey towards service delivery at scale

8

What is a server?

Development

● Um, huh?!● … pause …● We deliver to Ops.● They deploy!

Operations

● What version to install● What process to start● Which data to use● How to access logs● How to monitor● How to sync load

balancers

Page 9: Develop Operation, Operate Development: A journey towards service delivery at scale

9

“Server” abstraction is too low-level for our

development and operation

Page 10: Develop Operation, Operate Development: A journey towards service delivery at scale

10

Server as a Service

A server as an HTTP API

1. /install

2. /data

3. /process

4. /logs

5. /monitor

6. /resources

Page 11: Develop Operation, Operate Development: A journey towards service delivery at scale

11

Server as a Service

A server as an HTTP API

1. /install

2. /data

3. /process

4. /logs

5. /monitor

6. /resources

Page 12: Develop Operation, Operate Development: A journey towards service delivery at scale

12

JVM Management with JVM

Service Provider Interfaces (SPI)

● A factory for an installation

● A factory for an running application

instance

● A factory for processes of an instance

● Generic RESTful operations

● Generic and standard endpoints: logs,

monitors, resources

App

java.lang.ProcessSPI Implementations

http://IP:14777/

Page 13: Develop Operation, Operate Development: A journey towards service delivery at scale

13

JVM Management with JVM

Service Provider Interfaces (SPI)

● A factory for an installation

● A factory for an running application

instance

● A factory for processes of an instance

● Generic RESTful operations

● Generic and standard endpoints: logs,

monitors, resources

App

java.lang.ProcessSPI Implementations

http://IP:14777/

Page 14: Develop Operation, Operate Development: A journey towards service delivery at scale

14

Deployment is a development responsibility

Development

● Does it have //:14777/?● SPI implemented?● Tested and Integrated?● Locally Deployable?● Deliver to Ops.● They Deploy!

Operations

● What version to install● What process to start● Which data to use● How to access logs● How to monitor● How to sync load

balancers

Does it really matter now what’s beneath //:14777/ ?!

Page 15: Develop Operation, Operate Development: A journey towards service delivery at scale

15

Deployment is a development responsibility

Development

● Does it have //:14777/?● SPI implemented?● Tested and Integrated?● Locally Deployable?● Deliver to Ops.● They Deploy!

Operations

● What version to install● What process to start● Which data to use● How to access logs● How to monitor● How to sync load

balancers

Does it really matter now what’s beneath //:14777/ ?!

Page 16: Develop Operation, Operate Development: A journey towards service delivery at scale

16

● Infrastructure provides servers

● Every server boots with one //:14777/

● Auto-register server with Controller

● Controller synchronizes servers with

load balancers

● Controller manages the state of

servers

● Controller automates workflows

Load Balancer

Mon

itorin

g

Infrastructure

Controller

Page 17: Develop Operation, Operate Development: A journey towards service delivery at scale

17

● Orchestration becomes automatic

● Relieve from small operation details

● Focus on a higher-level

○ Automation Process

○ Disaster Recovery

○ Failure Mitigation

○ Monitoring

○ Horizontal Scaling

Load Balancer

Mon

itorin

g

Infrastructure

Controller

Page 18: Develop Operation, Operate Development: A journey towards service delivery at scale

18

Development Operations

Modularizationvia

Self-Contained Services

ServiceCluster

Management

InfrastructureAbstraction

UniformDeployment

HorizontalScalability

DecentralizedGovernance

InfrastructureAutomation

UnifiedOperations

Page 19: Develop Operation, Operate Development: A journey towards service delivery at scale

19

Operating ≅ 2000 AWS servers

with an awesome small DevOps team

Page 20: Develop Operation, Operate Development: A journey towards service delivery at scale

Copyright © 2008-2015 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.