Michael Astashkevich has been CTO at Smart IT for over 6 years and has witnessed the transition from dedicated physical servers to cloud-based infrastructures. In this post, Michael lends his time and voice to speak on how cloud technology has disrupted the IT outsourcing space and what it means for offshoring.
What was outsourcing like before the cloud came along?
In the days before cloud adoption, companies like ours providing software development services relied heavily on hosting companies. It made sense to contract hosting companies local to our clients for connectivity and latency purposes, but even more so for scalability and stability purposes.
The main pain points with virtual dedicated and virtual private servers (VDS/VPS) were not just in the time it took to get everything up and running, but also in scaling and maintaining stability, ensuring low downtime and response time. Increasing the number of servers, which is now accomplished in just a few clicks, would require contacting multiple hosting providers, establishing a secure connection between data-centers, setting up different kinds of load-balancers and so on. Therefore it was a lot of routine manual work. Basically, we needed to set up our own cloud environment on hardware, while now we use it as a service.
I had such a case when I was a software engineer in 2012. We were working on an online ticket sales system, which is operational to this day. The problem we encountered back then was that once or twice a year the number of daily users increased tenfold. Back in the day we had to manually set up a number of servers, switch them off and on during peak load. Had we had today’s modern orchestration technologies alongside with modern cloud infrastructures it would’ve been much easier to set up and maintain.
I would say we could have benefited from a pre-set up infrastructure with a number of useful services, that enable scalability and stability, as well as relatively low set up times and support costs in order to save time and money.
What has changed with the introduction of the cloud into business processes?
The shift itself has certainly made application development easier and faster. Similar to the effect of more sophisticated development tools like software frameworks, the cloud simplified and unified full cycle app development and allowed software engineers to focus on high-level tasks, as opposed to routine ones. Due to this, engineers could now cover more ground with less effort. At the same time, there has been an emergence of new roles among software developers such as DevOps, an evolved system administrator with an expanded set of skills and responsibilities.
The cloud has fueled initiative among smaller companies and startups as well. Lower barriers to entering the labor market mean there are now more developers that such companies can make use of and experiment with new products and opportunities.
It is now easier to purchase cloud infrastructures. However, despite saving time in the long term and eliminating a few headaches, using and especially transiting to the cloud brings new headaches, challenges and expenses. It should be used wisely, and using less sophisticated hosting options is still an option for many. Evaluating the client’s needs and requirements determines the most suitable option in the end.
Which clients rely on the cloud? What type of clients are there?
The short answer is – almost everyone. We find ourselves working with Microsoft Azure, AWS or Digital Ocean, but the difference is not in the cloud infrastructure provider, but rather in who manages the infrastructure, the client or the vendor. I would distinguish between three types of clients:
- Clients who purchase and manage their own cloud infrastructure. About 50% of our clients go this route.
- Clients for whom we select the infrastructure based on project type, specs and requirements. Around 40% percent of clients leave that choice up to us and are comfortable with us making that call for them.
- Clients who transition from our infrastructure to their own. Around 10% of the clients go for this option. Normally these are clients who apply a Lean business model, where they build up their own talent, purchase ultra-stable infrastructure, test out their key markets and find customers over time.
What would be the main reasons to either use or not use the cloud?
We have to look at what it is the client wants to accomplish at the end of the day and evaluate on a case by case basis. Not every project needs to use the cloud, but there are situations when it gives clients the upper hand.
For example by using the cloud, some clients avoid having to hire or manage an in-house team and can instead rely on a distributed model with their outsourcing company. I’ve mentioned earlier that when it comes to scalability, the cloud can be scaled in minutes. As for stability and durability, well it definitely gives opportunity to set up an environment with lower downtime and server response times.
Cloud service providers offer great value in terms of pricing. This makes costs manageable based on required resources as opposed to fixed monthly costs. It’s obvious that time is also another factor, as we no longer need to preoccupy ourselves with time-consuming tasks and can get down to work more quickly.
Of course, there are cases when the cloud is not entirely applicable. I don’t mean that these are necessarily disadvantages, but there are cases, for example, when hosting may need to be located within national boundaries for compliance. This applies to companies running websites on top level domains. In most such cases private clouds that can be set up on proprietary hardware or local cloud providers do the trick.
There are also instances when specific hardware is utilized, which automatically excludes the use of the cloud. At other times, if the goal is to build a simple promo site, then for such intents and purposes, a simple hosting solution will suffice.
How would you summarize the disruption caused by cloud services in the ITO space?
Cloud computing isn’t new, but the cloud-as-a-service model properly set in only over the past decade. We are now able to look at the cloud from a PaaS, IaaS and SaaS perspective and apply the right approach according to the task at hand.
The transition to the cloud falls in line with the overall tendency for uniformity in information technology. Over the last decade we’ve seen software frameworks and web application frameworks appear. These introduced software environments, code libraries and web resources. Owing to a uniform approach to software engineering, coding on the whole became much more standardized. I think this is a good thing as it addresses scaling, among other things. Programming could have been more chaotic today without rules and norms. We wouldn’t have had the cloud if it hadn’t been for them.
We find many uses for the cloud: processing capacity, middleware, data management and storage. I think the cloud provides for opportunity across many industries, not just information technology or business process outsourcing. In our field, though, I would say it has certainly given developers more to work with and less to worry about. At the same time, it provides so much more flexibility for us and our clients. We’re always ready to consult them on the best ways to make their projects take off, and there is rarely a conversation where the cloud isn’t an asset in that.