"Codefresh gives us the flexibility and extensibility to meet our current requirements, and anything else we come up with in the future."
Customizing Codefresh to its own needs, Skillshare got just the CD platform it was looking for
Skillshare is an open platform through which thousands of teachers offer classes on topics such as illustration, design, video, business, technology and more. Over 5 million students from over 100 countries use Skillshare to learn cutting-edge skills, network with peers and discover new opportunities.
The technological backdrop
The tech stack that powers Skillshare’s seven services is fairly standard – AWS and Kubernetes, with PHP and Node.js applications and ChatOps via Slack to automate and integrate its deployment process with its CD tool.
As the subscription to its existing CD platform came up for renewal, Skillshare took the opportunity to check what else was available on the market. Impressed with an initial demo by Codefresh, the company moved forward with a proof of concept (POC).
Two sets of POC success criteria were defined.
- The first set related to features that its existing tool already offered – anything missed here would be a deal breaker. These included simple rolling deploys with automated rollbacks, Kubernetes job-based preflight checks and smoke tests, a secrets management solution with SOPs for helm charts, happy and failure path in pipelines, connecting to Kubernetes clusters/ AWS accounts, links to Slack notifications, and multi repo/service pipelines.
- The second related to additional functionalities Skillshare didn’t have and hadn’t been able to implement with its previous CD tool. These included managing its pipeline as Infrastructure-as-Code, triggering pipelines from GitHub Deployment web hook events, automated canary analysis using DataDog metrics, blue/green deployment for A/B testing, and conditional deployment strategies.
In switching CD providers, the core issue we were looking to fix was that couldn’t extend the product in any way… we were limited to using the steps it provided us, with absolutely no flexibility.
“In switching CD providers, the core issue we were looking to fix was that we couldn’t extend the product in any way,” says Adam Hawkins, Site Reliability Engineer at Skillshare. “Every application and code base is different, and not everything can be redesigned to fit the model of the way a CD product thinks it should work. With our previous CD vendor, we were limited to using the steps it provided us, with absolutely no flexibility.”
Flexibility and extensibility became the crucial selling point for Skillshare.
“What impressed me the most about Codefresh is that, due to its architecture, it can effectively do anything you can think of,” says Adam. “Whether in testing or deploying software, whether we need custom Docker images or specific command templates – these requirements simply become configurable steps in a workflow, and we can structure that workflow any way we want. Being able to build custom steps into the Codefresh platform was a total game changer!”
Due to their architecture, Codefresh can do almost anything you can think of… Being able to build custom workflow steps into the Codefresh platform was a total game changer!
Other Codefresh features that impressed Adam and his team included the ability to map or trigger multiple repositories to one pipeline instead of creating separate tests in each repository, the ability to create as many pipelines as needed, and the superior Docker image layer caching capacity. Additionally – the team was very impressed with the UX.
I like going into Codefresh – it looks better and is overall much easier to use and work with.
“I like going into Codefresh – it looks better and is overall much easier to use and work with,” says Adam. “The developer experience is far better than what we had before, and the pipeline debug feature gives us faster feedback when figuring out what’s working or not, making my job much, much easier!”
Following successful completion of the three-week POC and into implementation of Codefresh, the Skillshare team continued to build their own steps to achieve the desired outcomes, effectively leveraging Codefresh’s flexibility to create a 99% customized CD solution that meets all their needs. As the platform becomes an increasingly essential part of Skillshare’s engineering processes, the company is considering expanding the scope of what they use the platform for to include CI as well.