bbc's graphdb (formerly owlim) aws cloud migration

33
Moving OWLIM to Amazon Web Services

Upload: logomachy

Post on 05-Dec-2014

154 views

Category:

Technology


0 download

DESCRIPTION

BBC's presentation for the GraphDB user group

TRANSCRIPT

Page 1: BBC's GraphDB (formerly Owlim) AWS Cloud Migration

Moving OWLIMto Amazon Web Services

Page 2: BBC's GraphDB (formerly Owlim) AWS Cloud Migration

Moving OWLIMto Amazon Web Services

GraphDB

Page 3: BBC's GraphDB (formerly Owlim) AWS Cloud Migration

Introduction to LDP

● Stands for Linked Data Platform● Building APIs and Tools for semantic

publishing at the BBC● Team of 8-12 people (5-8 developers) ● Based in London (moving to Salford)

Page 4: BBC's GraphDB (formerly Owlim) AWS Cloud Migration

Introduction to LDP

● Tagging and surfacing content

Page 5: BBC's GraphDB (formerly Owlim) AWS Cloud Migration

Why move to AWS?

● Started with taking ownership of Owlim● BBC shift to move to AWS● Loss of key people● Freedom with responsibility

Page 6: BBC's GraphDB (formerly Owlim) AWS Cloud Migration

Current Architecture

Page 7: BBC's GraphDB (formerly Owlim) AWS Cloud Migration

Cloud Architecture

Page 8: BBC's GraphDB (formerly Owlim) AWS Cloud Migration

Keeping in sync

Page 9: BBC's GraphDB (formerly Owlim) AWS Cloud Migration
Page 10: BBC's GraphDB (formerly Owlim) AWS Cloud Migration
Page 11: BBC's GraphDB (formerly Owlim) AWS Cloud Migration

OpsWorks

● Part of AWS● Easily deploy things to EC2

Page 12: BBC's GraphDB (formerly Owlim) AWS Cloud Migration

OpsWorks

● Define infrastructure in a stack● The stack is comprised of layers● Each layer has a role (eg. master, slave)● Layers contain a number of instances

Page 13: BBC's GraphDB (formerly Owlim) AWS Cloud Migration
Page 14: BBC's GraphDB (formerly Owlim) AWS Cloud Migration
Page 15: BBC's GraphDB (formerly Owlim) AWS Cloud Migration
Page 16: BBC's GraphDB (formerly Owlim) AWS Cloud Migration
Page 17: BBC's GraphDB (formerly Owlim) AWS Cloud Migration

OpsWorks – Advantages

● Conceptually, fairly simple.● Entire stack defined as JSON.

○ Can be (and is) version controlled.

● Very easy to clone an entire stack.○ We use this to spin up ‘experimental’ environments.○ Next step: blue/green deployments?

Page 18: BBC's GraphDB (formerly Owlim) AWS Cloud Migration

OpsWorks – Disadvantages

● It can be a little slow.● Chef support can be tricky to debug.

Page 19: BBC's GraphDB (formerly Owlim) AWS Cloud Migration
Page 20: BBC's GraphDB (formerly Owlim) AWS Cloud Migration

● “Infrastructure as code”● Cookbook, made up of recipes.

○ Each recipe installs/configures a specific thing.

● Each layer has a set of recipes that define it.

Chef

Page 21: BBC's GraphDB (formerly Owlim) AWS Cloud Migration

include_recipe 'tomcat::default'

cookbook_file 'owlim-production.license' do path File.join(node[:owlim][:basedir], 'owlim.license') mode 0644 owner 'tomcat' group 'tomcat'end

execute 'create_default_cluster_repository' do command SystemRepository.create_repo 'default-cluster' not_if SystemRepository.repo_exists? 'default-cluster' action :nothingend

Page 22: BBC's GraphDB (formerly Owlim) AWS Cloud Migration
Page 23: BBC's GraphDB (formerly Owlim) AWS Cloud Migration

Lifecycleevents

Page 24: BBC's GraphDB (formerly Owlim) AWS Cloud Migration

Recipes for each event type

Page 25: BBC's GraphDB (formerly Owlim) AWS Cloud Migration

● A common and well-documented tool.○ And it’s Ruby, a skill we possess.

● Can re-use existing cookbooks.○ eg. Tomcat, Yum.

● Should be platform-agnostic.○ Can theoretically use the same Chef recipes against

any OS, if written well.

Chef – Advantages

Page 26: BBC's GraphDB (formerly Owlim) AWS Cloud Migration

● OpsWorks support is a little lacking.○ Using Berkshelf for dependencies is tricky.○ Many of the error messages are a bit cryptic.

Chef – Disadvantages

Page 27: BBC's GraphDB (formerly Owlim) AWS Cloud Migration

What next?

Page 28: BBC's GraphDB (formerly Owlim) AWS Cloud Migration

What next?

● Autoscaling○ Not supported by OpsWorks.○ For now: predict spikes, use time-based instances.

Page 29: BBC's GraphDB (formerly Owlim) AWS Cloud Migration

What next?

● Autoscaling○ Not supported by OpsWorks.○ For now: predict spikes, use time-based instances.

● Backups○ We still do these from our DCs.

Page 30: BBC's GraphDB (formerly Owlim) AWS Cloud Migration

What next?

● Autoscaling○ Not supported by OpsWorks.○ For now: predict spikes, use time-based instances.

● Backups○ We still do these from our DCs.

● Chef improvements○ The recipes do too much at the moment.

Page 31: BBC's GraphDB (formerly Owlim) AWS Cloud Migration

What next?

● Improve Chef recipes○ The recipes do too much at the moment.○ Example: cluster management.

Page 32: BBC's GraphDB (formerly Owlim) AWS Cloud Migration

Questions?

Page 33: BBC's GraphDB (formerly Owlim) AWS Cloud Migration

Thank you!

Sam [email protected]

Johan [email protected]