Develop Operation, Operate Development: A journey towards service delivery at scale
1. 1
Develop Operation, Operate Development:
A journey towards delivery at large scale
Behrooz Nobakht
@behruz
Pavel Bushmelev
2. ✓ 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
5. 5
App
How we have evolved
App App Scripts
Deploy
HTTP
API
On-Premise
Deployment
AppApp Scripts
Deploy
HTTP
API
Managed
Service
Deployment
6. 6
How to operate massive deployments with JVM?
Magnitude of Scale
7. 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. 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
10. 10
Server as a Service
A server as an HTTP API
1. /install
2. /data
3. /process
4. /logs
5. /monitor
6. /resources
11. 11
Server as a Service
A server as an HTTP API
1. /install
2. /data
3. /process
4. /logs
5. /monitor
6. /resources
12. 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. 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. 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. 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. 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
Monitoring
Infrastructure
Controller
17. 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
Monitoring
Infrastructure
Controller