By Prabhakar Jayakumar
The US is currently home to the largest number of software developers in the world - while the number continues to grow at a steady rate, India is set to take over the US in the coming years. With a large number of skilled developers and an ever-growing work force, the startups in India predominantly consists of developers and budding entrepreneurs. It has been reported that by 2018, the number of developers in India will cross the 5 million mark. The number of freelance developers is also on the rise and web developers are amongst the most sought after freelancers today. The software being built in India today ranges from web development, mobile applications, back-end development to API development. All of this development will require infrastructure solutions and developers will choose those infrastructure solutions that are scalable, secure and most importantly, cost effective.
The needs of a developer and an enterprise differ vastly, due to the difference in the nature of work. While most cloud infrastructure providers are targeted at enterprises, there is an inherent need for a cloud that appeals to the software developer. The requirements of most developers are the same - a cloud that’s simple, performant, feature-rich and easy on the pocket. This has prompted many cloud companies to innovate and create products and features that appeal to developers.
The next big idea may not come from a large corporation, but rather, from a developer. The cloud offerings of most providers are not aimed at the developer, which often leads to a platform that takes ages to deploy and isn’t easy to use in terms of interface. Many players often create a platform loaded with features that are unnecessary for a developer and often make their lives more complicated. The need of the hour is to provide a simplistic interface that consumes minimum time to deploy their applications.
One of the biggest demands observed from developers is the need for a service that is supportive. Providing a platform is not enough; one needs an environment that can help them navigate through the platform and connect with experts. There are very few companies that are able to provide comprehensive guides, walkthroughs and tutorials. The entire microcosm of developers need to connect through content, crowdsourcing and leveraging the collective knowledge of the community.
The usage of a cloud platform by a developer differs greatly from the usage of an enterprise. This means that a developer needs a simplified billing structure that is not just easy to understand, but is also transparent. The availability of pay-as-you-go option works well with most developers and early stage startups. Transparency in billing is one of the most important aspects for developers as most of them work independently without financial backing.
Competitive pricing is another factor to consider while choosing a cloud platform. The affordability of the platform should always compare well with the features available to the developer. Some companies provide their infrastructure at the lowest cost without compromising on performance. Going through a few options and comparing price-to-performance is a good bet to figure out which provider is suitable for their needs. As they evaluate options, some of the features they need to consider are as follow:
- Load Balancers
Load balancing is a way to distribute incoming network traffic across the available servers. Instead of relying on a single point, load balancers effectively route all data across the server pools to ensure maximum efficiency and minimum lag. With large terabytes of data being circulated across millions of servers across the globe, most developers require a system which is time-efficient and highly nuanced in terms of session persistence.
Opting for a service which provides load balancers ensures that the end customers do not face latency issues. Another factor to watch out for is multi-protocol support so that one has the flexibility to work across the various protocols.
- High Availability and Disaster Recovery
High availability (HA) is a quality of a system or component that assures a high level of operational performance for a given period of time. It ensures that the end user doesn’t face any interruption of services during their time on the website. Another concept in addition to HA is Disaster Recovery (DR) - a backup method to restore any lost data in case of a system failure. At the server level, both HA and DR work in cohesion to ensure maximum reliability to the developers. Developers should choose a service which has a strong HA and DR system to mitigate failures.
Server monitoring is another factor that is important to consider when choosing a cloud service. One of the major problems encountered by a developer is downtime due to technical failures. This can not only cost a lot of money to fix, but also takes away a lot of time in terms of troubleshooting and fixing. This is why developers should ideally pick a provider that provides monitoring. Monitoring is essentially a basic tool that checks for irregularities in the system’s resources and are reported on a regular basis so that the problem can be fixed before system failure.
The above features are key but not an exhaustive list of factors that influence the decision of developers when they choose a cloud infrastructure provider.. Keeping in mind that the requirements of a developer are different from that of enterprises, providers should build a platform that is supportive of the developer’s needs. The cloud industry has become highly competitive, with providers becoming increasingly cognizant of the needs of developers. As the cloud providers do the heavy lifting, developers can be focused on building applications that solve real customer problems and up the ante with offerings that were earlier considered unachievable.
The author is Country Manager, DigitalOcean