0
ATLASSIAN SUMMIT 2013
Automated Configuration and Deployment
of Atlassian Applications at Pandora
October 3, 2013
Raju Kadam & Myra Chachkin
Tec...
personalized radio
Raju Kadam

Myra Chachkin

your humble presenters
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
DEV
ATLASSIAN
APPLICATION
RELEASE CYCLE

STAGE

PROD

complexity
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-rsyn...
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...
custom email template
We needed this one!

priority thumbnail files
unpackaged common settings

• ldap user directory
• internal admin user
per-environment customizations
DEV

STAGE

PROD

• env-specific app behavior
• self-contained suite for each env
`

look and feel
more environment settings in the db

• base url
• whitelist urls
• email prefix
• server license
application links
per-instance customizations
DEV

STAGE

PROD

• unique instance identifier
• unique ports
unique identifier per instance
• instance id: app/version/env
such as “jira-5.2.6-dev”

• uniquely identifies:

• installa...
don’t connect dev to the prod db!
user data, or config settings?

• projects
• project components & versions
• global and per-project roles
• custom fields,...
OUR GOAL
our goal: package everything
whatever gets it done!
not the standard Atlassian way
advantages of our way

• for deployments
• for upgrades
• for customizations
FUTURE
future improvements

• more configuration
• better server management
• easier refresh
• content cleanup
• refactoring?
TMTOWTDI
There’s More Than One Way To Do It...
Thank you!
raju@pandora.com
myra@pandora.com
Rate this Talk
Automated Configuration & Deployment of
Atlassian Applications
Text code below to 22333
or visit http://bit....
Automated Configuration & Deployment of Atlassian Applications
Automated Configuration & Deployment of Atlassian Applications
Automated Configuration & Deployment of Atlassian Applications
Automated Configuration & Deployment of Atlassian Applications
Automated Configuration & Deployment of Atlassian Applications
Upcoming SlideShare
Loading in...5
×

Automated Configuration & Deployment of Atlassian Applications

578

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
578
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Automated Configuration & Deployment of Atlassian Applications"

  1. 1. ATLASSIAN SUMMIT 2013
  2. 2. Automated Configuration and Deployment of Atlassian Applications at Pandora October 3, 2013 Raju Kadam & Myra Chachkin Technical Operations Pandora Media
  3. 3. personalized radio
  4. 4. Raju Kadam Myra Chachkin your humble presenters
  5. 5. deployment & configuration - then and now
  6. 6. BEGINNINGS
  7. 7. the olden days
  8. 8. no safety net
  9. 9. no rollback
  10. 10. labor-intensive configuration
  11. 11. GROWTH
  12. 12. expansion and integration
  13. 13. more apps and links
  14. 14. sandboxes
  15. 15. more testers, more features to test • new projects, workflows, etc. • new plugins • new products & product versions
  16. 16. dev, stage, and prod
  17. 17. more instances and requirements • dev: for experimenting • stage: for proofing • prod: for real
  18. 18. WHAT WE NEED
  19. 19. repeatability for speed & accuracy
  20. 20. parallel deploy for reduced risk
  21. 21. distinct environments for distinct uses
  22. 22. DEV ATLASSIAN APPLICATION RELEASE CYCLE STAGE PROD complexity
  23. 23. OUR SOLUTION
  24. 24. debian packaging
  25. 25. our in-house packaging • binary file archives • standard & custom packages • standard & custom tools
  26. 26. SYSDB
  27. 27. DEPLOYMENT
  28. 28. build the jira package • get the tarfile • customize • verify
  29. 29. copy everything to the server
  30. 30. $ 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-data use chroot = false readonly = false uid = jira gid = jira
  31. 31. CONFIGURATION
  32. 32. common customizations • ssl proxy • jvm memory settings • session timeout • template customizations • added files
  33. 33. 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!
  34. 34. custom email template
  35. 35. We needed this one! priority thumbnail files
  36. 36. unpackaged common settings • ldap user directory • internal admin user
  37. 37. per-environment customizations DEV STAGE PROD • env-specific app behavior • self-contained suite for each env
  38. 38. ` look and feel
  39. 39. more environment settings in the db • base url • whitelist urls • email prefix • server license
  40. 40. application links
  41. 41. per-instance customizations DEV STAGE PROD • unique instance identifier • unique ports
  42. 42. unique identifier per instance • instance id: app/version/env such as “jira-5.2.6-dev” • uniquely identifies: • installation & data directories • virtualhost name • database name • init script name
  43. 43. don’t connect dev to the prod db!
  44. 44. user data, or config settings? • projects • project components & versions • global and per-project roles • custom fields, screens, & workflows • permission & notification schemes
  45. 45. OUR GOAL
  46. 46. our goal: package everything
  47. 47. whatever gets it done!
  48. 48. not the standard Atlassian way
  49. 49. advantages of our way • for deployments • for upgrades • for customizations
  50. 50. FUTURE
  51. 51. future improvements • more configuration • better server management • easier refresh • content cleanup • refactoring?
  52. 52. TMTOWTDI There’s More Than One Way To Do It...
  53. 53. Thank you! raju@pandora.com myra@pandora.com
  54. 54. Rate this Talk Automated Configuration & Deployment of Atlassian Applications Text code below to 22333 or visit http://bit.ly/19K6NRq MEH = 5N NO T BA D = 5P P R ET T Y GO O D = 5Q A WES O ME = 5R To join this session, send text 136888 to
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×