49

Delivering New Features to Over 30,000 Customers — Daily

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Delivering New Features to Over 30,000 Customers — Daily
Page 2: Delivering New Features to Over 30,000 Customers — Daily

INSIDE THE DEVELOPMENT TEAM

DELIVERING NEW FEATURES TO OVER 30,000 CUSTOMERS DAILY

RYAN THOMASDEVELOPMENT TEAM LEAD

DEVELOPER ACCELERATION GROUP, [email protected]

Page 3: Delivering New Features to Over 30,000 Customers — Daily

AGENDA

Atlassian OnDemand

Mechanics of Deploying

Releasing with Confidence

The Feedback Loop

Page 4: Delivering New Features to Over 30,000 Customers — Daily
Page 5: Delivering New Features to Over 30,000 Customers — Daily

Atlassian OnDemand takes our award-winning software for development &

collaboration into the cloud, and makes getting started easier than ever.“ “

Page 6: Delivering New Features to Over 30,000 Customers — Daily
Page 7: Delivering New Features to Over 30,000 Customers — Daily

35,535

Page 8: Delivering New Features to Over 30,000 Customers — Daily

UNICORN

Page 9: Delivering New Features to Over 30,000 Customers — Daily

INFRASTRUCTURE

OPERATIONS

SOFTWARE

Page 10: Delivering New Features to Over 30,000 Customers — Daily

• Atlassian owned hardware• Purpose built for OnDemand• 3 Datacenters across US & Australia

• Ashburn• Santa Clara• Sydney

• ~57Tb of RAM in our Ashburn DC

INFRASTRUCTURE

Page 11: Delivering New Features to Over 30,000 Customers — Daily

• Dedicated Operations team around the globe• Australia• US• Europe

• 24x7 Monitoring and support of the platform and applications

• 99.972% availability over the last 31 days

OPERATIONS

Page 12: Delivering New Features to Over 30,000 Customers — Daily

• Traditionally self-hosted applications• We are SaaS’ing them into a true SaaS

solution• Shared services• Multi-tenanted applications

• The same JIRA, Confluence & Bamboo that you have already used• But with more frequent features delivered!

SOFTWARE

Page 13: Delivering New Features to Over 30,000 Customers — Daily

RELEASING WITH CONFIDENCE

Page 14: Delivering New Features to Over 30,000 Customers — Daily

What is a release process?????

??

?

Page 15: Delivering New Features to Over 30,000 Customers — Daily

UNIT

INTEGRATION

ACCEPTANCERELEASE

Page 16: Delivering New Features to Over 30,000 Customers — Daily
Page 17: Delivering New Features to Over 30,000 Customers — Daily
Page 18: Delivering New Features to Over 30,000 Customers — Daily
Page 19: Delivering New Features to Over 30,000 Customers — Daily

350COMMITS A WEEK

TO MASTER

Page 20: Delivering New Features to Over 30,000 Customers — Daily

TESTING

REVIEW

AUTOMATION

Page 21: Delivering New Features to Over 30,000 Customers — Daily

• Keep master releasable• Automatically build on feature branches• We do acceptance testing of:

• The change against current Production versions

• The change against current Development versions

TESTING

Page 22: Delivering New Features to Over 30,000 Customers — Daily

• Every. Single. Change. Is reviewed• Code review is part of our definition of done• Peer review by team / relevant people• QA comes in once we have reviewed our

own changes• All stories have QA demos• All stories have QA testing notes

REVIEW

Page 23: Delivering New Features to Over 30,000 Customers — Daily

• We are in the process of automating our

release process end-to-end• This removes the risk of human error• Allows us to move quicker, with a higher

confidence

AUTOMATION

Page 24: Delivering New Features to Over 30,000 Customers — Daily

#summit13

Release early. Release often. And listen to your customers.“

“- Eric Raymond

Page 25: Delivering New Features to Over 30,000 Customers — Daily

MECHANICS OF DEPLOYING

Page 26: Delivering New Features to Over 30,000 Customers — Daily
Page 27: Delivering New Features to Over 30,000 Customers — Daily

Development

Dogfooding

Production

Smoke Tests

Smoke Tests

Page 28: Delivering New Features to Over 30,000 Customers — Daily

Development

Dogfooding

Production

• Contains all of the releases that go to OnDemand

