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

Preview:

Citation preview

1

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

Behrooz Nobakht@behruz

Pavel Bushmelev

✓ 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

3

ServiceDeploymentEnvironment

Query API

Data API

Business Configuratio

n API

PIM

Analytics

CRM

4

When it started

Chef

2005

Puppet

2008

FredhopperManagedServices

2009

OpsWorks

2013

5

App

How we have evolved

App App ScriptsDeployHTTP API

On-Premise Deployment

AppApp ScriptsDeployHTTP API

ManagedService

Deployment

6

How to operate massive deployments with JVM?

Magnitude of 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

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

9

“Server” abstraction is too low-level for our

development and operation

10

Server as a Service

A server as an HTTP API

1. /install

2. /data

3. /process

4. /logs

5. /monitor

6. /resources

11

Server as a Service

A server as an HTTP API

1. /install

2. /data

3. /process

4. /logs

5. /monitor

6. /resources

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/

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/

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/ ?!

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/ ?!

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

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

18

Development Operations

Modularizationvia

Self-Contained Services

ServiceCluster

Management

InfrastructureAbstraction

UniformDeployment

HorizontalScalability

DecentralizedGovernance

InfrastructureAutomation

UnifiedOperations

19

Operating ≅ 2000 AWS servers

with an awesome small DevOps team

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.

Recommended