Kakao Corporation & GitHub
Company size: 1000+
Location: Headquartered in Jeju, South Korea with 6 countries in Asia
Kakao Corporation is a mobile lifestyle platform, offering search, social networks, games, and financial services in addition to its flagship app, Kakao Talk. Inspired by its mission of connecting people and technology, Kakao has more than 1,200 developers across six countries in Asia working to regularly deliver new innovations.
As Kakao expanded, including a merger with Daum that made it one of South Korea's largest Internet companies, it became increasingly difficult to prevent fragmentation in the software development process. Benedict Lee, Platform Development, shared, "We want to ensure that development is efficient and that our engineering culture is one that embraces the way people want to work. Part of this means encouraging Open Source development and distributed version control."
Developers drive standardization
Before rolling out GitHub Enterprise, Kakao's engineering teams used a combination of more than 3,000 Subversion repositories, in-house developed Git repositories, and some instances of GitLab. All of these repositories functioned independently, making it difficult for teams to share ideas or take advantage of each other's code. That’s why a group of engineers partnered with the platform development team to standardize on a single, distributed version control tool.
Lee and others performed an extensive evaluation of tools against a strict set of requirements. Tools were evaluated for reliability, functionality like code review, code search, and social collaboration, and their ability to integrate with third party apps like JIRA and Jenkins. It was also essential that the tool require little maintenance. After comparing several version control platforms, Lee determined, "GitHub Enterprise was the best." He shared, "When we told the team we’d be rolling out GitHub Enterprise we were met with insanely enthusiastic cheers."
"When we told the team we'd be rolling out GitHub Enterprise we were met with insanely enthusiastic cheers."
GitHub Enterprise was just the beginning
Lee explained that although Kakao teams were migrating a considerable amount of code to GitHub Enterprise, the resources the move required were, "No big deal. It wasn't a problem to migrate from Git to GitHub Enterprise, and since there was a script to migrate from SVN, it was pretty painless."
Standardizing on GitHub Enterprise was just the beginning of modernizing the developer environment across Kakao. Lee said, "GitHub Enterprise makes it easy to integrate third party applications using the GitHub API. We built a continuous delivery system, MOBIL, dedicated to mobile apps so our developers can build and deploy automatically by a simple git push. "We also added a manual build feature so anyone, from QA to designers, can build mobile apps for testing from a single commit. Other continuous delivery systems, DKOS (based on Apache Mesos and Docker) and CITE (based on Google Kubernetes and Docker) are what enable developers to build and deploy server apps automatically."
Kakao integrated JIRA with GitHub Enterprise and use it extensively to manage projects and track issues. Developers simply include JIRA issues in commit messages to keep issues up to date and improve visibility across teams.
Kakao has been able to significantly reduce management for development tools. According to Lee, "We're now able to shut down many of the additional tools we had to maintain, like our internal code review system." GitHub Enterprise simplified the way developers work and helped Kakao condense multiple tools into a single, integrated platform. Lee continued, "Our developers simply use the GitHub workflow, instead."
"Our teams are more collaborative now, discussing and reviewing their code through Pull Requests," Lee continued. "That also improved quality and efficiency. Now we can build, test, and deploy much more quickly and often than before we moved to GitHub Enterprise."