3 ms·
My team and I spent a lot of time developing internal tools (and/or integrating them with other tools like CampaignMonitor and stuff). Throughout our massive a
by chewxy 14y ago
My team and I spent a lot of time developing internal tools (and/or integrating them with other tools like CampaignMonitor and stuff).
Throughout our massive amounts of failures, we've learned some things (and some things the hard way): there are basics, and there are nice-to-haves. Get the basics right.
Our basics include an entirely zeroMQ based service-oriented architecture (after 8-9 different iterations over the past 4 years). We spent a lot of time writing a ZMQ based DHT, and service wrappers (kinda like zeroRPC[0]). Other basics include a standardized front-end A/B testing based off genetify[1], email service (with AWS' SES), paypal service, our fair matching services and many others.
The one thing to note is that these basics didn't come overnight though. It came through many many iterations of different products that failed. We merely picked up the components that worked best.
There were things that were nice to have like automated testing and deployment options that we considered. Even using tools like Puppet and/or Chef, we determined, were not quite a good use of our time, considering our release schedule isn't all that crazy, and deployments can be managed by one human being.
But our situation does not apply to you. You need to think about what fits your situation, and your styles. Maybe you are the kind that pushes a release to production servers every 5 minutes. Then yes, having an automated test and build system would be extremely useful.
Start with simple stuff like crons and tiny scripts. Let your internal tools evolve on their own. Don't jump in to write massive automation for your systems. Instead, do it in small parts, just enough to help you.
Hope this helps.
[0] http://zerorpc.dotcloud.com/ http://zerorpc.dotcloud.com/
[1] http://genetify.com/demo/ http://genetify.com/demo/