Decoding your startup's cloud strategy

How aligning yourself with the right cloud ecosystem tuned for your startup business is the biggest decision affecting your impending success or failure. We tell you how to get it right.

Published Date
16 - Sep - 2015
| Last Updated
10 - Nov - 2015
 
Decoding your startup's cloud strategy

Arguably, a brilliant business idea continues to be the most critical requirement for a successful and sustainable enterprise. But never before in history, was it this easy to convert a brilliant business idea into a successful and sustainable enterprise. Of course it's technology that has enabled this. For aspects that are on the side of business we have the part 1 of this series where we cover things like valuations, pitching to venture capitalists and everything in between. When it comes to technology though, the entry barriers both developing a product or service and finding a market for them have dropped below imagination. We would stress on the word imagination, because the purpose of this article is not only to talk about the wonders of what we call cloud computing and how as an entrepreneur you could leverage it, but also to establish that today, we are living in an era where the only limitation is imagination. In the last article under this series you would have learned how to go about initiating your startup and approach for funding, now let us see how you can efficiently use your funds to solve complicated technical challenges and win big with cloud computing.

Let’s familiarize ourselves to some key aspects of enterprise computing, because in the enterprise arena the meaning and the scale of computing is vastly different from what we typically consider them to be as a consumer. 

Consider this scenario: You have realized that the current players in the space of online groceries and supplies shopping are not very efficient and you think you know how you could do it better; after all, Google wasn’t the first internet search company, neither was Microsoft the first system software company! So you plan to start your own online shopping site BestEverything.IN and as the CTO and CIO of BestEverything, you are responsible for architecturing and deploying all the necessary applications that are needed to run the company. These could be the “customer” facing applications like the highly interactive website where customers search for items and manage their orders, the swanky mobile app, the customer care portal and so on. The other set of applications would be the business applications that you may need to implement to run the company itself, like your email systems, system for managing your human resources, your enterprise resource management system to efficiently manage different aspects of your business etc. 


Plan out your cloud strategies from the beginning

Now you are sitting with your team of talented engineers to formulate your strategy around implementing all these applications and within first five minutes of the discussion it becomes abundantly clear what are the top engineering and business problems lying ahead of your team that need a solution. Your customer facing applications need to run 24x7 and should be very responsive. That means the servers that run your website, storage devices that store your data, and the networking hardware that connects your servers and storage with each other and with rest of the world through internet should never fail. Also, they should have sufficient processing power to handle the traffic that your website will generate. But the problem is that your servers, storage and networking hardware will fail, that too, randomly, and for various reasons, like power failure. Also your website traffic is not going to be constant or perfectly predictable. So provisions will have to be made both in software and hardware that if a component fails, the availability of the application itself is not compromised. Moreover, enough data processing resources like CPU cores, memory, disk drives and network bandwidth will have to be sized and made available in the datacenter so that your website and mobile app continue to be responsive and user experience is not compromised during peak loads.

The easy solution is to buy lots of servers, storage, network and datacenter space but immediately your Chief Financial Officer (CFO) would remind you that you are a startup and you don’t have millions to spend on just IT infrastructure; you need funds to grow many other business units like marketing, sales, workplace resources and you have to hire more engineers too. You could argue that you have saved a lot of money on software by using open source and instead of buying expensive licenses for commercial technologies you used Linux, MySQL, JBoss and Python/PHP to develop your applications. But all the hardware required to run your stuff is still a big expense, and not to forget, you will need a team of tech savvy team of system administrators who can effectively manage this infrastructure and keep them updated, backed up, patched and secure.

Some Open Source business applications to consider for your Startup
Enterprise Resource PlanningOdoo
Human Resource ManagementOrange HRMS Live
Customer Relationship ManagementSugerCRM
Enterprise Portal and CollaborationLiferay
<Exploring cloud is relatively easy, as many popular cloud service providers have options to help you try their IaaS and PaaS solution before you make any purchase or investments. For example, Amazon offers its users a free usage tier, through with a new user can spin small VMs on their Elastic Cloud (EC2) for no charge for up to a total of 750 hours. Similarly, Microsoft Azure provides a one month free trial of their cloud options.>

On the other hand, business applications that your company needs to run for its own operations are also not absolutely straightforward. Being a technology savvy company you may decide to develop your own systems for managing HR, Finance, Email etc., but that may not be the best use of your engineering resources. However right from evaluating a business application to successfully deploying it may be very time consuming and expensive. 

Now here is where cloud computing can play a big role in giving you a headstart and provide you a platform that could eliminate or at least minimise many of these technical and business challenges.

Cloud computing in essence is a utility model of consuming hardware and software resources, much like how you consume electricity at your home. It can provide you a platform where you practically have limitless supply of hardware and software, available to you as a service where at a push of a button you can get everything you need to develop your application, deploy it for anyone in the world to use it over the internet, and manage the entire lifecycle of the application while being billed for only how much you use it. 

You may ask, so what is the big deal? Imagine if you had to build a nuclear power power plant and had to have the technical knowhow and resources to operate one in order to have electricity supply at your home to power your TV, XBOX and PC. Believe it or not, but most of the large scale enterprise computing happens this way, even today. An automobile manufacturing company may employ more software engineers and system administrators, have bigger datacenter and spend more on buying software and hardware than an equally large software development company!


Explore Cloud computing to its maximum potential! 

Introducing Cloud
There are three broad categories under which cloud services could be categorized, let’s understand each one:

Software as a Service (SaaS)

