Date post: | 12-Jul-2015 |
Category: |
Technology |
Upload: | per-astroem |
View: | 1,885 times |
Download: | 1 times |
”Ten things the cloud has taught us”Per Åström, TV4Disruptive Media 2010
20 years ago
1990
One channel
2003
Multichannel strategy
2010
4 Countries31 channels
25 local TV stationsMany websites
Our History
.se.se.se
MobilabTV4 Vision AB
TV4 Sverige ABTV4 Sverige AB
Mobilab
1990
TV4.se - anno 1997
Some of our sites
tv4.setv4play.serecept.nuresor.nufotbollskanalen.senyhetskanalen.sevaderkanalen.sehockeykanalen.sehemmakanalen.se
>150 blogsCommunity (Hemmakanalen.se)soko.seblip.secanalplus.se/no/dk/fi
5
What is the cloud?The definition of cloud computing according to Wikipedia is:
Cloud computing is Internet-based computing, whereby shared resources, software, and information are provided to computers and other devices on demand, like the electricity grid.
6
What is the cloud?Continued...:Cloud computing is a paradigm shift following the shift from mainframe to client–server in the early 1980s.
Details are abstracted from the users, who no longer have need for expertise in, or control over, the technology infrastructure "in the cloud" that supports them.
Cloud computing describes a new supplement, consumption, and delivery model for IT services based on the Internet, and it typically involves over-the-Internet provision of dynamically scalable and often virtualized resources.
7
Traffic
8
Peak
People asleepAverage?
#1
Evolution of publishing platformsGeneration #1 - Static Files Static html - Editors needed to know html No database No reuse of content No channel publishing
Typical Feature: Server Side Include Cause Of Death: Too static and too limited publishing
9
Evolution of publishing platformsGeneration #2 - Home grown with db Database! DIY - typically home made/home grown Depended on a few developers In the long run: expensive and complicated to develop
Typical Feature: Taylor made for the own needs Cause Of Death: To complicated to continue develop (EOL)
10
Evolution of publishing platformsGeneration #3 - A CMS Product A CMS - one product Multi channel publishing Typically offsprings of internal products Closed source Expensive (?)
Typical Feature: A swiss army knife: customize for own needs Cause Of Death: Slow development pace, limited upgrade path
11
Evolution of publishing platformsGeneration #4 - Open Platforms Many different products and tools Open API:s Built to integrate or to be integrated Ready for cloud computing ”Small pieces connected” Open source?
Typical Feature: Open for integration and iterative development Cause Of Death: ?
12
#2
13
From: http://www.darkgreyindustries.com/index.php/site/zone_mapping_chart/
#3
Focus - What do we want to focus our resources on?
hardware OS patches
network infrastructure scaling failover redundancy antivirus upgrades capacity
backup installation planning firewall specification design coding
operations gui SLA maintenance
new features
14
#4
#5 Learn - and improve our products
15
How do we use the cloud today?
16
www.tv4.se IN CNAME www.tv4.se.edgesuite.net
Cache-Control: public, max-age=60
Origin vs. Delivery
17
Origin
Delivery
Users
Brain
Muscles
Origin vs. Delivery
18
OriginDelivery
Offload: average 90%, images 97%
Idol Auditions 2010
19
Origin
Delivery
Comments
20
Comments - User Management
21
Addthis
22
Addthis - Analytics
23
Polldaddy - thumbs up and voting
24
Heroku - Ruby Cloud Platform as a Service
25
Väderkanalen.se - runs on Heroku
26
Väderkanalen.se - runs on Heroku
27
API4
SMHITV4
Heroku
Soko.se - runs on Heroku
28
29
What’s our platform?
Before
Polopoly
Xcap
Basefarm
svn
30
Now
Polopoly
Disqus
Wordpress
Addthis
Polldaddy
Google API
Cover it Live
Basefarm
Akamai
Heroku
Amazon AWS
Github m.fl.
Then
?
What’s our platform?
Before
31
Now
Example: Introducing Wordpress
php - not Java
Wordpress MU
Subdomain with Wordpress MU Multi Domain Mapping plugin (with minor change)
> 150 blogs + Resor.nu
Five themes
Home made and released plugin ”External Markup”
Other plugins: All in One SEO Pack, DISQUS Comment System, Maintenance Mode, My Custom Widgets, PollDaddy Polls, Report Comments, WP-PageNavi, WP-SpamFree, Domain mapping, Vipers Video Quicktags, WP Super Cache, WPMU Blog Defaults, PubSubHubbub
Delivered through a CDN
32
Same WP-installation, same theme
33
Example: Introducing Wordpress
php - not Java
Wordpress MU
Subdomain with Wordpress MU Multi Domain Mapping plugin (with minor change)
> 150 blogs + Resor.nu
Five themes
Home made and released plugin ”External Markup”
Other plugins: All in One SEO Pack, DISQUS Comment System, Maintenance Mode, My Custom Widgets, PollDaddy Polls, Report Comments, WP-PageNavi, WP-SpamFree, Domain mapping, Vipers Video Quicktags, WP Super Cache, WPMU Blog Defaults, PubSubHubbub
Delivered through a CDN
35
Resor.nu ..is made in cooperation with Momondo.com
..is a Wordpress MU blog
..was launched with ”a big bang”: TV-commercial, Ads in Expressen, Ads, links and Editorial Content on Express.se and TV4-sites.
36
#1: The Team - the doers and decisionmakers
37
Teletext
Teletext
Java a
nd Ruby
Project
Manager
html/css/js
CTO 80% Paren
tal leave
SM/PM/Doer
Java and Ruby
38
#2: The Vision - Where do you want to go?
39
Examples of our vision:
Scaling should not be an issue
Products should improve continously
Instant and frequent deploys
Don´t reinvent the wheel (”Stand on the shoulder of giants”)
Lower baseline costs
Less operations
Create a platform that is open (create API:s)
#3: Be Agile - Execute!
40
Decide the next steps but dont plan too long ahead
With smaller applications its easier to make changes
Use a method
Sprint Daily
Ticket planning Retrospective
Old way with hardware
41
42
43
44
ASF
$ sudo gem install heroku
46
ASF
$ git push heroku master
-----> Heroku recieving push-----> Rails app detected-----> Launching..... done http://tv4weather-stage.heroku.com deployed
47
48
49
50
51
52
53
54
ASF
$ heroku addons:add custom:domains_basic
Adding custom_domains to myapp...done.
55
ASF
$ heroku domains:add stage.vaderkanalen.se
Added stage.vaderkanalen.se as a custom domain name to tv4weather-stage.heroku.com
56
ASF
$ heroku addons:memcache add:5mb
Adding memcache to myapp...done.
57
ASF
$ heroku addons:add exceptional:basic
Adding exceptional to myapp...done.
58
ASF
$ git push heroku master
-----> Heroku recieving push-----> Rails app detected-----> Launching..... done http://stage.vaderkanalen.se deployed
59
60
61
What is a Dyno?
A dyno is roughly equivalent to an individual Mongrel, Thin, or FastCGI backend in traditional Ruby deployment environments.
4 dynos are equivalent to the compute power of one CPU-core on other systems.
Elasticity: The number of dynos allocated for your app can be increased or decreased at any time – without server provisioning of any kind.
Intelligent routing: The routing mesh tracks the availability of each dyno and balances load accordingly. Requests are routed to a dyno only once it becomes available. If a dyno is tied up due to a long-running request, the request is routed to another dyno instead of piling up on the unavailable dyno’s backlog.
Process management: Each dyno process is monitored for responsiveness. Misbehaving dynos are taken down and new dynos are launched in their place.
Distribution and redundancy: Dynos are distributed across a large cluster of machines called the “dyno grid”. An app configured with two dynos is running two processes, as you'd expect, but each process is running on a separate machine. If a machine goes down, your site stays up – even with only two dynos.
62
63
64
65
ASF
$ heroku dynos 1
vaderkanalen-stage now running on 1 dyno
66
ASF
$ heroku dynos 24
vaderkanalen-stage now running on 24 dynos
67
ASF
$ heroku dynos 100
vaderkanalen-stage now running on 100 dynos
Does it scale?
68
”For dynos - there is no real limit. You can already set your app to 100 dynos through the command line "heroku dynos 100". If you need more, we can up that limit to just about any number you need. Let us know a week in advance at least, and we'll get your limit increased. If you're going to need a few thousand, it's best if we can work with you to understand your demand.”
Heroku - there’s an app for that
69
Heroku - there’s an app for that
70
#4: Forget about perfect - there is no such thing as PERFECT
71
Remember - things break
Things change, always
You never finish, the target is moving
Developing products is hard work
Find the product you think will do best in the future
#5: It’s getting better all the time - it’s not perfect, but it improves
72
Watch your products improve
Behind every product there are specialists
Easy installation, easy configuration, no maintenance, no operations and it keeps improving
Disqus improvements since we began using it
73
Mobile version of Disqus
iPhone-app
More Community functions
Like, Dislike and ”who does what”
Security improvements with Trusted Domains
Remake of the Commenting experience
Updated Wordpress plugins
Early Adopter Features and Settings
Rewritten implementation for faster download and rendering
Better Spam reporting and close commenting features
Inline Moderating
Yahoo and Facebook login
74
iPhone-app: 22 kr
Heroku and Polldaddy improvements since we began using it
75
Heroku Rails 3 available
MongoDB and CouchDB as an Addon
Redis to go
Polldaddy Media Library
Location Filtering
iPhone/iPad application
Swedish translation
SSL Support
Multi user accounts
and so on.......
#6: Quality and standards - Add to Cart
76
Use standard setups
”Thinner” products are easier to implement
Every line of code needs to be maintained
Done!
Open source
Speed of light matters
If you can automate it - automate it (builds, deploy, testing and so on)
Even advanced services can be delivered as products/platforms
#7: Build and use API’s - Standing on the shoulders of giants
77
78
79
80
Search with and without Solr
81
Index Server
Polopoly
Old Setup New Setup
Index Server
Polopoly
Solr MasterSo
lr Sl
ave
Solr
Slav
e
Solr
Slav
e
Solr
Slav
e
Solr
Slav
e
Solr
Slav
eScales horizontally
82
83
Väderkanalen.se
84
Väderkanalen.se - mobile version
85
Variations built upon the API
86
Variations built upon the API
87
Old TV4Play and new TV4Play
88
TV4Play.se
iPhone
BackendBackend
API
TV4Play.se iPhone
AndroidOTT
Old TV4Play New TV4Play
Plex
Plex
TV4Play.se’s API
89
Search
API
Editorial Content
90
gKX8dF3mQs2NDbUN&Vw,p]RqFsBAX)CX>D4c/LEp
#8: Security, operations and status
91
gKX8dF3mQs2NDbUN&Vw,p]RqFsBAX)CX>D4c/LEp
Mistakes can be fatal
92
Export your content
93
Väderkanalen.se
94
Väderkanalen.se
95
status.*.com
96
#9: The Echosystem of the Cloud - use it and be a part of it
100
101
102
103
IaaS - PaaS - SaaS > You
IaaS
PaaS
SaaS
You!
Amazon AWS
Heroku
Lightspun
TV4.se
=
#10: It’s business! - Talk business, not clouds
104
Use terms that your management understands: money, quality, ROI, QoS, TTM etc.
Find the price model that fits you
Use the right numbers when you calculate costs (easy to forget what you don’t see)
More arguments: ”We can increase the time to market” ”We can scale (cheaper?)” ”We get "this" (ex. functionality developed)” ”We dont have to spend time doing xxx”
Increased Transparency
105
#10: It’s business! - Talk business, not clouds
Transparency
106
107
#Extra: Opportunities!
109
Local clouds
More products and services based on ”thin” needs
Operations (backup, performance, tuning, support and more)