dope.kit: A Stylish Git Template for Cloud Services
We at dope.security are open-sourcing our cloud service git template called dope.kit under an MIT license.
It’s the template we use each time we start a new cloud-based service. We have 20 services up and running today for dope.security based around this template.
Give me a routine
I hate having to think hard when it comes to starting my day. Give me a routine, a pattern, and let me settle in to the flow for the day. One of the things I enjoy about kicking off each morning when developing at dope.security is this:
Setting aside the magic of the command “say,” the above one line make command gives me a personal “up and running and tested in AWS” service at the start of my day.
It doesn’t matter which repo I’m in. The above just works. I can cd into any of the dope services, run the same set of make commands, and get my own service instance to develop and test against.
This has become my daily muscle memory — make install build plan deploy component-test; say all deployed and tested.
When I joined dope.security less than a year ago, I was deploying code changes to AWS within a day. Moving to a new service on day two, no re-training required.
Even as a small startup with a handful of developers working on the cloud-backend, the investment on a simplified tech stack and a consistent interface for developers across all services was there. Go to the service repo, check out the code, run the same make commands you already know — profit.
As a team, we’ve refined down to a few key requirements for our services to help developer flow:
- CI/CD zero human touch to prod — merge to main and it goes to prod in 15 minutes or less
- Simplified tech stack — use a few things well
- No manual testing — worth the trade-offs to be able to iterate and deploy in smaller, faster pieces
- Developer day-to-day use is first class — we can use the same basic commands as the pipeline to develop and test our code
Our use of make as a task runner for developers is a window on these practices. We’ve baked these into our template service. We’d like to share what we’ve learned and hear back from others via issues or pull requests on the GitHub repo.
So, have a look at the dope.kit.
It’ll get you up and running with a “hello world” service using AWS, python, terraform, and even CircleCI…but the specific tech stack is not the point. YMMV. But we’re happy that this represents a very fine-tuned way for developers to get feedback and stay in their flow each day across multiple services.
Less thinking. Less undifferentiated heavy lifting each time. Give me my routine and the day opens up.
We’re planning to follow up with more posts on our overall way of working and developing and where the above approach fits for us as a startup with a small engineering team. We're hoping you enjoy the posts and will be happy to interact on LinkedIn as they are shared.