Follow us @Blinkist
Nonfiction made easy.
mobile devices.
A format native to
Blinkist’s planned Infrastructure
Tomcat
Instances
Java
Spring
Enterprise
Apps
Load
Balancing
Scaling
Notification
and sta...
Follow us @Blinkist
Who is gonna
That?
Work on
Blinkist’s planned Infrastructure
Tomcat
Instances
Java
Spring
Enterprise
Apps
Load
Balancing
Scaling
Notification
and sta...
Follow us @Blinkist
Of course not!
Manpower
We got huge
Blinkist’s planned Infrastructure
Tomcat
Instances
Java
Spring
Enterprise
Apps
Load
Balancing
Scaling
Notification
and sta...
Follow us @Blinkist
Sounds great??
We‘ve tried it!
Sure!
Follow us @Blinkist
Wanna now
Happened?
What
Follow us @Blinkist
At our first internal alpha launch our dedicated Server went
down
Our onliest dedicated server that da...
Follow us @Blinkist
Blinkist moved to
The cloud
Application
Servers
Blinkist’s planned Infrastructure
Tomcat
Instances
Java
Spring
Enterprise
Apps
Load
Balancing
Scaling
...
Follow us @Blinkist
And now?
Blinkist’s planned Infrastructure
Java
Spring
Enterprise
Apps
Follow us @Blinkist
Objective
C
Landing
Page
1 CTO
(fulltime...
Follow us @Blinkist
Costs and Functions
Costs and Functions
Follow us @Blinkist
Heroku
PaaS
1st dyno for free
+1 dyno 34 $/month
1 dyno is able to run
3 rails ins...
Costs and Functions
Follow us @Blinkist
MemCachier
MemCache
25MB $0/month
100MB $15/month
Analytics
Dashboard
Setup in < 1...
Costs and Functions
Follow us @Blinkist
Adjust-IO
BI for APP marketing
--
User origin clicks and
install measurement
Data ...
Costs and Functions
Follow us @Blinkist
Mailgun
Email-Automation
0$/month for 300
messages a day
own domain & 50k
mails/mo...
Overall costs
1) Survey among active users
Follow us
< 300$/
month
Biggest Benefit
1) Survey among active users
Follow us
Focus on your business
Follow us @Blinkist
Disadvantages?
Follow us @Blinkist
Heroku is cycling your applications every 24 hours
Java Spring took nearly 60 seconds to boot
Once the...
Follow us @Blinkist
One standard Heroku dyno got 512 MB ram
The used jetty server reserved mostly 520MB which lead to
perm...
Follow us @Blinkist
One mobile app-start lead to avg. 3 api requests
But the Spring Data mongodb driver does not support l...
Follow us @Blinkist
Blinkist switched
From java to ruby
Follow us @Blinkist
Heroku is cycling your applications every 24 hours
Java Spring took nearly 60 seconds to boot
Once the...
Follow us @Blinkist
One standard Heroku dyno got 512 MB ram
The used jetty server reserved mostly 520MB which lead to
perm...
Follow us @Blinkist
One mobile app-start lead to avg. 3 api requests
But the Spring Data mongodb driver does not support l...
Follow us @Blinkist
Live Demo
Why you should move your apps to the cloud
Upcoming SlideShare
Loading in...5
×

Why you should move your apps to the cloud

238

Published on

Blinkist @Geek2Geek Berlin

Published in: Technology
1 Comment
2 Likes
Statistics
Notes
No Downloads
Views
Total Views
238
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide

