Line 1: |
|
|
+ |
= Data Tier =
|
|
|
+ |
== Relational Database ==
|
|
|
+ |
Your relational database is a critical element for performance and disaster recovery. The provided Derby
|
|
|
+ |
database, while sufficient for proof-of-concept work, is generally insufficient for the enterprise. Fullfeatured
|
|
|
+ |
databases like Oracle, MS SQL Server, or MySQL are better options. Ideally, the database
|
|
|
+ |
âwhichever is usedâshould be configured for high-availability, high-performance, and be backed-up
|
|
|
+ |
regularly.
|
|
|
+ |
10-20 GB of database storage should be sufficient for most environments. For Oracle, an architecture
|
|
|
+ |
based on Oracle RAC is recommended; for Microsoft SQL Server, a clustered configuration is preferred;
|
|
|
+ |
for MySQL, utilize MySQL Cluster.
|
|
|
+ |
== File StorageâCodeStation ==
|
|
|
+ |
The data tier also provides log file and Codestation artifact storage. Artifacts represent deployable items
|
|
|
+ |
such as files, images, databases, configuration materials, or anything else associated with a software
|
|
|
+ |
project. By default, these are stored in the var subdirectory in the uDeploy server installation directory.
|
|
|
+ |
In an enterprise environment, the default installation might not be ideal, see the section called âRelocating
|
|
|
+ |
Codestationâ for a discussion about enterprise options.
|
|
|
+ |
uDeploy's secure and tamper-proof artifact repository ensures that deployed components are identical to
|
|
|
+ |
those tested in preproduction environments. Without the repository, artifacts would have to be pulled from
|
|
|
+ |
network shares or some other system, increasing both security risks and the potential for error.
|
|
|
+ |
The artifact repository uses content addressable storage to maximize efficiency while minimizing disk
|
|
|
+ |
use. The repository tracks file versions and maintains a complete history for all components. Maximizing
|
|
|
+ |
efficiency is important, since the artifact repository stores files that are much larger than source files.
|
|
|
+ |
Association of files with Components is built into the system. Without any configuration, each Component
|
|
|
+ |
gets its own area of the repository for its files. There is no chance of confusion or mix-up of files to
|
|
|
+ |
Components. And, each Component Package is mapped to a specific set of files and versions corresponding
|
|
|
+ |
to the Component.
|
|
|
+ |
The artifact repository comes with a client application that provides remote access to the repository. Using
|
|
|
+ |
the client, the user can add/modify files, create Packages, retrieve files, as well as view the history of
|
|
|
+ |
changes. The client application provides a file transfer capability that can be used to deliver files to target
|
|
|
+ |
servers during deployments. This built-in transfer mechanism verifies the integrity of all transferred files
|
|
|
+ |
against their expected cryptographic signatures, thus guaranteeing that files have not been corrupted during
|
|
|
+ |
transmission or tampered with during storage. In addition to the client application, the artifact repository
|
|
|
+ |
exposes REST-based web services. These services are used to build integrations between build systems
|
|
|
+ |
such as AnthillPro and uDeploy. Such integrations automatically place the artifacts produced by the build
|
|
|
+ |
process in the artifact repository, thus making the artifacts available for deployment.
|
|
|
+ |
=== Relocating Codestation ===
|
|
|
+ |
By default, the data tier's log files and Codestation artifacts are stored in the var subdirectory within the
|
|
|
+ |
uDeploy server directory. Ideally, this data should be stored on robust network storage that is regularly
|
|
|
+ |
synchronized with an off-site disaster recovery facility. In addition, the uDeploy server should have a fast
|
|
|
+ |
network connection to storage (agents do not need access to the storage location). In Unix environments,
|
|
|
+ |
you can use symbolic links from the var subdirectory to network storage. On Windows platforms there are
|
|
|
+ |
several options for redirecting logs and artifacts, including mklink (supported in Windows 7 and later).
|
|
|
+ |
Data Tier
|
|
|
+ |
2
|
|
|
+ |
If you want to relocate Codestation, relocate both the var directory as well as the \logs\store
|
|
|
+ |
directory. A good rule-of-thumb for determining Codestation storage requirements is: average
|
|
|
+ |
artifact size * number of versions imported per day * average number
|
|
|
+ |
of days before cleanup
|
|
|
+ |
Distributed teams should also take advantage of uDeploy location-specific Codestation proxies to improve
|
|
|
+ |
performance and lower WAN usage.
|
|
|
+ |
== Data Center Configuration ==
|
|
|
+ |
This section provides several installation recommendations.
|
|
|
+ |
=== Cold Standby ===
|
|
|
+ |
uDeploy employs the cold standby HA strategy for the application tier. When the primary system fails,
|
|
|
+ |
the cold standby is brought online and promoted to primary server. Once online, the standby reestablishes
|
|
|
+ |
connections with all agents, performs recovery, and proceeds with any queued processes. Because the most
|
|
|
+ |
intense work is handed-off to agents, a high performance configuration should not have an agent installed
|
|
|
+ |
on the same hardware as the main server.
|
|
|
+ |
The uDeploy server aggressively utilizes threading and takes advantage of any additional CPU cores
|
|
|
+ |
assigned to it. A small to midrange server with 2-4 multi-core CPUs is ideal, but, because it is relatively
|
|
|
+ |
easy to move an existing uDeploy server installation to a new machine, starting small and scaling as needed
|
|
|
+ |
is a very legitimate strategy. The memory available to the application tier should also be increased from
|
|
|
+ |
the default 256 MB to something on the order of 1 GB.
|
|
|
+ |
=== Platform Considerations ===
|
|
|
+ |
uDeploy agents are platform agnostic, and can be installed on anything that provides a Java 1.5 JDK.
|
|
|
+ |
The server process is also platform agnostic. Our customer base includes large uDeploy installations on
|
|
|
+ |
Windows, Solaris, AIX, HP-UX, other Unix flavors and various Linux platforms, all running successfully.
|
|
|
+ |
We have seen somewhat better performance from Unix and Linux operating systems, but recommend
|
|
|
+ |
installing on the platform with which you are most familiar and comfortable.
|
|
|
+ |
Recommended Server Installation
|
|
|
+ |
⢠Two server-class machines
|
|
|
+ |
UrbanCode recommends two machines for the server: a primary machine and a standby for fail-over.
|
|
|
+ |
In addition, the database should be hosted on a separate machine.
|
|
|
+ |
⢠Separate machine for the database
|
|
|
+ |
⢠Processor 2-4 CPUs, 2+ cores for each.
|
|
|
+ |
⢠RAM 8 GB
|
|
|
+ |
⢠Storage Individual requirements depend on usage, retention policies, and application types. In general,
|
|
|
+ |
the larger number of artifacts kept in uDeploy's artifact repository (CodeStation), the more storage
|
|
|
+ |
needed.
|
|
|
+ |
⢠Network Gigabit (1000) Ethernet with low-latency to the database.
|
|
|
+ |
Data Tier
|
|
|
+ |
3
|
|
|
+ |
Agent Minimum Requirements
|
|
|
+ |
Designed to be minimally intrusive, agents require 64-256 MB of memory and 100 MB of disk space.
|
|
|
+ |
Additional requirements are determined by the processes the agent will run. Agents should be installed on
|
|
|
+ |
separate machines. For evaluation purposes, a good option is to install an agent on a virtual machine.
|
|
|
+ |
=== Typical Data Center Configurations ===
|
|
|
+ |
Most organizations configure the data tier with network storage and a clustered database. The service tier
|
|
|
+ |
performs best when it's on a dedicated, stable, multi-core machine with a fast connection to the data tier.
|
|
|
+ |
A standby machine should be maintained and kept ready in case the primary server goes down.
|
|
|
|
|
|
|
+ |
=== Recovery Using a Database Back-up ===
|
|
|
+ |
To prepare a back-up of your uDeploy installation, copy the database and server files. Back-up the server
|
|
|
+ |
by copying the server directory along with all subdirectories. This ensures that you can revert to a server
|
|
|
+ |
version that matches your configuration, while also preserving your artifact repository.
|
|
|
+ |
If you are not using the Derby database, copy the database too. If you are using Derby, it was copied along
|
|
|
+ |
with the server files.
|
|
|
+ |
Install the back-up using the original path, or some configuration files will need to be changed.
|