Automated Configuration & Deployment of Atlassian Applications

Preview:

DESCRIPTION

 

Citation preview

ATLASSIAN SUMMIT 2013

Automated Configuration and Deployment of Atlassian Applications at Pandora

October 3, 2013

Raju Kadam & Myra ChachkinTechnical Operations

Pandora Media

personalized radio

your humble presenters

Raju Kadam Myra Chachkin

deployment & configuration - then and now

BEGINNINGS

the olden days

no safety net

no rollback

labor-intensive configuration

GROWTH

expansion and integration

more apps and links

sandboxes

more testers, more features to test

• new projects, workflows, etc.

• new plugins

• new products & product versions

dev, stage, and prod

more instances and requirements

• dev: for experimenting

• stage: for proofing

• prod: for real

WHAT WE NEED

repeatability for speed & accuracy

parallel deploy for reduced risk

distinct environments for distinct uses

complexity

DEV

STAGE

PROD

ATLASSIAN APPLICATION

RELEASE CYCLE

OUR SOLUTION

debian packaging

our in-house packaging

• binary file archives

• standard & custom packages

• standard & custom tools

SYSDB

DEPLOYMENT

build the jira package

• get the tarfile

• customize

• verify

copy everything to the server

$ 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

CONFIGURATION

common customizations

• ssl proxy

• jvm memory settings

• session timeout

• template customizations

• added files

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!

custom email template

priority thumbnail files

We needed this one!

unpackaged common settings

• ldap user directory

• internal admin user

per-environment customizations

• env-specific app behavior

• self-contained suite for each env

DEV

STAGE

PROD

look and feel

`

more environment settings in the db

• base url

• whitelist urls

• email prefix

• server license

application links

per-instance customizations

• unique instance identifier

• unique ports

DEV

STAGE

PROD

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

don’t connect dev to the prod db!

user data, or config settings?

• projects

• project components & versions

• global and per-project roles

• custom fields, screens, & workflows

• permission & notification schemes

OUR GOAL

our goal: package everything

whatever gets it done!

not the standard Atlassian way

• for deployments

• for upgrades

• for customizations

advantages of our way

FUTURE

future improvements

• more configuration

• better server management

• easier refresh

• content cleanup

• refactoring?

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

Thank you!

raju@pandora.commyra@pandora.com

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

Recommended