DEVOPS Study: gong.io
Eilon Reshef, Founder, CTO
Gong.io wanted to implement a Continuous Delivery process which would increase delivery pace with automated, repeatable processes. Gong.io was looking for an on-shore, experienced team with the know-how to take on their complex infrastructure and help build an automated process for continuous integration/delivery (CI/CD).
The project consisted of these tasks:
- Migrating the existing, hosted CI platform to a dedicated internal system.
- Automating deployment as a green/blue deployment process:
- Deploy the new application version, wait for it to become healthy, and then terminate the previous version when all its running tasks were completed safely.
- Providing a working solution to both pack and deploy Gong.io’s AI modules:
- Galil Software’s python-based solution packs the AI modules as Docker images, which are then pulled to production machines. The solution provided the flexibility to run AI modules using multiple python versions on the same host, without dependency conflicts and process-spawning issues.
- All of the above tasks had to comply with Gong.io’s strict security policies.
Galil Software’s Solution
Gong.io considered a number of local teams and solutions but were convinced that Galil Software’s DevOps team could address their needs.
Galil Software commenced work with Gong.io in early 2017, with a small team of 2 developers, including a Team Leader. The team later expanded to include a third member.
Working with Galil Software and employing CI/CD practices meant that Gong.io’s in-house teams could concentrate on expanding and improving their existing and potentially industry-leading features, without having to either dedicate in-house resources for the task or recruit an internal DevOps team. Gong.io has been able to hand over responsibility for the automated building, testing, and security of their application components.
Galil Software also customized Gong.io’s deployment platform to suit their style and needs. This customization has allowed Gong.io to receive notifications, insights, and detailed information at all points, from application building, through testing, and deployment phases.
Crucially, the Galil Software DevOps team was integrated rapidly. Galil Software’s base in Nazareth is only an hour by car or train from Gong.io in Herzliya. Coupled with the fact that Galil Software’s team speak the same language and are located in the same time zone, the benefits of taking on a highly-skilled, motivated local team were crystal clear to Gong.io.
Gong.io benefited from the full range of skills and services provided by Galil Software’s development team. A variety of technical services and applications were used in the building of Gong.io’s CI/DI platform, including:
- Migrating from BuildKite, the existing SaaS-based CI platform:
- Setup and customization of a TeamCity CI server using Amazon Web Services™ (AWS).
- Setup and customization of TeamCity CI-server remote-build agents in Microsoft® Azure.
- Secure LDAP integration (Microsoft Active Directory) with TeamCity and the remote build agents.
- Automated Apache Maven™ application builder.
- Automated application server deployment for all Gong.io components (via TeamCity), including logging, access control, and an accessible user interface.
- Automated Docker building, packaging, and uploading to a private Docker repository.
- Custom building, packaging, and deployment notification delivery via Slack.
- Custom backup, cleanup, and maintenance mechanisms for TeamCity and its deployment configurations.
- Smooth knowledge transfer, including detailed documentation for all software and services described above.