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.
Top Related