architecture - What are the best practices for large continuous integration? -
My organization has started a continuous integration project to automate the creation of its large public-facing web site. From "big", I mean 30+ RES services, integration for content and an external CMS, and many ASP.NET front-end systems to mix Linux and Windows server boxes with Java and C Written with a mixture of #
We work with seven cross-disciplinary teams after a tight process, which are running for all weekly sprint chakras.
We have automated the creation and deployment of each individual services, but now our challenge (currently manual) is to automate the integration and final acceptance test.
My concerns are:
-
What happens when a service changes its contract and its users update their code, but the initial service Does the contract change? Will we ever get a stable build?
-
Dependency testing is a nightmare in manual system, and I can not see it better in automated systems. (We use Maven with the Nexus in the Java world, with the plan to use Ivy, we are trying to squeeze the NIT code with interesting results.)
- < P> How deep should our tests be? How often should they run?
When a service changes its contract and after that What happens if the consumer updates their code, but the initial service changes its contract? Will we ever build a stable build?
It seems to me that besides looking at continuous integration, you will need to see how you are managing your source control system. If you have different teams working on the web service and its consumers, then this work can be done in a convenience branch. Once the change in the web service contract is checked in the feature branch, the users of that service can be updated, and once the tests given on those feature branches can be merged in the trunk.
Test is done automatically every time in an investigation for the trunk, and if they do not pass, then the first priority should be fixed which should break them.
What are the real problems with dependence? Whether you are using Maven or Ivy, once you have the dependency defined for your projects, it should be very smooth. Once you receive a repeatable work of continuous integration, there will be no injury to it - these things will help by quickly pointing out the exit from time to time.
Comments
Post a Comment