There are a number of challenges that make the deployment task more difficult. Alex reviews the common techniques for deploying new databases and upgrading existing ones, and their flaws, and argues the advantages of an automated, incremental, script-based approach to deployments
The trouble with configuration management in some large technical organizations is that it is not just configuration management. An organization often assigns to a single role responsibility for software builds, configuration management (which often includes change management), and releases of products to customers. While these responsibilities are mutually dependent they are distinct roles, have different goals, and require very different skills. When we evaluate a product line organization this role is often identified as a source of problems. One or more of the dimensions is either neglected or incorrectly executed by the personnel assigned to the position.
The revolutionary effects of social networks have not missed the world of software development. Many services emerged to support collaboration on projects over the Internet, especially in the world of open-source software. Concepts such as distributed version control, routine forking, and pull requests are in some ways changing the basic process of group development. One of the most popular social networks for software collaboration is GitHub, whose motto is "Social Coding." Learn about development social networks in the context of GitHub, but with principles applicable to other sites such as BitBucket, and even to your organization's internal systems.
This article introduces Gradle and explains how to install Gradle. Gradle is a tool for build automation. With Gradle, we can automate the compiling, testing, packaging, and deployment of our software or other types of projects. Gradle is flexible but has sensible defaults for most projects. This means we can rely on the defaults, if we don't want something special, but can still use the flexibility to adapt a build to certain custom needs.
What does it mean to "flatten" your software release process? How will this affect your organizational structure? In the first installment of the Agile DevOps series, DevOps expert Paul Duvall describes how developers and operations are working together on software delivery teams to streamline the process of developing and releasing software. He discusses such nascent topics as test-driven infrastructures, transient environments, and the Chaos Monkey — and how these techniques all work toward the goal of getting software to users more quickly and more often.
Continuous integration is a software development practice in which members of a team integrate their work frequently. Many teams find that this approach significantly reduces integration problems and allows a team to develop cohesive software more rapidly. Therefore, continuous integration, especially in the early stage of development process, can greatly improve the efficiency and help find potential issues as soon as possible. The authors describe the practice of continuous integration using the IBM® SmartCloud Enterprise as the framework.
Is your style of delivery high-risk, 'big bang' deployment? Unless you're an adrenaline junkie, you're just risking spectacular failure with your company's money and your sanity. Jez Humble, coauthor of Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation, provides detailed examples of how four simple principles can reduce your risk from high to low and increase your chances of success from low to high
EGit is an Eclipse Team provider for the Git version control system. Git is a distributed SCM, which means every developer has a full copy of all history of every revision of the code, making queries against the history very fast and versatile.