automated configuration & deployment of atlassian applications

59
ATLASSIAN SUMMIT 2013

Upload: colleenfry

Post on 29-Nov-2014

541 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Automated Configuration & Deployment of Atlassian Applications

ATLASSIAN SUMMIT 2013

Page 2: Automated Configuration & Deployment of Atlassian Applications

Automated Configuration and Deployment of Atlassian Applications at Pandora

October 3, 2013

Raju Kadam & Myra ChachkinTechnical Operations

Pandora Media

Page 3: Automated Configuration & Deployment of Atlassian Applications

personalized radio

Page 4: Automated Configuration & Deployment of Atlassian Applications

your humble presenters

Raju Kadam Myra Chachkin

Page 5: Automated Configuration & Deployment of Atlassian Applications

deployment & configuration - then and now

Page 6: Automated Configuration & Deployment of Atlassian Applications

BEGINNINGS

Page 7: Automated Configuration & Deployment of Atlassian Applications

the olden days

Page 8: Automated Configuration & Deployment of Atlassian Applications

no safety net

Page 9: Automated Configuration & Deployment of Atlassian Applications

no rollback

Page 10: Automated Configuration & Deployment of Atlassian Applications

labor-intensive configuration

Page 11: Automated Configuration & Deployment of Atlassian Applications

GROWTH

Page 12: Automated Configuration & Deployment of Atlassian Applications

expansion and integration

Page 13: Automated Configuration & Deployment of Atlassian Applications

more apps and links

Page 14: Automated Configuration & Deployment of Atlassian Applications

sandboxes

Page 15: Automated Configuration & Deployment of Atlassian Applications

more testers, more features to test

• new projects, workflows, etc.

• new plugins

• new products & product versions

Page 16: Automated Configuration & Deployment of Atlassian Applications

dev, stage, and prod

Page 17: Automated Configuration & Deployment of Atlassian Applications

more instances and requirements

• dev: for experimenting

• stage: for proofing

• prod: for real

Page 18: Automated Configuration & Deployment of Atlassian Applications

WHAT WE NEED

Page 19: Automated Configuration & Deployment of Atlassian Applications

repeatability for speed & accuracy

Page 20: Automated Configuration & Deployment of Atlassian Applications

parallel deploy for reduced risk

Page 21: Automated Configuration & Deployment of Atlassian Applications

distinct environments for distinct uses

Page 22: Automated Configuration & Deployment of Atlassian Applications

complexity

DEV

STAGE

PROD

ATLASSIAN APPLICATION

RELEASE CYCLE

Page 23: Automated Configuration & Deployment of Atlassian Applications

OUR SOLUTION

Page 24: Automated Configuration & Deployment of Atlassian Applications

debian packaging

Page 25: Automated Configuration & Deployment of Atlassian Applications

our in-house packaging

• binary file archives

• standard & custom packages

• standard & custom tools

Page 26: Automated Configuration & Deployment of Atlassian Applications
Page 27: Automated Configuration & Deployment of Atlassian Applications

SYSDB

Page 28: Automated Configuration & Deployment of Atlassian Applications

DEPLOYMENT

Page 29: Automated Configuration & Deployment of Atlassian Applications

build the jira package

• get the tarfile

• customize

• verify

Page 30: Automated Configuration & Deployment of Atlassian Applications

copy everything to the server

Page 31: Automated Configuration & Deployment of Atlassian Applications

$ cat jira-rsync.conf

# On <DESTHOST>, run as user jira:# rsync --daemon --port=1234 # --config=/home/jira/jira-5.2.6-rsync.conf# Then on <SOURCEHOST>, run as user jira:# cd /home/jira/jira-4.4.1-data; # rsync -aHPv --port=1234 # --progress caches data plugins # DESTHOST::jira-5.2.6

[jira-5.2.6]path = jira-5.2.6-datause chroot = falsereadonly = falseuid = jiragid = jira

$ cat jira-rsync.conf

