I am Sarthak Singh, 3rd year Computer Science undergraduate. This year, I got my proposal selected for Google Summer of Code 2021 in SCoRe Lab organization. As an undergraduate student, I have been using open source libraries, frameworks for a while now. I got know about the Google Summer of Code from one of my colleague and I started reading about it. This summer, I will work with the SCoRe Lab team on their Scan8 project under GSoC.21.

Selecting Organization

From 1st year, I have been in Web Development and explored Cloud technologies. So I made a sheet which contains information regarding…


During my fifth week of the coding phase, I have worked on settling up the scan8 architecture by using busy box images (as advised) but instead, I used multiple separate images (reason discussed below).

So I have performed this dummying process on my computer which is running windows 10. So I have worked on Kubernetes with the help of docker-desktop. I have to implement the Nodeport Service, Headless service and HPA. I tried running busy box containers in coordinator pod and slave pods but the issue with this approach is I cannot test if the Nodeport service is working fine…


Once again, I’m writing this as part of my Google Summer of Code (GSoC) for Score Labs. The third week has ended, and along with it, I finished working on our first milestone. Or at least that’s what I thought. Let the questions begin. What am I working on?

What am I working on?

I will be working on the DevOps side of the project and my main task is to deploy the application and integrate CI/CD pipeline into the project. My mentors also told me to write articles or deliver notes on specific topics.

  1. Stateful Set in Kubernetes.
  2. CI/CD…


Most people get confused about which database service to use self-hosted in the cloud or use cloud-hosted database service all comes with their pros and cons and in this article, we will discuss them.

There are many ways to run databases on any cloud platform

Cloud Fully-managed database service

  1. This includes AWS RDS, GCP Cloud SQL etc. This choice is used when the user doesn’t want to do ops work like backups, patching and scaling. In this type of scenario, you just have to create the database and link it with our application and cloud providers do the scaling stuff for us.
  2. You do…

DevOps is a set of practices to test build and deploy code in smaller chunks. …


During my fourth week of the coding phase, I have created 3 shell scripts for alpine, ubuntu and the Debian ClamAV containers. I have downloaded 100 malwares from the malware bazaar and ran ClamAV on the particular malware occupied directory.

Docker is running on one single-core VM instance in GCP. To download malware the steps include Downloading malware from the malware bazaar by providing SHA256 of the particular malware and running the 7z tool to unzip the file. It works pretty fine when we have to download only few malwares and easily copies the SHA256 from the website and download…


During the third week of the coding phase, I have worked upon an article about the Self-hosted database service and Cloud hosted database service which is under review right now.

There is a comparison made between different approaches of running a database service, for example, how are we going to host a database service in the VM, Kubernetes or using a cloud provider-hosted database service and scrutinised their pros and cons. I will strive to try to host the MongoDB database in Kubernetes and try to Scale Up and Down the database service as per the traffic, if my mentor…


In this period of the coding phase, I have been working on collecting information about stateful sets in Kubernetes and how we can use stateful sets in our application to host MongoDB. In Scan8 we are using MongoDB for storing information regarding uploaded files, queued files and completed scanned files and using this information we will update the front-end of the application which is running.

Stateful Sets are used when we have to deploy the stateful application in Kubernetes and it provides some features other than the deployment component which can be used to deploy stateful applications. …


In this period of the coding phase, I have developed 6 docker images of ClamAV and figured out a way to decrease the image size by 200 MB by just using a simple concept of mounting a volume to the container.

So, I started with building a docker image of ClamAV using ubuntu and used a startup script so clamd process can start in the background and the python backend can directly work on it. This is an approach that is fine and the image size of Ubuntu is around 425MB because of freshclam which is a virus database update…


Everyone has to configure their application in the cloud, for example, changing of database host address in production or providing an API key inside the pod or we have to configure our Nginx application when the pod is created so for these type of scenarios Kubernetes have provided these tools which will help when our application size increases.

Most of the time people are tempted to hardcode these references to the application or getting inside the container and setting this all up which is fine when the application size is small, but it becomes unmanageable in large applications.

Secrets in K8s (Kubernetes)

Secrets let…

Sarthak Singh

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store