Codeship Blog

blog.codeship.com · Company blog · on HN since 2013

Codeship's company blog on continuous integration and delivery, covering Docker, Go, Elixir, Crystal and tech stack decisions.

What HN saysHN commenters call it a consistently published, well-done company tech blog, and point to its Docker for continuous delivery series and AWS account advice.
138HN people shared it
27linked it in comments
242stories submitted
3.1Kstory points
7 years agolast shared
2013people per year2026

Most-shared posts

  1. 1
    Growing Your Tech Stack: When to Say No
    7 people · 20 points · first shared 2015 · 1 comments on HN
  2. 2
    Crystal: Fast as C, Slick as Ruby
    5 people · 552 points · first shared 2016 · 429 comments on HN
  3. 3
    Comparing Elixir and Go
    4 people · 489 points · first shared 2017 · 194 comments on HN
  4. 4
    Homepage
    4 people · first shared 2015
  5. 5
    Codeship Acquired by CloudBees
    3 people · 20 points · first shared 2018 · 3 comments on HN
  6. 6
  7. 7
    Building Minimal Docker Containers for Go Applications
    3 people · 7 points · first shared 2015 · discussion on HN
  8. 8
    Heroku Data Links with Postgres and Redis
    3 people · 5 points · first shared 2015 · discussion on HN
  9. 9
    Unleash the Power of Storing JSON in Postgres
    3 people · 2 points · first shared 2015 · discussion on HN
  10. 10
    Visualizing Garbage Collection in Ruby and Python
    2 people · 72 points · first shared 2015 · 1 comments on HN
  11. 11
    Container OS comparison
    2 people · 71 points · first shared 2015 · 34 comments on HN
  12. 12
    AWS Speed Test: These Are the Fastest EC2 and S3 Regions
    2 people · 21 points · first shared 2014 · 2 comments on HN
  13. 13
    Immutable Infrastructure
    2 people · 19 points · first shared 2014 · discussion on HN
  14. 14
    Docker Machine, Compose and Swarm: How They Work Together
    2 people · 11 points · first shared 2015 · discussion on HN
  15. 15
    Exploring Microservices Architecture on Heroku
    2 people · 10 points · first shared 2015 · discussion on HN

What HN people wrote when they linked it

