Koding is a cloud-based software development environment platform that provides the features that developers need in order to move their software development to the cloud. With Koding, software development teams can be up and running in minutes on their own cloud-based development servers versus having to install everything on their own computers. Individuals and teams can work on their projects or learn new programming languages like Ruby, Go, Java, NodeJS, PHP, C, C++, Perl, Python, and so on. Developers can also experiment with installing and configuring software frameworks and servers such as WordPress, Django, MeteorJS, MySQL, MongoDB, Redis, Postgres, Apache, and nginx. Koding also features a robust global developer community, with more than one million developers around the world using the platform. The company has hosted its platform on AWS since 2014.
Koding provides developers with a stable and pre-configured software development environment where software developers don’t have to worry about installing and configuring servers. While Koding initially launched on AWS, the team decided to move to a hosted solution in a physical data center as it first began to experience explosive user growth. However, the team realized that its architecture would not scale at the pace it needed to as it continued to experience high user growth. “With hundreds of thousands of users requesting Koding accounts, we arrived at a point where we had to evaluate the pros and the cons of the ongoing maintenance of our own data center and self-hosted infrastructure solution,” explains Devrim Yasar, CEO at Koding. Another concern was the coordination and time commitment required of team members at Koding to support the infrastructure demands of its developer base, which took away from the time the team could spend focusing on delivering features.
The team began to reevaluate infrastructure options, and made the decision to move back to AWS. “AWS had made great strides in the time we had moved to our own data center, especially in terms of its scalability, pricing, and technology offering,” explains Yasar. “After a thorough investigation of all of our options, we decided to move back to AWS, and let the infrastructure portion of our technology stack be the responsibility of the experts. This enables the Koding team to focus on what we do best, which is to deliver features for software developers all over the world to move their software development 100 percent to the cloud.”
Why Amazon Web Services
The infinite on-demand scalability and the technical capabilities of the AWS platform were key reasons the Koding team chose to work with AWS. “In moving our infrastructure to AWS, we were completely able to eliminate the troubling downtime issues we had experienced,” says Yasar.
In order to deliver the key features that differentiate Koding from potential competitors, Koding sought to work with an infrastructure provider that had a robust application programming interface (API) along with a strong set of core features. The AWS pace of innovation, AWS virtual machines (VMs), and robust AWS APIs were attractive to Koding as the team evaluated hosting options. Of particular interest to the Koding team was the launch of the T2 instance, a burstable performance instance that provides a baseline level of central processing unit (CPU) performance with the ability to burst above the baseline. The availability of the T2 instance became a determining factor in Koding’s decision to move back to AWS. “The T2 instances were central to our decision to move to AWS—t2.micros are cheap, efficient, fast, and reliable. They come with the right mix of RAM and CPU for most developer needs,” says Yasar. “We’ve now introduced the t2.micro instance to hundreds of thousands of users across the globe. Having this tier of VM has allowed us to replace our earlier offering with one that is recognized as standard.” According to Yasar, without the availability of the t2.micro instance, conversion from self-hosted to AWS-hosted infrastructure would not have been a viable move as it would have been cost prohibitive.
The Koding platform is built to handle millions of users globally. It encompasses a number of AWS services and additional advanced technologies, including Redis, Postgres, MongoDB, Linux, nginx, Apache, and the Go programming language. Today, Koding users enjoy a variety of features that are integral to any modern development environment. These include VM Snapshots, routing personal domains to a Koding VM, a public IP for a user’s VM for unhindered access, and the ability for users to share their VM with colleagues. All of these features use the AWS API and services including Amazon Route 53, Amazon Simple Storage Service (Amazon S3), Amazon Relational Database Service (Amazon RDS), and Amazon Elastic Compute Cloud (Amazon EC2). Moreover, the Koding application requires that the Koding team deploy it to data centers across the globe in order to ensure minimal latency for end users. “Taking advantage of the AWS global footprint is central to ensuring that we achieve our SLA and system performance goals,” says Yasar.
Using AWS has also enabled Koding to transform its own team and hire in areas that focus on development and not infrastructure maintenance. “By not having to focus on building an internal infrastructure organization, we’ve been able to hire in other areas of the organization that have allowed us to be more agile and focused on delivering features that Koding users are seeking from an online cloud-based development platform,” says Nitin Gupta, chief business officer at Koding. “We’re now releasing new features weekly, versus monthly or quarterly, and we’re able to divide up the team into areas of expertise which has resulted in an ongoing increase in expertise, and has allowed us to contribute back to the developer community in the form of new open source projects.” For example, the Koding team recently released, as an open source project, the Tunnel Proxy service for the Go programming language and is putting the final touches on a new product dubbed “Koding for Teams.”
“On AWS, we’re now releasing features to our users weekly, versus the monthly or quarterly release cycle we dealt with in our previous environment.”
Nitin Gupta, Chief Business Officer