Foi uma palestra bastante interessante, e a idéia foi dar um aparado geral de como aplicar os conceitos de desenvolvimento de software para ser utilizado na programação por meio de cloud computing.
O principal ponto é ter um sistema de centralização de acesso dos usuários, permitindo, por exemplo, que se um colaborador sair da empresa, apenas é necessário alterar o acesso num lugar, evitando o risco de falhas de segurança em alguma aplicação que se esqueça de retirar as permissões do ex-colaborador. Para implementar isso, os palestrantes sugeriram um modelo usando o LDAP.
Além desse ponto central de controle de acesso, um projeto de desenvolvimento ideal de software deve conter 4 peças importantes:
- Um software de controle de pendências, como por exemplo o Redmine;
- Um software de controle de versão, que poderia ser o Subversion ou o Git;
- Um software de integração contínua, como exemplo o Hudson, que seria responsável em gerar versões funcionais do software em desenvolvimento e assim agilizar a descoberta de problemas no código fonte. Essa parte do modelo é a que tem mais problemas com cloud computing, pois atualmente não tem nenhum software que suporte isso de forma nativa;
- Um software de gerenciamento de bibliotecas, como exemplo o Nexus.
Nesse modelo, o software de controle de versão seria a peça chave. Ele se comunicaria diretamente com o software de pendências, gerando tickets de necessidades de implementação e de bugs, sendo que o software de controle de versão também se comunicaria diretamente com o software de integração contínua. O software de integração contínua se ligaria com o gerenciador de bibliotecas, e todos os 4 estariam integrados com o LDAP.
Como sugestão de sites com algum tipo de opção de desenvolvimento seguindo esse modelo ideal, foram sugeridos:
- Opensource: GitHub, Atlassian, Nexus, GoogleCode, Java.NET, Sourceforge;
- Comercial: GitHub, Locaweb, Atlassian, Collab.net
E como sugestão final de site, para servir como referência: toolscloud, no twitter: @toolscloud