BosphorusISS Google Cloud & Gitlab Adventure — 0 —
How did we end up with GitLab and Google Cloud and why?
Whenever you mention your cool design on how you handled the problem of any build or storage-related stuff, there is always somebody asking “But why didn’t you use the cloud instead?” At this point, I generalized it to “Cloud is the solution for -enter any problem here-” whenever I talk to someone about literally anything.
T: “I am about to brew some coffee, want some?”
TGWWC*: “Why don’t you use the cloud for that?”
Well, before explaining how we ended up with “Google Cloud” and running our services and tools (GitLab, containers, container registries, our FTP servers and much more) on top of it, let me briefly explain who we are as the BISS and what we do. Then you, the reader, can also understand where we stand on cloud applications and hopefully appreciate and understand our viewpoint on the cloud before we started using it.
Our team consists of Computer Scientists and Electrical and Electronics Engineers that previously mainly worked on Embedded Software Projects. All of us are well-experienced with working in an agile manner and creating the best solutions based on our customers’ needs. Yet, while we were designing our processes, we always had to consider the limitations of the tools that were pre-defined. Thus, this time we wanted to use the tools in a way that they would leverage our way of working, not limit it.
The Cloud Provider
Well, what was the reason behind choosing Google Cloud as the BISS? Honestly, we liked it. We did not have any prejudice against any of the cloud service providers at the beginning, we just wanted to find a tool that is easy to use with enough materials. The first obvious choice would have been AWS, where they are the leader on IaaS for almost 10 years, yet, the last quarter, it has the lowest growth rate compared to Google Cloud or Azure. Therefore, we thought there might be some potential with Google Cloud and Azure.
The choice between Google and Microsoft was a bit trickier. Although Google provides fewer services compared to Microsoft, it felt like it was more DevOps centric with strong offerings on containers and offers good management on load balancing and scaling.
At this point, it might be wise to explain why DevOps has a huge priority for our company. Since we are developing embedded software, we are (and should) making sure that we can get the same result (binaries, images, etc.) no matter when or where we build our source code. Therefore, we are trying to benefit from methodologies like CI/CD, containers and artifact storages as much as possible. With this short information, the reader might deduct that having “Kubernetes Engine” in its’ arsenal, our choice was Google Cloud for our VMs, storage, containers, and many more cloud services.
GitLab
At the beginning of this story, tools have been mentioned a couple of times. These tools are the usual suspects like Jira, Jenkins, Bitbucket, GitHub, Artifactory and much more. All of them have some good and bad features that we might discuss in the future in a different post just dedicated to them. Yet, we also needed one (or more depending on which areas they cover) for our development, source code management, issue tracking, and other needs.
GitLab offers all the things that we need as an overall DevOps solution. Although we were quite experienced in integrating the tools to offer the complete process design for our needs, GitLab made things much easier with their solution. It comes with issue tracking, CI/CD, artifact repository, container registry, static code analysis tool and so many more features that can be seen here. Having all the tools under just one domain has a great benefit of monitoring the software without leaving the tool. By the way, it is open-source. :)
We also believe that the Azure DevOps is also a serious contender as an overall DevOps solution. More information on that can be found here.
Overall Solution
Currently, services from Google Cloud and the features of GitLab cover our needs perfectly. In our next post, we will explain how to set up these tools so that they can be used with their full potential.
*TGWWTC: The guy who worships the cloud.
Next: VM Setup on Cloud