# On <DESTHOST>, run as user jira:# rsync --daemon --port=1234 # --config=/home/jira/jira-5.2.6-rsync.conf# Then on <SOURCEHOST>, run as user jira:# cd /home/jira/jira-4.4.1-data; # rsync -aHPv --port=1234 # --progress caches data plugins # DESTHOST::jira-5.2.6

[jira-5.2.6]path = jira-5.2.6-datause chroot = falsereadonly = falseuid = jiragid = jira

Page 32: Automated Configuration & Deployment of Atlassian Applications

CONFIGURATION

Page 33: Automated Configuration & Deployment of Atlassian Applications

common customizations

• ssl proxy

• jvm memory settings

• session timeout

• template customizations

• added files

Page 34: Automated Configuration & Deployment of Atlassian Applications
Page 35: Automated Configuration & Deployment of Atlassian Applications

notification email template

old behavior –

Subject: (Jira) Resolved: [OPS-123] package Jira

new behavior –

Subject: (Jira) [OPS-123] package Jira

We liked it the old way!

Page 36: Automated Configuration & Deployment of Atlassian Applications

custom email template

Page 37: Automated Configuration & Deployment of Atlassian Applications

priority thumbnail files

We needed this one!

Page 38: Automated Configuration & Deployment of Atlassian Applications

unpackaged common settings

• ldap user directory

• internal admin user

Page 39: Automated Configuration & Deployment of Atlassian Applications

per-environment customizations

• env-specific app behavior

• self-contained suite for each env

DEV

STAGE

PROD

Page 40: Automated Configuration & Deployment of Atlassian Applications
Page 41: Automated Configuration & Deployment of Atlassian Applications
Page 42: Automated Configuration & Deployment of Atlassian Applications
Page 43: Automated Configuration & Deployment of Atlassian Applications

look and feel

`

Page 44: Automated Configuration & Deployment of Atlassian Applications

more environment settings in the db

• base url

• whitelist urls

• email prefix

• server license

Page 45: Automated Configuration & Deployment of Atlassian Applications

application links

Page 46: Automated Configuration & Deployment of Atlassian Applications

per-instance customizations

• unique instance identifier

• unique ports

DEV

STAGE

PROD

Page 47: Automated Configuration & Deployment of Atlassian Applications

unique identifier per instance

• instance id: app/version/envsuch as “jira-5.2.6-dev”

• uniquely identifies:• installation & data directories

• virtualhost name

• database name

• init script name

Page 48: Automated Configuration & Deployment of Atlassian Applications

don’t connect dev to the prod db!

Page 49: Automated Configuration & Deployment of Atlassian Applications

user data, or config settings?

• projects

• project components & versions

• global and per-project roles

• custom fields, screens, & workflows

• permission & notification schemes

Page 50: Automated Configuration & Deployment of Atlassian Applications

OUR GOAL

Page 51: Automated Configuration & Deployment of Atlassian Applications

our goal: package everything

Page 52: Automated Configuration & Deployment of Atlassian Applications

whatever gets it done!

Page 53: Automated Configuration & Deployment of Atlassian Applications

not the standard Atlassian way

Page 54: Automated Configuration & Deployment of Atlassian Applications

• for deployments

• for upgrades

• for customizations

advantages of our way

Page 55: Automated Configuration & Deployment of Atlassian Applications

FUTURE

Page 56: Automated Configuration & Deployment of Atlassian Applications

future improvements

• more configuration

• better server management

• easier refresh

• content cleanup

• refactoring?

Page 57: Automated Configuration & Deployment of Atlassian Applications

TMTOWTDIThere’s More Than One Way To Do It...

Page 58: Automated Configuration & Deployment of Atlassian Applications

Thank you!

[email protected]@pandora.com

Page 59: Automated Configuration & Deployment of Atlassian Applications

Text code below to 22333or visit http://bit.ly/19K6NRq

Automated Configuration & Deployment of Atlassian Applications

To join this session, send text 136888 to

AWESOME = 5R

PRETTY GOOD = 5Q

NOT BAD = 5P

MEH = 5N

Rate this Talk