automated configuration & deployment of atlassian applications
DESCRIPTION
TRANSCRIPT
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!
[email protected]@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