Probably, the most popular method of using cloud services, Software as a Service lets you use a software directly on a subscription basis, eliminating various technical challenges on the way. Many business applications today are available for use through a Software as a Service model. At BestEverything.in, you will need to provide all your employees with a @BestEverything.in email. You may need to provide them with productivity software for word and spreadsheet processing. Everyone in the HR department will need a HR management system, the sales and marketing team may need a customer relationship management software. Your web administrator may need some sophisticated software to track and analyse the trend of visitors at BestEverything.in, etc. You could very simply implement the solutions for these needs through plethora of SaaS offerings available over the internet. For example, it could take many weeks to implement a mailserver on your own, but companies like Google, Microsoft and Zoho can provide you a SaaS based mail and messaging service through which you could have a fully functional email service rolled out for the entire company in less than an hour. Many As SaaS model takes away the technical complexity of installation, configuration and ongoing maintenance of the software, BestEverything can implement best-in-class business applications (think SAP) from day one of its operations and follow best-in-class business processes that will make running BestEverything as efficient as possible. And it will automatically update to its latest version.

Apart from saving you time and technical efforts, SaaS also saves money. Software delivered through SaaS is charged per user and therefore only people in finance who use the finance software will add to the cost. However, software delivered through SaaS may have limited customizability and sometime you may be forced to go to a new version of the software even if you do not want to do so. But for a startup, it is a great way to get started and scale the business without wasting time, effort and money in implementing different business applications. 

Infrastructure as a Service (IaaS)

In order to develop and test the BestEverything.in, the development team has raised a request for 10 virtual machines and 5TB of storage capacity. For running the production environment, the team needs 2 database servers, 4 application servers, and 6 webservers. Minimum of two load balancers are required to spread the incoming traffic across the web servers. Moreover, the exact setup should be provisioned in a second datacenter somewhere nearby the first one and should be continuosly recieving replicated data from the first data center, so that if the entire datacenter was to get impacted (due to a network outage or a power issue or anything else), BestEverything.in continues to be available.

Buying the servers and storage and other required hardware assets would be costly, will take weeks to arrive and months to configure and install. Using IaaS provider (e.g. Amazon Web Services, Microsoft Azure, Google Compute Engine etc.) BestEverything’s development team can choose to spin up any number of VMs having CPU and memory configurations of their need within minutes, and running an OS of their choice. For the production environment the VMs could be configured across two separate availability zones provided by the IaaS provider, which will ensure protection from datacenter-wide failures. Tomorrow as the number of visitors increase, the number of webservers need to be increased and more storage capacity is to be added to the database servers in order to scale up the website, and using the same set of tools provided by the IaaS provider, it can be done on the press of a button.

If it was not for the IaaS, even before the first build of the website was out, BestEverything would already be in thousands of dollars of debt and months behind schedule. Stability because of traffic would be another potetial cause of concern. On the cost front, IaaS providers typically bill on an hourly basis and rates could be very low. Moreover, during the night when the developers are not using the development VMs, or during the off-peak hours when the number of visitors on the website is lower than usual, you could spin down some of the production and development VMs and save costs. Your IaaS provider may even provide application programming interfaces (API) which would help you automate various tasks like provisioning new virtual machines and booting up (or down) various instances running your application, helping you run your application extremely efficiently.

Platform as a Service (PaaS)

The real power of cloud unfolds in form of Platform as a Service (PaaS), which provides every building block required to develop an application as a service, and extends the possibilities of leveraging cloud computing beyond hosted storage for your application. Through PaaS, complicated, large scale applications can be developed from scratch using popular programming languages like PHP, .NET and Java. Databases like MySQL, Oracle and Microsoft SQL Server and middleware technologies like Microsoft IIS and Apache Tomcat, and can then be deployed on the cloud to effectively leverage all the strength of cloud around scalability, security and availability through a deep integration with other services provided by the cloud service provider. Even various higher order technologies like Hadoop are now available as a platform in the cloud, meaning you do not need to set up your own hadoop cluster in order to run MapReduce or perform other big data analytics related functions thus making it easier.

Consider this example; at BestEverything, you realised that customers spend a lot of time in creating the list of groceries that they would want to order. You could cut shot this time drastically by creating a pre-populating suggested shopping cart using an advanced data analytics algorithm; Which not only considers the usual data points like user’s previous age, gender, and order history, but also predicts that the user is likely to buy a newly launched gourmet sambhar spice mix, because the user has tweeted links to south indian recipes. Also, he has checked-in thrice into different restaurants popular for their south indian cuisine in the last one month. Using PaaS, engineers at BestEverything can develop this suggestion engine relatively easily without spending many months in just setting up a Hadoop cluster and would not need to make large investments just to test if their suggestion algorithm works well enough to be moved to production.
With PaaS, the entire lifecycle of the application can be streamlined and for any technology-heavy venture which develops its own products, PaaS can open up many new possibilities. As your startup would start to take pace and the time to enhancement would approach, you would appreciate the ease and velocity with which applications developed leveraging PaaS can be scaled and optimized. It could drastically reduce your time-to-market and give you a competitive edge over other established players.


A typical infrastructure that would be required to develop and test BestEverything.in

Today, the shape and scale of business has become unfathomable. If you can imagine, you can become world’s one of the largest taxi service, even without owning a single taxi of your own, or become a hub for maximum real-estate rentals without owning a single hotel of your own, or become the de-facto channel for breaking news without hiring even a single journalist. Next time you have a similarly revolutionary business idea, your chances of success could increase multifold if you have cloud computing as part of your strategy.
 

Image Source: Cloud computing puzzle, Cloud computing blueprint

Abhishek KumarAbhishek Kumar