Github

github

GitHub - User case study - DMM.com

Adopting GitHub Enterprise and CircleCI to build an environment where engineers can concentrate on development.
Enabling DevOps and Social Coding
Improved development efficiency and rapid service provision through automation

DMM.com DMM.com

DMM.com

Operates DMM.com, a comprehensive entertainment site with approximately 2.5 billion page views per month (January 2017), approximately 40 major services (as of March 2018), and over 28 million members (as of January 2018).

Before
  • ``Reinventing the wheel'' frequently occurs due to closed vertical development for each project
  • Development work while switching between multiple tools for each application interrupts the engineer's thinking
  • Conventional CI tools require environment construction and specialized knowledge, which encourages people to feel that they are not good at CI.
Arrow: Horizontal
Arrow: vertical
After
  • Building a company-wide collaboration platform that can further improve development speed
  • Consolidate issue management, progress management, code, review, and knowledge sharing into GitHub Enterprise to improve development efficiency
  • Develop an environment that makes it easier to link with the latest tools that increase development productivity
  • CI/CDによるビルドとデプロイの自動化で安定した品質の高頻度リリースを実現

Introduction of development infrastructure and social coding necessary for promoting DevOps

DMM.com is a comprehensive site that handles a wide range of over 40 businesses, including digital content distribution, online games, mail order/rental, online English conversation, manufacturing support, and solar power generation. , fulfillment, customer support, IT infrastructure development, and network infrastructure operation.

At the beginning of 2016, the company embarked on a major overhaul of its in-house development environment. We built a new development environment mainly for two goals. The first is the introduction of a new development platform for promoting DevOps to achieve both business speed and service quality. The other is to improve the productivity and development speed of engineers by introducing social coding, and to promote collaboration among engineers.

Mr. Hironori Sato of the CTO Office points out that there was a problem with the software development environment in the background. “In the past, we used to use other Git-based repository management tools in many cases, but due to problems with listing, the repository was divided for each project, and development proceeded in a closed fashion. It was a situation where so-called ``reinvention of the wheel'', in which departments duplicated development, occurred frequently.This is what led me to pursue DevOps and social coding."

Therefore, the company focused on GitHub Enterprise, which allows companies to use the same functions as GitHub.com, which provides a software development platform as a SaaS service, securely in an on-premises environment.

Build an efficient development environment
Decided to introduce GitHub Enterprise on a company-wide scale

There were two main advantages of GitHub Enterprise over other Git-like tools. First, work efficiency. In the conventional development method, the development process, such as raising a ticket for an issue, writing source code, and accumulating knowledge in a repository, had to be performed while switching between multiple tools, interrupting the thinking of the engineer, There was a bad effect that I could not concentrate on code development. GitHub Enterprise can manage issues, progress, code, review, and knowledge sharing, so all information can be collected in one place, and it is evaluated as excellent in terms of development efficiency in terms of one-stop development. rice field.

Secondly, high compatibility with other tools and automation using GitHub API. Many of the latest tools that increase development productivity are currently premised on cooperation with GitHub, and in order to incorporate such things into the company, GitHub Enterprise was needed at the center.

The enterprise version of "CircleCI", which realizes CI (continuous integration) and CD (continuous deployment), was the most promising for cooperation with GitHub Enterprise. They have been using the open source Jenkins for CI for a long time, but it is necessary to build a CI environment such as networks and servers in advance, and management also requires specialized knowledge, which led to the feeling that they were not good at CI. Yosuke Karasawa, CTO Office, said, "CircleCI can be started simply by writing circle.yml (a CircleCI definition file written in YAML format) in text, and since it can be managed in the same place as the repository, the management burden is low. , you can run builds in real time by hooking code changes from GitHub Enterprise, and you can achieve stable quality releases by testing processes before merging.In addition, preconditions can be expressed in code in configuration files. , It was also attractive because it was reusable, it was difficult to lose know-how, and it was easy to grasp the overall picture of the service operating environment.”

DMM.com has been using GitHub.com on a limited basis since the beginning of 2016, and after conducting a business suitability survey until around June, it was confirmed that development efficiency would increase, so it was decided to introduce GitHub Enterprise on a company-wide scale. “We focused on the high stability of the tool as a tool that is essential for corporate use, support for version upgrades, HA (high availability) configurations, backups, and security functions,” says Sato. .

The adoption of GitHub Enterprise was officially decided in December, and by November 2017, the number of seats close to the total number of engineers has been steadily introduced while replacing existing tools.

On the other hand, it was decided to adopt CircleCI at the same time as the introduction of GitHub Enterprise. “In the future, we plan to increase the number of CircleCI accounts so that everyone can have an account on the premise of using GitHub Enterprise and CircleCI as a pair,” says Karasawa.

Macnica, the domestic primary distributor, supported the implementation of GitHub Enterprise and CircleCI. Immediately after the system was introduced, we held study sessions for teams that had decided to use it, and we also responded quickly to inquiries and provided total support from implementation to stable operation.

Decided to introduce GitHub Enterprise on a company-wide scale by building an efficient development environment and increasing the number of users

Create an environment that is easy for engineers to use, and increase development speed by about 20%

“About a year after its introduction, new service development is progressing using GitHub Enterprise and CircleCI, and development efficiency has improved, such as managing tickets with the Issue function of GitHub Enterprise and consolidating knowledge with the Wiki function of GitHub Enterprise. Although there are still issues to be addressed in terms of collaboration and prevention of ``reinventing the wheel,'' I feel that the effects of CI/CD integration testing and deployment automation have spread," says Sato. state.

In addition to automating deployment with GitHub Enterprise + CircleCI, the company is also implementing Blue-Green Deployment (a release method that prepares a production environment and an update environment to automate deployment and zero downtime). It is said that the environment that can be safely deployed is in place.
“In the past, we used to be very careful when deciding the schedule for deploying, but now we release more frequently in small units, which reduces the psychological burden and also causes troubles such as rework. We have reduced the number of cases, and we have been able to provide services quickly.” (Mr. Sato)

Mr. Karasawa also said, "We developed a bot in-house to automate the merge work of PullRequests using the GitHub API, and we used the CircleCI API to easily deploy from the interface of the chat tool. The number of users who develop and release their own unique functions has increased, and it seems to be easier for engineers to use.They are able to concentrate on their essential work, and I feel that the speed has been increased by about 20%.” to analyze.

In addition, automation of deployment also expands the possibilities of IaC (Infrastructureas Code: a methodology for applying software development practices to system management), and operations are performed such that the infrastructure configuration is coded and deployed freely with CircleCI. The team is growing.

Mr. Karasawa, whose goal is to create an environment where GitHub Enterprise can be used by designers, directors, and personnel departments, says, "I want GitHub Enterprise to be a 'place' where information related to service development can be easily shared. For that reason, we plan to gradually increase the number of users while coexisting with our internal system.”

Looking back on this project, Mr. Sato said, "The introduction of GitHub Enterprise and CircleCI has enabled the development team and the operation team to cooperate with each other and communicate frequently to achieve DevOps, which increases efficiency, social coding and collaborative development. In the past, there were many things that largely avoided the barriers leading up to it, but now the biggest thing is that I can work on my own initiative to the point where I don't even have to advocate DevOps. I think it's a success," he sums up.

Inquiry/Document request

Macnica GitHub

Mon-Fri 8:45-17:30