Development Setup

I have been thinking a lot about a good and scalable development setup for small teams.That means, as team size grows, things don’t have to be changed.

Server machine(s):-

I am planning to have all of these one server machine (IBM) in virtualized environment. Subversion and Trac can go in one VM, perhaps under Apache. Second VM can have Apache for web-apps, third VM can have mysql, fourth VM can have MailServer and ActiveDirectory/LDAP?

Do you think above makes sense?

Developer/Designer workstations:-

Though there should not be any restrictions on using a development IDE of choice, but I have realized if entire team uses same IDE things get far easier. The development workflow is easy, knowledge sharing and management is easy. Eclipse, which Aptana is based on, can be used for variety of projects.

Ubuntu is good operating system, I have been using for over one year, not regularly but quite often. There might be Windows/OSX boxes for designers.

Why do we need Apache and MySQL on each workstation?

I think, developers are more effective if they have their own sandbox. They can play with code freely, take certain risks and innovate. There is no harm done. We do face issues, when it comes to sync mysql data into local mysql instances, I think it can be done via some scripts.

Virtualization can be done on client and I am thinking to do it, specially for folks who are not comfortable with Linux, so they can be on Windows while they also have access to Linux VM, they are encouraged to use Linux VM. They can use Windows box (Host), if something is messed up in Linux VM and there is strict timeline that doesn’t allow to fix VM.

Over the period, these developers would be comfortable with Linux and that is the time they can start using real Linux box :-)

These are some thoughts, I might be missing something here. I hope, I would write more in another post.

As you know, I have been on break and been thinking on all these things. BTW! I don’t work with Yahoo! anymore, once I am done with break I have to figure out what to do. Perhaps, time to be in my own city and do something my own (consultancy, startup or something like that). Heh, that’s news, if you have read so far :-)

Technorati tags: , , , , , , , , , , , , , ,

  • Hi Abdul,
    Nice to get you back. I am actually missing the tweets and sometimes thought to DM you but for one reason or other could not.
    Congratulations and hope you all the best for whatever you chose to do.
    The thing most interesting thing here is I am also thinking in the same line as you. But I think I will take some time for that.Its always good to be in a place where you can concentrate more on the work and grow. Now world has shrunk a lot and there is nothing impossible from anywhere. Its better to be placed well and healthy so as to maximise the efficiency.
    Tweet often, it shortens the distance.
    All the best.

  • Hi Abdul,
    Nice to get you back. I am actually missing the tweets and sometimes thought to DM you but for one reason or other could not.
    Congratulations and hope you all the best for whatever you chose to do.
    The thing most interesting thing here is I am also thinking in the same line as you. But I think I will take some time for that.Its always good to be in a place where you can concentrate more on the work and grow. Now world has shrunk a lot and there is nothing impossible from anywhere. Its better to be placed well and healthy so as to maximise the efficiency.
    Tweet often, it shortens the distance.
    All the best.

  • Hi Abdul,
    Just wanted to know what virtualization platform you are going to use? That becomes all the more important if you are going to rely on virtual machines for all your VMs.
    Thanks,
    Arun.P.C

  • Jason

    Get rid of Linux! Use Windows Server System 2008 and SQL Server 2008. I know I know the usual exclamation ” Holy crap!” But trust me it will save lot of time and prevent tons of headache.
    You will be able to concentrate on product development rather wasting time how to figure out mundane things that we take for granted in Windows.
    Check out technet.microsoft.com for more information.

  • All of it makes sense. Separate MySQL VM makes a lot of sense when one realizes the kind of assumptions developer’s can make. Only for a moment I thought you should have combined Apache and MySQL on one VM. I would add a bind9 DNS+ a DHCP server with dynamic reverse DNS configured to the list. To the e-mail server I would add an internal GNU mailman. What do you need Active Directory/LDAP for ;-), un-less you want to manage central authentication and mess with Samba (which is increasingly difficult with Vista) or need have a central corporate addressbook served from directory. Wonder if you want to try out Kolab for shared calendering, addressbooks and other groupware goodies. Actually you can have a VMWare Server running on 1 or 2 central boxes which developers can use with VMWare Server’s client if their machines are not powerful enough. But your world looks very good even without the things I am suggesting. -Tarun

  • Hey Abdul,
    Its really a news for me!I liked the idea of going back to the city you belong.It will definitely provide you more satisfaction and on the top of it you would be able to be around your parents when they really need you.
    All the best,
    Deb

  • Hey,
    Watz up with u and Yahoo! 2 don’t seem to be together for more than some months :)
    nyways, do remember wat we chatted abt the other day…am still game for that
    Best of luck and do keep in touch.
    Abhishek

  • Ashish

    Hey,
    This is really a nice and quite informative post about the recommended setup. It specially helps me a lot as I am a beginner with AS3 and Flex, but also love the Linux platform at the same time and was looking to find a way to have both in one place, rather than going dual boot.
    And yes, each developer having his/her local sandbox surely helps by leaps and bounds.
    I can vouch for this cos, currently the place I am in ..not even one developer has a complete local environment which causes frustration,headache and loads of time wastage.
    Thanks you, again for the above post.
    Wish you all the best in your new en devours.

  • Hi ,
    Any thoughts on WAMP?
    I guess that will help create a nuetral setup with mysql apache and php.
    And eclipse with flex builder plugin might be one that you would like to consider.
    Linux for many developers might be too much to deal with.. Especially because most flex devs are people moving from FLASH background.
    Thanks,
    Venkat

  • @Venkat WAMP is surely good option for developer sandbox, it’s one installer and works fine. I use it for some developers now, but eventually everyone would move to Linux except designers :-)
    Our developers do various things, not just Flash/Flex. That’s kind of team I want to build who understands Web and should be able to work on various technologies. There are some experts, who know all but expert at any one of things.
    Thanks
    -abdul