jimschley · 2015-12-01
Codeship | Senior Software Engineer | Boston, Vienna AUT, or remote (US/EU) Codeship is a hosted continuous integration / continuous delivery product. We help software developers write and deploy their code with confidence. As a developer tools startup we're putting a lot of effort into a great workflow with testing, code reviews and obviously continuous delivery. We've written a lot about that on our blog at http://blog.codeship.com more about our openings here: https://codeship.com/jobs
atroyn · 2015-06-30
Codeship have a great series on Docker for Continuous delivery on their blog: http://blog.codeship.com/ That said I've paged the founders to this thread, they can make the case much more effectively than I can. (disclosure: I don't work for Codeship).
fmotlik · 2015-05-01
Codeship - Senior Engineer, Full Time, Boston, Vienna or remote in Europe Codeship is a continuous delivery service. We're running tests and deployments for thousands of teams and are growing quickly. We're currently a team of 18 and have more than doubled over the last 6 months. As a developer tools startup we're putting a lot of effort into a great workflow with testing, code reviews and obviously continuous delivery. We've written a lot about that on our blog at http://blog.codeship.com You can read more here: https://codeship.com/jobs
donmcronald · 2019-05-27
AFAIK it's already considered a best practice to set up separate accounts for development and production (https://blog.codeship.com/separate-aws-production-and-development-acco… Having a hard cap on an account dedicated to development would help a lot IMO.
brightball · 2017-04-21
See Codeship's blog for a consistently published tech blog for a product targeted to a tech audience. They do a really good job with it. https://blog.codeship.com/ Disclosure: I periodically write for Codeship.
pselbert · 2016-12-22
> Redis recently switched from HyperLogLog to the slightly better LogLog-Beta Interesting, has anything been written about that? I've learned most of what I know about cardinality estimation from Redis and your writing on the matter, so I'd love to see more. It would be great to re-visit an article I wrote about HLL[0] from a new perspective as well. [0]: https://blog.codeship.com/counting-distinct-values-with-hyperloglog/
matlock · 2014-11-01
Codeship - Boston, MA or Vienna, Austria At Codeship we build a continuous Deployment service. Our mission is to make software teams more productive by helping them to release early, often and safe. We're building for the builders. We've been in production release for several years, have thousands of developers using the service and are growing rapidly. We've closed our Series A earlier this year. We're looking for Rails Developers, SysAdmins/DevOps, designers and frontend developers who love building tools for other developers. Read more about us on our Jobs Page: https://codeship.io/jobs And how we work in our Blogposts: http://blog.codeship.io/category/the-codeship-workflow Send me an email to [email protected]. You'll like it here!
clemc · 2013-09-24
Great post! Just discovered another nice piece about CI on their blog > http://blog.codeship.io/2013/09/12/the-codeship-workflow-part-5-contin… Seems damn legit!
craigkerstiens · 2017-09-26
I don't think the article could have said it much better. SQL is super powerful and makes much sense in so many ways. Nearly all apps have a relational structure to them and SQL is a reasonable way to interact with them. Some of my favorite conversations from the Postgres community 5-6 years back were when they were talking about a time when Postgres was being disrupted. The gray bearded DBAs (Hi Berkus and others) were talking about JSON like it's fad and how it's going to come to pass. They were saying so because they'd heard about this disruption before... there was this new thing XML and these document databases were so much more powerful. They waited a few years and added an XML datatype [1]... And then XML databases came and passed. At first they scoffed a bit on JSON as the new hip thing, but came around a little in Postgres 9.2, and then in 9.4 [2] we all really got what we wanted. SQL has never been a particularly elegant language, but it's always been a powerful one. The lone knock against has either been usability or scalability [3]. On the usability side that's a bit of a hard one as well it's not super pretty. But once you understand it's foundations around relational algebra or relational calculus you're so far ahead. On the scalability side there are definitely some options such as Citus, but also core Postgres is massively improving here. [1] https://www.postgresql.org/docs/9.3/static/datatype-xml.html [2]…
bampolampy · 2015-06-30
(disclosure: I do work for Codeship :P ) There are a lot of really great reasons to use Docker, or any container technology for CI. First off containers give you a standard interface to a reproducable build. This means you can run something in a container and expect it to behave the same way as something a co-worker runs on their workstation, or something run in the staging or production environments. For CI this is an absolute necessity. Rather than running tests locally, and expecting a CI server closely tracking the production/staging environments to catch issues with different version of the OS or libraries you can expect any build that passes locally to also pass on CI. This cuts down on a lot of potential back and forth. The only shared dependency between CI/local/prod/staging is docker itself. Another benefit is (almost) complete isolation. This means rather than having different vm images tracking different projects, you can have a single vm image with docker, and have each container running on the vm for any version of any build across your system. From a CI perspective you can abstract most of the complex configuration for your applications into "docker build -t myapp_test ./Dockerfile.test && docker run myapp_test". Containers use a differential filesystem, so N running containers for an application will take up 1 X the size of the container image + N x the average space of changes made in the running containers on top of that base image. This makes larger…
kick · 2020-02-14
Crystal is really nice! Cloning Ruby syntax but making it prettier is probably one of the smartest language design decisions that have happened in a long time. It's definitely gotten further on my radar in the past year or so, though I remember reading this a few years ago and finding it pretty cool then, too: https://blog.codeship.com/an-introduction-to-crystal-fast-as-c-slick-a… Relevant HN thread: https://news.ycombinator.com/item?id=12223395 Seeing Lilith in (what was, I think) December was what really alerted me to the fact that it had come along so far, I had mostly thought it was dead before. Lilith: https://github.com/ffwff/lilith Relevant HN thread on Lilith: https://news.ycombinator.com/item?id=21860713
cpursley · 2019-09-16
It seems like Elixir is a better fit than Go for all of the benefits listed here, especially in the age of distributed systems. https://blog.codeship.com/comparing-elixir-go/
vinceguidry · 2019-05-29
> arbitrary SQL cannot be combined or reused in a way which leads to compositional queries You can do this, look into arel. Here's a blog post: https://blog.codeship.com/creating-advanced-active-record-db-queries-a…
sandGorgon · 2019-02-14
postgres has a jsonb datatype that works pretty much like mongodb. https://blog.codeship.com/unleash-the-power-of-storing-json-in-postgre…
h1d · 2018-05-15
I think it's time people start using something better than bash/zsh that is decades old, like fish or even come up with a more modern shell. Even by looking at these examples, you see it has less verbosity like "then" and "do", you can reference arguments as $argv instead of cryptic $@ and exit status code as $status instead of $? which is confusing with $! and the likes. https://blog.codeship.com/lets-talk-about-shell-scripting/ https://fishshell.com/docs/current/tutorial.html Shell is such an integral part of admins and programmers workflow yet I find it hard to believe this field has been so slow at improving. Even the fish site jokingly states "Finally, a command line shell for the 90s" implying the others are even older.
mooreds · 2018-02-06
Here's the announcement from codeship: https://blog.codeship.com/codeship-acquired-by-cloudbees/
dorianm · 2017-02-03
There are other articles for those interested: - https://blog.codeship.com/rails-migrations-zero-downtime/ - https://blog.engineyard.com/2011/zero-downtime-deploys-with-migrations In the Ruby on Rails world, it's definitely a thing (made easier with attribute reader / writer, and db/migrations/)
czbond · 2017-01-28
While not addressing the drawbacks per se, I enjoyed reading this in depth comparison between Elixir and Go from an internal language perspective. https://blog.codeship.com/comparing-elixir-go/
manualwise · 2017-01-27
This article has some performance comparisons between Crystal and Elixir in the comments: https://blog.codeship.com/an-introduction-to-crystal-fast-as-c-slick-a…
chrisweekly · 2016-06-15
My colleague Elaine gave this interview on "what it means to be a senior engineer": https://blog.codeship.com/elaine-uy-tapjoy-interview/
NeutronBoy · 2016-04-22
Most of it is link tracking for newsletter distribution. You can remove it and shorten it to [1] without any impact [1] https://blog.codeship.com/kubernetes-namespaces-resource-quota-limits-…
_6d9t · 2015-12-24
ajaynairataws · 2015-06-15
A few options - Codeship (https://blog.codeship.com/integrating-aws-lambda-with-codeship/), popular community extensions such as Kappa (https://github.com/garnaat/kappa) Jenkins plugins (https://wiki.jenkins-ci.org/display/JENKINS/AWS+Lambda+Plugin) and Grunt plugins (https://github.com/Tim-B/grunt-aws-lambda/commits/master/package.json) that you can use as part of your CI/CD pipelines. There was even recent blogpost about using Lambda to deploy Lambda functions :) (https://aws.amazon.com/blogs/compute/new-deployment-options-for-aws-la… Would be great to hear what else you would like to see.
opendais · 2014-06-24
In fairness to Brian, I think you are flipping to the opposite extreme which isn't really valid either. Especially here: > Puppet? I am sorry but Puppet, chef and their ilk are horrible, who knows what state any machine is ever in at any point in time. humans will inevitably forget to ensure absent, or make an assumption about state in puppet land. You setup the new cluster, switch the load balancer, tear down the old cluster. I suggest you look into blog posts like this [if this is a pain point for you]: http://blog.codeship.io/2013/09/12/the-codeship-workflow-part-5-contin…
locksley · 2013-02-26
The most useful tip I could give you (if you're building on rails and deploying to heroku) is to use a Unicorn Webserver. It allows your to handle far more concurrent requests. This article explains it better than I ever will. http://blog.codeship.io/2012/05/06/Unicorn-on-Heroku.html I'm running 8 unicorn workers per dyno at the moment and that's still within the 512mb memory limit because I'm not using ActiveRecord.
kawsper · 2013-02-13
It is how Rails server behaves in itself, but that is also how Heroku tells you to do it. Rails can be served with Unicorn ( http://unicorn.bogomips.org/ ) which is a forking app-server. I do believe there was a trick a while back where you could get Heroku to run a Unicorn process on a dyno to get more requests out of it. The process is described here: http://blog.codeship.io/2012/05/06/Unicorn-on-Heroku.html
sbuttgereit · 2017-12-18
I don't think so. First, just to make sure there aren't any points of confusion... Erlang/Elixir processes are not OS processes (https://elixir-lang.github.io/getting-started/processes.html). As such, we really can't speak of processes in Erlang/Elixir and other kinds of systems on any sort of equal footing. In Erlang, processes are much lighter weight than OS processes. And you do expect them to go wrong... so Erlang has the idea of "Supervision Tree" where there are Supervisor processes whose job it is to monitor other processes and to manage their failure when it occurs. There can be multiple Supervisors which influence one another, or not, as you design them too (thus the "tree" bit). Naturally you plan for these sorts of failures in designing what is/is not a process, what dependencies there may be, what any Supervisor watches and how the Supervisors relate to one another. Erlang/Elixir also seems to have one of the strongest availability and concurrency stories out there on its own. Part of this comes from the aforementioned built in assumptions around isolating and managing failed processes, but the other is in terms of the relative ease of starting processes as needed, and accessing the processes of other Erlang VMs (same server or not). It's clear you have to architect and build things correctly to take full advantage of these capabilities, but I think you can get to the place you describe without necessarily taking on a bundle of different applications for…

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close