Sept 17, 2009<br />Migrating Jive to the Cloud:Practical Tips and TricksMatt TuckerCTO, Jive Software<br />
Jive Overview<br />Founded in 2001 – Series A with Sequoia in Fall ’07<br />Growing revenue 100% Y/Y and generating cash<b...
Jive’s Cloud Evolution<br />Summer of 2008<br />All deployments were installed software or ASP managed hosting<br />Custom...
Advantages for Jive’s Cloud Offering<br />ASP takes too long and costs too much<br />6 weeks to procure and install new se...
The Cloud & Enterprise<br />Enterprise Readiness Issues<br />No SAS70 Type II certification for AWS<br />Need to improve S...
PaaS or IaaS?<br />
Key Technical Challenges<br />Bring multi-tenant cost efficiency to a single-tenant app<br />Jive is a “fat” application. ...
Trick: Scripting Java Install<br />Basic tip: fully script the creation of your AMI!<br />Ran into problem that install of...
Trick: Hibernation<br />Further cut costs by automatically turning off instances that don’t get active use<br />Trick is t...
Trick: Upgrades<br />The trick: use elastic compute to do things you hadn’t imagined previously<br />In ASP environment up...
Trick: Upgrades<br />How upgrades are done:<br />Make an instance read-only by putting up an upgrade message<br />Take an ...
Trick: XMPP<br />SQS is fantastic for asynchronous message processing; we use it to deliver things like hourly stats. But ...
Tip: Reserved Instances<br />Lower costs by &gt;= 30% -- purchase reserved instances<br />Updated provisioning code to ens...
Tip: Retry AWS Calls<br />We’ve found that 2-5% of AWS web services calls fail<br />Work-around by adding re-try logic to ...
Tip: Use Userdata<br />Possible to pass in dynamic data to instance when booting as userdata<br />Userdata has small size ...
Tip: Handling Email<br />Sending email from EC2 doesn’t work: reverse DNS won’t resolve it needs, big providers simply mar...
Demo: Backend Tools<br />
Q&AMatt Tuckermatt@jivesoftware.com@matttucker<br />
Migrating Jive To The Cloud
Upcoming SlideShare
Loading in …5
×

Migrating Jive To The Cloud

2,626 views

Published on

Talk given at Portland SAO cloud computing event.

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

