Infrastructure: On-Site, Colocation, or the Cloud
19 May, 2020
I became CTO of a company that was developing a system not yet in production. The already in place team was accustomed to using bare-metal servers. Everyone thought it was a great solution because we owned the servers, didn’t have to pay monthly rent for servers, we didn’t have to pay for a colocation center, and overall it seemed to be saving us money.
However, I immediately saw flaws with having the servers on-site, especially once we would transition into production. We needed to provide electricity, security, and maintenance, and it was evident that the team wasn’t qualified to work on these things in regards to the bare-metal servers. There were also other recurring issues such as power outages, limited storage use, and frequent down times. In the wake of these problems, and envisioning the long-term success of the product, I started looking for other solutions.
First, I moved everything over to colocation servers, renting a couple of servers off-site. This improved some of our concerns, including security and power, because they were taken care of by the staff at the colocation center. We then had more time to focus on our business.
Yet, underlying issues prevailed. We still needed to set the servers up properly, install databases, and ensure that everything was connected in terms of high reliability. Operations costs remained high as excellent devops engineers were necessary to have on board so that they could take care of these things.
As a leader, the colocated servers posed a transparency problem. It was apparent that there were a lot of different moving parts but it was troublesome to follow. There were dozens of dashboards to look at and I had to take the information at face value. I trusted the information but it was difficult for me to check the status by myself, and that wasn’t sustainable in the long run.
Moreso, I was concerned that the infrastructure of the colocated servers wouldn’t be able to fully handle the load of work once we went into production. Our system couldn’t afford any data loss or downtime which would result in money lost for our users. So I started investigating other infrastructure options.
The cloud. Why hadn’t we looked at the cloud in the beginning?! Before, we were thinking that the cloud would be costly for us because we had lots of data, financial data, from the markets that we needed to process and store. Also, security was a big issue. How secure is it on the public cloud and what are the chances of our data being stolen? These concerns forced us to originally create our own infrastructure.
Though, once I read through information about Google platform and took a couple of specialized certificates about the cloud, I realized it was the best solution to help us solve all of our issues: Security- encrypted data; Cost- lower than previously calculated; Storage- plenty of options.
As a result, we moved our system over to the cloud and have seen many positive results. Currently, we run on Google platform and find that it is very simple to operate - we no longer need several devops engineers because we can adjust things in a matter of clicks. It is transparent and gathers information all into one place. Dashboards are simple and easy to set up so we don’t need other monitoring tools or systems. And managed services include high availability options and disaster recovery.
All of these changes affected both my leadership and the overall business. Personally, I felt a peace in mind because I had everything in one place, it was transparent, and most importantly secure. It was the manageable solution I was looking for. On the business side, instead of concerning ourselves about memory usage, data loss, and other problems, we were able to focus on our business logic and the future of the company.
- Bare-metal servers are good for selected companies, for example big companies like Facebook or telecommunication companies. These organizations who have had their own servers from the beginning and have their own data centers set up. Even then, though, I previously worked for a telecom company and they are now moving everything over to the cloud. So it just depends.
- I think the cloud is best for software companies, especially smaller to mid-sized orgs. Also, if you’re a startup, I think it’s 100% worthwhile to have everything on the cloud. As a startup you have to create solutions, quickly, and iterate often so you don’t have the luxury time to work on your infrastructure. Therefore, using the cloud allows you to focus on other influential business topics.
Arun Krishnaswamy, Director of Data Science at Workday, describes how to build a data science team emphasizing the difference between software development lifecycle and data science methodology.
Director at Workday
Viacheslav Bessonov, Chief Technology Officer at Algalon Capital, describes the advantages and disadvantages of three different infrastructures and how he made the final decision on which one was best for his company.
Chief Technology Officer at Algalon Capital
Nicolas Bonnet, Former Head of Product and Data Science at Branch, explains why and how he built a system that allows the product team to be aware of problems before the customer does.
Sr Director of Analytics at Audodesk
Jason Fama, VP of Engineering and Head of Innovation Lab, shares his experience of introducing Agile to data science teams emphasizing some of the benefits it brings.
VP of Engineering at Talkdesk
Jon Fan, VP of Product at Box, advocates for viewing customers with a wide-aperture and resolves that having someone who can analyze data on your product team can help you do so.
VP Product at Benchling
You're a great engineer.
Become a great engineering leader.
Plato (platohq.com) is the world's biggest mentorship platform for engineering managers & product managers. We've curated a community of mentors who are the tech industry's best engineering & product leaders from companies like Facebook, Lyft, Slack, Airbnb, Gusto, and more.