![]() He helped me get a job in the guest-services department, which is like the general front desk of a cruise ship. I had a friend who worked for a major cruise line, and I heard it was sailing in Asia, an area of the world I'd always wanted to explore. Last year, I was working at the Ritz-Carlton and decided I wanted to try something new. I've lived in Miami my entire life, so I've always watched the cruise ships go in and out of the port - but I never really understood what happened on board. The following has been edited for length and clarity. He has chosen to exclude his employer's name, but his position has been verified by Insider. Over time, we've learned from it and improved it, and we’re excited to share it with the community.This as-told-to essay is based on conversations with Chris Libreros, who worked for a major US cruise line from March to November. ![]() It handles a broad set of general purpose tasks ranging from updating DNS configurations to publishing new versions of Python eggs, and deploys our applications to Heroku, EC2 and our datacenters. Please report any issues you might run into, and feel free to submit bug fixes and improvements via pull request.Īt Shopify, Shipit deploys over 200 projects (including itself) at the press of a button - something we do several hundred times daily. We've put together a detailed README to get you started. We’ve also made it possible to write visualizations shown during deployments, that make it easy to monitor progress and abort the deployment if needs be. This has the added benefit of playing well with the plethora of third-party services that use the Statuses API (including our Docker image builder).īefore deployments, Shipit allows you to display key metrics, or add a checklist that should be followed. Instead of constantly updating a local copy of the repository and polling for CI status, Shipit relies on GitHub's push and status webhook events. We were able to make gains in performance and simplicity by adopting GitHub as the source of truth. Shipit keeps logs and metadata of all the deploys and rollbacks performed. We don't need to specify a deployment command - Shipit will infer the necessary steps to deploy to Pypi, Rubygems, and anything using Capistrano. This allows deployment recipes to be maintained within each project and kept under version control. To make configuration easier, we adopted a model similar to Travis CI and introduced the notion of a shipit.yml file. Shipit allows developers to set a lock to prevent other developers from deploying when it’s unsafe to do so. To ensure code isn’t deployed during incidents like system maintenance, there needs to be safety mechanisms in place. Here are some of the improvements we've made: Synchronization We also hit performance limitations.ĭuring Hack Days, we undertook a complete rewrite to address these problems. Configuring new projects was difficult, which meant few projects were using it. While this worked well initially, we hit some limitations. It allowed our developers to deploy their code without needing to request credentials, understand the production hardware, or involve the Operations team. The first version of Shipit was built in early 2013 using an open source project by Rackspace called Dreadnot. Additionally, keeping an audit trail of when specific commits were deployed is indispensable when debugging production issues. With smaller teams, it’s easy to give developers deployment access via something like Capistrano, but giving production credentials to many people can become a problem. You need to ensure that no one else is currently deploying, that the revision you are about to deploy has been successfully tested on CI, and even that there is no ongoing maintenance operation. MotivationĬoordinating frequent deployments in a large development team poses a number of challenges. Along with key improvements to our infrastructure, Shipit plays a central role in making this happen. With dozens of teams pushing code multiple times a day to a variety of different targets, fast and easy deploys are key to developer productivity (and happiness) at Shopify. After a year of internal use, we’re excited to open-source our deployment tool, Shipit.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |