Continuous delivery tool ThoughtWorks Go deployment step by step
Posted on May 13, 2014 by Zieckey | Leave A reply 1. About ThoughtWorks Go
Go is an open source, continuous integration and release system developed by ThoughtWorks in the Java language, designed to enable software development companies and teams to automate the process of building-test-release software products and to continuously release software products. The product was announced in February 2014 as open source based on the Apache 2.0 Open source protocol. Its predecessor was CruiseControl. Its official profile is "automate and streamline the build-test-release cycle for worry-free, continuous delivery of your product".
This platform-based product go enables businesses and organizations to continuously improve, integrate and deliver high-quality products. The increasingly competitive business environment requires companies to innovate quickly while maintaining the stability of core processes. Go can provide a clear release pipeline for all teams, avoiding inefficiencies and redundancy.
2. Continuous integration/delivery continuous integration (continuous INTEGRATION,CI) is a basic practice that is not the most dazzling work in software development, but software integration is critical in today's complex projects. CI works as the center of Software Development, because it ensures the health of the software by building on each change. If we don't focus too much on this less dazzling basic work, such as "tidying up the development environment, packaging the build software," and so on, we have to perform these low-level tasks in the future, usually at the most inconvenient point in time (for example, before the software is ready for use), This is also the time of the error (which means that at this stage we release a software version most of the time, often with overtime to deal with unknown foundational issues, such as configuration item modification, etc.). Keep the build "light green" principle in mind, so you don't have to worry about whether everything is still working. It's like exercising, yes, it needs to be self-conscious; Yes, it can be painful, but it's worth it to keep you in shape and in good health so you can take part in more important activities.
Take a picture of the official ThoughtWorks company to illustrate the process:
3. Deployment
Download two installation packages from the official website: go-server,go-agent. Download page: http://www.go.cd/download/. We describe the Linux platform as an example, so we downloaded two RPM packages: go-agent-14.1.0-18882.noarch.rpm go-server-14.1.0-18882.noarch.rpm.
3.1 First install Go-server
Because it is developed in the Java language, the installation package relies on the Java Runtime Environment, where we choose the Java package as: Java-1.6.0-openjdk. After the installation is complete, if there is no error, the Go-server will start up directly and listen to Port 8153. We can access the Go platform through Url:http://go-server.installed.hostname:8153/go, where we can manage, configure, build, and deliver our projects on a continuous platform.
The configuration process is as follows:
3.2 Re-install Go-agent
Go-agent can be deployed on the same server as Go-server, or on different servers. Go-agent after the installation is complete, if there are no errors, the following prompts will tell us how to configure and start the go-agent:
Now, Edit/etc/default/go-agent and set Go_server to the IP address of your go SERVER.
Once that's done start, the go Agent with '/etc/init.d/go-agent start ' 3.3 Go architecture design go uses server-agent mode. Server can be understood as a dashboard that manages, displays, configures pipeline processes for various projects (compilation, unit testing, packaging, publishing, etc.) and stores the built-in artifacts (archive files, such as a war package). Agents are used to perform specific build operations, as many projects have cross-platform requirements, such as Linux and Windows two platforms, Even the Linux platform is divided into Centos5.4 and centos6.2 and so on, so that one server can connect with multiple agents, the agent supports multiple mainstream operating system platforms. Detailed information such as:
3.4 Examples of our practice
4. Other 4.1 go-server profile:/etc/go/cruise-config.xml4.2 mail, username, password settings:/etc/go/cruise-config.xml: <server artifactsdir = "Artifacts" commandrepositorylocation= "Default" serverid= "743624fd-263b-47d2-a2e4-c0cffc8051ec" >
<security>
<passwordfile path= "/etc/go/users.properties"/>
</security>
<mailhost hostname= "mail.corp.qihoo.net" port= "25″tls=" false "from=" [email protected] "admin=" [email protected] "/ >
</server>
Reference:
1. http://www.thoughtworks.com/products/docs/go/current/help/
2. Continuous integration-the way of software quality improvement and risk reduction
Continuous delivery tool ThoughtWorks Go deployment step by step