This post is also available in: Russian
At many Web entrepreneurship conferences, speakers like to say about a substantially reduced cost of entry at the market, requiring almost zero investments from the entrepreneurs. This is partly due to the popularity of cloud computing, which drastically reduces the initial launch costs. This article describes the main features offered by cloud computing and shares an insight on how to correctly use them.
Serious players in this industry are CDN operators that enhance their basic traffic delivery services with Web and multimedia servers. CDN offers are absolutely not flawless, as they usually require a long-term commitment. Whereas smaller players, focused at specific services, offer significantly better terms based on the Pay As You Go model.
When creating innovative Internet products, please consider at least those cloud services we have discussed here (see below). Using cloud services offers several key benefits:
- Reduce capital costs – Would you like it to be your concern to purchase and administer all those servers and data stores? Or maybe you like to constantly train and support your engineering taskforce? Isn’t it better to focus on market opportunities or user experience of your new service?
- Scalability – a sudden popularity of your project may draw attention of major players that will implement your idea more professionally and your service will not disappoint the end users with downtime and faults.
- Accelerated development – using field proven solutions allow you to save time on going into intricacies of a service. For example, debugging a multi-threaded video transcoding service can take a very long time, but this will not earn you any advantage before the users. On the other hand, you may need days or even weeks to learn the basics of Web server and Application Server administration, especially to achieve decent performance. You could have better spent this time on improving the consumer properties of your service.
- Reliability – fault tolerance of cloud based systems is times better compared to the traditional approach. WikiLeaks is a great example of this, as it has successfully resisted all the intellectual endeavors of its adversaries for quite a long time. Usually only a cloud-based host is able to effectively withstand DDoS attacks. The others just narrow the channel to make for the overall bandwidth insufficiency.
So, you’ve got a great idea ( next big thing 😉 ), time and desire to change the world for the better by giving people new opportunities. We would like to suggest you cloud services to help you in this endeavor:
- Computational power – virtual servers and dedicated servers. In this case, you rent CPU time, bandwidth, memory and self-administer the resources you have obtained. You can rent computing power in different countries. Such services are offered by many companies, the most famous are Amazon and Rackspace. A higher level of service is provided by cloud applications, such as Google App Engine. Using Google App Engine, you can develop an application and run it on Google’s servers: now you may completely forget of administering the servers and services (HTTP Web Service, Java / Python Application Service).
- Database – As a rule, this module requires much optimization and performance tuning. Using a cloud service can help remove this issue. Here are some examples of such offers: Microsoft SQL Azure, Amazon SimpleDB, Amazon RDS.
- Load balancing – Using cloud services gives a significant advantage, that is, simplicity and speed of growth (almost as fast as paying with a bank card). Load sharing is an essential aspect of scaling and growth. Moreover, geographical distribution of traffic significantly affects your content quality perceived by remote visitors. This service is offered by DNS load balancing providers. If you are focused at quality of service to a globally distributed audience, you should consider load distribution across the proximal points of presence. This kind of service is at the heart of CDN offers. Examples: DynDNS, DNS.COM, UltraDNS, Amazon Route 53.
- Content storage – Efficient storage of content at external data stores such as Amazon S3 and Rackspace. Other available options are OpenDrive and Mezeo. Content output speed may significantly affect the overall Web site user experience. Also, acquiring of a high-quality data store and optimizing its configuration to output a large number of objects simultaneously, can be quite costly. Moreover, an external storage can also function as an online backup.
- Video hosting service – Placing multimedia on the company’s website has become almost indispensable. An interesting fact is that online magazines and newspapers publish lots of video, although video creation has never been their focus. In the last quarter, the total duration of video delivered by the traditional print media over the Web outran the traditional TV broadcasters. While you can easily upload several videos, to do it regularly, you’d require special tools. The offer of such services is enormous: you can use VidCompare to compare various online video platform providers. Professional video hosting enables content delivery to different devices, video analytics, monetization and custom branding. The most famous players here are Brightcove, Kaltura, MediaPlatform, and Ooyala.
- Delivery of data – Content is often delivered via the specialized Content Delivery Network providers. This is helpful when your project generates significant volumes of traffic and performance is critical, and also developing of highly efficient mechanisms for caching and load balancing is beyond your scope. Akamai and Limelight Networks are the world’s leaders in content delivery. Still, according to our information, Russian companies often encounter organizational issues with Akamai. Using a CDN service, you will no longer be concerned with maintaining performance at peak load, speed and quality of content delivery. When initiating a project, you should bear in mind your further integration with CDN. For this purpose, you’d better allocate static resources to a separate domain name (or even four of them). This way your pages will load faster. More over, you will approach your content infrastructure as your own CDN and build it using common rules.
- Analytics – is one of the oldest and most popular cloud services used by most content portals. Perhaps most famous of them are Google Analytics and Omniture. There are also many free implementations (for instance, sponsored by search engines). Still, paid services (e.g. Omniture) provides higher service levels and additional capabilities. Rarely anyone conceives implementation of business intelligence as part of the project (only when the analytics is very specific). So why has not deployment of geographically dispersed clusters for server-based applications not relieved the minds of system architects? They could well have spent this time to design the basic software. At a conference, when asked what applications are the highest burden to their network, AT&T CTO John Donovan said that first of all, these are poorly developed apps, and then the video.
- Video transcoding – Preparing of video content for Web publishing is a concern of almost every company, because of the unreal growth in popularity of online video. In view of the need to support many traditional and new devices, to adapt video transcoding infrastructure to different endpoints, research of optimal video profiles can be worth serious money. The on-demand service will allow you to more quickly integrate and adapt videos to new devices, hence reducing costs. Example of Service – Encoding.com.
- Multimedia applications – Processing of multimedia content and interactive services often require multimedia servers. You do not necessarily have to buy a media server and allocate hardware to it, the less so for development purposes. There are many cloud services offering leased solutions in this respect. A good example is Influxis. Adobe recently announced a special cloud based version of Flash Media Server AWS, running on Amazon Web Services. This kind of services are best fit as Origins for CDN networks.
- Business Productivity Tools – CRM, Documents, Mail. Please keep in mind that if administration of such tools is not your core competency, you’d better save your time on this.
To develop their cloud-based business, many companies enhance their cloud offer with new services. So, having implemented a service from one vendor, you’d better also look at its value added products, at least those at the design phase. Cloud based approach to online products deployment somewhat modifies the typical project architectures by removing a lot of extras, irrelevant to the core business. For example, one can now refrain from buying expensive DRM systems, paying only for the actually used capacity. Below is the architecture of our online video streaming test project (this is quite a good example, because it uses many available services).
To distribute the load, a DNS server is used, distributing the portal calls across two PHP-based application services . An external database is used to store user information and render the relevant sections of the portal. Users can record their online broadcast to a dedicated file service. Interactive streams are implemented using Flash Media Server, also supporting P2P video streaming to save bandwidth. Just in case, a full backup of the source code and content is maintained. Moreover, CDN network can be connected to broadcast large online events. For example, you can be sure that the site will endure the broadcast of Sochi 2014 Olympics. 🙂
Using this approach, you can make a project of the LiveStream.com scale, with several expert engineers in several months. This is possible, as many collateral issues are eliminated by cloud infrastructures and capital costs are substituted by operating expenses.
Most cloud services offer an integration API and a certain level of testing and debugging. So you can build a running service, while avoiding investments in the infrastructure and other costs, but your own time. Starting a new Web project (or developing an existing one), you can always do what you already know best to achieve the result (your product) or explore many new features and technologies. Often it is possible to combine both. At this stage, I limit my time spent on learning new technologies, as they are constantly evolving and it is very difficult to keep up with everything. Most importantly, it is no need to do that, although it’s quite interesting.
Wishing good luck to your business and all your Web-based projects.