SlideShare a Scribd company logo
Tech Talk on Cloud Computing
Reaching for the cloud
3 ways that the cloud will change the way you develop software
Atlassian

NirajBhawnani
What is the cloud?
What is the cloud?
• Remote servers run applications and store your data
• Accessible over the internet
• Users need not care where the application is running or
where their files are hosted

• Examples of cloud companies:
Atlassian & the cloud
Who is Atlassian?
• We build software tools for issue tracking, collaboration,
continuous integration, and source control
Who is Atlassian?
• Founded in 2002 by 2
Sydney-siders
• ~600 employees in:
Who is Atlassian?

Atlassian’s Vietnamese Team, November 2013
• Atlassian started selling software for customers to install
on their own servers
• Customers would keep asking if we had a hosted
solution

• In 2011, Atlassian OnDemand was born
• 41,150 VMs
• 5,640 CPU cores
• 58 TB RAM
• 368 TB Disk
Why is everything
moving to the cloud?
Why move to the cloud?
• Great for business. One time payments become regular
payments
Confluence BTF vs. OnDemand
100 user license = $4000

100 user license = $300/month

Assuming an upgrade every 2 years:
BTF = $4000

OnDemand = $300 × 2 × 12
= $7200
Why move to the cloud?
• Cheaper for customers – no staff or hardware required
Confluence BTF vs. OnDemand
100 user license = $4000
Staff/hardware = $70000/yr

100 user license = $300/month
No staff/hardware = $0/yr

Cost every 2 years:
BTF = $70000 × 2 + $4000
= $144000

OnDemand = $300 × 2 × 12
= $7200
Why move to the cloud?
• Always accessible via the internet
• Full control of the application server environment
Delivering software to
the cloud
Traditional delivery pipeline

Production
Merge code

Build Release

Manual Task
Automatic Task

QA Verification

Staging deployment
& verification
Continuous Delivery Pipeline

Production
Merge code

Manual Task
Automatic Task

Continuous Integration
(Build & Test)
How will the cloud
change the way you
build software?
1. Incremental delivery
Incremental Delivery
• Waterfall model does not work for cloud software
• Deliver features in small increments instead of “big bang
releases”
• Good for customers: they get features faster

• Good for you: less investment before validation
Incremental Delivery
• Start with a Minimum Viable Product (MVP)
• Simplest version of the feature that still adds value for users
• Example: Facebook Photos
• MVP allows users to just upload and view photos
Incremental Delivery
• Then deliver incrementally in order of importance
• V1/MVP: Upload and view standard definition photos
• V2: Face tagging
• V3: Video support

• V4: High definition photos & full screen mode
• V5: Automatic face detection
What to do when the
MVP is too big?
Feature Switches
• Atlassian calls them “dark features”
• Wrap the feature in some condition and provide a way to
switch the condition on and off
• Also provide a way for tests to turn them on/off

• Eliminates the need for long lived code branches
Feature Switches
• Also allows us to deploy features to a subset of users
• Can be used to test more risky features without upsetting
too many users
All users

Experiment
Group

Control
Group
2. Automation
Automated Testing
• Since there might not be a manual verification step, we
must write a lot of automated tests to verify the system:
• Unit tests
• Integration tests
• Smoke tests
Automated Testing
• Automated tests need to run for every commit on every
branch
• Branches can be merged automatically or manually
• Automatic deployment when the main branch passes

• Tools: Atlassian Bamboo, Hudson, Cruise Control
Automated Testing
• Check in code
• Build runs:
• Unit tests
• Integration tests

• Merge code
Unit Tests
• Used to test individual units of source code in isolation
• Can run very very fast
• Might miss some bugs
• E.g. JUnit, Mockito, QUnit, etc.
Integration Tests
• Tests the whole product by functionality
• Runs slowly
• Selenium tests to drive the UI
• Hamcrest/JUnit to do assertions
Smoke Tests
• Similar to integration tests
• Runs on one or more staging servers with real data that
has been upgraded
• Verifies that the data is intact and that basic functionality
still works
• Also uses Selenium
Selenium
• Test code sends commands to Selenium Server
• Selenium Server starts a browser
• Selenium Server sends commands to the browser
• Type in this form

