Skip to main content

Pricing of good continuous integration service – reply to codeship

I've recently discovered nice continuous integration and continuous deployment service – codeship.io. It's not just another hosted Jenkins and it has some very interesting features (like integration with major code hosting services and development tools). But I won't probably use it except maybe for some pet projects of mine with no active development. Here are my reasons why:

  • Free plan is no good for even one project. 50 builds per month is not enough for anything: any project in active development usually needs several daily builds, even if not counting merges and feature branches. Commit early, commit often (and with CI it also means test often) is the usual approach of our days.
  • Cheapest paid plan costs $50 per month. Yes, it has unlimited almost everything, but fifty bucks is small, but significant amount of money and small business (or non-profit project) can usually utilize them better.
  • Setting up Jenkins, on the other hand, would cost you about $5/mo for hosting and couple of hours of sysadmin's work.
They also have larger plans and all paid plans are structured by number of concurrent builds, the only limited thing in the system. And since I was asked in twitter how would I structured pricing of such project, here follows my ideas about it:
  • "Pay as you go" pricing is good. AWS is very popular partially because of that. Plans with some amount of batteries included are good too, but it should not be mandatory. So if you just starting development and don't need much of testing or just ended active development and build/deploy only occasionally, you can pay a few bucks, but if you're active user, you pay more.
  • Free plans are not required if service is cheap. It's usually better to have ten customers paying $1 than to have one customer paying $10 and twenty free riders. I'm not saying that some free plans or time-limited free trials don't help to review and test, they do help, but good cheap service is better than bad free one.
  • Most costly resource for continuous integration service (apart from development cost) must be the build time (time of using build instances, if we're talking cloud, or or cpu time if we use some other virtual machines, like, on our own hardware). Maybe also storage, not quite sure. So it would be better to charge less for less time-consuming projects and more for more time-consuming. Number of concurrent builds, number of total builds are not that important: some projects may be compiled for hours, some are built and tested in a few seconds.
  • Maybe optional delayed builds could be a good way for saving for some users. Like AWS has "spot instances" to utilize unused resources. Delayed builds could either use spot instances or use reserved instances when no one else uses them. Because no everyone needs instant builds, I can imagine someone want, like, 30% discount for builds delayed up to one hour, for example.
  • No build time used – no money charged. Except maybe for something little for storage and other costs.
It's not like I'm going to start competition tomorrow, so my observations are mostly from user's viewpoint, but if I were starting it, I'd do it like I said and would probably take a significant market share (given the competitive technical qualities).

P.S. Also, small technical side note, I don't like their lack of periodic builds and ability to use custom git repositories (not on github or bitbucket) – some people just don't use github for various reasons (they claim to fix this soon though) and periodic builds might sometimes be helpful for "nightly" builds (there are projects so big that it's not worth it to build them more often anyway).

Popular posts from this blog

Settling the bracket discussion once and for all

There are quite a few ways you can format a multi-line function call/list/dictionary in a programming language. With Python (at least with PEP8) it's just two ways: hanging indentation and vertical indentation. The latter is quite straight-forward and I mention it in the notes below. The former one is what this post is about. Well, about a minor but important question of where to place the closing bracket when using it. Yes, style is much more than formatting the commas and brackets so let's settle this and move on to the more important questions. When using hanging indentation, the only true way is this one(*): some_tuple = ( # Nothing here, only opening bracket. item1, item2, item3, item4, # Several items on one line is acceptable though not recommended. item5, # Last comma is important. And never, never place the closing bracket here. ) # Again, nothing here but the bracket and it's on the same level as the opening line. Empty line after the o

Huawei TalkBand B2 review

Ok, so I've bought a new gadget. It was long overdue because I, being a MediaPad X1 user, sometimes feel uncomfortable pulling that monster of a phone just to check the time on answer a call. Of course, Bluetooth headsets are cheap and abundant but I don't really like the idea of keeping one in my ear all the time. And having it not in the ear usually makes it pretty much unusable. Various wearable gdgets that can show time and some notifications aren't new either, and there are a lot of cheap options, but, again, there are even cheaper watches and I don't care much about fitness tracking (I don't mind it though) and notifications (reading long texts is seldom convenient on a small screen anyway). So when I heard about the new TalkBand that combines watch and wireless headset I was all interested, read reviews, became even more interested, and waited a few weeks only because of the price and availability. The price, for most people around the world it might seem a

Russia becomes an internet outcast for some reason

It's starting to happen more and more often to me. I'm trying to use some service and all of a sudden I see an error page, sometimes a custom one but more often generated by cloudflare or a similar service, with error message effectively saying that IP addresses from Russia are banned on the service. And what is even more interesting, most of this services don't have any particular policy reasons not to allow Russian users, it's not not like they are publishing prescribed materials or doing anything interesting whatsoever. A payment processor, a popular online course provider, some random forums and information sites, one site with educational videos that I like (that one is especially funny because I'm banned from the subscription page and so can't pay them but their cdn does't care and I can actually download any video I want). But why does it happen? Is there some recommendation in some popular security guideline "block Russia, Cambodia, and Afghan