Page 184 - Building Big Data Applications
P. 184
Chapter 10 Building the big data application 183
Application lifecycle management (ALM)dApplication and Agile lifecycle manage-
ment tools create a standardized environment for communication and collabora-
tion between development teams and related groups. Model-based systems
engineering provides similar information in many contexts.
Artifact management repositorydThese tools provide a software repository for
storing and versioning binary files and their associated metadata.
BuilddBuild automation is used to script or automate the process of compiling
computer source code into binary code.
TestingdAutomated testing tools include unit and acceptance testing, performance
testing, and load testing.
Continuous integrationdCI tools automate the process of compiling code into a
build after developers have checked their code into a central repository. After the
CI server builds the system, it runs unit and integration tests, report results, and
typically releases a labeled version of deployable artifacts.
Continuous deploymentdDeployment tools automate application deployments
through to the various environments. They facilitate rapid feedback and contin-
uous delivery while providing the required audit trails, versioning, and approval
tracking.
Additional toolsdOther DevOps support tools include the following: configuration,
logging, management and monitoring, provisioning, source code control, security,
code review, and collaboration.
The automation and continuous delivery require us to follow a methodology, the
most successful one is Kanban.
The goals of Kanban include the following:
Visualize and limit work in process (WIP)dFigure above illustrates an example of a
program Kanban board, which makes WIP visible to all stakeholders. This helps
teams identify bottlenecks and balance the amount of WIP against the available
development and operations capacity, as work is completed when the new feature
or functionality is running successfully in production.
Reduce the batch sizes of work itemsdThe second way to improve flow is to
decrease the batch sizes of the work. Small batches go through the system faster