• Click the submit button
• Is this element visible?

Test code

Selenium
Server

Web
Browser
Selenium
• Since you need to write a lot of tests, you need to reuse
as much code as possible
• Write “page objects” that represent each page and “page
components” that represent shared components (e.g.
header and navigation)
Selenium
• Example code (Selenium with page objects):
@Test
public void testQuickSearchWithResults()
{
viewPage = product.login(User.TEST, ViewPage.class, testData.page);
QuickSearch quickSearch = viewPage.getHeader().getQuickSearch();
SearchResultPage resultsPage = quickSearch.doSiteSearch(searchWithResults);
Poller.waitUntilTrue(resultsPage.hasMatchingResults());
}
Automated Deployment
• Deployments happen very frequently:
•
•
•

: 25/day
: 1/day
: 1/week

• Updates need to be fast and automatic
• Usually a collection of custom software and scripts
3. Analytics
Analytics
• Collect usage data from all instances and users in a
centralised place
• This can be a very large amount of data, you need to
use tools that can handle it:
• Graphite
• Amazon Redshift
Analytics
• Query the data to answer important questions:
• What features are people using?
• What features are people not using?
• How are the features being used?

• What kind of users are using what kind of features?

• Use the data to make important business decisions
Analytics
• You should come up with the list of questions before you
ship the feature. Why?
Analytics
• You should come up with the list of questions before you
ship the feature. Why?
• To answer some kinds of questions you may need to write
additional code.
Atlassian Analytics
• Leverages the existing events system
• Support for client-side events
• Reporting via Graphite or Apache Hive
• Google Analytics
• Greenzone
Atlassian Analytics
Product
instance
Product
instance

Product
instance

UDP

Analytics
Server
Graphite

Product
instance
Product
instance
…
Product
instance

Hive
Analytics
Server

Amazon
Redshift
Atlassian Analytics
Application Server

HAMS

Application
code

Sales information

Java Event

Web Browser

Batched
AJAX

Analytics Plugin

Database
Server

Greenzone
Database

UDP

Analytics
Server

Google Analytics

Daily SQL
Queries

Hive, etc.
Other Considerations
• Hardware costs (particularly RAM) is the largest expense
• RAM usage can be reduced by:
• Multitenancy
• Microservices architecture

• Optimising code
Other Considerations
• Deployment should not cause downtime
• Upgrade a standby server
• Switch proxy to new server
• Store sessions in a central location e.g. database

• Users experience no downtime
Other Considerations
• Things don’t always go as planned
• Always try to roll forward, never backward
• Have a procedure to deploy hotfixes in case of emergency
• Only revert to older versions as a last resort
What should I do next?
What should I do next?
• Consider moving your application to the cloud
• Deliver features incrementally
• Write a lot of automated tests
• Make deployment easy and automatic
• Use collected data to make business decisions
• Learn more about Atlassian software
• Hear talks like this one about industry best practices
• Network with other professionals
• Free beer!
• https://aug.atlassian.com/
Thank You!
Questions?

More Related Content

What's hot (18)

PPTX
ASP.NET MVC 5 and SignalR 2
Jaliya Udagedara
 
PPTX
Azure serverless architectures
Benoit Le Pichon
 
PPTX
SPS calgary 2017 introduction to azure functions microsoft flow
Vincent Biret
 
PDF
Docker in Production: How RightScale Delivers Cloud Applications
RightScale
 
PPTX
Mircoservices, dev ops and Engineering best practices at Wix.com
Aviran Mordo
 
PPTX
Concurrency at Scale: Evolution to Micro-Services
Randy Shoup
 
PPTX
Building enterprise applications on the cloud (Level 100)
Prabath Fonseka
 
PPTX
Navigating the turbulence on takeoff: Setting up SharePoint on Azure IaaS the...
Jason Himmelstein
 
PDF
Project Sherpa: How RightScale Went All in on Docker
RightScale
 
PPTX
Advanced A/B Testing - Jax London 2015
Aviran Mordo
 
PPTX
A career in SharePoint
Prabath Fonseka
 
