Upgrading your Continuous Integration/Continuous Delivery subscription

- By Abhijit Kini on June 03, 2016

Continuous Integration (CI) helps developers to speed up the application development life cycle by automating build, test and deployment of the application. Continuous Delivery (CD), helps developers in shipping code from source control systems to the production environment.

You can have both CI and CD, for free, by using Shippable.In this tutorial, I'll go over what's available for free, when you need to upgrade and how to upgrade.

Free Continuous Integration and Continuous Delivery

What's for free

Continuous Integration: Shippable's hosted CI platform helps developers by:

All CI builds are run on Docker based containers and you get one free CI build container (2 core, 3.75GB RAM) that supports unlimited public and private repositories for unlimited users from your source control provider. You can run as many builds as you want.

Continuous Delivery: Shippable's hosted CD platform uses Pipelines which includes end to end activities required to prepare, validate and deploy changes in an application development life cycle. This is represented by a single versioned, deployable unit called Cell. Through Pipelines, Shippable helps developers by:

  • Automating the flow of Docker based applications from CI to a versioned deployable unit (Cell).
  • Automatically deploy Cells to Container Services such as Amazon's ECS or Google Container Engine.
  • Providing the ability to upgrade or roll back a Cell with a single click.
  • Auto deploying to test environments, giving the ability to run automated functional tests for every code commit.

You get one free Pipeline, that allows you to set up deployment for one Cell.

Hybrid: Shippable also offers the Bring Your Own Host (BYOH) option, for customers who want complete control over the build hosts. For CI you can use your own host (configured to any size capacity), while Shippable provides the central orchestration from our SaaS service.

You get one free CI build container and can upgrade for parallel CI builds.

When to upgrade

Continuous Integration: We support unlimited CI builds for unlimited repositories for free. Since a CI build is triggered for every code commit or pull request, they are processed in a serial order. This means, when build #1 completes, build #2 starts. When #2 completes, #3 starts and so on. While the CI build on our platform takes few minutes to complete, these can quickly add up if you have multiple builds being triggered due to multiple developers committing code or initiating pull requests. To reduce a developer's wait time to complete the CI build, upgrading to concurrent, parallel CI builds is recommended.

Let's see it practically. Say, you have an organization with the following assumptions:

  • Number of developers working concurrently: 25
  • Average number of builds triggered per developer: 10
  • Length of the period, developers are working (in hours): 8
  • Average build duration (in minutes): 15
  • Acceptable probability of a 5 minute wait time for a build to start: 0.10
  • Acceptable probability of a 30 minute wait time for a build to start: 0

Using the above values, let us compute the probability of the wait time in minutes for a specified number of build containers (aka Minions):

Minions 0.5 mins 5 mins 10 mins 15 mins 20 mins 25 mins 30 mins 45 mins 60 mins
8 0.90 0.85 0.80 0.75 0.71 0.66 0.62 0.52 0.43
9 0.57 0.40 0.27 0.18 0.12 0.08 0.06 0.02 0.01
10 0.34 0.18 0.09 0.04 0.02 0.01 0 0 0
11 0.20 0.08 0.03 0.01 0 0 0 0 n/a
12 0.11 0.03 0.01 0 0 0 0 n/a n/a
13 0.05 0.01 0 0 0 0 0 n/a n/a
14 0.03 0 0 0 0 0 n/a n/a n/a
15 0.01 0 0 0 0 n/a n/a n/a n/a

 

From the above table, there is an 85% probability that a build will incur a 5 minute wait time for 8 minions doing concurrent, parallel CI builds. If you increase the number of minions to 9, then there is a 40% probability that build will incur a 5 minute wait time.

Hence to be absolutely certain to never incur a wait time of 30 minutes (0% probability that a build will incur a 30 minute wait time), the recommended number of minions is 10.

Remember, the above table is for an 8-hour day. With this information, if you take the $/hr cost of a developer, you will be able to compute the loss of developer productivity, spent in waiting for a build to complete, for a day, month and year.

To plug in your own organizational values, you can use this cool Node.js app to compute the above table and determine the number of build containers (Minions) you'll need for concurrent, parallel build processing for CI.

Continuous Delivery: We support one Pipeline with one cell for free. This means you can build and automate your entire application delivery for a single service. If your application has multiple services or tiers, then you'll need to upgrade for additional pipelines. For example, if you have a 3 tier application with UI, API and a database service, then you will need 3 pipelines.

Hybrid: Similar to CI, for the BYOH implementation, if you have a need to run parallel CI builds simultaneously, then an upgrade to increase the number of CI build containers is recommended.

On-premises:  If are looking to run the entire Shippable product on-premises, yourself, we are working on a beta program to support this. Contact us to sign up for a private beta.

 

How to upgrade

Pricing plans are enforced at a subscription level, where a subscription is an individual or an organizational account on GitHub or BitBucket. Once you determine the number of parallel CI build containers and pipelines you need for your subscription, follow these steps:

  • Login to the Shippable portal using your GitHub or Bitbucket account
  • Select your 'Subscription' account from the drop down
  • Click the 'Billing' tab
  • Click 'Update plan'
  • Move the slider under the 'Please choose the number of containers you want to buy:' section to the number of containers you want
  • Move the slider under the 'Please choose the number of pipelines you want to buy:' section to the number of pipelines you want
    • NOTE: We provide pipelines in increments of 3
  • Provide your credit card information, for the first time
    • Subsequently you have the choice of using an existing or adding a new credit card
  • Click 'Save'
  • Ensure you have a valid 'Billing email'
  • Click 'Buy'

Upgrade Continuous Integration and Continuous Delivery

 

IMPORTANT:

  • If you need more than 25 CI build containers or 40 pipelines, contact us to arrange for your plan.
  • When you add more build containers and/or pipelines, they will be available immediately.
  • When you click 'Buy' we charge your credit card immediately and send you an invoice.
  • If you reduce your containers or pipelines, your bill will be adjusted in the next billing cycle. We do not prorate monthly charges or issue refunds.

Check out our FAQ on pricing and additional documentation on this topic.

What are you waiting for, get started for free!


Try Shippable

Topics: continuous deployment (CD), continuous integration (CI), how-to, continuous delivery, tutorial, subscription