Design – Build – Run: Applied Practices and Principles for Production-Ready Software Development
by Dave Ingram
16.1. The Batch Architecture
In the previous chapters you saw that many different jobs could form part of the overall batch solution. Chapter 13 defined the functional batch jobs specifically required by the case study. You've also seen the high-level mechanics of using a formal batch scheduler.
Figure 16-1 depicts a "batch" architecture that doesn't make use of a formal batch scheduler.
Figure 16.1. Figure 16-1
In this architecture style, the jobs are executed via different methods and technologies. The actual jobs (or processes) also manifest themselves in different ways, including:
As scripts running under the SQL Server Agent on the database server
As Windows services running on the application server
As a combination of scripts and executables running on the web servers and application servers under the Task Scheduler
This approach works, and can work well, but there are many moving parts that need to be administered and controlled. Furthermore, the individual jobs execute according to their own schedules, as there is no centrally coordinated execution orchestration. When jobs are running in this fashion they can overlap in their execution. For example, a job could be running on the database server that is backing up the database at the same time the Windows service is updating it. In this distributed architecture, it is difficult to manage dependencies. For example, if a ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access