Gearing up for enterprise workloads, Wercker has outfitted its continuous integration and development platform with the ability for users to run multiple pipelines, or workflows, at once. Security has also been enhanced, for the peace of mind of users worried about running their jobs in a multitenant environment. The company is also making plans to offer a private cloud version of the platform in the new year.
“We got requests from large organizations using the platform that they would like to have more concurrency in terms of running simultaneous pipelines,” said Micha Hernandez, Wercker CEO. We spoke with Hernandez at the Kubecon conference in Seattle last month.
Wercker launched in 2011 by offering a classic continuous integration and deployment software service, initially using LXD as the base. The company provided its users with the mechanisms to build their own containers, both to support customers’ chosen languages (Erlang, Scala), and for building automated workflow pipelines.
Each pipeline would consist of multiple steps, which could range from installing dependencies to running unit tests or delivering Slack notifications. People could create their own steps and contribute them to Wercker’s public repository. They can, for instance, add in a step for a Kubernetes deployment, or one that would send a notification to Slack when some event would happen.
When Andy Smith joined the company as chief technology officer, the company reengineered its entire platform to run on CoreOS, Docker, with the Kubernetes container orchestration engine serving as the base, making Wercker extremely portable. Smith was one of the original creators of OpenStack and contributed to the Google App Engine.
Last month, the company launched virtual private pipelines (VPP), as well as the ability to run multiple pipelines concurrently. Because it is a multitenant service, customers were asking for more isolation, as well as to not be queued up behind other customers. This is solved by having dedicated instances for each customer job. Wercker uses Amazon Web Services as its cloud provider.
Wercker VPP is a fully managed single tenant, SaaS-delivered Docker-native CI/CD automation platform. The VPP service is offered as an early-access preview, and users can run to 25 simultaneous pipelines.
The company is also working on a virtual private cloud offering, which it plans to debut in January. This product will allow users to deploy Wercker behind their own firewalls, in a fully-managed package, one run on top of Kubernetes.
A Microservices-Based CI/CD
The Wercker platform was particularly useful for microservice architectures. Because all work is containerized, someone working on one component can easily pull and deploy the work of others. The multiple pipelines are perfect for a development team that wants to run automated workloads (builds, tests, deploys) in parallel, shortening development time and boosting flexibility.
“Every pipeline gets executed in a Docker container. Every build artifact can be in a Docker container, “Hernandez said. “Not only are we ourselves using Kubernetes, but we can help you deploy Kubernetes as well.”
Configuration is done through a YAML file, that describes which containers should be spun up to support a build process. In a sense, Wercker acts as an orchestration engine for the development pipeline. Behind the scenes, the company used the Go language to build its services, along with Google’s gRPC and Protocol Buffers and CoreOS’ Quay container registry.
For those not using containers, Wercker can also build pipelines where the final packaged application would emerge in a tarball or an rpm package. Wercker is a good service, however, for building best practices around containers, Hernandez said.
Too often, testing tools are added to a container during development, and kept there as the containers are pushed in deployment, under the guise of containers being “immutable infrastructure.” This doesn’t have to be the case, however.
With Wercker, users should build up a base image first, and that can be one pipeline. The second pipeline can be your libraries. Test dependencies can be a third pipeline. Each would have its own container.
“For a long time, we’ve had these promises” of a continuous development and deployment pipeline, said Wayne Gibbins, Wercker chief commercial officer. Service-oriented architecture promised a continual pipeline, but the industry was slow to implement these ideas into tools. The idea of microservices came along, but suffered the same problem, until Docker provided a way to encapsulate microservices. But containers needed managing themselves, so along came container orchestrators to help manage and scale up containers. Wercker, in this scheme of things, Gibbons explains, offers the full CI/CD platform to provide the pipelines for application deployments.
The base package for VPP is $350 per month for 3x concurrency and $100 per month for each additional concurrent pipelines, i.e., 6x concurrency is $650 per month, 10x concurrency is $1,050 per month, 20x concurrency is $2,050 per month.
Wercker is a sponsor of The New Stack.
Feature image: Micha Hernandez (left), Wayne Gibbins.