UrbanCode Deploy Features
UrbanCode Deploy gives you all the tools needed to automate your application deployment pipeline. With UrbanCode Deploy, your deployments will be faster than ever and have fewer errors. Deploy as often as you like, on demand, on a schedule, and self-service. UrbanCode Deploy will help you shorten your time to market.
UrbanCode Deploy's distributed agent model can run processes on thousands of machines simultaneously. Its process automation integrates with your existing tools, and makes it possible to automate virtually any system. No programming knowledge is required to create your process automation using UrbanCode Deploy's graphical editor.
Graphical editor (screenshot) The graphical process editor lets you create component processes using integrated plugin steps and your own custom steps. At the application level, you use it to assemble related component processes into an orchestrated deployment process for your entire application or system.
Reusable process templates Component templates allow you to save and reuse component processes and properties. Components based on templates inherit the template's properties and process. This makes setting up new component processes very quick. If you have many applications that use the same component process, you can use the same component process to deploy to each of them, for example, deploying a war file to several WebSphere servers or clusters.
Open plugin system UrbanCode Deploy comes out of the box with dozens of plugins that automate UrbanCode Deploy's integration to popular tools. Plugins give you distinct pieces of automation called steps. By combining individual steps, you create a fully automated process that can replace many of your existing scripts and manual processes. You can also wrap your scripts into plugin steps. The plugin update system automatically keeps your plugins up to date across all your deployment targets. You can be sure that every deployment target has the most up to date version of your scripts.
Distributed workers UrbanCode Deploy Agents perform the actual work of deploying components. An agent is installed at each deployment target in your environment. Agents are used to scale the system, freeing up the UrbanCode Deploy server to handle deployments across thousands of deployment targets concurrently. Agents also have an auto upgrade functionality, so you never have to upgrade agents manually, which is not do-able when you are managing hundreds or thousands of servers.
Cross platform Modern enterprises typically have to support multiple platforms, Java, .NET, and a variety of legacy platforms. UrbanCode Deploy is a tool that is not specific to any platform, technology or language. It can automate deployments across virtually any platform or system.
UrbanCode Deploy gives you the tools you need to automate deployments in your environment. UrbanCode Deploy's process automation can be used to replace non-standard home grown scripts; no programming required. Create processes of any complexity, assign them to your deployment environments, and execute them reliably, time after time.
The powerful configuration management features in UrbanCode Deploy permit configuration-only deployments as well as traditional code and configuration deployments. Configuration management lets you reuse the same application process across multiple environments without changes, increasing your efficiency and saving time.
Content deployments (screenshot) UrbanCode Deploy supports static content deployments in a number of forms: file transfer, incremental updates, and rollback using secure transport.
Middleware code deployments UrbanCode Deploy supports middleware application deployments and includes integrations for the most popular application server platforms: Apache, IIS, and WAS for starters with auto-discovery, auto-configuration and rollback.
Database deployments Deploy your SQL updates in just the order you need, then create a Snapshot (see Snapshots below) of the component versions you have deployed. Use the snapshot to perform subsequent deployments and your incremental updates will be applied in the correct sequence automatically.
Rollbacks The inventory tracks everything you have deployed, so you can use the inventory to identify the versions to restore in a rollback. UrbanCode Deploy supports two main types of rollback; replace with last deployed, and rollback of incremental deployments.
Middleware configuration (screenshot) UrbanCode Deploy manages the differences between the configurations in each environment. At deployment time, it will update or replace configuration files with the correct versioned configuration settings for a specific environment or server. When deploying web applications, UrbanCode Deploy will also configure application server settings through direct integrations.
Orchestration Orchestrate your application deployment using processes that you have defined at the component level. You can sequence the components to manage your dependencies, include split or join processing, conditional logic, and parallel processes, so that the required packages are deployed in the correct order across multiple platforms.
Snapshots Different deployment teams deliver components on different schedules. Part of release management is coordinating the different versions of components to determine a combination that works. Once this combination is established UrbanCode Deploy lets you captured it as a Snapshot. The snapshot can be promoted as a single item, rather than multiple components. Keeping track of the correct version of multiple components is error prone, confusing and slow. Snapshots also capture the specific version of the deployment process used to deploy each component in a lower environment, for example, SIT, and this ensures that deployments to upper environments like PROD, are identical, and successful. Changes made to the deployment process in UrbanCode Deploy do not affect the deployment process captured in the snapshot.
Model based deployment When an application is installed the way you want it, create a UrbanCode Deploy snapshot of it. The snapshot captures, which components and versions make up your application. When you want to deploy the snapshot to a new environment, UrbanCode Deploy figures out what version is on the new environment and what should be on the new environment, and makes it so.
Environments contain one or more deployment targets. These deployment targets are called resources in UrbanCode Deploy, resources have roles, permissions, and approvals. UrbanCode Deploy gives you tools to manage all of these features.
Security roles You associate security roles with environments and ensure controls over who can deploy to what environment.
Environment approvals for change Environments can have approvals attached to them. Any deployment going into a specific environment has to meet all the approvals attached to it before deployment can be completed.
Application Environment Models Each application contains a model of the environments where it can be deployed. Environments are made up of resources or resource groups. Resources within an environment are associated with components in the application — consequently, the application knows where it can be deployed.
Configuration of deployment targets UrbanCode Deploy supports configuration of deployment targets, (called resources in UrbanCode Deploy) through resource roles, which store parameters, and their specific values for each resource defined in an environment. Resource roles can be populated through manual configuration, and in some cases, auto-configuration is available via plugins; WebSphere Application Server, WAS, and IIS at this writing.
Dynamic resource groups Unlike static resource groups where the UrbanCode Deploy administrator specifies the resource members of the group when it is configured, in dynamic resource groups, the administrator specifies rules for inclusion in the group when it is configured. When a resource becomes available, the rules for the existing dynamic resource groups are evaluated, and they determine if the resource should belong to one of the dynamic groups. If so, the resource is automatically included in the appropriate dynamic resource group(s). Examples of inclusion rules are an IP address pattern or a value for a specified resource property.
UrbanCode Deploy lets you deploy the same application across multiple environments without changing the deployment process. Test the deployment process along with the application.
Inventory The inventory stores the configuration that tells you what is where, and what should be where. The inventory ensures traceability. It supports full and incremental deployments, as well as rollbacks.
Environment specific configurations (screenshot) UrbanCode Deploy's environment templates let you build on the environment specific configuration. This allows you to have properties that are environment dependent. Like a different password for the database server in different environments.
Configuration templates Configuration template files are placed on the file system of deployment targets. When the template file is deployed, UrbanCode Deploy replaces its property value tokens with values that are specific to the environment where it has been deployed, for example; httpd.con for Apache, or web.config for IIS could become templates. The advantage of having these files as templates is that templates are stored in the deployment tool as opposed to an artifact repository. So, they are accessible to the people doing the deployment, when they are needed. These templates are stored in the configuration management section of UrbanCode Deploy.
Snapshots Already mentioned in the Deployment automation section, UrbanCode Deploy snapshots are a very efficient configuration management tool. A snapshot captures the configuration of the environment (which is versioned), and it captures all versions of all components included in the deployment process (the deployment process is also versioned).
UrbanCode Deploy Platform
UrbanCode Deploy's built in artifact repository, CodeStation, provides secure storage for packages that have been deployed or require deployment. This guarantees deployment of the same files from environment to environment.
Traceablity (screenshot) All package versions are stored with traceability to their release details.
Integration with popular build tools Let your enterprise build system feed your deployment automation. CodeStation can accept artifacts from build tools like Hudson / Jenkins Watch video: UrbanCode Deploy – Deployments integrated with Jenkins Watch webinar: Using UrbanCode Deploy with Hudson / Jenkins .
Optimized storage CodeStation uses optimized artifact storage for lower disk impact.
UrbanCode Deploy gives you fine a grained customizable permission system for your users, and secure transport for your deployment artifacts.
Role-based security (screenshot) Integrated fine-grained, role-based control over a user's ability to deploy into each environment.
LDAP integration Enterprise ready, with integration to LDAP including Windows Active Directory. Role-based assignments can be mapped to LDAP roles.
Secure management of passwords Stored security credentials are never displayed. Database and server passwords are encrypted within a given environment. Passwords are also redacted from logs.
Secure file delivery UrbanCode Deploy provides SSL secure file delivery between the UrbanCode Deploy agent and the built in artifact repository, CodeStation. Integrated SSL encrypted transport means that you do not have to open any extra ports on your deployment server.
Flexible notification schemes, templates and reporting options let you create just the level of information flow that your team needs.
Notification schemes (screenshot) UrbanCode Deploy comes with configurable notification schemes for tasks. You can easily create notification schemes to suit your automation workflows, test events, deployments and so on.
Configurable notifications Select and configure when, how, and to whom notifications are sent. Keep the team informed of events without generating spam.
Report failures Report immediately to change release co-coordinator when the event occurs. These reports can include detailed logs when something fails to install.
Deployment report Generate a report on what has been deployed. These reports can be filtered by application, date, environment, or component.
Control and audit
In UrbanCode Deploy, everything is versioned, environments, component and application processes. Your processes are safe, traceable, and a full history is kept for every deployment. You always know who did what where.
Versioned configuration (screenshot) UrbanCode Deploy versions all its processes, properties and templates. This includes component, application and approval processes, environment properties and component templates.
Audit controls of configuration changes You can view the history of changes made to certain configuration elements. For example, you can view the history of a process through versioned configuration.
Approval gates Track server roles in an environment — database, web or application server. Establish environment approvers and notify them to confirm processes via manual tasks. Tasks can have single or multiple approvals.