December 8th, 2017
Editor’s note: Today’s post comes from Tomoaki Kobayakawa and Yoshiyuki Mineo of Rocro Inc., a subsidiary of Sony Network Communications. They take us through how they used Google Cloud Platform to create three SaaS products to help developers both inside and outside of Sony.
SaaS services are becoming more critical for developers working large-scale software developments. At Sony we know this all too well. So back in spring 2015, we set off to create three CI SaaS products that could dramatically reduce the amount of time it took to review source code, generate and manage API documents, and perform load testing. After enthusiastic results internally, we decided this year to establish a new company, Rocro Inc, and release those three products—Inspecode, Docstand and Loadroid—to the public.
Even though our chief objective was to create robust tools that would be embraced by our internal developers, our goal from the beginning was to release our services externally as well. So, to build tools that had the speed, flexibility and reliability to serve all our users—whether inside or outside Sony—we turned to Google Cloud Platform.
Google App Engine was the main reason we chose GCP. When we started out, our team was very small, and we couldn’t afford to hire a dedicated infrastructure engineer. App Engine is a fully managed platform that provides the user with an infrastructure abstraction, so you don’t need an infrastructure engineer to begin with. With App Engine, we’re able to work more efficiently because each developer can deploy services whenever they want. Our team has now grown substantially in size, yet to this day we haven’t needed a dedicated infrastructure engineer.
In addition to App Engine, we also use Kubernetes Engine, Cloud Storage, and Cloud Datastore for our storage and database systems. The Kubernetes Engine kubernetes management service is very helpful for us. Both Inspecode and Docstand use the “Job” feature of Kubernetes—every time you use the git push command, it runs a new job, automating the source code analysis and documentation process. Each job functions in an isolated environment, which means it’s safe and stable to operate with individual containers for each user. Plus, jobs can be easily removed, which reduces both unnecessary labor and costs. Kubernetes can also restrict the use of CPU per job, so even if a particular user were to run a job under a heavy load, it wouldn’t have a negative impact on other users. This is essential for operating multi-tenant services in a stable manner.
GCP updates frequently, so our team benefits from access to the latest technologies relatively early. We’re now experimenting with Cloud Functions, and we hope the trend towards using serverless technologies can help us reduce the cost of keeping instances up and running for less frequently used features.
Both Rocro and Google Cloud save engineers a lot of trouble, helping them focus on the more creative elements of their work. We’re looking forward to experimenting with what’s next from GCP.