Why you should move your apps to the cloud

  1. 1. Follow us @Blinkist Nonfiction made easy. mobile devices. A format native to
  2. 2. Blinkist’s planned Infrastructure Tomcat Instances Java Spring Enterprise Apps Load Balancing Scaling Notification and stats Failover strategies User Behaviour Tracking Automated Push Notifications Bug Tracking User origin tracking Replica Sets Caching Continous deployment Funnel measure- ment User Cluster- ing Mailing- Services Failover- strategiesFailover- tests Backups Rollbacks Monitoring and Performance Measurement MongoDB Monitoring and Performance Measurement Dedicated Application Servers Continous integration Native iOs App Follow us @Blinkist Objective C Landing Page
  3. 3. Follow us @Blinkist Who is gonna That? Work on
  4. 4. Blinkist’s planned Infrastructure Tomcat Instances Java Spring Enterprise Apps Load Balancing Scaling Notification and stats Failover strategies User Behaviour Tracking Automated Push Notifications Bug Tracking User origin tracking Replica Sets Caching Continous deployment Funnel measure- ment User Cluster- ing Mailing- Services Failover- strategies Failover- tests Backups Rollbacks Monitoring and Performance Measurement Monitoring and Performance Measurement Continous integration Follow us @Blinkist Objective C 1 CTO ?? Landing Page
  5. 5. Follow us @Blinkist Of course not! Manpower We got huge
  6. 6. Blinkist’s planned Infrastructure Tomcat Instances Java Spring Enterprise Apps Load Balancing Scaling Notification and stats Failover strategies User Behaviour Tracking Automated Push Notifications Bug Tracking User origin tracking Replica Sets Caching Continous deployment Funnel measure- ment User Cluster- ing Mailing- Services Failover- strategies Failover- tests Backups Rollbacks Monitoring and Performance Measurement Monitoring and Performance Measurement Continous integration Follow us @Blinkist Objective C 1 CTO (fulltime) 1 iOs Dev (6 days/month) 1 Java Dev (4 days/month) Landing Page
  7. 7. Follow us @Blinkist Sounds great?? We‘ve tried it! Sure!
  8. 8. Follow us @Blinkist Wanna now Happened? What
  9. 9. Follow us @Blinkist At our first internal alpha launch our dedicated Server went down Our onliest dedicated server that dayI got an email at 3.25 am and went to the officeAlt+Ctrl+Del via website ...Hard reset via website...Hoster hotline call and… The server rebooted at 3:45 pm!!! With nearly 12 hours downtime
  10. 10. Follow us @Blinkist Blinkist moved to The cloud
  11. 11. Application Servers Blinkist’s planned Infrastructure Tomcat Instances Java Spring Enterprise Apps Load Balancing Scaling Notification and stats User Behaviour Tracking Automated Push Notifications Bug Tracking User origin tracking Replica Sets Failover strategies Caching Continous deployment Funnel measure- ment User Cluster- ing Mailing- Services Failover- strategiesFailover- tests Dedicated Application Servers Backups Rollbacks Monitoring and Performance Measurement MongoDB Monitoring and Performance Measurement Continous integration Native iOs App Follow us @Blinkist Objective C Landing Page
  12. 12. Follow us @Blinkist And now?
  13. 13. Blinkist’s planned Infrastructure Java Spring Enterprise Apps Follow us @Blinkist Objective C Landing Page 1 CTO (fulltime) 1 iOs Dev (6 days/month) 1 Java Dev (4 days/month)
  14. 14. Follow us @Blinkist Costs and Functions
  15. 15. Costs and Functions Follow us @Blinkist Heroku PaaS 1st dyno for free +1 dyno 34 $/month 1 dyno is able to run 3 rails instances Scaling from 1 to 100 dynos in < 1min Deployment via github hooks S3 Bucket CDN 0.095$/GB&month 0.004$/10k GET requests Fully power of amazon cloud Codeship.io Continous Delivery $0 for 1st 50 builds $9 for 50 builds/month Triggered via github hooks Testrun Heroku deployment per git branch Newrelic App-Monitoring $0/month for 8 days data retention 0.06$/dyno&month for 90 days data retention DB performance measurement Request duration analysis
  16. 16. Costs and Functions Follow us @Blinkist MemCachier MemCache 25MB $0/month 100MB $15/month Analytics Dashboard Setup in < 1min Logentries Log-Management 1GB 7-days Storage $0/month Unlimited storage 5$/GB&month Log-search Event/Pattern definition and Email-Notification MongoHQ Database 2GB Storage + 250 Ram $15/month Automated health checks Daily backups to Amazon S3 $15/month One Click Backup- Restore Jira BugTracking $10/10users&month Fully hosted RESTful API
  17. 17. Costs and Functions Follow us @Blinkist Adjust-IO BI for APP marketing -- User origin clicks and install measurement Data Clustering KPIs and retention rate definitons Dashboard overview Mixpanel User tracking 150$/month for 500k datapoints Customer segmentation Funnel definitions and tracking Retention definition and tracking Mailchimp Email Service 0$/month for 12k emails Unlimited mails for up to 10k subscribers $75/month Email templating Email tracking CI-Simple Continous Integration for mobile 19$/month for 200 builds Automated deployment via testflight Automated testing Github hooks
  18. 18. Costs and Functions Follow us @Blinkist Mailgun Email-Automation 0$/month for 300 messages a day own domain & 50k mails/month for $19/month Mailing lists Batch sending Email tracking Blitz.io Load-Testing 250 concurrent users $0/month 1000 concurrent users 799$/month (de)activate billed by seconds 7-different regions to test from Test statistics TestflightApp Mobile-App Deployment $0/month Ships your iOs and Android apps to your testers without any store release VersionEye Software-Package notifier $3/month for 5 private repositories Keep your software dependencies up to date easily No webcrawling needed Email notifications
  19. 19. Overall costs 1) Survey among active users Follow us < 300$/ month
  20. 20. Biggest Benefit 1) Survey among active users Follow us Focus on your business
  21. 21. Follow us @Blinkist Disadvantages?
  22. 22. Follow us @Blinkist Heroku is cycling your applications every 24 hours Java Spring took nearly 60 seconds to boot Once the App took more then 60 secs to boot the dyno crashed
  23. 23. Follow us @Blinkist One standard Heroku dyno got 512 MB ram The used jetty server reserved mostly 520MB which lead to permanent memory warnings which made all notifications useless
  24. 24. Follow us @Blinkist One mobile app-start lead to avg. 3 api requests But the Spring Data mongodb driver does not support lazy loading Therefore one mobile app-start lead to 1000+ db requests
  25. 25. Follow us @Blinkist Blinkist switched From java to ruby
  26. 26. Follow us @Blinkist Heroku is cycling your applications every 24 hours Java Spring took nearly 60 seconds to boot Once the App took more then 60 secs to boot the dyno crashed The grape app boots within 6 seconds
  27. 27. Follow us @Blinkist One standard Heroku dyno got 512 MB ram The used jetty server reserved mostly 520MB which lead to permanent memory warnings which made all notifications useless One grape instance needs avg 80 MB ram We introduced unicorn to easily run 3 grape applications within one single heroku dyno
  28. 28. Follow us @Blinkist One mobile app-start lead to avg. 3 api requests But the Spring Data mongodb driver does not support lazy loading Therefore one mobile app-start leads to about 10-15 db requests The ruby gem mongoid supports lazy loading out of the box Therefore one mobile app-start lead to 1000+ db requests
  29. 29. Follow us @Blinkist Live Demo

×