What is HudsonThis is Hudson
Chapters 1. Introduction of Hudson
Hudson? What's Hudson? The Hudson is a high-performance and widely used open sourced, open system continuously integrated solution that provides developers with a robust way to track version changes and initiate a wide range of build processes. The Hudson system can be integrated with almost any conceivable tools. Hudson not only provides a single stage for ongoing integrations but can also be expanded to include supporting core applications such as release management, reporting, monitoring and a range of applications that are subordinate to ongoing integrations.
Briefly, if you can think it, Hudson can do it. Hudson is there to help, from automation of system administrative work with Puppet and checking the IT environment with Cucumber to writing and debugging PHP codes and just writing Enterprise Java application. The first use of the concept of "continuous integration" in the field of computer programming is attributed to Martin Fowler and Kent Beck in Beck's groundbreaking 1999 Extreme Programming Explained, the first paper to address the concept of system creation to continually design and test a system in reaction to changes in versioning.
Over the ten years since this approach was launched, ongoing implementation has become a benchmark throughout the sector. Let's look at the difference between a design workload with a continuously integrated and a design workload without that. Each group concentrates on the base and a set of api' s that all other groups share, one group on a sophisticated front-end web applications and another group on back-end system such as invoicing and inventories connected to a large Enterprise Service Bus (ESB).
That' s what the company will feel like in 2011: it's very bustling, and when you find a little spare space, there's always someone who can do it. If there is no continuous process of integrating, the various groups must include the "integration time" in the timetable. Unity testing can be performed by single programmers, but integrations testing is only performed when the system is up and running for deployment.
When the Web applications group must be made available for deployment to manufacturing, all other groups must be synchronized with this group and ensure that all test are passed during a buil. The bigger the developer crews get and the more complicated and complicated the system, the more your crews spend on integrating and debugging.
The development of advanced solutions is virtually unfeasible without ongoing implementation. The system uses continuously integrated to complete building, testing, deployment and integrating in answer to each individual comit. When a Web development engineer in the Web app group check-in at 2am, Hudson starts a builds, does lab testing, distributes the source to a new machine, and does a series of integrations as well.
In the event that this construct is unsuccessful or the testing encounters an unforeseen state, everyone is informed of this error. If you have ongoing integrations, nobody has to give up everything and run a full version buildup, these builder are created every days, and in the most advanced environment a fully debugged and validated system can be used in the manufacturing environment at any given moment.
That is, if you are automating building, testing and verification with a utility like Hudson, you can develop your application further without having to await (or synchronize) a manually built, tested and verified ccess. If your team doesn't have to stop testing and working together, it's much simpler to include more development staff in a team.
If you do not have ongoing integrations, you must stop and sync the releases. Ongoing implementation reduces the risks associated with a particular product lifecycle. One other way to think about Hudson is engineering indebtedness. It is much simpler from the point of view of build and test to create a system without having to deal with device testing and onboarding.
While you could accelerate the deployment period for a particular property by simply skip the testing, you will end up paying ten times as much for this fix. Ongoing integra-tion and the obligation to test-driven develop-ment help to minimise your risks through technological indebtedness. Since you perform the device and integrate testing every few-minute, you will not be able to leave issues unanswered.
If one develops without continual reintegration, one collects the potentials for technological debts. They can decide to fix errors as they are implemented to minimize both the extent and seriousness of errors by detecting them early, or they can design for a week and run testing at the end of the design time.
Whilst you only provision your Hudson deployment once a week for deployment, it is provisioned only once a week, and if you're faced with ever more complicated installations, this level of detail ensures that all crass redirections to the highest level of workmanship are limited to a simple comit. Companies use utilities like Hudson to set up manufacturing provisioning and manage their cloud-based infrastructures automatically.
In this way, the concept of continual integration is carried into the field of continual deployment. Whilst the notion sounds dangerous when working in a relatively sluggish sector, people like Facebook and people like Flickr have developed sophisticated developer/operating system (devops) that allow them to make codes available for use in the field several days a week.
Whilst this is still limited to the biggest implementations, the concept of directly linking your continuously integrating servers to your manufacturing system is becoming more popular. The Hudson approach can be an important part of the automation of these ongoing provisioning efforts. Tried-and-tested integrations with software like Puppet and Cucumber enable innovators to continuously integrate in some unexpected ways.
The Hudson can also be seen as a universal scheduling tool, a substitute for either Citron or Quartz in your manufacturing networks. Whilst Hudson is generally seen as a design architecture, a category of infrastructures normally seen separately from the rare field of manufacturing, nothing prevents you from using Hudson as a universal scheduling or servers in a manufacturing net.
When you have a planned service request or when you need to run a series of on-demand orders on a manufacturing distribution system, you' re installing Hudson and you have an easy-to-use user experience and a utility that integrates with everything in the class. Nothing prevents you from using Hudson in your manufacturing operations.
The Hudson Group has an emerging fellowship of engineers and organisations interested in taking Hudson to the next stage of the game. In the course of its story, the Hudson consortium has been lacking a formality and a trial has been averted. Having emerged from a domestic animal program, Hudson's leadership was ad hoc. Whilst this ad hoc model has been scalable for several years, the Hudson Fellowship has established a need for more informal processes on topics such as phase change managment, source codes and general engineering orientation by deciding to join and help with the work.
The Hudson consortium now wants to create a more streamlined and structured approach with the ultimate objective of providing a sound, open and clearly regulated enviroment and a design and approval procedure for the creation of a high-quality and dependable ongoing IPS. Improve the Hudson kernel by strengthening the test belts, and create a new belt that allows more in-depth evaluation and test of Hudson's performances.
The Hudson project's major medium-term objectives include: Hudson's improved dependability and robustness will allow more predictability for end user behavior and also allow an eco-system of interested third parties to provide Hudson supporting as well. Improve Achievement - The focus of the program is on enhancing Achievement, especially for companies that use Hudson to help a large number of programs.
Hudson is currently focusing on migrating Jelly's UI system to a more advanced way of providing a robust, responsive UI for Hudson. JSR 330 off-the-shelf device models supported - Initial effort has been made to migrate the plug-in-API to a JSR 330 compliant architecture.
Not only does this make it easy to create and test Hudson plug-ins, but Hudson also focuses on how Java 2011 is designed using framework and library tools such as Google Guice and the Spring Framework from VMWare. JAXRS Standard Web Service - Many of Hudson's plug-ins and kernel legacy applications are moved to a system that presents UI as a set of UIs.
The fundamental efforts will create the conditions for Hudson to move to a more rich, responsive UI structure that may involve migrating to a SOFEA UI paradigm. Backward compatibility - Despite this impressive collection of design concepts, the Hudson fellowship is also focusing on the support of legacy plug-ins and Hudson API.
Whereas the Hudson kernel is EPL licenced, Hudson is a package for several Hudson plug-ins. The plug-ins can be included in a wide range of licences, and if you are sharing Hudson with a number of third-party plug-ins, you should check each plug-in product to find a particular licence.