PPTX
The 7 deadly sins of micro services
Aidan Casey
 
PPTX
Ecs19 - Hans Brender - Is OneDrive Really Enterprise Ready
European Collaboration Summit
 
PPTX
Experimenting on Humans - Advanced A/B Tests - QCon SF 2014
Aviran Mordo
 
PPTX
The Hitchhiker’s Guide to Hybrid Connectivity
BizTalk360
 
PDF
Meetup#7: AWS LightSail - The Simplicity of VPS - The Power of AWS
AWS Vietnam Community
 
PDF
User-percieved performance
Mike North
 
PPTX
DevCon13 System Administration Basics
sysnickm
 
ASP.NET MVC 5 and SignalR 2
Jaliya Udagedara
 
Azure serverless architectures
Benoit Le Pichon
 
SPS calgary 2017 introduction to azure functions microsoft flow
Vincent Biret
 
Docker in Production: How RightScale Delivers Cloud Applications
RightScale
 
Mircoservices, dev ops and Engineering best practices at Wix.com
Aviran Mordo
 
Concurrency at Scale: Evolution to Micro-Services
Randy Shoup
 
Building enterprise applications on the cloud (Level 100)
Prabath Fonseka
 
Navigating the turbulence on takeoff: Setting up SharePoint on Azure IaaS the...
Jason Himmelstein
 
Project Sherpa: How RightScale Went All in on Docker
RightScale
 
Advanced A/B Testing - Jax London 2015
Aviran Mordo
 
A career in SharePoint
Prabath Fonseka
 
The 7 deadly sins of micro services
Aidan Casey
 
Ecs19 - Hans Brender - Is OneDrive Really Enterprise Ready
European Collaboration Summit
 
Experimenting on Humans - Advanced A/B Tests - QCon SF 2014
Aviran Mordo
 
The Hitchhiker’s Guide to Hybrid Connectivity
BizTalk360
 
Meetup#7: AWS LightSail - The Simplicity of VPS - The Power of AWS
AWS Vietnam Community
 
User-percieved performance
Mike North
 
DevCon13 System Administration Basics
sysnickm
 

Similar to Tech Talk on Cloud Computing (20)

PDF
Microservices and Serverless for Mega Startups - DevOps IL Meetup
Boaz Ziniman
 
PDF
AWS Innovate: Smaller IS Better – Exploiting Microservices on AWS, Craig Dickson
Amazon Web Services Korea
 
PDF
스타트업과 개발자를 위한 AWS 클라우드 태권 세미나
Amazon Web Services Korea
 
PPTX
Visual Studio LightSwitch (Beta 1) Overview
Steve Lange
 
PPTX
Data harmony update 2021
Access Innovations, Inc.
 
PPTX
8 cloud design patterns you ought to know - Update Conference 2018
Taswar Bhatti
 
PPTX
Devops architecture
Ojasvi Jagtap
 
PDF
Patterns and practices for building enterprise-scale HTML5 apps
Phil Leggetter
 
PPTX
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
TIMETOACT GROUP
 
PDF
Introducing to serverless computing and AWS lambda - Israel Clouds Meetup
Boaz Ziniman
 
PPTX
Azure DevOps Tasks.pptx
PrasanthOneness
 
PPTX
The Rocky Cloud Road
Gert Drapers
 
PDF
Getting to Walk with DevOps
Eklove Mohan
 
PDF
Building Enterprise Grade Front-End Applications with JavaScript Frameworks
FITC
 
PDF
Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...
Startupfest
 
PPTX
Disruptive Trends in Application Development
WaveMaker, Inc.
 
PPTX
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
Vincent Biret
 
PDF
Introduction to Microsoft Flow and Azure Functions
BIWUG
 
PDF
Cabot Technology Solutions Inc
Venkatesh Thyagarajan
 
PPTX
.NET microservices with Azure Service Fabric
Davide Benvegnù
 
Microservices and Serverless for Mega Startups - DevOps IL Meetup
Boaz Ziniman
 
AWS Innovate: Smaller IS Better – Exploiting Microservices on AWS, Craig Dickson
Amazon Web Services Korea
 