No Downloads
Views
Total views
2,626
On SlideShare
0
From Embeds
0
Number of Embeds
12
Actions
Shares
0
Downloads
63
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Migrating Jive To The Cloud

  1. 1. Sept 17, 2009<br />Migrating Jive to the Cloud:Practical Tips and TricksMatt TuckerCTO, Jive Software<br />
  2. 2. Jive Overview<br />Founded in 2001 – Series A with Sequoia in Fall ’07<br />Growing revenue 100% Y/Y and generating cash<br />Industry analyst recognition as leader in our space<br />Only vendor to bridge external and internal communities<br />More than 2,500 customers<br />Operations in 5 countries, new office in Palo Alto<br />Over 150 employees (currently hiring +20)<br />
  3. 3. Jive’s Cloud Evolution<br />Summer of 2008<br />All deployments were installed software or ASP managed hosting<br />Customers lacked easy, cheap way to start with Social Business Software<br />Evaluated and selected Amazon EC2 environment<br />October 2008 – February 2009<br />Dedicated, skunk-works team devoted to migrating Jive’s offering to the cloud<br />First instances up and running in January 2009 – 3 months total development<br />Summer 2009<br />Over 250 Customers on Jive Express<br />All customer sandbox sites migrated to the EC2 cloud<br />Costs to run a Jive Express environment are 1/10 the cost of ASP<br />In process of launching additional products via the cloud<br />
  4. 4. Advantages for Jive’s Cloud Offering<br />ASP takes too long and costs too much<br />6 weeks to procure and install new servers<br />Approximately $20K per installation, all up-front and no linear ramp<br />No ability to turn off or manage capacity<br />Easier to manage<br />Minutes, not days or months to get up and running<br />Instances spin up and down automatically<br />Fail-over happens with admin tools in the background<br />Vastly lower operational expense due to automation<br />Easy deployment for customers<br />Tools to manage and track adoption<br />Customized wizards guide through typical use cases<br />Customers can migrate from EC2 to ASP or their own SW deployments<br />
  5. 5. The Cloud & Enterprise<br />Enterprise Readiness Issues<br />No SAS70 Type II certification for AWS<br />Need to improve SLA for high end customers. On Jive side as well as AWS<br />Enterprise security reviews have not caught up with the cloud yet. Standard evaluation criteria still focuses on things like hardware vs. virtualization, data center tours, etc<br />Ramifications<br />Cloud is generally for smaller or “starter” Jive implementations; low percentage of revenue but gets us into larger deals<br />We’ve built an easy migration path to on-prem or ASP<br />At least 2 years away from widespread enterprise cloud readiness, but trend is happening<br />
  6. 6. PaaS or IaaS?<br />
  7. 7. Key Technical Challenges<br />Bring multi-tenant cost efficiency to a single-tenant app<br />Jive is a “fat” application. How do we fit in a small EC2 instance? <br /><ul><li>Cut down app startup time from 10 mins to 2 mins, use small Java heap</li></ul>Any customizations break easy/automated upgrading<br /><ul><li>Built new simplified admin console and did other simplifications via product overlay</li></ul>Must eliminate per-instance manual labor<br /><ul><li>Invested in radical level of automation that maintains the environment with very little manual intervention</li></li></ul><li>Architecture Overview<br />S3<br />EC2 Instances<br />EBS<br />XMPP<br />Controller Service<br />Redirect Service<br />Provisioning Site<br />SQS<br />
  8. 8. Trick: Scripting Java Install<br />Basic tip: fully script the creation of your AMI!<br />Ran into problem that install of Java can’t be automated<br /># Install Sun JDK (messing with whiptail to avoid license prompt)<br />mv /usr/bin/whiptail /usr/bin/whiptail.orig<br />cat &gt; /usr/bin/whiptail &lt;&lt;EOM<br />exit 0<br />EOM<br />chmod +x /usr/bin/whiptail<br />apt-get install -y sun-java6-jdk<br />rm /usr/bin/whiptail<br />mv /usr/bin/whiptail.orig /usr/bin/whiptail<br />export JAVA_HOME=/usr/lib/jvm/java-6-sun<br />rm /usr/bin/java<br />ln -s $JAVA_HOME/bin/java /usr/bin/java<br />
  9. 9. Trick: Hibernation<br />Further cut costs by automatically turning off instances that don’t get active use<br />Trick is to use DNS redirect so that they can be turned back on within minutes via self-service<br />Redirect Service<br />Stale EC2 Instance<br />Redirect DNSSet TTL to 60s<br />Hibernate<br />New EC2 Instance<br />Redirect Service<br />Redirect DNSSet Normal TTL<br />Re-Awaken<br />
  10. 10. Trick: Upgrades<br />The trick: use elastic compute to do things you hadn’t imagined previously<br />In ASP environment upgrades are run in-place and manually; requires multiple hours of scheduled downtime in case something goes wrong<br />At EC2 we upgrade “alongside” rather than in-place<br />Upgrades at EC2 are fully automated and performed en-masse<br />Have achieved low 2% failure rate (fix generally only requires minor intervention) <br />
  11. 11. Trick: Upgrades<br />How upgrades are done:<br />Make an instance read-only by putting up an upgrade message<br />Take an EBS snapshot of instance data<br />Create a NEW instance with NEW EBS volume from snapshot<br />Run upgrade on new instance using scripts<br />Run tests to ensure upgrade worked<br />Change elastic IP from old to new instance<br />Delete old EC2 instance and EBS volume<br />If any step fails, remove maintenance message on existing instance and log error message. Failed attempts only cost $0.10<br />
  12. 12. Trick: XMPP<br />SQS is fantastic for asynchronous message processing; we use it to deliver things like hourly stats. But doesn’t solve all problems<br />Use XMPP for real-time controller to instance communication<br />Enables multi-step synchronous actions like creating a downloadable data backup<br />Simpler and faster development than complicated web services<br />
  13. 13. Tip: Reserved Instances<br />Lower costs by &gt;= 30% -- purchase reserved instances<br />Updated provisioning code to ensure that we always use an availability zone that has reserved instances first<br />
  14. 14. Tip: Retry AWS Calls<br />We’ve found that 2-5% of AWS web services calls fail<br />Work-around by adding re-try logic to critical code paths; retry of major functional actions has been easier than re-try of individual AWS calls (i.e., retry everything that goes into creating new instance and include robust cleanup code)<br />Added reporting to track all “orphaned” resources for edge cases where cleanup isn’t perfect<br />
  15. 15. Tip: Use Userdata<br />Possible to pass in dynamic data to instance when booting as userdata<br />Userdata has small size limit so we securely download full startup script from S3 then execute it<br />$ export INSTANCESTARTUP_VERSION=instanceStartup-1.0.1.sh<br />$ /usr/local/jive/bin/s3-curl/s3curl.pl --id $AWS_ACCESS_ID --key $AWS_SECRET_KEY -- -f --retry 5 --connect-timeout 10 -y 10 http://xxx.s3.amazonaws.com/$INSTANCESTARTUP_VERSION &gt; $INSTANCESTARTUP_VERSION<br />$ chmod +x $INSTANCESTARTUP_VERSION<br />$ ./$INSTANCESTARTUP_VERSION<br />
  16. 16. Tip: Handling Email<br />Sending email from EC2 doesn’t work: reverse DNS won’t resolve it needs, big providers simply mark all of EC2 as SPAM<br />Solution: relay mail to external server at trusted IP address. We use same infrastructure that ASP environment does. Large amount of email being sent = high sender score<br />Also, check out Sendgrid (http://www.sendgrid.com)<br />
  17. 17. Demo: Backend Tools<br />
  18. 18. Q&AMatt Tuckermatt@jivesoftware.com@matttucker<br />

×