TL; DR: Founded in 2011 to fill the void in effective git repository management options on the market, GitLab quickly evolved into one of the most used solutions to optimize software development lifecycles. Used by more than 100,000 organizations worldwide and two-thirds of enterprise-level businesses, GitLab’s integrated platform marries code review, continuous integration and deployment (CI/CD), bug tracking, and collaboration tools under one roof. With more than 1,800 contributors to its open-source core, GitLab is the project management solution of choice for modern developers — easing DevOps processes and allowing businesses to swiftly deliver apps to market.
CERN, centered in Geneva, Switzerland, is Europe’s leading nuclear research organization famous for its groundbreaking experiments, including those involving the use of the noted Hadron Collider, that advance human understanding of subatomic particles. Housing the world’s largest particle physics lab, CERN relies on more than 2,500 developers to configure its software projects. With such a high number of scientifically significant projects running at any given time, CERN needs a safe and reliable repository for project management and recordkeeping — and the organization has found just that with GitLab.
CERN makes use of GitLab’s continuous integration capabilities for projects like Gaudi — a tool for building high-energy physics experimental frameworks. CERN decided to work with GitLab for its low price, ease of use, and open-source roots.
Alexandre Lossent, Service Manager for Version Control Systems at CERN, described GitLab’s adoption as swift and timely.
“We had more than 2,000 projects get up and running in just a few months, a very fast adoption rate compared to our other code hosting platforms,” he said.
Thanks to its open-source nature, GitLab’s contributions have been reciprocated by CERN’s development team, which configured the interface to act as a SAML 2.0 service provider (earning the team MVP recognition in the process).
More than 100,000 organizations worldwide and the majority of large institutions, like CERN, use GitLab to power their projects during the development process. Because software must evolve to remain useful and effective, developers need a way to track and manage file changes over time.
As a company, GitLab itself is committed to continuous evolution, adapting to tech trends to help developers keep their projects relevant.
“We’re going from the virtual machine era to the container/Docker era,” said Sid Sijbrandij, CEO of GitLab. “There’s still a big trend for microservices, meaning more projects that integrate together to form an application.”
Addressing the Need for Automation Within DevOps
GitLab’s automated features make it a popular choice for organizations, such as NASA and CERN. Git repositories provide a means for storing software during the development and upgrade processes, and automation is an ideal way to streamline the creative DevOps workflow.
“Apart from microservices, we’re seeing the need to automate the entire software development lifecycle,” Sid said. “Companies are fed up with spending a lot of time with integration and getting inconsistency — that’s what we’re going to address with Auto DevOps.”
As DevOps aims to unify software development and operation, Auto DevOps seeks to make this task easier than ever. GitLab’s September 2017 release integrates Auto DevOps in the form of five components that automate different steps in the DevOps process. These tools create and suggest code, as well as offer feedback on previously written code. Each component is outlined below:
- Auto Build: Creates Docker images from code samples
- Auto Test: Analyzes the project, detecting language, framework, and other basic attributes
- Auto Code Quality: Reports on code quality and efficiency changes between versions
- Auto Review Apps: Allows developers to see how apps behave in real time
- Auto Deploy: Migrates apps to a production environment to simplify scaling and replication
Auto DevOps allows developers to spot errors sooner and shorten feedback cycles. Automation is implemented across every stage of the DevOps cycle — from defining an idea, all the way to measuring the performance of previously deployed apps. GitLab’s new approach to automation thus provides the perfect complement to its integrated UI.
Integrating Issue Tracking, Code Review, CI, and CD Into a Single UI
GitLab prides itself as being the only fully integrated product for the entire software development cycle. GitLab defines the seven stages of development as Idea, Define, Plan, Create, Review, Release, and Measure. By integrating CI/CD, issue tracking, and code review into its product, GitLab provides a centralized turnkey solution for easily creating, testing, and deploying software.
“It’s about taking a lot of things that had to be manual before out of the hands of developers and, instead, putting that logic into the software itself,” Sid said.
For every phase of the development cycle, GitLab boasts an impressive variety of features, including time trackers, branching tools, templates, auto-scalers, and compliance push rules.
“GitLab has grown from simply version control to doing CI/CD and monitoring,” Sid said. “We wanted to make it easier to combine them in a comprehensive way.”
In the planning stages of development, teams can report bugs to issue boards and set project milestones. Project templates and merge request features are available in the early stages of actual coding, as well as code quality testing and failed job retries through Auto DevOps and CI/CD. GitLab also offers static page hosting and wiki features for documenting and storing finished products.
Among the company’s most popular features are Continuous Integration and Deployment, which are now included in both the Community and Enterprise Editions. CI/CD is a multi-platform, multi-language tool that uses real-time logging and parallel builds for testing and execution. Built-in CI/CD is used during the release phase of a project, allowing developers to test and deploy apps quickly. By offering a single user interface that does the bulk of the hard work, developers can focus on the creative problem-solving aspects of their projects, allowing them to deliver more effective products with lightning-fast turnaround times.
Boosting Productivity, Accuracy, and Profitability in Every Aspect of Dev
In addition to the seven phases of the software development lifecycle, GitLab defines several project quality attributes, including scalability, availability, security, compliance, and efficiency. The company’s solutions allow for globally distributed cloning, database load balancing, compliance enforcement, user permissions, and disaster recovery.
Between GitLab’s planning, auto-scaling, testing, and analytics features, the developer’s job has never been easier. GitLab takes the guesswork out of collaboration and innovation.
“Unfortunately, organizations are spending a lot of time integrating tools instead of improving their apps,” Sid said. “Also, a lack of consistency can arise between teams without innersourcing.”
By anticipating all stages and aspects of development, GitLab provides a thorough means to boost productivity, accuracy, and profitability. For a project’s beginning stages, the company provides chat features and streamlined workflows so that developers can document ideas, track bugs, define requirements, and synchronize collaboration across teams.
During the creative stages, source code can be consolidated with the use of Auto DevOps features, as well as GitLab’s default branching tools and access controls. After the project’s code is reviewed with tools, such as GitLab’s Continuous Integration, the project is released with the guarantee of continuous delivery and deployment.
Even after initial release, projects are monitored by Prometheus to provide performance metrics. With comprehensive analytics and data-driven software revisions, projects can continue to evolve in efficiency and scale.
“With GitLab, developers can retire a whole suite of other products, saving money and integration time,” Sid said. “Developers can simply get more done, as there’s only one UI and one authorization. It’s a much faster transition from idea to production.”
Helping Businesses Maintain Pace With Emerging Trends in IT
GitLab helps its customers keep pace with emerging IT trends in multiple ways. The very purpose of git repositories is to streamline innovation, and the company is a prime example of an all-in-one solution that eases the creation of new software and improvement of old apps.
Beyond its already impressive portfolio, GitLab plans to implement even more features into future releases, including dependency tools for microservices and a fully cloud-based IDE editor/compiler to make starting new projects easier.
“There’s a generational shift in how we operate infrastructure with the adoption of containers replacing virtual machines,” Sid said. “Also, the rise of microservices and the need for software development automation are other emerging trends.”
GitLab has proactively begun tackling these trends with the 2017 release of Auto DevOps and the integration of CI/CD into its core product, and continues to release monthly revisions in a fast-paced IT environment.
CERN’s LHC experiments have led to many significant findings, such as the discovery of subatomic particles like tetraquarks, which are the smallest known constituents of physical matter aside from electrons. These and many more discoveries are aided by GitLab. Since its inception, GitLab has been evolving its technologies based on the needs of its users — helping them realize their visions and build the innovations that drive our future.