스타트업과 개발자를 위한 AWS 클라우드 태권 세미나
Amazon Web Services Korea
 
Visual Studio LightSwitch (Beta 1) Overview
Steve Lange
 
Data harmony update 2021
Access Innovations, Inc.
 
8 cloud design patterns you ought to know - Update Conference 2018
Taswar Bhatti
 
Devops architecture
Ojasvi Jagtap
 
Patterns and practices for building enterprise-scale HTML5 apps
Phil Leggetter
 
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
TIMETOACT GROUP
 
Introducing to serverless computing and AWS lambda - Israel Clouds Meetup
Boaz Ziniman
 
Azure DevOps Tasks.pptx
PrasanthOneness
 
The Rocky Cloud Road
Gert Drapers
 
Getting to Walk with DevOps
Eklove Mohan
 
Building Enterprise Grade Front-End Applications with JavaScript Frameworks
FITC
 
Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...
Startupfest
 
Disruptive Trends in Application Development
WaveMaker, Inc.
 
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
Vincent Biret
 
Introduction to Microsoft Flow and Azure Functions
BIWUG
 
Cabot Technology Solutions Inc
Venkatesh Thyagarajan
 
.NET microservices with Azure Service Fabric
Davide Benvegnù
 
Ad

Recently uploaded (20)

PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PDF
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PPTX
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
PDF
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
PDF
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
PDF
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
PPT
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
PDF
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
Ad

