Govly is a market network used by government contractors, letting them search for and manage contract opportunities in a convenient, centralized platform that also enables collaboration between partners.
The startup also makes compliance far less daunting, offering tools that automate compliance report ingestion, saving users time and increasing efficiency. Other than Prime Contractors, the platform also serves Governments, Value-Added Resellers, Distributors, Original Equipment Manufacturers, and System Integrators.
Govly was a part of the Y Combinator S21 Batch and has raised a Series A round led by Insight Partners. We interviewed Nick Weiland, Govly’s founder and CTO, to gain insight into how the company utilizes Porter.
Early days on Cloud66
Govly’s architecture was a simple monolith using rails and hosted on Google Cloud Platform (GCP). They needed to host on their own private cloud for compliance reasons; their clients often asked if their servers and other infrastructure elements were FedRAMP compliant. For context, FedRAMP, or The Federal Risk and Authorization Management Program, is a government-wide program that lays out a standardized framework for cloud security authorizations (since Govly is a platform for government contractors, this concern was well justified).
Govly considered using Google App Engine, an infrastructure management service that Google offers. However, it didn’t seem very straightforward–Govly was looking for a truly convenient Platform-as-a-Service (PaaS) to manage their DevOps and eventually landed on Cloud66, another PaaS that specializes in deploying and managing rails apps, which fit their use case well.
Unfortunately, over the course of the year that they were on Cloud66, Govly ran into some issues: the speed of deployment wasn’t as fast as they would have liked, autoscaling wasn’t working great, and configuring custom packages and deploy scripts was difficult.
Porter steps in
While on Cloud66, Nick came across Porter. The platform offered what Govly was looking for: the convenience of a PaaS, the ability to have a compliant infrastructure as they could host the Govly platform in their own private cloud, and none of the issues they ran into with Cloud66.
For Govly, the fact that Porter ran on Kubernetes under the hood was a plus. Furthermore, some Kubernetes-enabled features on Porter that they found quite useful were blue-green deployment (resulting in reduced downtime and the ability to rollback immediately) and self-healing.
In addition to the move to Porter, Nick planned on breaking down Govly’s monolith into microservices; Kubernetes really shines when it comes to microservice-oriented architecture. However, they ended up deciding against it as the complexity of microservices wasn’t worth it for Govly’s small team of engineers. Even though they kept the monolithic architecture, using Kubernetes was still advantageous for the aforementioned reasons and since Porter makes Kubernetes easier to use than other container orchestrators.
“We don’t need Kubernetes right now. Kubernetes is difficult to manage, and it would be an unnecessary decision to use it at our scale. But if Porter makes Kubernetes not only easy but easier than other deployment platforms, why not?” – Nick Weiland, CTO of Govly
And so, Govly switched to Porter. The first large step in the move was to package their application into a Docker container. Although the platform allows users to utilize cloud-native build packs, Govly decided to dockerize. This is because they had binaries they needed to use to extract text from documents (since compliance data ingestion is one of their service offerings). The custom libraries linked to these binaries in order to execute were unnecessarily complicated to make work with build packs. Once their applications were dockerized, they were able to deploy their application on Porter with just a few clicks.
Switching cloud providers
After using Porter for over a year, Govly decided to switch cloud providers from GCP to Amazon Web Services (AWS). One reason for this was that the company preferred some tools from the AWS ecosystem such as Textract (an AWS service that uses machine learning to extract data from documents) over its Google Cloud counterpart, Document AI.
Another pertinent factor going into this decision was that they had run out of credits on GCP and were offered a considerable amount of credits by AWS. Cloud costs can be substantial, so using as many credits as possible makes sense for a savvy startup looking to be capital efficient.
However, switching cloud providers is a cumbersome process that can take months (at least one month of labor for a full-time engineer), which translates to additional overhead. If the purpose of switching cloud providers is to use credits and minimize costs, handling the migration process yourself doesn’t make much sense. Generally speaking, it's also time-consuming and inconvenient if your engineers don't have vast amounts of experience with the complex technologies associated with Kubernetes and Day 2 operations. For a startup especially, focusing on building your product is generally the primary focus, so spending engineering bandwidth on learning these concepts and switching cloud providers is not ideal.
At a minimum, you would have to do the following:
- Containerize your application in order to make it more portable.
- Write infrastructure as code (IaC) such as Terraform from scratch in order to provision infrastructure resources, handle integration, and balance load.
- Set up a Kubernetes cluster (allowing you to launch, operate, monitor, shut down, and restart containers and nodes).
- Install components that handle operations like networking, monitoring, logging, and certificate management in the cluster to be production-ready.
- Write helm charts to package and configure their own applications on Kubernetes.
Fortunately, Govly was using Porter on GCP, which made it dead simple to switch cloud providers, reducing what would normally be a months-long process to just a day. All they had to do on the Porter dashboard was choose AWS as their new cloud provider, create a new cluster, and launch an application (Govly had already Dockerized their applications, but even if they weren’t using Docker, Porter enables the containerization of your applications). This process is pictured below.
In the end, switching cloud providers was a simple process with minimal downtime for the startup. Instead of going through the complex steps involved with cloud migration, not to mention the resulting increase in overhead due to how bandwidth-intensive the process is, Govly was able to use Porter to switch from GCP to AWS and take advantage of the credits they received, all over the course of a day.
“Moving to AWS was simple, with zero downtime. A lot of that had to do with how easy Porter made it.” - Nick Weiland, CTO of Govly