Hey folks π
I'm the creator of Taskord, I deploy Taskord more than 100 times daily.
In this article, I'm gonna explain how to ship rapidly to production without any error and let us see what the heck is Staff Ship and feature flags!
Let us consider we are building a brand new Explore page and /explore
is going to be the URL. Plan about
Don't think a lot and waste the time, we can add/improve it in the next Iteration.
After the proper planning just go ahead and create the first page just saying Hello, World!
and point it to /explore
in your routes file.
After that commit and push to GitHub/GitLab and create your first pull request.
This step is optional if you are a solo developer, you can push all the way straight to
main
/master
branch (but it is not suggested).
After creating the pull request start concentrating on developing the app. If you have any dependency on the backend team don't wait for them until they complete.
Instead, just mock the JSON Response and start developing the work, make sure to give the JSON Spec to the backend team to develop the API in such a way you want. If not we need to rework again based on their API response.
Communication and time are crucial.
After completing the development wait for the CI to become green for that pull request.
Once all the tests have been passed merge the branch to main
/production
.
Deploy the feature to your staging instance, so you can deploy to production servers without fear. Test everything well, create a small checklist and check everything is done and working fine in staging instance before moving to production.
Feature flags are simply a toggle button that has the ability to turn features of your application on/off easily based on condition.
After testing well, deploy main
branch to production servers where the new feature exists.
Post in your internal slack that "Hey, we just shipped the explore page to our production servers πΏ, make sure to tun on staff ship. Feedbacks welcomed π"
Then sit back and relax for some time till the feedback arrives. If it has any bugs fix it ASAP.
Staff ship is a feature flag that is available only for site admins possibly mods, where the admin can turn on the flag and check whether the feature is working or not.
When staff ship is enabled admins can see this special admin/performance bar above the navbar which is heavily inspired by GitHub.com
Taskord's admin bar
GitHub's admin bar (GH Enterprise)
Release the /explore
page for selected users, usually, you can do by shipping to
Feedbacks are critical, you will get a lot if the userbase is huge, make sure to evaluate quickly and fix the bugs in upcoming Iterations.
Error Tracking is also a part of feedback, this needs to be done automatically. We use Sentry to track errors and patch the fix quickly.
This is how Sentry looks like
If all settled and good to go, just go ahead and remove all the feature flags for /explore
page. Make sure to keep an eye on Sentry for a few days.
Hope this article helped you π
Happy Shipping π