AWS GitLab DevOps
AWS GitLab DevOps
1
Introduction
Over the past decade, DevOps went from being considered a trendy solution for software tech
companies, to a dependable workflow that improves nearly any business process. However, creating
a successful DevOps workflow remains a challenge for many organizations.
For some, DevOps processes become difficult because teams focus on too many different tools. With
a complicated workflow, maintenance becomes a priority and takes up the time and effort once
spent on developing the products.
A variety of tools can also impede user transparency and collaboration. Visibility in a DevOps
workflow is imperative to continuous integration and deployment. If the tools in place aren’t
integrating, then the Dev and Ops people using them aren’t communicating effectively.
Another common DevOps challenge is making sure to have the right tool when making the leap from
a monolithic system to microservices. The planning, coordination, and cost all factor in the success of
making the switch, but the correct DevOps tool makes all the difference. A singular platform with an
easy user interface and the ability to integrate seemlessy will make the move less of a hurdle.
Learn how Trek10, KnowBe4, Wag!, Ask Media Group, and Axway all overcame significant software
development challenges. Get a better understanding of how each company turned to AWS and
GitLab for up-to-date software releases, high-end efficiency, scalable workflows, and unmatched
deployment capabilities with two companies known for setting industry standards.
2
DevOps workflow challenges
Keeping cloud customers informed
Trek10, a professional technical consulting firm, helps enable enterprises to migrate to cloud native
architectures. The small Indiana-based company was founded in 2013 and reaches customers across
four continents. As a services provider, Trek10 is responsible for keeping companies up-to-date with
cutting edge technologies.
Trek10 was having challenges in keeping their clients informed and updated. Client feedback is a
high priority for Trek10 to create custom solutions, so collaboration is imperative in keeping clients
satisified.
The development teams were also lacking collaboration and transparency within their own
workflow. The teams were using a variety of different tools, causing discrepancies and lag time
between the tools and reality. Trek10 was looking for a tool that could offer visibility and bridge the
communication gap, not only between internal teams, but also with their clients.
The security platform was using three separate tools for its deployment toolchain, with three
solutions in use, codes, tests, and deployments living in various places. The tools didn’t integrate,
causing additional stress and security issues. “Context switching was constant, and due to everything
running concurrently, you never achieved the correct continuous pipeline,” said Alex Callihan,
Director of Site Reliability Engineering at KnowBe4.
The engineering teams were looking to improve deployment speed by consolidating to one tool that
could provide end-to-end visibility. Other priorities for a new toolset included a platform that could
be self-hosted, reside in AWS, integrate with Jira and Docker, and scale their Git solution.
3
Lacking pipeline and infrastructure capabilities
Wag! is an on-demand dog walking, sitting, daycare, and boarding platform that started in 2015.
Wag! provides millions of walks across the United States annually. The company uses GitLab for SCM,
but the teams were struggling with their existing CI, pipeline, and infrastructure capabilities. “We
were previously using a combination of Travis and other random technologies, and we just wanted
something with a little bit better interface, a little more control, and something that we owned as far
as the hosting and the management,” said Dave Bullock, former Director of Engineering, Wag! “We
really wanted to move towards a single, full-service application.”
The teams also had zero autoscaling in place, a flat VPC, no staging area to test infrastructure
changes, and only one security group to rule them all. A single error in the code had the potential to
destroy user capabilities. Monitoring services were not ideal in finding bugs prior to deployment. All
of these issues led Wag! to search for a new, singular platform that could solve their challenges, save
money, and integrate with AWS.
Limitations of a monolith
Ask Media Group operates over 30 websites and provides enriched search results, articles, galleries,
and shopping sites to over 100 million unique visitors each month. Ask Media wanted to improve sales
by drawing advertisers and expanding its audience.
Why modernize?
The teams had a monolithic system in place that limited capabilities and added financial burdens for
services that went unused. Routine tasks like software releases and onboarding developers were time
consuming. Ask Media was looking for a tool that could help the teams improve customer service,
control costs, improve deployment, and leverage AWS natively.
4
Disadvantages of Jenkins
Axway Software is an independent API gateway vendor, providing on-premise and cloud software
to customers. The company has over 2,000 employees spread across 17 countries. Over 11,000
organizations worldwide rely on Axway for their integration needs. In 2016, Axway transitioned
from Subversion to GitLab for source control management. However, they were looking to enhance
software delivery and improve operational efficiency through cloud services.
In 2018, the Axway workflow consisted of using a copy of Jenkins deployed as a Docker image and
pulling pipelines from GitLab to run. That method only worked while the SaaS product was in its
infancy with approximately 15 microservices. As Axway matured, they expanded to more than 24
microservices, and the team was unable to maintain the toolchain. The development teams were
in need of a simplified, end-to-end platform that could deploy on AWS, and completely move off of
Jenkins altogether.
With GitLab in place as the project management application, Trek10 focuses on innovative solutions
for its clients. The company has increased developer velocity, improved client relationships, and
fostered trust and transparency. The review apps have become an essential part of customer success.
Clients now have increased communication with developers, which allows customers to have an
active role in the development lifecycle.
GitLab is now considered at the heart of the software development lifecycle. KnowBe4 teams have
standardized the development lifecycle for over 60+ microservices. “Due to that standardization, the
simplicity of starting new projects or troubleshooting existing ones is incredibly easy. We all know
how projects will build, release, and ship regardless of codebase or design,” Callihan said. “With a
healthy mix of Docker, Terraform, and GitLab in GitLab pipelines, we’ve got a system in place that is
super efficient.” Time to production is decreased with 20+ development environment deployments
per day.
The infrastructure was rearchitected, including the ability to define everything as code, ensure
autoscalability, tier VPC subnets, minimize permissive network security groups, and enable
application deployments via GitLab.
“GitLab has this great functionality where they do autoscaling runners. Before we had static runners in
Travis CI that allowed for 20 at a time. With autoscaling at GitLab, you can set it to up to 500 at a time
and set windows when they’re active. It’s really, really efficient and got rid of a ton of our bottlenecks
in the pipeline,” Bullock said.
6
A full paradigm shift
GitLab helped Ask Media transition from a monolith to microservices. GitLab’s ability to integrate
empowers developers to improve customer experience, release software quicker, and leverage
AWS cloud services. “We needed a system that could handle change,” says Chenglim Ear, principal
software engineer at Ask Media.
Ask Media’s entire workflow shifted when they adopted GitLab. “When we look at what we did to
speed up development, to make it simple and transparent, and control the cost, we see a paradigm
shift. Gitlab gave us push button releases. Docker and Kubernetes enable us to switch to a
microservices architecture and AWS enabled auto scaling,” Chenglim explains. “On Amazon, we
started building Kubernetes clusters and GitLab became our command and control interface.”
Before After
Speed Multi-step multi-team releases Single button self-service release
Ops incident management team Dev incident management with PagerDuty
Siloed teams Cross team working groups
Clarity Monoliths Microservices
Developing Services Composing Services
Cost Self-hosted AWS
Installing packages on VMs Contaner registry, Kubernetes and YAMLs
Static runteim environments Dynamic runtime environments
With over 600 developers onboarded, each developer uses GitLab without forced standardization.
“Moving all of our pipelines into GitLab gives our developers faster feedback every day and it’s one
less tool to manage. It’s much easier when you’re reasoning about the service you’re building to have
everything in the repo for the service, rather than have to fish around on Jenkins and go hunting to
7
figure out where things broke down,” said Vince Stammegna, Senior Director of Engineering, SaaS
at Axway. “So all of our security scans, such as Fortify and Twistlock, are actually done within the CI
pipeline and GitLab so we get results back.”
“All of our GitLab infrastructure runs within our own Virtual Private Cloud in AWS (VPC). We use GitLab
CI to build, test and deploy AWS infrastructure. Whether it be containers on Fargate and ECS, or
serverless solutions with Lambda and API Gateway, GItLab and its integrated CI help us seamlessly
and securely manage deployments across many AWS accounts on a daily basis for our clients as well
as our own practice.” Short said.
With GitLab and AWS, Trek10 has strengthened customer relationships, improved innovation, and
increased developer velocity. Trek10 was also a finalist for the Indiana Tech Company Scale-Up of the
Year award.
The workflow usually follows these steps: A developer opens a feature branch off of the master in
GitLab. Leveraging GitLab pipelines, they can deploy an on-demand development environment.
After the development environment is verified working by QA, a developer opens a merge request to
master. Every commit then runs test pipelines until that merge request is approved and merged. After
the merge, the pipeline starts to build and release the Docker image to AWS. After the release, the
deployment pipeline kicks off and leverages Terraform to roll-in the latest image into production.
8
All of this is orchestrated by GitLab runners deployed in AWS with end-to-end visibility. Production
deploys five or more times a day for any application and development environments deploy
20 or more times per day for any given application. With AWS running on GitLab, hundreds to
thousands of test jobs run every day across all applications.
Wag! made the move to a multi-AWS account Amazon S3 backend that was managed by Terraform,
making testing, staging, and deploying easier to scale. With CI/CD for the Terraform repos with GitLab,
all of the phases are automated. Recently, Wag! passed the AWS Well-Architected Framework review.
By cutting out Travis and other tools, Wag! saves 60% month over month.
With AWS, they are able to leverage services that were once unavailable with the monolithic toolchain
they had in place. “With AWS we wanted a product that was fairly complete and mature. AWS has a
lot of history and lots of services. We definitely wanted to be able to leverage those services and to
be able to build on a platform that was solid. We set off to build Kubernetes clusters, right on EC2
instances. We continue to look at opportunities to leverage the resources available through AWS,” Ear
said.
With containers, Ask Media is able to keep costs down, speed up, and functionality at the cutting edge
of AWS technology.
9
Partnership with AWS
Axway has been successfully deploying cloud offerings on AWS for over six years and is an AWS
Advanced Technology Partner. “AWS is the leader in the Infrastructure as a Service market. The speed
of delivery of services and innovation is unmatched. AWS has a high level of security compliance and
services and provides a partnership to support us into the cloud journey,” Labourdette said.
Axway uses a variety of AWS services, including EC2, S3, EBS and PrivateLinks, as well as RDS
managed services. Axway’s successful AMPLIFY™ platform is container-based and uses Kubernetes
and EKC for orchestration.
Deployment has sped up since pipelines are now properly in place. Over 3,000 projects have been
migrated. Workflow improvements include SaaS deployments happening once per hour to once
per day. Any outage never lasts longer than two hours. The lead time to change is between one to
seven days and the change failure rate is less than 15%. Release cycles are now 26 times faster
than they were before GitLab and AWS.
10
The complete DevOps solution
With the right platform, a concurrent workflow enhances collaboration, communication, and
productivity. GitLab is a complete open source DevOps platform that fundamentally changes the
way development, operations, and security teams build software. As a single platform, GitLab takes
away the stress of multi-toolchains, reduces development costs, increases productivity, and curtails
application vulnerabilities.
MANAGE
DEV OPS
SECURE DEFEND
Part of the flexibility of GitLab is its ability to deploy anywhere from cloud to on-premise. As a single
end-to-end software development and delivery application, GitLab provides a bring-your-own-
infrastructure compliance. The DevOps workflow is optimal by running GitLab on AWS and using
GitLab to deploy software to AWS.
Integration with Amazon Compute Cloud (EC2), Amazon Elastic Container Service for
Kubernetes (EKS), and Amazon Elastic Container Service (ECS)
GitLab is available both as a Self-Managed package to install, configure, and administer on your
infrastructure or as a SaaS offering that you can simply sign up and start using. GitLab Self-Managed
runs great on everything from bare metal and VMs to AWS. GitLab can be installed to EC2 using an
Amazon Machine Image (AMI) or to a Kubernetes cluster on EKS using the GitLab helm chart.
11
About GitLab
GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing
the way Development, Security, and Ops teams collaborate. GitLab helps teams accelerate software
delivery from weeks to minutes, reduce development costs, and reduce the risk of application
vulnerabilities while increasing developer productivity. GitLab provides unmatched visibility, radical
new levels of efficiency and comprehensive governance to significantly compress the time between
planning a change and monitoring its effect.
GitLab collapses cycle times by driving higher efficiency across all stages of the software development
lifecycle. For the first time, Product, Development, QA, Security, and Operations teams can
collaborate in a single application. There’s no need to integrate and synchronize tools, or waste time
waiting for handoffs. Everyone contributes to a single conversation, instead of managing multiple
threads across disparate tools. Development teams have complete visibility across the lifecycle with
a single, trusted source of data to simplify troubleshooting and drive accountability. All activity is
governed by consistent controls, making security and compliance first-class citizens instead of an
afterthought.
Built on Open Source, GitLab leverages the community contributions of thousands of developers and
millions of users to continuously deliver new DevOps innovations. More than 100,000 organizations
from startups to global enterprise organizations, including Ticketmaster, Jaguar Land Rover, NASDAQ,
Dish Network and Comcast trust GitLab to deliver great software at new speeds.
12
13