SlideShare a Scribd company logo
How we spread out our service globally
by utilizing
AWS and open source software
2013/08/04(sun)
Takashi SOMEDA
染田 貴志
COSCUP 2013 Taipei
https://twitter.com/tksmd
Technology Evangelist at Nulab,Inc.
JAWS UG Kyoto Branch leader
About me
https://facebook.com/takashi.someda
Write tech articles about AWS, SCM
https://github.com/tksmd
How we spread out our service globally by utilizing  AWS and open source software ( COSCUP 2013)
COSCUP 2013 Taipei
Backlog is a project management tool that 1,800 companies use.
In addition to issue management feature, Backlog provides
• File sharing by WebDAV
• Git and Subversion repository hosting.
Visit http://backlogtool.com/tw/
920,000 users around the world draw wireframes, network
diagrams, UML, business plans and so on.
Cacoo provides basic functionality as a draw tool and powerful collaborative
features like
• Simultaneous Editing on same diagram by multiple users
• Integration with Google Services like Google Apps, Google Drive and Google+
Hangouts
Examples
COSCUP 2013 Taipei
User Growth of Cacoo
COSCUP 2013 Taipei
0
100,000
200,000
300,000
400,000
500,000
600,000
700,000
800,000
900,000
1,000,000
Oct,2010 Oct,2011 Oct,2012 Aug,2013
62,000
200,000
600,000
920,000
All
Japan
Overseas
Agenda
COSCUP 2013 Taipei
 Service Overview
 Real time collaboration
 Flexible Infrastructure by AWS
 Summary
Service Overview
http://www.flickr.com/photos/ancientsword/2856148716/
Service Components
COSCUP 2013 Taipei
Software Architecture
COSCUP 2013 Taipei
Real time Collaboration
http://www.flickr.com/photos/ian_munroe/3315718996/
Simultaneous Editing
COSCUP 2013 Taipei
BlazeDS client
COSCUP 2013 Taipei
http://livedocs.adobe.com/blazeds/1/blazeds_devguide/lcarch_2.html
BlazeDS server
COSCUP 2013 Taipei
http://livedocs.adobe.com/blazeds/1/blazeds_devguide/lcarch_3.html
Message flow between Cacoo Editors
COSCUP 2013 Taipei
Synchronize MessageDestination
COSCUP 2013 Taipei
Patch added to
flex.messaging.cluster.JGroupsCluster
flex.messaging.cluster.ClusterNode
Using custom MessageService extends
flex.messaging.services.MessageService
( can be configured in messaging-config.xml )
What message exchanged
COSCUP 2013 Taipei
http://www.flickr.com/photos/dps/7161557/
Command
Command Execution Model
COSCUP 2013 Taipei
1.add 1.add1.add
2.move
Undomoveadd
1.add
2.zoom
zoom …
Command Interface
COSCUP 2013 Taipei
public class Command implements IExternalizable {
public var sequenceNo:uint = 0;
public var isLocal:Boolean = true;
public function Command() {
}
public function execute():void {
}
public function undo():void {
}
public function redo():void {
execute();
}
:
}
/*
sequenceNo keeps the order of commands to be
executed in each editors.
isLocal is used to distinguish that the command is
created on local editor or it is received from other
editor.
*/
# of Saved Commands
COSCUP 2013 Taipei
430,749,991
Partition on different tablespaces
COSCUP 2013 Taipei
create table command_01 ( LIKE command INCLUDING INDEXES INCLUDING DEFAULTS
INCLUDING CONSTRAINTS,
CHECK (diagram_id % 4 = 0)
) INHERITS (command) TABLESPACE tblspc_01;
ALTER TABLE command_01_pkey set tablespace tblspc_01;
Flexible Infrastructure by AWS
http://www.flickr.com/photos/naturegeak/5688437941/
Cacoo for Google+ Hangouts
COSCUP 2013 Taipei
http://launch-hangouts.cacoo.com/lp-zh_tw.html
We had only one month
COSCUP 2013 Taipei
beginning of March 2012
Cacoo became a candidate of the 3rd party app
announced on Hangouts API launch
28th Mar. 2012
Cacoo for Google+ Hangouts launched
Need to
 Develop application
 Do performance testing estimating 10-20 times accesses than