Tech Talk on Cloud Computing

  • 2. Reaching for the cloud 3 ways that the cloud will change the way you develop software Atlassian NirajBhawnani
  • 3. What is the cloud?
  • 4. What is the cloud? • Remote servers run applications and store your data • Accessible over the internet • Users need not care where the application is running or where their files are hosted • Examples of cloud companies:
  • 6. Who is Atlassian? • We build software tools for issue tracking, collaboration, continuous integration, and source control
  • 7. Who is Atlassian? • Founded in 2002 by 2 Sydney-siders • ~600 employees in:
  • 8. Who is Atlassian? Atlassian’s Vietnamese Team, November 2013
  • 9. • Atlassian started selling software for customers to install on their own servers • Customers would keep asking if we had a hosted solution • In 2011, Atlassian OnDemand was born
  • 10. • 41,150 VMs • 5,640 CPU cores • 58 TB RAM • 368 TB Disk
  • 11. Why is everything moving to the cloud?
  • 12. Why move to the cloud? • Great for business. One time payments become regular payments Confluence BTF vs. OnDemand 100 user license = $4000 100 user license = $300/month Assuming an upgrade every 2 years: BTF = $4000 OnDemand = $300 × 2 × 12 = $7200
  • 13. Why move to the cloud? • Cheaper for customers – no staff or hardware required Confluence BTF vs. OnDemand 100 user license = $4000 Staff/hardware = $70000/yr 100 user license = $300/month No staff/hardware = $0/yr Cost every 2 years: BTF = $70000 × 2 + $4000 = $144000 OnDemand = $300 × 2 × 12 = $7200
  • 14. Why move to the cloud? • Always accessible via the internet • Full control of the application server environment
  • 16. Traditional delivery pipeline Production Merge code Build Release Manual Task Automatic Task QA Verification Staging deployment & verification
  • 17. Continuous Delivery Pipeline Production Merge code Manual Task Automatic Task Continuous Integration (Build & Test)
  • 18. How will the cloud change the way you build software?
  • 20. Incremental Delivery • Waterfall model does not work for cloud software • Deliver features in small increments instead of “big bang releases” • Good for customers: they get features faster • Good for you: less investment before validation
  • 21. Incremental Delivery • Start with a Minimum Viable Product (MVP) • Simplest version of the feature that still adds value for users • Example: Facebook Photos • MVP allows users to just upload and view photos
  • 22. Incremental Delivery • Then deliver incrementally in order of importance • V1/MVP: Upload and view standard definition photos • V2: Face tagging • V3: Video support • V4: High definition photos & full screen mode • V5: Automatic face detection
  • 23. What to do when the MVP is too big?
  • 24. Feature Switches • Atlassian calls them “dark features” • Wrap the feature in some condition and provide a way to switch the condition on and off • Also provide a way for tests to turn them on/off • Eliminates the need for long lived code branches
  • 25. Feature Switches • Also allows us to deploy features to a subset of users • Can be used to test more risky features without upsetting too many users All users Experiment Group Control Group
  • 27. Automated Testing • Since there might not be a manual verification step, we must write a lot of automated tests to verify the system: • Unit tests • Integration tests • Smoke tests
  • 28. Automated Testing • Automated tests need to run for every commit on every branch • Branches can be merged automatically or manually • Automatic deployment when the main branch passes • Tools: Atlassian Bamboo, Hudson, Cruise Control
  • 29. Automated Testing • Check in code • Build runs: • Unit tests • Integration tests • Merge code
  • 30. Unit Tests • Used to test individual units of source code in isolation • Can run very very fast • Might miss some bugs • E.g. JUnit, Mockito, QUnit, etc.
  • 31. Integration Tests • Tests the whole product by functionality • Runs slowly • Selenium tests to drive the UI • Hamcrest/JUnit to do assertions
  • 32. Smoke Tests • Similar to integration tests • Runs on one or more staging servers with real data that has been upgraded • Verifies that the data is intact and that basic functionality still works • Also uses Selenium
  • 33. Selenium • Test code sends commands to Selenium Server • Selenium Server starts a browser • Selenium Server sends commands to the browser • Type in this form • Click the submit button • Is this element visible? Test code Selenium Server Web Browser
  • 34. Selenium • Since you need to write a lot of tests, you need to reuse as much code as possible • Write “page objects” that represent each page and “page components” that represent shared components (e.g. header and navigation)
  • 35. Selenium • Example code (Selenium with page objects): @Test public void testQuickSearchWithResults() { viewPage = product.login(User.TEST, ViewPage.class, testData.page); QuickSearch quickSearch = viewPage.getHeader().getQuickSearch(); SearchResultPage resultsPage = quickSearch.doSiteSearch(searchWithResults); Poller.waitUntilTrue(resultsPage.hasMatchingResults()); }
  • 36. Automated Deployment • Deployments happen very frequently: • • • : 25/day : 1/day : 1/week • Updates need to be fast and automatic • Usually a collection of custom software and scripts
  • 38. Analytics • Collect usage data from all instances and users in a centralised place • This can be a very large amount of data, you need to use tools that can handle it: • Graphite • Amazon Redshift
  • 39. Analytics • Query the data to answer important questions: • What features are people using? • What features are people not using? • How are the features being used? • What kind of users are using what kind of features? • Use the data to make important business decisions
  • 40. Analytics • You should come up with the list of questions before you ship the feature. Why?
  • 41. Analytics • You should come up with the list of questions before you ship the feature. Why? • To answer some kinds of questions you may need to write additional code.
  • 42. Atlassian Analytics • Leverages the existing events system • Support for client-side events • Reporting via Graphite or Apache Hive • Google Analytics • Greenzone
  • 44. Atlassian Analytics Application Server HAMS Application code Sales information Java Event Web Browser Batched AJAX Analytics Plugin Database Server Greenzone Database UDP Analytics Server Google Analytics Daily SQL Queries Hive, etc.
  • 45. Other Considerations • Hardware costs (particularly RAM) is the largest expense • RAM usage can be reduced by: • Multitenancy • Microservices architecture • Optimising code
  • 46. Other Considerations • Deployment should not cause downtime • Upgrade a standby server • Switch proxy to new server • Store sessions in a central location e.g. database • Users experience no downtime
  • 47. Other Considerations • Things don’t always go as planned • Always try to roll forward, never backward • Have a procedure to deploy hotfixes in case of emergency • Only revert to older versions as a last resort
  • 48. What should I do next?
  • 49. What should I do next? • Consider moving your application to the cloud • Deliver features incrementally • Write a lot of automated tests • Make deployment easy and automatic • Use collected data to make business decisions
  • 50. • Learn more about Atlassian software • Hear talks like this one about industry best practices • Network with other professionals • Free beer! • https://aug.atlassian.com/