• Developers instances can opt-in to receiving updates of new plugins & products

• Most likely to encounter bugs here

Page 29: Delivering New Features to Over 30,000 Customers — Daily

Dogfooding

Development

Production

• We “Eat our own dogfood”• Contains business-critical systems we

use every day• All instances updated

• New plugins when available• Products updates every night

• A sub-set of releases in the DEV environment

• Bugs should be found before here :)

Page 30: Delivering New Features to Over 30,000 Customers — Daily

Dogfooding

Development

Production

• What our customers use every day• A sub-set of releases in the DOG

environment• Less likely to encounter bugs here

Page 31: Delivering New Features to Over 30,000 Customers — Daily

Production

Dogfooding

Development

Page 32: Delivering New Features to Over 30,000 Customers — Daily

#summit13

The environments you deliver to should continually be refining their output. The aim is to deliver high quality software.“

Page 33: Delivering New Features to Over 30,000 Customers — Daily

POWER

Page 34: Delivering New Features to Over 30,000 Customers — Daily

POWER

• Large increase is ~ 600W of power usage - per rack

• We have 37 racks in our Ashburn DC

• This is ~ 22.2kW of power for a standard US & EMEA upgrade

Page 35: Delivering New Features to Over 30,000 Customers — Daily

POWER

Enough to power my MacBook Air for 29.3 weeks straight

More than 6 months!

Page 36: Delivering New Features to Over 30,000 Customers — Daily
Page 37: Delivering New Features to Over 30,000 Customers — Daily

THE FEEDBACK LOOP

Page 38: Delivering New Features to Over 30,000 Customers — Daily
Page 39: Delivering New Features to Over 30,000 Customers — Daily

POST DEPLOYMENT VERIFICATION

• Ensuring what we’ve deployed is actually working

• Allows quick pickup of defects in production

• We use the atlassian-healthcheck plugin for this

Page 40: Delivering New Features to Over 30,000 Customers — Daily

INFRASTRUCTURE ANALYTICS

• A deeper level of feedback for our operations and infrastructure teams

• Check CPU time, IO, JVM statistics, power usage

• Helps us diagnose platform related usage and problems

Page 41: Delivering New Features to Over 30,000 Customers — Daily

PRODUCT ANALYTICS

• Statistics of new feature discovery and usage

• Consumed by product and plugin teams, and their product managers

• Helps us experiment and A/B test new features in production

Page 42: Delivering New Features to Over 30,000 Customers — Daily

BUG REPORTS & SUPPORT CASES

• The last resort - we want to minimize this kind of feedback

• If an issue slips through to production, and is not picked up by our automated checking it will generally result in a support case

Page 43: Delivering New Features to Over 30,000 Customers — Daily

• These four types of feedback are all critical in pushing information back to the developers and PMs

• Closes the delivery loop• An awesome delivery pipeline

is next to useless if you can’t see what’s going on

Page 44: Delivering New Features to Over 30,000 Customers — Daily

#summit13

There are many types of feedback, these four work for Atlassian. You’ll need to find out what works for your team and processes - remember: having feedback is crucial to continual improvement.“

Page 45: Delivering New Features to Over 30,000 Customers — Daily

#summit13

There are many types of feedback, these four work for Atlassian. You’ll need to find out what works for your team and processes - remember: having feedback is crucial to continual improvement.

“ “The environments you deliver to should continually be refining their output. The aim is to deliver high quality software.

Release early. Release often. And listen to your customers.

Page 46: Delivering New Features to Over 30,000 Customers — Daily

TYING IT ALL TOGETHER

Page 47: Delivering New Features to Over 30,000 Customers — Daily

35,535Enables us to deliver new features to

customers every day, with confidence

Page 48: Delivering New Features to Over 30,000 Customers — Daily

Thank you!

RY A N TH O M A S • DE V E L O P M E N T TE A M LE A D • AT L A S S I A N

@R Y A N_A T L A S S I A N • R T H O M A S@A T L A S S I A N .C O M

Page 49: Delivering New Features to Over 30,000 Customers — Daily

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

Delivering New Features to Over 30,000 Customers - Daily

To join this session, send text 136888 to

AWESOME = 28

PRETTY GOOD = 27

NOT BAD = 26

MEH = 25

Rate this Talk