that of cacoo.com at that time
 Prepare 10+ Servers for performance testing and new
production environment
Simplify server operations
COSCUP 2013 Taipei
@task
def add_app(zone):
ec2 = connect_ec2()
ami = ec2.get_image(AMI_ID['app'])
r = ami.run(min_count=1, max_count=1,
key_name=KEY_NAME, user_data=load_cloudinit_script(),
security_groups=['app’],instance_type=INSTANCE_TYPE['app'],
block_device_map=create_block_device_map(),
placement=zone, instance_initiated_shutdown_behavior='stop')
instance = r.instances[0]
wait_for_startup(instance)
execute(”setup_app", hosts=[instance.public_dns_name])
execute(”update_hosts", roles=['all'])
execute(”start_app", hosts=[instance.public_dns_name])
execute(“update_nginx_upstream”)
$ fab add_app:zone=us-west-1a
# fabric and boto
# http://fabfile.org
# http://docs.pythonboto.org/
Tipping Point Example #1
COSCUP 2013 Taipei
Tipping Point Example #2
COSCUP 2013 Taipei
What we did for those growth
COSCUP 2013 Taipei
# For example1
$ ec2addsnap
$ ec2addvol –snapshot <snap_id> –s 1024G
$ ec2attvol
# For example2
$ ec2run
CloudFront for SWF distribution
COSCUP 2013 Taipei
Loading SWF is 10+ times faster
Summary
http://www.flickr.com/photos/nauright/2662160957/
OSS and AWS enable us
COSCUP 2013 Taipei
To fit the infrastructure according to the growth
To make it available to use all over the world
To make realize the key features quickly
COSCUP 2013 Taipei
Thanks!!
Q and A

More Related Content

PPTX
Airflow presentation
PDF
Introduction to Apache Airflow
PDF
Building a Data Pipeline using Apache Airflow (on AWS / GCP)
PPTX
Apache Airflow Introduction
PDF
Deploying to AppEngine
PDF
Kube Your Enthusiasm - Paul Czarkowski
PDF
Introducing Kubeflow (w. Special Guests Tensorflow and Apache Spark)
PDF
It's a Breeze to develop Apache Airflow (London Apache Airflow meetup)
Airflow presentation
Introduction to Apache Airflow
Building a Data Pipeline using Apache Airflow (on AWS / GCP)
Apache Airflow Introduction
Deploying to AppEngine
Kube Your Enthusiasm - Paul Czarkowski
Introducing Kubeflow (w. Special Guests Tensorflow and Apache Spark)
It's a Breeze to develop Apache Airflow (London Apache Airflow meetup)

What's hot (20)

PPTX
Steering the Course with Helm
PDF
Flink Jobs Deployment On Kubernetes
PDF
Hydrosphere.io for ODSC: Webinar on Kubeflow
PPTX
Airflow at WePay
PDF
Continuous Delivery for Kubernetes Apps with Helm and ChartMuseum
PDF
Thinking One Step Further with Time-saving DevOps Tools with Open Telekom Clo...
PDF
Helm - the Better Way to Deploy on Kubernetes - Reinhard Nägele - Codemotion...
PDF
What's Coming in Apache Airflow 2.0 - PyDataWarsaw 2019
PDF
ОЛЕГ МАЦЬКІВ «Crash course on Operator Framework» Lviv DevOps Conference 2019
PDF
Kubernetes Application Deployment with Helm - A beginner Guide!
PDF
Kubeflow repos
PPTX
Intro to Helm for Kubernetes
PDF
Updating Kubernetes With Helm Charts: Build, Test, Deploy with Codefresh and...
PDF
PR workflow
PDF
Helm chart-introduction
PDF
What is CF
PDF
Introduction to Terraform and Google Cloud Platform
PDF
Provision GCP resources using Terraform @ GDG Craiova
PDF
Knative And Pivotal Function As a Service
PDF
GCPUG.TW - GCP學習資源分享
Steering the Course with Helm
Flink Jobs Deployment On Kubernetes
Hydrosphere.io for ODSC: Webinar on Kubeflow
Airflow at WePay
Continuous Delivery for Kubernetes Apps with Helm and ChartMuseum
Thinking One Step Further with Time-saving DevOps Tools with Open Telekom Clo...
Helm - the Better Way to Deploy on Kubernetes - Reinhard Nägele - Codemotion...
What's Coming in Apache Airflow 2.0 - PyDataWarsaw 2019
ОЛЕГ МАЦЬКІВ «Crash course on Operator Framework» Lviv DevOps Conference 2019
Kubernetes Application Deployment with Helm - A beginner Guide!
Kubeflow repos
Intro to Helm for Kubernetes
Updating Kubernetes With Helm Charts: Build, Test, Deploy with Codefresh and...
PR workflow
Helm chart-introduction
What is CF
Introduction to Terraform and Google Cloud Platform
Provision GCP resources using Terraform @ GDG Craiova
Knative And Pivotal Function As a Service
GCPUG.TW - GCP學習資源分享
Ad

Viewers also liked (8)

PPTX
大企業、未踏ソフトウェア、起業 様々な働き方から学んだ「モノ作り」のエッセンス
PPTX
Basic architecuture and operation concept of Backlog and Cacoo
PPTX
「どうすれば価値を生み出すか」を知るために ヌーラボで行っていること 〜 落ち穂拾い 〜
PPTX
Service Configuration Management for Rapid Growth
PPTX
Nulab's DevOps tool stack based on AWS
PPTX
Service Configuration Management for Rapid Growth - demo 10 steps to build pi...
PPTX
エバンジェリストの憂鬱
PPTX
JAWS-UG 三都物語 2014 今しか役に立たない EC2入門 2014夏
大企業、未踏ソフトウェア、起業 様々な働き方から学んだ「モノ作り」のエッセンス
Basic architecuture and operation concept of Backlog and Cacoo
「どうすれば価値を生み出すか」を知るために ヌーラボで行っていること 〜 落ち穂拾い 〜
Service Configuration Management for Rapid Growth
Nulab's DevOps tool stack based on AWS
Service Configuration Management for Rapid Growth - demo 10 steps to build pi...
エバンジェリストの憂鬱
JAWS-UG 三都物語 2014 今しか役に立たない EC2入門 2014夏
Ad

Similar to How we spread out our service globally by utilizing AWS and open source software ( COSCUP 2013) (20)

PDF
Embracing Open Source: Practice and Experience from Alibaba
PDF
Open Source Tools For Freelancers
PDF
Hybrid cloud wiskyweb2012
PDF
Open stack meetup_boston_ubuntu_cloud
PDF
OSMC 2008 | Integrating Nagios and ]project-open[ by Malte Sussdorff
PPTX
Amazon Web Services OverView
KEY
Developing Social Games in the Cloud
PDF
Develop and deploy using Hybrid Cloud Strategies confoo2012
PDF
Hopping in clouds - phpuk 17
PDF
Continuous Deployment: The Dirty Details
PDF
Новый InterSystems: open-source, митапы, хакатоны
KEY
Cloud Computing: Amazon AWS and EC2
PDF
Web Developing In Search
PDF
Rapidly Building and Deploying Scalable Web Architectures
PDF
Hybrid Cloud PHPUK2012
PDF
OpenCms Days 2012 - The Dispatch - Running OpenCms 8 on Amazon cloud services
PPTX
Building services on AWS in China region
PDF
PDF
Embrace the Cloud - Inspiring Conference 2015
PDF
How to build a social network on serverless
Embracing Open Source: Practice and Experience from Alibaba
Open Source Tools For Freelancers
Hybrid cloud wiskyweb2012
Open stack meetup_boston_ubuntu_cloud
OSMC 2008 | Integrating Nagios and ]project-open[ by Malte Sussdorff
Amazon Web Services OverView
Developing Social Games in the Cloud
Develop and deploy using Hybrid Cloud Strategies confoo2012
Hopping in clouds - phpuk 17
Continuous Deployment: The Dirty Details
Новый InterSystems: open-source, митапы, хакатоны
Cloud Computing: Amazon AWS and EC2
Web Developing In Search
Rapidly Building and Deploying Scalable Web Architectures
Hybrid Cloud PHPUK2012
OpenCms Days 2012 - The Dispatch - Running OpenCms 8 on Amazon cloud services
Building services on AWS in China region
Embrace the Cloud - Inspiring Conference 2015
How to build a social network on serverless

More from Takashi Someda (6)

PPTX
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013
PPTX
Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語
PPTX
MessagePack RPC によるドキドキ非同期通信 @関ジャバ 2012年度8月
PPTX
JAWS-UG Kyoto #02 LT
PPTX
AWS ではじめる Programmable Cloud
PDF
Algo 23 MSTP
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013
Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語
MessagePack RPC によるドキドキ非同期通信 @関ジャバ 2012年度8月
JAWS-UG Kyoto #02 LT
AWS ではじめる Programmable Cloud
Algo 23 MSTP

Recently uploaded (20)

PPTX
Cloud computing and distributed systems.
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Big Data Technologies - Introduction.pptx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Machine learning based COVID-19 study performance prediction
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Approach and Philosophy of On baking technology
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
Cloud computing and distributed systems.
Unlocking AI with Model Context Protocol (MCP)
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Chapter 3 Spatial Domain Image Processing.pdf
Understanding_Digital_Forensics_Presentation.pptx
Network Security Unit 5.pdf for BCA BBA.
Big Data Technologies - Introduction.pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
“AI and Expert System Decision Support & Business Intelligence Systems”
Reach Out and Touch Someone: Haptics and Empathic Computing
Machine learning based COVID-19 study performance prediction
Building Integrated photovoltaic BIPV_UPV.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Advanced methodologies resolving dimensionality complications for autism neur...
Approach and Philosophy of On baking technology
Digital-Transformation-Roadmap-for-Companies.pptx

How we spread out our service globally by utilizing AWS and open source software ( COSCUP 2013)

  • 1. How we spread out our service globally by utilizing AWS and open source software 2013/08/04(sun)
  • 2. Takashi SOMEDA 染田 貴志 COSCUP 2013 Taipei https://twitter.com/tksmd Technology Evangelist at Nulab,Inc. JAWS UG Kyoto Branch leader About me https://facebook.com/takashi.someda Write tech articles about AWS, SCM https://github.com/tksmd
  • 4. COSCUP 2013 Taipei Backlog is a project management tool that 1,800 companies use. In addition to issue management feature, Backlog provides • File sharing by WebDAV • Git and Subversion repository hosting. Visit http://backlogtool.com/tw/
  • 5. 920,000 users around the world draw wireframes, network diagrams, UML, business plans and so on. Cacoo provides basic functionality as a draw tool and powerful collaborative features like • Simultaneous Editing on same diagram by multiple users • Integration with Google Services like Google Apps, Google Drive and Google+ Hangouts
  • 7. User Growth of Cacoo COSCUP 2013 Taipei 0 100,000 200,000 300,000 400,000 500,000 600,000 700,000 800,000 900,000 1,000,000 Oct,2010 Oct,2011 Oct,2012 Aug,2013 62,000 200,000 600,000 920,000 All Japan Overseas
  • 8. Agenda COSCUP 2013 Taipei  Service Overview  Real time collaboration  Flexible Infrastructure by AWS  Summary
  • 14. BlazeDS client COSCUP 2013 Taipei http://livedocs.adobe.com/blazeds/1/blazeds_devguide/lcarch_2.html
  • 15. BlazeDS server COSCUP 2013 Taipei http://livedocs.adobe.com/blazeds/1/blazeds_devguide/lcarch_3.html
  • 16. Message flow between Cacoo Editors COSCUP 2013 Taipei
  • 17. Synchronize MessageDestination COSCUP 2013 Taipei Patch added to flex.messaging.cluster.JGroupsCluster flex.messaging.cluster.ClusterNode Using custom MessageService extends flex.messaging.services.MessageService ( can be configured in messaging-config.xml )
  • 18. What message exchanged COSCUP 2013 Taipei http://www.flickr.com/photos/dps/7161557/ Command
  • 19. Command Execution Model COSCUP 2013 Taipei 1.add 1.add1.add 2.move Undomoveadd 1.add 2.zoom zoom …
  • 20. Command Interface COSCUP 2013 Taipei public class Command implements IExternalizable { public var sequenceNo:uint = 0; public var isLocal:Boolean = true; public function Command() { } public function execute():void { } public function undo():void { } public function redo():void { execute(); } : } /* sequenceNo keeps the order of commands to be executed in each editors. isLocal is used to distinguish that the command is created on local editor or it is received from other editor. */
  • 21. # of Saved Commands COSCUP 2013 Taipei 430,749,991
  • 22. Partition on different tablespaces COSCUP 2013 Taipei create table command_01 ( LIKE command INCLUDING INDEXES INCLUDING DEFAULTS INCLUDING CONSTRAINTS, CHECK (diagram_id % 4 = 0) ) INHERITS (command) TABLESPACE tblspc_01; ALTER TABLE command_01_pkey set tablespace tblspc_01;
  • 23. Flexible Infrastructure by AWS http://www.flickr.com/photos/naturegeak/5688437941/
  • 24. Cacoo for Google+ Hangouts COSCUP 2013 Taipei http://launch-hangouts.cacoo.com/lp-zh_tw.html
  • 25. We had only one month COSCUP 2013 Taipei beginning of March 2012 Cacoo became a candidate of the 3rd party app announced on Hangouts API launch 28th Mar. 2012 Cacoo for Google+ Hangouts launched Need to  Develop application  Do performance testing estimating 10-20 times accesses than that of cacoo.com at that time  Prepare 10+ Servers for performance testing and new production environment
  • 26. Simplify server operations COSCUP 2013 Taipei @task def add_app(zone): ec2 = connect_ec2() ami = ec2.get_image(AMI_ID['app']) r = ami.run(min_count=1, max_count=1, key_name=KEY_NAME, user_data=load_cloudinit_script(), security_groups=['app’],instance_type=INSTANCE_TYPE['app'], block_device_map=create_block_device_map(), placement=zone, instance_initiated_shutdown_behavior='stop') instance = r.instances[0] wait_for_startup(instance) execute(”setup_app", hosts=[instance.public_dns_name]) execute(”update_hosts", roles=['all']) execute(”start_app", hosts=[instance.public_dns_name]) execute(“update_nginx_upstream”) $ fab add_app:zone=us-west-1a # fabric and boto # http://fabfile.org # http://docs.pythonboto.org/
  • 27. Tipping Point Example #1 COSCUP 2013 Taipei
  • 28. Tipping Point Example #2 COSCUP 2013 Taipei
  • 29. What we did for those growth COSCUP 2013 Taipei # For example1 $ ec2addsnap $ ec2addvol –snapshot <snap_id> –s 1024G $ ec2attvol # For example2 $ ec2run
  • 30. CloudFront for SWF distribution COSCUP 2013 Taipei Loading SWF is 10+ times faster
  • 32. OSS and AWS enable us COSCUP 2013 Taipei To fit the infrastructure according to the growth To make it available to use all over the world To make realize the key features quickly