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
   179   180   181   182   183   184   185   186   187   188   189