Hello there!! How is it going?
Welcome to scaleyourapp.com
This write-up is a comprehensive insight into Wercker – a Docker-based Continuous Delivery Platform. What is it? Why use it? How is it different than the other popular continuous integration tools available? This article answers all our queries in-depth.
So, without any further ado.
Let’s get started.
1. What Is Wercker?
Wercker is a SaaS Software as a Service continuous delivery platform which enables us to build & deploy our code changes at a quick pace by automating stuff.
It provides a software delivery pipeline. Wercker uses Docker containers to manage our code, build a version of it, test it for errors before deploying it to the cloud. The platform was acquired by Oracle in 2017.
1.1 How Does It Work?
Wercker sits between the code repository, for instance, GitHub, & the cloud where the app is deployed.
Using the Wercker CLI command line interface, we can create Docker containers, automate the build, the deployment processes, test the code & deploy to whichever cloud platform we’ve hosted our app on.
So, every time there is a change in the code, that is after the code is pushed to the repo, Wercker runs the continuous delivery workflow.
The code is retrieved, a version is built, tested for errors & the dev team is notified if there is anything amiss. This CI flow helps the software to be incrementally tested as the changes are pushed to production.
A similar more refined process to this is called the Liquid Software Development. Where the code changes flow through a pipeline as the liquid flows through a water pipeline. Have a read.
In a similar fashion, Wrecker uses automated workflows via pipelines. Software changes flow through the Wrecker pipelines, moving through predefined stages where the code is tested for correctness.
The platform’s web interface also enables the developers to keep track of the events running on the platform.
Coming back to pipelines, they are the core of the platform. Code moves through the pipeline, through several steps. Steps can be also seen as stages.
Every step is a bash script or a compiled binary for executing a specific automated task. The configuration of the steps is done in a .yml file in the application.
We can either write the steps from scratch as per our requirements or fetch a template from the community from a registry of steps.
Several pipelines can run concurrently on the platform facilitating quicker execution of tasks.
So, we have pipelines. Pipelines contain steps. Now comes the Workflows.
With workflows, we can manage pipelines. We can either put pipelines in a series, in parallel or the combination of two creating an entirely new formation catered to our needs.
Docker containers, in which the code runs, can be obtained from the Docker Hub.
Containers are specified in the configuration.yml file. The pipeline is built from the Docker image specified in the yml file.
There are separate containers called the service containers which are run to mock a testing database or a message queue. Service containers run separately from the pipeline Docker containers.
2. What Are the Features Offered by Wrecker?
Besides parallel execution of tasks, Wrecker provides smooth integration with popular tools in the CI, CD marketplace.
Wrecker easily integrates with code repos like GitHub, Bitbucket, GitLab etc. The SaaS can be completely operated from our local desktop via a Wrecker CLI command line interface tool. Workflows & pipelines can be managed from our local desktop.
Wrecker integrates with Slack to facilitate effective team communication. Platform bots keep the developers informed on the status of the events running on the platform.
The platform offers several tools such as the web interface. I’ve stated about this earlier. The CLI command line interface tool, a REST API. Tasks can be triggered by hitting the HTTP endpoints.
Devs don’t have to write all the functionality by themselves. Common task templates can be fetched through the Steps Registry, also called the Steps Marketplace.
3. Wercker Vs Jenkins | What Is the Difference? Which One Should I Use?
Jenkins is undoubtedly the industry’s most popular continuous integration tool. The biggest difference between both is that Jenkins is open source. It can be deployed on-prem, unlike Oracle’s Wercker.
Being an open source solution, it has tons of plugins & integrations. There is a lot of documentation available on Jenkins. Wercker, on the other hand, is a hosted proprietary Software as a Service.
If we have a custom requirement for our code deployment & the feature is unavailable on the Wercker platform, we are stuck. We are dependent on the Wrecker’s dev team to write that feature for the platform.
But in the case of Jenkins, we can write a plugin for ourselves. There is no third-party dependence.
Alright!! Hmmm… Then what is the point of using Wercker? Why don’t I just go ahead with Jenkins?
Well, a solution like Wercker lets you off the hook of managing the entire continuous delivery pipeline. You don’t need to set up anything, no need of a dedicated team monitoring stuff, keeping an eye if the CD pipeline works Ok.
Let Wercker take care of everything. Rather focus on developing new features for your app. Let Wrecker handle the infrastructure.
4. More On the Blog
Well, Guys… This is pretty much it about Wrecker. If you have any thoughts on this, do share in the comments.
If you liked the article. Share with your geek friends.
I’ll see you in the next article.
- Distributed Systems, Scalability & System Design #1 – Heroku Client Rate Throttling
- Zero to Software/Application Architect – Learning Track
- Java Full Stack Developer – The Complete Roadmap – Part 2 – Let’s Talk
- Java Full Stack Developer – The Complete Roadmap – Part 1 – Let’s Talk
- Best Handpicked Resources To Learn Software Architecture, Distributed Systems & System Design