Rootconf 2019

On infrastructure security, DevOps and distributed systems.

Olympus: Terraforming repeatable and extensible infrastructure at GO-JEK

Submitted by Ravi Suhag (@ravisuhag) on Feb 2, 2019

Section: Full talk of 40 mins duration Technical level: Intermediate Status: Waitlisted

Abstract

From where we started, GO-JEK has grown to be a community of more than one million drivers with 3 Million+ orders every day in almost no time. To keep supporting this growth, hundreds of microservices run and communicate across multiple data centers to serve the best experience to our customers.

In this post, we’ll talk about our approach of assembling Infrastructure As Code that simplifies the maintenance of an increasingly complex microservices architecture for our company.

Motivation
Building an infrastructure is without a doubt a complex problem evolving over time. Maintainability, scalability, observability, fault-tolerance, and performance are some of the aspects around it that demand improvements over and over again.

One of the reasons it is so complex is the need for high availability. Most of the components are deployed as a cluster with 100s of microservices and 1000s of machines running, As a result, no one knew what the managed infrastructure looked like, how the running machines were configured, what changes were made, how networks were connected to each other. In a nutshell, we were lacking observability into our infrastructure. And when there was a failure in the system, it was hard to tell what could’ve brought the system down.

Goals
We have been using Terraform for our IAC in bits and pieces for a while now, but what we were lacking, was structure and consistency. Different teams had different repositories. Modules were all over the place or inside the project itself. They were complex and there were lots and lots of bash scripts.

It was very challenging and error-prone to manually create infrastructure and maintaining it. We needed to switch from updating our infrastructure manually and embracing Infrastructure As Code.

Infrastructure As Code allows you to take advantage of all software development best practices. You can safely and predictably create, change, and improve infrastructure. Every network, every server, every database, every open network port can be written in code, committed to version control, peer-reviewed, and then updated as many times as necessary.

Project Olympus is our initiative at GO-JEK infrastructure engineering team to solve these problems and achieve mentioned goals.

Outline

Goals
Architecture
Code structure
Impact

Speaker bio

Lead data engineer at Go-Jek

Slides

https://blog.gojekengineering.com/olympus-terraforming-repeatable-and-extensible-infrastructure-at-go-jek-42ad5b0a4f9a

Comments

{{ gettext('Login to leave a comment') }}

{{ gettext('You need to be a participant to comment.') }}

{{ formTitle }}
{{ gettext('Post a comment...') }}
{{ gettext('New comment') }}

{{ errorMsg }}