28.Multi-process Support

28. Multi-process Support (dpdk多进程支持)       

        在DPDK中,多进程支持被设计成允许一组DPDK进程以一种简单透明的方式协同工作,以执行包处理或其他工作负载。为了支持这个功能,对核心DPDK环境抽象层(EAL)进行了一些功能添加。

        EAL已经被修改为允许生成不同类型的DPDK进程,每个处理应用程序使用的hugepage内存都有不同的权限。目前,支持两种进程类型:

  • 主进程(primary),主进程初始化共享内存,它具有对共享内存的完整权限
  • 副进程(secondary),它不能初始化共享内存,但可以使用主进程初始化的共享内存,并在其中创建内存对象(可以称为辅助进程或是次进程

        独立运行的DPDK进程只能是主进程,而副进程只能在主进程已经配置了hugepage共享内存之后运行。为了支持这两种进程类型,以及稍后描述的其他多进程设置,可以使用两个额外的命令行参数:

  • --proc-type:指定一个dpdk进程是主进程还是副进程(参数值就用上面的primary或是secondary,或者是auto
  • --file-prefix:允许非合作的进程拥有不同的内存区域
       --file-prefix,主副进程默认文件路径/var/run/.rte_config,同一个组的主副进程使用相同的参数,如果想运行多个主进程,
这个参数就必须指定)
        示例程序中提供了许多示例应用程序,这些应用程序演示了如何将多个DPDK进程一起使用。”DPDK Sample Application’s User Guide“
中的“Multi- process Sample Application” 一章中详细介绍了多进程运行模型。             

28.1 Memory Sharing(共享内存)

        DPDK多进程的关键是确保在组成这多进程应用程序的过程中适当地共享内存资源。一旦有了可以被多个进程访问的共享内存块,那么诸如进程间通信(IPC)之类的问题就变得简单多了。

        主进程启动后,DPDK通过内存映射文件详细记录正在使用的内存配置-hugepages使用情况,虚拟地址的映射,内存频道的数量等等。当副进程启动时,通过读取映射文件后重新创建和主进程相同的内存配置,这样,所有进程之间共享所有的内存区域,所有指向内存的指针都是有效的,并指向同一个对象。

!Note

        有关Linux内核地址空间随机分布(ASLR)如何影响内存共享的详细信息,请参阅多进程限制( Multi-process Limitations)。


        EAL 还支持自动检测模式(--proc-type=auto 设置),如果一个主进程已经运行,那么DPDK进程将作为一个副进程启动。

28.2 Deployment Models(调度模式)

28.2.1  Symmetric/Peer Processes(对等进程 )

        DPDK多进程可创建一组对等进程,每个进程执行相同的工作负载。这个模型相当于拥有多个线程,每个线程运行相同的主循环函数,就像大多数提供的DPDK样例应用程序所做的那样。在这个模型中,第一个进程应该使用--proc-type=primary,而所有后续的进程都应该使用--proc-type=secondary

        simple_mp和symmetric_mp示例应用程序演示了这种使用模型。它们在“ DPDK Sample Application’s User ”中的“Multi-process Sample Application”一章中进行了描述。


28.2.2 Asymmetric/Non-Peer Processes(不对等进程)

        DPDK多进程支持的另一种部署模型是,运行一个单独的主进程,它在worker或客户线程中充当负载平衡器或数据包分发服务器,worker或客户机线程是副进程类型。在这种情况下,大量使用rte_ring对象,它们位于共享的hugepage内存中。

(这种模式就是一个主进程收取所有网络接口的数据报文,然后根据分配算法把数据包分发给其他worker(多进程中的一个进程,类型为副进程)或是客户线程(dpdk进程内部支持多线程,主线程类似于主进程,其它线程类似于副进程))

28.2.3. Running Multiple Independent DPDK Applications(运行多个独立的dpdk应用)

        除了上述涉及多个DPDK进程共同协作的应用场景外,也可以并行地运行多个DPDK进程,这些进程都是独立工作的。对这个使用场景的支持是使用--file-prefix参数来提供的。

        默认情况下,在每个hugetlbfs文件系统上使用rtemap_X 文件名创建hugepage文件,其中X在0到最大的hugepages - 1之间。同样,它使用/var/run/.rte_config文件名来创建共享配置文件、每个进程映射的内存。当作为root(或$ HOME /.rte_config,作为非root用户运行时;如果设置了文件系统和设备权限,则允许这样做)。上述每个文件的rte部分都可以使用--file-prefix参数进行配置。

        除了指定--file-prefix参数之外,任何要并行运行的DPDK应用程序都必须显式地限制其内存使用。这是通过将 -m 标志传递给每个进程来指定每个进程可以使用多少百万字节的的hugepage内存(也可以通过--socket-mem参数来指定进程在每个cpu socket上的hugepage内存大小)。

(现在常用--socket-mem参数,eg:单socket,--socket-mem=512;在numa中,--socket-mem=512,512;多个socket间用‘,’号隔开;

!Note

        多个独立的DPDK实例进程在一台机器上并行运行,不能共享任何网络端口。任何一个进程使用的网络端口都应该在其他进程中被列入黑名单。

(通常一个dpdk进程在运行时通过白名单参数-w pci号指定使用指定接口,eg:-w  0000:06:00.0)

28.2.4. Running Multiple Independent Groups of DPDK Applications(独立运行进程组)

        同样,独立的DPDK应用程序可以在单个系统上并行运行,也可以简单地扩展到并行运行多进程组。在这种情况下,同一个组的副进程必须使用和主进程相同的--file-prefix参数来连接到共享内存。

!Note

        在这个使用场景中,也包括多个独立DPDK进程并行运行的所有限制和问题。

28.3. Multi-process Limitations(多进程限制)

        在运行DPDK多进程应用程序时,有很多限制。其中一些记录如下:

  • 多进程特性要求在所有应用程序中都存在完全相同的hugepage内存映射。Linux安全特性——地址空间随机分布ASLR)会干扰这个映射,因此,为了可靠地运行多进程应用程序,可能需要禁用该特性。
!Warning
        禁用地址空间随机分布(ASLR)可能具有安全含义,因此建议只有在绝对必要时才禁用它,并且只有在理解了该更改的含义时才禁用它
  • 所有以单独应用程序运行并使用共享内存的DPDK进程必须具有不同的coremask / corelist参数。同一个逻辑核,不可能运行一个主进程和一个副进程,或是运行2个副进程。试图这样做会导致内存池缓存的损坏,以及其他问题。
  • 在副进程中,不能接收所有中断,如以太网*设备链路状态中断。所有中断都只在主进程内触发。在dpdk多进程中所有需要响应中断的副进程必须提供自己的机制,将主进程中的中断通告传递到副进程中。
  • 不支持基于编译的不同二进制文件的多进程之间使用函数指针,因为在一个进程中给定函数的位置可能在一秒钟内与它的位置不同。这将阻止librte_hash库在多线程实例中正常运行,因为它在内部使用一个指向hash函数的指针。
        为了在这个问题上运行,建议多进程应用程序通过直接调用代码中的哈希函数来执行哈希计算,然后使用rte_hash_add_with_hash()/rte_hash_lookup_with_hash() 函数,而不是在内部进行哈希的函数,比如rte_hash_add()/ rte_hash_lookup()。
  • 根据使用的硬件和使用的DPDK进程的数量,也许不可能在每个DPDK实例中都有HPET计时器。Linux *用户空间中可用的HPET比较器的最小值可能只有一个,这意味着,只有DPDK主进程实例可以打开和mmap /dev/hpet。如果需要的DPDK进程的数量超过可用的HPET比较器的数量,则TSC(这个版本中的默认计时器)必须作为跨所有进程的时间源,而不是HPET。
       


  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Preface.........................................................................................................................................- 1 - 1 Introduction...............................................................................................................................- 2 - 1.1 The IT Infrastructure Library.........................................................................................- 2 - 1.1.1 Public domain framework...............................................................................- 2 - 1.1.2 Best practice framework.................................................................................- 3 - 1.1.3 De facto standard............................................................................................- 3 - 1.1.4 Quality approach..............................................................................................- 4 - 1.1.5 itSMF.................................................................................................................- 5 - 1.2 Restructuring the IT Infrastructure Library....................................................................- 5 - 1.3 Target audience..............................................................................................................- 6 - 1.4 Navigating the IT Infrastructure Library........................................................................- 6 - 1.5 Why choose a jigsaw concept?.......................................................................................- 8 - 1.6 The Service Support book..............................................................................................- 8 - 1.7 Service Management......................................................................................................- 9 - 1.8 Customers and Users....................................................................................................- 10 - 1.9 A Code of Practice for IT Service Management – PD0005....................- 10 - 1.10 Service Management: a process approach.................................................................- 11 - 1.11 Recommended reading...................................................................................- 11 - 2 Relationship between processes..............................................................................................- 14 - 2.1 Configuration Management.............................................................................- 14 - 2.2 Change Management....................................................................................................- 16 - 2.3 Release Management...................................................................................................- 16 - 2.4 Incident Management...................................................................................................- 16 - 2.5 Problem Management..................................................................................................- 17 - 2.6 Service Desk................................................................................................................- 17 - 2.7 Service Level Management..........................................................................................- 17 - 2.8 Capacity Management..................................................................................................- 18 - 2.9 Financial Management for IT Services........................................................................- 18 - 2.10 Availability Management...........................................................................................- 18 - 2.11 IT Service Continuity Management...........................................................................- 19 - 2.12 Customer Relationship Management.........................................................................- 19 - 2.13 ICT Infrastructure Management.................................................................................- 19 - 2.14 Application Management...........................................................................................- 19 - 2.15 Security Management................................................................................................- 20 - 2.16 Environmental infrastructure processes.....................................................................- 20 - 2.17 Project Management..................................................................................................- 20 - 3 Getting started.........................................................................................................................- 21 - 3.1 Service Management benefits.........................................................................- 21 - 3.2 A process led approach......................................................................................- 22 - 3.3 Management commitment............................................................................................- 24 - 3.3.1 Aspects of management commitment........................................................- 24 - 3.3.2 Management commitment in the planning stage......................................- 24 - III 3.4 Cultural aspects............................................................................................................- 25 - 3.4.1 What is culture?.............................................................................................- 26 - 3.4.2 Responsibilities..............................................................................................- 27 - 3.4.3 What is meant by ‘service culture’?............................................................- 27 - 3.4.4 How is this relevant to IT service provision?.............................................- 28 - 3.4.5 What do Customers want?...........................................................................- 28 - 3.4.6 Common excuses for conducting ‘business as usual’.............................- 30 - 3.4.7 How much will all this cost?.........................................................................- 31 - 3.4.8 What are the potential benefits of Customer care?..................................- 32 - 3.4.9 Service Management training......................................................................- 32 - 4 The Service Desk....................................................................................................................- 33 - 4.1 Overview......................................................................................................................- 33 - 4.1.1 Why do we need a Service Desk?..............................................................- 34 - 4.1.2 The support problem.....................................................................................- 34 - 4.1.3 Call Centre......................................................................................................- 35 - 4.1.4 Help Desk.......................................................................................................- 36 - 4.1.5 Service Desk..................................................................................................- 36 - 4.1.6 How can a Service Desk help my organisation?......................................- 36 - 4.1.7 Charging for support services......................................................................- 37 - 4.1.8 Business and operational benefits..............................................................- 38 - 4.1.9 The role and direction of the Service Desk................................................- 39 - 4.1.10 Customer interaction...................................................................................- 39 - 4.1.11 Keeping the Customer and User informed..............................................- 40 - 4.1.13 Monitored infrastructure events.................................................................- 44 - 4.1.14 Actioned infrastructure Incidents...............................................................- 44 - 4.1.15 Infrastructure Incident model.....................................................................- 44 - 4.1.16 Benefits.........................................................................................................- 45 - 4.1.17 Use of Internet technology.........................................................................- 45 - 4.2 Implementing a Service Desk infrastructure................................................................- 46 - 4.2.1 Staff resourcing..............................................................................................- 46 - 4.2.2 Target effectiveness metrics........................................................................- 47 - 4.2.3 Key considerations........................................................................................- 47 - 4.2.4 Selecting the right Service Desk structure.................................................- 48 - 4.2.5 Types of Service Desk structure.................................................................- 48 - 4.2.6 Local Service Desk considerations.............................................................- 48 - 4.2.7 Central Service Desk considerations.........................................................- 49 - 4.2.8 Virtual Service Desk considerations...........................................................- 50 - 4.2.9 Service Desk Configuration considerations...............................................- 52 - 4.2.10 Global ‘follow the sun’ support..................................................................- 52 - 4.2.11 Incident classification..................................................................................- 53 - 4.2.12 Classification Process Review..................................................................- 54 - 4.3 Service Desk technologies...........................................................................................- 54 - 4.3.1 The computerised Service Desk.................................................................- 55 - 4.3.2 Computerised Service Desk benefits.........................................................- 55 - IV 4.3.3 Build or buy?..................................................................................................- 56 - 4.3.4 Running in a multiplatform environment....................................................- 56 - 4.3.5 Running in a Wide-Area Network (WAN) infrastructure..........................- 57 - 4.3.6 Intelligent phone systems, voicemail and email usage............................- 57 - 4.3.7 Deploying a self-service strategy................................................................- 57 - 4.3.8 Critical success factors.................................................................................- 58 - 4.3.9 Implementation considerations....................................................................- 59 - 4.3.10 Outsourcing a Service Desk......................................................................- 60 - 4.4 Service Desk responsibilities, functions, staffing levels etc.........................................- 61 - 4.4.1 Service Desk functions.................................................................................- 61 - 4.4.2 Which Requests should be registered........................................................- 62 - 4.4.3 Service Desk empowerment........................................................................- 62 - 4.4.4 Escalation management...............................................................................- 63 - 4.4.5 Service Desk staffing levels.........................................................................- 65 - 4.4.6 Staff turnover considerations.......................................................................- 66 - 4.4.7 Workload monitoring...................................................................................- 66 - 4.4.8 Customer satisfaction analysis and surveys.............................................- 67 - 4.4.9 Service Desk resourcing for smaller support units...................................- 68 - 4.4.10 Second-line staff awareness......................................................................- 68 - 4.4.11 Identifying training needs...........................................................................- 69 - 4.4.12 Call rate reduction.......................................................................................- 69 - 4.4.13 Workload definitions request types...........................................................- 69 - 4.5 Service Desk staffing skill set......................................................................................- 70 - 4.5.1 Major Customer requirements.....................................................................- 71 - 4.5.2 Fix rates..........................................................................................................- 71 - 4.6 Setting up a Service Desk environment.......................................................................- 71 - 4.6.1 Service Desk environment considerations..............................................- 72 - 4.6.2 Defining your services..................................................................................- 72 - 4.6.3 Service Desk pre-Release requirements...................................................- 73 - 4.6.4 Advertising and selling the Service Desk...................................................- 74 - 4.6.5 Quick wins......................................................................................................- 75 - 4.7 Service Desk education and training............................................................................- 75 - 4.7.1 Soft skills.........................................................................................................- 76 - 4.7.2 Managerial focus...........................................................................................- 76 - 4.7.3 Service Desk staff profile..............................................................................- 77 - 4.7.4 Service staff responsibilities and mindset..................................................- 78 - 4.7.5 Working with Customers...............................................................................- 78 - 4.7.6 Active listening...............................................................................................- 80 - 4.7.7 Service Desk staff training............................................................................- 81 - 4.8 Service Desk processes and procedures.......................................................................- 81 - 4.8.1 Considerations...............................................................................................- 81 - 4.8.2 Common structured interrogation technique.............................................- 82 - 4.8.3 Customer details and identification.............................................................- 82 - 4.8.4 Maintaining the Customer database...........................................................- 83 - V 4.8.5 Marketing the Service Desk amongst Customers....................................- 83 - 4.9 Incident reporting and review......................................................................................- 84 - 4.9.1 Effective workload analyses.........................................................................- 85 - 4.9.2 Frequency of reporting and review.............................................................- 86 - 4.9.3 Archiving Service Desk records...................................................................- 87 - 4.10 Conclusions................................................................................................................- 88 - 4.10.1 Critical success factors...............................................................................- 88 - 4.10.2 Service Desk implementation guidance...................................................- 88 - Annex 4A: Sample Release document.......................................................................................- 88 - 5 Incident Management..............................................................................................................- 91 - 5.1 Goal of Incident Management......................................................................................- 91 - 5.2 Scope of Incident Management......................................................................- 91 - 5.3 Basic concepts............................................................................................................- 93 - 5.3.1 Incident Handling...........................................................................................- 93 - 5.3.2 First, second- and third-line support...........................................................- 95 - 5.3.3 Functional versus hierarchical escalation..................................................- 96 - 5.3.4 Priority.............................................................................................................- 97 - 5.3.5 Relationship between Incidents, Problems, Known Errors and RFCs..- 98 - 5.4 Benefits of Incident Management...............................................................- 100 - 5.5 Planning and implementation.....................................................................................- 101 - 5.5.1 Timing and planning....................................................................................- 101 - 5.5.2 Critical success factors...............................................................................- 102 - 5.5.3 Possible problem areas..............................................................................- 102 - 5.6 Incident Management activities.................................................................................- 102 - 5.6.1 Incident detection and recording...............................................................- 103 - 5.6.2 Classification and initial support................................................................- 104 - 5.6.3 Investigation and diagnosis........................................................................- 107 - 5.6.4 Resolution and recovery.............................................................................- 108 - 5.6.5 Incident closure............................................................................................- 109 - 5.6.6 Ownership, monitoring, tracking and communication............................- 110 - 5.7 Handling of major Incidents.......................................................................................- 111 - 5.8 Roles of the Incident Management process................................................................- 112 - 5.8.1 Incident Manager.........................................................................................- 112 - 5.8.2 Incident-handling support staff..................................................................- 112 - 5.9 Key Performance Indicators..........................................................................- 113 - 5.10 Tools.....................................................................................................................- 113 - Annex 5A: Example coding system for Incident/request classification...........................- 114 - Annex 5B: Example of a priority coding system.............................................................- 115 - Annex 5C: Data requirements for service Incident records.............................................- 115 - Annex 5D: The process of Incident investigation............................................................- 116 - Annex 5E: Incident handling on the Service Desk (flow)................................................- 117 - 6 Problem Management...........................................................................................................- 119 - 6.1 Goal of Problem Management...................................................................................- 119 - 6.2 Scope of Problem Management....................................................................- 119 - VI 6.3 Basic concepts............................................................................................................- 120 - 6.3.1 What is the difference between Incident Management and Problem Management?........................................................................................................- 121 - 6.3.2 Problem control............................................................................................- 122 - 6.3.3 Error control..................................................................................................- 122 - 6.3.4 Proactive Problem Management...............................................................- 123 - 6.3.5 Completion of major Problem reviews.....................................................- 123 - 6.4 Benefits of Problem Management..............................................................................- 123 - 6.5 Planning and implementation.....................................................................................- 124 - 6.5.1 Timing and planning....................................................................................- 124 - 6.5.2 Key success factors....................................................................................- 125 - 6.5.3 Risks..............................................................................................................- 125 - 6.6 Problem control activities..........................................................................................- 125 - 6.6.1 Problem identification and recording........................................................- 128 - 6.6.2 Problem classification.................................................................................- 129 - 6.6.3 Problem investigation and diagnosis........................................................- 132 - 6.6.4 Tips on Problem control..............................................................................- 133 - 6.7 Error control activities...............................................................................................- 134 - 6.7.1 Error identification and recording..............................................................- 135 - 6.7.2 Error assessment........................................................................................- 135 - 6.7.3 Error resolution recording...........................................................................- 137 - 6.7.4 Error closure.................................................................................................- 137 - 6.7.5 Problem/error resolution monitoring.........................................................- 137 - 6.7.6 Tips on error control....................................................................................- 138 - 6.8 Proactive Problem Management................................................................................- 139 - 6.8.1 Trend Analysis..............................................................................................- 139 - 6.8.2 Targeting preventive action........................................................................- 140 - 6.8.3 Tips on proactive Problem Management.................................................- 141 - 6.8.4 Major Problem reviews...............................................................................- 141 - 6.9 Providing information to the support organisation.....................................................- 141 - 6.9.1 Providing management information..........................................................- 142 - 6.9.2 Cascading information................................................................................- 142 - 6.10 Metrics.....................................................................................................................- 142 - 6.10.1 Problem/error control reporting...............................................................- 143 - 6.10.2 Periodic audits...........................................................................................- 144 - 6.10.3 Tips on metrics...........................................................................................- 144 - 6.11 Roles within Problem Management.........................................................................- 145 - 6.11.1 Problem Manager......................................................................................- 145 - 6.11.2 Problem support........................................................................................- 146 - Annex 6A: An example of a coding structure for Problems/error categorisation............- 146 - Annex 6B: Kepner and Tregoe analysis...........................................................................- 147 - Defining the Problem............................................................................................- 148 - Describing the Problem........................................................................................- 148 - Establishing possible causes...............................................................................- 149 - VII Testing the most probable cause........................................................................- 149 - Verifying the true cause........................................................................................- 149 - Annex 6C: Ishikawa Diagrams........................................................................................- 149 - 7 Configuration Management..................................................................................................- 151 - 7.1 Goal of Configuration Management............................................................- 151 - 7.2 Scope of Configuration Management.........................................................- 151 - 7.3 Basic concepts............................................................................................................- 152 - 7.3.1 Configuration Management planning.......................................................- 152 - 7.3.2 Configuration identification and CIs..........................................................- 153 - 7.3.3 Configuration control...................................................................................- 154 - 7.3.4 Configuration status accounting................................................................- 154 - 7.3.5 Configuration verification and audit..........................................................- 154 - 7.3.6 Configuration baseline................................................................................- 154 - 7.3.7 Configuration Management Database......................................................- 155 - 7.3.8 Software and document libraries...............................................................- 156 - 7.3.9 Definitive Software Library.........................................................................- 156 - 7.3.10 Licence management...............................................................................- 156 - 7.4 Benefits and possible problems..................................................................................- 157 - 7.4.1 Benefits.........................................................................................................- 157 - 7.4.2 Possible problems.......................................................................................- 158 - 7.5 Planning and implementation.....................................................................................- 159 - 7.5.1 Initial planning..............................................................................................- 160 - 7.5.2 Agreement on purpose, objectives, scope, priorities and implementation approach aligned with business objectives.......................................................- 160 - 7.5.3 Appointment of a Configuration Manager and planning a Configuration Management team................................................................................................- 162 - 7.5.4 Analysis of existing systems......................................................................- 163 - 7.5.5 Developing Configuration Management plans and systems design....- 163 - 7.5.6 Detailed planning for implementation.......................................................- 164 - 7.5.7 Populating the CMDB and DSL...............................................................- 167 - 7.5.8 Cutover to new processes..........................................................................- 168 - 7.5.9 Other implementation considerations.......................................................- 169 - 7.5.10 Costs...........................................................................................................- 169 - 7.6 Activities....................................................................................................................- 171 - 7.6.1 Configuration management planning.......................................................- 171 - 7.6.2 Configuration identification.......................................................................- 172 - 7.6.3 Control of CIs...............................................................................................- 180 - 7.6.4 Configuration status accounting................................................................- 185 - 7.6.5 Configuration verification and audit..........................................................- 186 - 7.6.6 CMDB back-ups, archives and housekeeping........................................- 187 - 7.6.7 Providing a Configuration Management service.....................................- 187 - 7.7 Process control...........................................................................................................- 188 - 7.7.1 Management reporting................................................................................- 188 - 7.7.2 Key performance indicators.......................................................................- 189 - VIII 7.8 Relations to other processes.........................................................................- 190 - 7.9 Tools specific to the Configuration Management process..........................................- 193 - 7.9.1 Configuration Management system..........................................................- 193 - 7.9.2 Software Configuration Management.......................................................- 194 - 7.9.3 Change Management and Release Management support...................- 195 - 7.9.4 Configuration auditing.................................................................................- 195 - 7.9.5 Enterprise system and tools......................................................................- 195 - 7.9.6 Other tools....................................................................................................- 196 - 7.10 Impact of new technology...........................................................................- 197 - 7.11 Guidance on Configuration Management................................................................- 197 - 7.11.1 Level of control...........................................................................................- 197 - 7.11.2 Versions or Variants?................................................................................- 198 - 7.11.3 Selection of Configuration Management tools......................................- 199 - Annex 7A: The central function for Change, Configuration and Release Management..- 199 - Setting up a Change, Configuration and Release Management function.....- 200 - Annex 7B: Specific responsibilities of the Configuration Management team.................- 204 - Configuration Manager responsibilities..............................................................- 204 - Configuration Librarian responsibilities..............................................................- 206 - Annex 7C: Suggested CI attributes..................................................................................- 207 - 8 Change Management.............................................................................................................- 208 - 8.1 Goal of Change Management.....................................................................................- 208 - 8.1.1 Purpose.........................................................................................................- 208 - 8.1.2 Best practice.................................................................................................- 208 - 8.1.3 Program/project management and Change Management....................- 209 - 8.2 Scope of Change Management...................................................................................- 209 - 8.2.1 Why Change is important...........................................................................- 212 - 8.2.2 Boundaries between Incident resolution and Change Management...- 213 - 8.2.3 Application development and Change Management.............................- 214 - 8.2.4 Business change and Change Management..........................................- 215 - 8.3 Basic concepts............................................................................................................- 215 - 8.3.1 Requests for Change................................................................................- 219 - 8.3.2 Change Advisory Board............................................................................- 220 - 8.3.3 Change metrics............................................................................................- 222 - 8.3.4 The Forward Schedule of Change, and Change models....................- 222 - 8.3.5 Outsourcing and Change Management...................................................- 224 - 8.3.6 Critical outage plan......................................................................................- 225 - 8.4 Benefits, costs and possible problems........................................................................- 226 - 8.4.1 Benefits.........................................................................................................- 226 - 8.4.2 Costs.............................................................................................................- 226 - 8.4.3 Possible problems.......................................................................................- 227 - 8.5 Activities....................................................................................................................- 229 - 8.5.1 Planning the implementation of operational processes.........................- 229 - 8.5.2 Change logging and filtering......................................................................- 229 - 8.5.3 Allocation of priorities................................................................................- 230 - IX 8.5.4 Change categorisation................................................................................- 231 - 8.5.5 CAB meetings............................................................................................- 232 - 8.5.6 Impact and resource assessment.............................................................- 233 - 8.5.7 Change approval.........................................................................................- 235 - 8.5.8 Change scheduling......................................................................................- 235 - 8.5.9 Change building, testing and implementation.......................................- 237 - 8.5.10 Urgent Changes........................................................................................- 238 - 8.5.11 Urgent Change building, testing and implementation..........................- 240 - 8.5.12 Change review.........................................................................................- 241 - 8.5.13 Reviewing the Change Management process for efficiency and effectiveness..........................................................................................................- 242 - 8.5.14 Roles and responsibilities......................................................................- 243 - 8.5.15 Establishing a Change Advisory Board..................................................- 244 - 8.6 Planning and implementation.....................................................................................- 245 - 8.6.1 Designating the Change Manager role....................................................- 245 - 8.6.2 Deciding on a Change Management system........................................- 245 - 8.6.3 Planning system reviews............................................................................- 246 - 8.6.4 Implementation planning............................................................................- 246 - 8.6.5 Guidance.......................................................................................................- 246 - 8.7 Metrics and management reporting..........................................................................- 249 - 8.7.1 Auditing for compliance..............................................................................- 250 - 8.8 Software tools...................................................................................................- 251 - 8.9 Impact of new technology..........................................................................................- 252 - 8.9.1 The business domain..................................................................................- 252 - 8.9.2 Technology....................................................................................................- 254 - 9 Release Management............................................................................................................- 256 - 9.1 Goal of Release Management........................................................................- 256 - 9.2 Scope of Release Management.....................................................................- 257 - 9.3 Basic concepts............................................................................................................- 258 - 9.3.1 Release.........................................................................................................- 258 - 9.3.2 Release policy and planning......................................................................- 259 - 9.3.3 Release unit.................................................................................................- 260 - 9.3.4 Release identification..................................................................................- 261 - 9.3.5 Types of Release.........................................................................................- 261 - 9.3.6 Definitive Software Library.........................................................................- 263 - 9.3.7 Definitive Hardware Store (DHS)..............................................................- 264 - 9.3.8 Configuration management Database (CMDB)......................................- 265 - 9.3.9 Build management......................................................................................- 265 - 9.3.10 Testing.........................................................................................................- 265 - 9.3.11 Back-Out plans..........................................................................................- 266 - 9.4 Benefits and possible problems..................................................................................- 267 - 9.4.1 Benefits.........................................................................................................- 267 - 9.4.2 Possible problems.......................................................................................- 268 - 9.5 Planning and implementation.....................................................................................- 269 - X 9.5.1 Planning........................................................................................................- 270 - 9.5.2 Implementation............................................................................................- 278 - 9.5.3 Costs.............................................................................................................- 279 - 9.6 Activities....................................................................................................................- 280 - 9.6.1 Release planning.........................................................................................- 280 - 9.6.2 Designing, building and configuring a Release.......................................- 281 - 9.6.3 Release acceptance....................................................................................- 283 - 9.6.4 Rollout planning...........................................................................................- 284 - 9.6.5 Communication, preparation and training................................................- 287 - 9.6.6 Distribution and installation........................................................................- 288 - 9.7 Process control...........................................................................................................- 289 - 9.7.1 Key performance indicators.......................................................................- 289 - 9.7.2 Management reporting................................................................................- 290 - 9.8 Relations to other processes.......................................................................................- 290 - 9.8.1 Configuration Management........................................................................- 290 - 9.8.2 Change Management.................................................................................- 291 - 9.8.3 Software from Developers and suppliers.................................................- 291 - 9.8.4 Problem Management and the Service Desk..........................................- 291 - 9.8.5 Project Management and PRINCE2.........................................................- 292 - 9.9 Tools specific to the Release Management process...................................................- 292 - 9.9.1 Change Management tools........................................................................- 292 - 9.9.2 Configuration Management tools..............................................................- 292 - 9.9.3 Software Configuration Management (SCM) tools.................................- 292 - 9.9.4 Build management tools.............................................................................- 293 - 9.9.5 Electronic software distribution..................................................................- 294 - 9.9.6 Software and hardware auditing tools......................................................- 296 - 9.9.7 Desktop management tools.......................................................................- 296 - 9.9.8 Server management tools..........................................................................- 296 - 9.10 Impact of New Technology......................................................................................- 297 - 9.10.1 The future of support tools.......................................................................- 297 - 9.10.2 ‘Thin client’...............................................................................................- 297 - 9.10.3 Multi-tier systems......................................................................................- 297 - 9.10.4 Internet applications..................................................................................- 298 - 9.10.5 Software updates via the Internet...........................................................- 299 - 9.11 Guidance for successful Release Management........................................................- 300 - 9.11.1 Configuration Management......................................................................- 300 - 9.11.2 Change Management...............................................................................- 301 - 9.11.3 Release Management...............................................................................- 301 - 9.11.4 Application design issues.........................................................................- 302 - 9.11.5 The positioning of software: what to put where.....................................- 302 - Annex 9A: Checklist to use when reviewing rollout plans..............................................- 303 - Annex 9B: Sample Release Management objectives for distributed systems..................- 304 - 10 Service Management software tools...................................................................................- 306 - 10.1 Types of tools....................................................................................................- 307 - XI 10.2 Summary of tool-evaluation criteria........................................................................- 307 - 10.2.1 Service Management tools......................................................................- 308 - 10.3 Product training........................................................................................................- 309 - 11 Planning for the Implementation of Service Management..................................................- 310 - 11.1 A Service Management project..................................................................- 310 - 11.2 Feasibility study.......................................................................................................- 311 - 11.3 Assessing the current situation.................................................................................- 311 - 11.3.1 Introduction.................................................................................................- 311 - 11.3.2 A ‘health check’..........................................................................................- 311 - 11.4 General guidelines on project planning....................................................................- 313 - 11.4.1 Project characteristics...............................................................................- 313 - 11.4.2 Business case for the project...................................................................- 314 - 11.4.3 Critical success factors and possible Problems....................................- 314 - 11.4.4 Project costs...............................................................................................- 315 - 11.4.5 Organisation...............................................................................................- 316 - 11.4.6 Products......................................................................................................- 316 - 11.4.7 Planning......................................................................................................- 317 - 11.4.8 Communication plan.................................................................................- 317 - 11.5 Project review and management reporting...............................................................- 318 - 11.5.1 Progress reporting.....................................................................................- 319 - 11.5.2 Evaluation of the project...........................................................................- 319 - 11.5.3 Post-project review....................................................................................- 320 - 11.5.4 Auditing for compliance using quality parameters................................- 320 - 11.5.5 Auditing for improvement using key performance indicators..............- 321 - 11.5.6 Management reporting..............................................................................- 322 - 12 Bibliography.......................................................................................................................- 323 - 12.1 References................................................................................................................- 323 - 12.2 Other Sources...........................................................................................................- 328 - Appendix A: Terminology........................................................................................................- 329 - A.1 List of acronyms.................................................................................................- 329 - A.2 Glossary of terms...............................................................................................- 330 - Appendix B: Process theory and practice................................................................................- 337 - B.1 Process theory............................................................................................................- 337 - B.1.1 The product-oriented organisation............................................................- 337 - B.1.2 Moving towards a process-oriented organisation..................................- 338 - B.1.3 The process approach................................................................................- 338 - B.2 Process modelling case study: Service Support example..........................................- 340 - B.2.1 Introduction..................................................................................................- 340 - B.2.2 The approach...............................................................................................- 341 - B.2.3 Process analysis.........................................................................................- 342 - B.2.4 Conclusion...................................................................................................- 344 - Appendix C: Implementing Service Management processes – issues to consider...................- 345 - C.1 Process implementation..................................................................................- 345 - C.2 Applicability / scalability...........................................................................................- 346 - XII C.2.1 Large and small IT units.............................................................................- 346 - C.3 Process implementation projects: a checklist............................................................- 346 - C.3.1 Procedures...................................................................................................- 347 - C.3.2 Dependencies.............................................................................................- 347 - C.3.3 People...........................................................................................................- 347 - C.3.4 Timing...........................................................................................................- 348 - C.4 Impact on an organisation.........................................................................................- 348 - C.4.1 Hierarchical structure.................................................................................- 348 - C.4.2 Matrix organisation.....................................................................................- 348 - C.4.3 Self-learning teams (coaching management).........................................- 349 - C.5 Benchmarking.....................................................................................................- 349 - C.6 A sample implementation strategy.............................................................................- 350 - C.6.1 Phase 1:.......................................................................................................- 350 - C.6.2 Phase 2:.......................................................................................................- 350 - C.6.3 Phase 3:.......................................................................................................- 351 - C.6.4 Phase 4:.......................................................................................................- 351 - C.6.5 Phase 5:.......................................................................................................- 351 - C.6.6 Phase 6:.......................................................................................................- 351 - C.7 Process improvement.......................................................................................- 352 - Appendix D: Quality................................................................................................................- 353 - D.1 Quality Management.................................................................................................- 353 - D.1.1 Deming.........................................................................................................- 353 - D.1.2 Juran.............................................................................................................- 354 - D.1.3 Crosby..........................................................................................................- 355 - D.1.4 Six Sigma.....................................................................................................- 356 - D.2 Formal quality initiatives..........................................................................................- 357 - D.2.1 Quality standards........................................................................................- 357 - D.2.2 Total Quality Systems: EFQM...................................................................- 358 - D.2.3 Quality awards.............................................................................................- 359 - Appendix E: Example cost-benefit analysis for Service Management processes....................- 362 - Appendix F: The Service Support process model....................................................................- 365 - Other Information Sources and Services..................................................................................- 366 - The IT Service Management Forum (itSMF)...................................................................- 366 - ITIL training and professional qualifications...................................................................- 366 -
I. Spring Boot Documentation 1. About the Documentation 2. Getting Help 3. First Steps 4. Working with Spring Boot 5. Learning about Spring Boot Features 6. Moving to Production 7. Advanced Topics II. Getting Started 8. Introducing Spring Boot 9. System Requirements 9.1. Servlet Containers 10. Installing Spring Boot 10.1. Installation Instructions for the Java Developer 10.1.1. Maven Installation 10.1.2. Gradle Installation 10.2. Installing the Spring Boot CLI 10.2.1. Manual Installation 10.2.2. Installation with SDKMAN! 10.2.3. OSX Homebrew Installation 10.2.4. MacPorts Installation 10.2.5. Command-line Completion 10.2.6. Quick-start Spring CLI Example 10.3. Upgrading from an Earlier Version of Spring Boot 11. Developing Your First Spring Boot Application 11.1. Creating the POM 11.2. Adding Classpath Dependencies 11.3. Writing the Code 11.3.1. The @RestController and @RequestMapping Annotations 11.3.2. The @EnableAutoConfiguration Annotation 11.3.3. The “main” Method 11.4. Running the Example 11.5. Creating an Executable Jar 12. What to Read Next III. Using Spring Boot 13. Build Systems 13.1. Dependency Management 13.2. Maven 13.2.1. Inheriting the Starter Parent 13.2.2. Using Spring Boot without the Parent POM 13.2.3. Using the Spring Boot Maven Plugin 13.3. Gradle 13.4. Ant 13.5. Starters 14. Structuring Your Code 14.1. Using the “default” Package 14.2. Locating the Main Application Class 15. Configuration Classes 15.1. Importing Additional Configuration Classes 15.2. Importing XML Configuration 16. Auto-configuration 16.1. Gradually Replacing Auto-configuration 16.2. Disabling Specific Auto-configuration Classes 17. Spring Beans and Dependency Injection 18. Using the @SpringBootApplication Annotation 19. Running Your Application 19.1. Running from an IDE 19.2. Running as a Packaged Application 19.3. Using the Maven Plugin 19.4. Using the Gradle Plugin 19.5. Hot Swapping 20. Developer Tools 20.1. Property Defaults 20.2. Automatic Restart 20.2.1. Logging changes in condition evaluation 20.2.2. Excluding Resources 20.2.3. Watching Additional Paths 20.2.4. Disabling Restart 20.2.5. Using a Trigger File 20.2.6. Customizing the Restart Classloader 20.2.7. Known Limitations 20.3. LiveReload 20.4. Global Settings 20.5. Remote Applications 20.5.1. Running the Remote Client Application 20.5.2. Remote Update 21. Packaging Your Application for Production 22. What to Read Next IV. Spring Boot features 23. SpringApplication 23.1. Startup Failure 23.2. Customizing the Banner 23.3. Customizing SpringApplication 23.4. Fluent Builder API 23.5. Application Events and Listeners 23.6. Web Environment 23.7. Accessing Application Arguments 23.8. Using the ApplicationRunner or CommandLineRunner 23.9. Application Exit 23.10. Admin Features 24. Externalized Configuration 24.1. Configuring Random Values 24.2. Accessing Command Line Properties 24.3. Application Property Files 24.4. Profile-specific Properties 24.5. Placeholders in Properties 24.6. Using YAML Instead of Properties 24.6.1. Loading YAML 24.6.2. Exposing YAML as Properties in the Spring Environment 24.6.3. Multi-profile YAML Documents 24.6.4. YAML Shortcomings 24.7. Type-safe Configuration Properties 24.7.1. Third-party Configuration 24.7.2. Relaxed Binding 24.7.3. Merging Complex Types 24.7.4. Properties Conversion Converting durations 24.7.5. @ConfigurationProperties Validation 24.7.6. @ConfigurationProperties vs. @Value 25. Profiles 25.1. Adding Active Profiles 25.2. Programmatically Setting Profiles 25.3. Profile-specific Configuration Files 26. Logging 26.1. Log Format 26.2. Console Output 26.2.1. Color-coded Output 26.3. File Output 26.4. Log Levels 26.5. Custom Log Configuration 26.6. Logback Extensions 26.6.1. Profile-specific Configuration 26.6.2. Environment Properties 27. Developing Web Applications 27.1. The “Spring Web MVC Framework” 27.1.1. Spring MVC Auto-configuration 27.1.2. HttpMessageConverters 27.1.3. Custom JSON Serializers and Deserializers 27.1.4. MessageCodesResolver 27.1.5. Static Content 27.1.6. Welcome Page 27.1.7. Custom Favicon 27.1.8. Path Matching and Content Negotiation 27.1.9. ConfigurableWebBindingInitializer 27.1.10. Template Engines 27.1.11. Error Handling Custom Error Pages Mapping Error Pages outside of Spring MVC 27.1.12. Spring HATEOAS 27.1.13. CORS Support 27.2. The “Spring WebFlux Framework” 27.2.1. Spring WebFlux Auto-configuration 27.2.2. HTTP Codecs with HttpMessageReaders and HttpMessageWriters 27.2.3. Static Content 27.2.4. Template Engines 27.2.5. Error Handling Custom Error Pages 27.2.6. Web Filters 27.3. JAX-RS and Jersey 27.4. Embedded Servlet Container Support 27.4.1. Servlets, Filters, and listeners Registering Servlets, Filters, and Listeners as Spring Beans 27.4.2. Servlet Context Initialization Scanning for Servlets, Filters, and listeners 27.4.3. The ServletWebServerApplicationContext 27.4.4. Customizing Embedded Servlet Containers Programmatic Customization Customizing ConfigurableServletWebServerFactory Directly 27.4.5. JSP Limitations 28. Security 28.1. MVC Security 28.2. WebFlux Security 28.3. OAuth2 28.3.1. Client 28.3.2. Server 28.4. Actuator Security 28.4.1. Cross Site Request Forgery Protection 29. Working with SQL Databases 29.1. Configure a DataSource 29.1.1. Embedded Database Support 29.1.2. Connection to a Production Database 29.1.3. Connection to a JNDI DataSource 29.2. Using JdbcTemplate 29.3. JPA and “Spring Data” 29.3.1. Entity Classes 29.3.2. Spring Data JPA Repositories 29.3.3. Creating and Dropping JPA Databases 29.3.4. Open EntityManager in View 29.4. Using H2’s Web Console 29.4.1. Changing the H2 Console’s Path 29.5. Using jOOQ 29.5.1. Code Generation 29.5.2. Using DSLContext 29.5.3. jOOQ SQL Dialect 29.5.4. Customizing jOOQ 30. Working with NoSQL Technologies 30.1. Redis 30.1.1. Connecting to Redis 30.2. MongoDB 30.2.1. Connecting to a MongoDB Database 30.2.2. MongoTemplate 30.2.3. Spring Data MongoDB Repositories 30.2.4. Embedded Mongo 30.3. Neo4j 30.3.1. Connecting to a Neo4j Database 30.3.2. Using the Embedded Mode 30.3.3. Neo4jSession 30.3.4. Spring Data Neo4j Repositories 30.3.5. Repository Example 30.4. Gemfire 30.5. Solr 30.5.1. Connecting to Solr 30.5.2. Spring Data Solr Repositories 30.6. Elasticsearch 30.6.1. Connecting to Elasticsearch by Using Jest 30.6.2. Connecting to Elasticsearch by Using Spring Data 30.6.3. Spring Data Elasticsearch Repositories 30.7. Cassandra 30.7.1. Connecting to Cassandra 30.7.2. Spring Data Cassandra Repositories 30.8. Couchbase 30.8.1. Connecting to Couchbase 30.8.2. Spring Data Couchbase Repositories 30.9. LDAP 30.9.1. Connecting to an LDAP Server 30.9.2. Spring Data LDAP Repositories 30.9.3. Embedded In-memory LDAP Server 30.10. InfluxDB 30.10.1. Connecting to InfluxDB 31. Caching 31.1. Supported Cache Providers 31.1.1. Generic 31.1.2. JCache (JSR-107) 31.1.3. EhCache 2.x 31.1.4. Hazelcast 31.1.5. Infinispan 31.1.6. Couchbase 31.1.7. Redis 31.1.8. Caffeine 31.1.9. Simple 31.1.10. None 32. Messaging 32.1. JMS 32.1.1. ActiveMQ Support 32.1.2. Artemis Support 32.1.3. Using a JNDI ConnectionFactory 32.1.4. Sending a Message 32.1.5. Receiving a Message 32.2. AMQP 32.2.1. RabbitMQ support 32.2.2. Sending a Message 32.2.3. Receiving a Message 32.3. Apache Kafka Support 32.3.1. Sending a Message 32.3.2. Receiving a Message 32.3.3. Additional Kafka Properties 33. Calling REST Services with RestTemplate 33.1. RestTemplate Customization 34. Calling REST Services with WebClient 34.1. WebClient Customization 35. Validation 36. Sending Email 37. Distributed Transactions with JTA 37.1. Using an Atomikos Transaction Manager 37.2. Using a Bitronix Transaction Manager 37.3. Using a Narayana Transaction Manager 37.4. Using a Java EE Managed Transaction Manager 37.5. Mixing XA and Non-XA JMS Connections 37.6. Supporting an Alternative Embedded Transaction Manager 38. Hazelcast 39. Quartz Scheduler 40. Spring Integration 41. Spring Session 42. Monitoring and Management over JMX 43. Testing 43.1. Test Scope Dependencies 43.2. Testing Spring Applications 43.3. Testing Spring Boot Applications 43.3.1. Detecting Web Application Type 43.3.2. Detecting Test Configuration 43.3.3. Excluding Test Configuration 43.3.4. Testing with a running server 43.3.5. Using JMX 43.3.6. Mocking and Spying Beans 43.3.7. Auto-configured Tests 43.3.8. Auto-configured JSON Tests 43.3.9. Auto-configured Spring MVC Tests 43.3.10. Auto-configured Spring WebFlux Tests 43.3.11. Auto-configured Data JPA Tests 43.3.12. Auto-configured JDBC Tests 43.3.13. Auto-configured jOOQ Tests 43.3.14. Auto-configured Data MongoDB Tests 43.3.15. Auto-configured Data Neo4j Tests 43.3.16. Auto-configured Data Redis Tests 43.3.17. Auto-configured Data LDAP Tests 43.3.18. Auto-configured REST Clients 43.3.19. Auto-configured Spring REST Docs Tests Auto-configured Spring REST Docs Tests with Mock MVC Auto-configured Spring REST Docs Tests with REST Assured 43.3.20. User Configuration and Slicing 43.3.21. Using Spock to Test Spring Boot Applications 43.4. Test Utilities 43.4.1. ConfigFileApplicationContextInitializer 43.4.2. TestPropertyValues 43.4.3. OutputCapture 43.4.4. TestRestTemplate 44. WebSockets 45. Web Services 46. Creating Your Own Auto-configuration 46.1. Understanding Auto-configured Beans 46.2. Locating Auto-configuration Candidates 46.3. Condition Annotations 46.3.1. Class Conditions 46.3.2. Bean Conditions 46.3.3. Property Conditions 46.3.4. Resource Conditions 46.3.5. Web Application Conditions 46.3.6. SpEL Expression Conditions 46.4. Testing your Auto-configuration 46.4.1. Simulating a Web Context 46.4.2. Overriding the Classpath 46.5. Creating Your Own Starter 46.5.1. Naming 46.5.2. autoconfigure Module 46.5.3. Starter Module 47. Kotlin support 47.1. Requirements 47.2. Null-safety 47.3. Kotlin API 47.3.1. runApplication 47.3.2. Extensions 47.4. Dependency management 47.5. @ConfigurationProperties 47.6. Testing 47.7. Resources 47.7.1. Further reading 47.7.2. Examples 48. What to Read Next V. Spring Boot Actuator: Production-ready features 49. Enabling Production-ready Features 50. Endpoints 50.1. Enabling Endpoints 50.2. Exposing Endpoints 50.3. Securing HTTP Endpoints 50.4. Configuring Endpoints 50.5. Hypermedia for Actuator Web Endpoints 50.6. Actuator Web Endpoint Paths 50.7. CORS Support 50.8. Implementing Custom Endpoints 50.8.1. Receiving Input Input type conversion 50.8.2. Custom Web Endpoints Web Endpoint Request Predicates Path HTTP method Consumes Produces Web Endpoint Response Status Web Endpoint Range Requests Web Endpoint Security 50.8.3. Servlet endpoints 50.8.4. Controller endpoints 50.9. Health Information 50.9.1. Auto-configured HealthIndicators 50.9.2. Writing Custom HealthIndicators 50.9.3. Reactive Health Indicators 50.9.4. Auto-configured ReactiveHealthIndicators 50.10. Application Information 50.10.1. Auto-configured InfoContributors 50.10.2. Custom Application Information 50.10.3. Git Commit Information 50.10.4. Build Information 50.10.5. Writing Custom InfoContributors 51. Monitoring and Management over HTTP 51.1. Customizing the Management Endpoint Paths 51.2. Customizing the Management Server Port 51.3. Configuring Management-specific SSL 51.4. Customizing the Management Server Address 51.5. Disabling HTTP Endpoints 52. Monitoring and Management over JMX 52.1. Customizing MBean Names 52.2. Disabling JMX Endpoints 52.3. Using Jolokia for JMX over HTTP 52.3.1. Customizing Jolokia 52.3.2. Disabling Jolokia 53. Loggers 53.1. Configure a Logger 54. Metrics 54.1. Getting started 54.2. Supported monitoring systems 54.2.1. Atlas 54.2.2. Datadog 54.2.3. Ganglia 54.2.4. Graphite 54.2.5. Influx 54.2.6. JMX 54.2.7. New Relic 54.2.8. Prometheus 54.2.9. SignalFx 54.2.10. Simple 54.2.11. StatsD 54.2.12. Wavefront 54.3. Supported Metrics 54.3.1. Spring MVC Metrics 54.3.2. Spring WebFlux Metrics 54.3.3. RestTemplate Metrics 54.3.4. Cache Metrics 54.3.5. DataSource Metrics 54.3.6. RabbitMQ Metrics 54.4. Registering custom metrics 54.5. Customizing individual metrics 54.5.1. Per-meter properties 54.6. Metrics endpoint 55. Auditing 56. HTTP Tracing 56.1. Custom HTTP tracing 57. Process Monitoring 57.1. Extending Configuration 57.2. Programmatically 58. Cloud Foundry Support 58.1. Disabling Extended Cloud Foundry Actuator Support 58.2. Cloud Foundry Self-signed Certificates 58.3. Custom context path 59. What to Read Next VI. Deploying Spring Boot Applications 60. Deploying to the Cloud 60.1. Cloud Foundry 60.1.1. Binding to Services 60.2. Heroku 60.3. OpenShift 60.4. Amazon Web Services (AWS) 60.4.1. AWS Elastic Beanstalk Using the Tomcat Platform Using the Java SE Platform 60.4.2. Summary 60.5. Boxfuse and Amazon Web Services 60.6. Google Cloud 61. Installing Spring Boot Applications 61.1. Supported Operating Systems 61.2. Unix/Linux Services 61.2.1. Installation as an init.d Service (System V) Securing an init.d Service 61.2.2. Installation as a systemd Service 61.2.3. Customizing the Startup Script Customizing the Start Script when It Is Written Customizing a Script When It Runs 61.3. Microsoft Windows Services 62. What to Read Next VII. Spring Boot CLI 63. Installing the CLI 64. Using the CLI 64.1. Running Applications with the CLI 64.1.1. Deduced “grab” Dependencies 64.1.2. Deduced “grab” Coordinates 64.1.3. Default Import Statements 64.1.4. Automatic Main Method 64.1.5. Custom Dependency Management 64.2. Applications with Multiple Source Files 64.3. Packaging Your Application 64.4. Initialize a New Project 64.5. Using the Embedded Shell 64.6. Adding Extensions to the CLI 65. Developing Applications with the Groovy Beans DSL 66. Configuring the CLI with settings.xml 67. What to Read Next VIII. Build tool plugins 68. Spring Boot Maven Plugin 68.1. Including the Plugin 68.2. Packaging Executable Jar and War Files 69. Spring Boot Gradle Plugin 70. Spring Boot AntLib Module 70.1. Spring Boot Ant Tasks 70.1.1. spring-boot:exejar 70.1.2. Examples 70.2. spring-boot:findmainclass 70.2.1. Examples 71. Supporting Other Build Systems 71.1. Repackaging Archives 71.2. Nested Libraries 71.3. Finding a Main Class 71.4. Example Repackage Implementation 72. What to Read Next IX. ‘How-to’ guides 73. Spring Boot Application 73.1. Create Your Own FailureAnalyzer 73.2. Troubleshoot Auto-configuration 73.3. Customize the Environment or ApplicationContext Before It Starts 73.4. Build an ApplicationContext Hierarchy (Adding a Parent or Root Context) 73.5. Create a Non-web Application 74. Properties and Configuration 74.1. Automatically Expand Properties at Build Time 74.1.1. Automatic Property Expansion Using Maven 74.1.2. Automatic Property Expansion Using Gradle 74.2. Externalize the Configuration of SpringApplication 74.3. Change the Location of External Properties of an Application 74.4. Use ‘Short’ Command Line Arguments 74.5. Use YAML for External Properties 74.6. Set the Active Spring Profiles 74.7. Change Configuration Depending on the Environment 74.8. Discover Built-in Options for External Properties 75. Embedded Web Servers 75.1. Use Another Web Server 75.2. Disabling the Web Server 75.3. Configure Jetty 75.4. Add a Servlet, Filter, or Listener to an Application 75.4.1. Add a Servlet, Filter, or Listener by Using a Spring Bean Disable Registration of a Servlet or Filter 75.4.2. Add Servlets, Filters, and Listeners by Using Classpath Scanning 75.5. Change the HTTP Port 75.6. Use a Random Unassigned HTTP Port 75.7. Discover the HTTP Port at Runtime 75.8. Configure SSL 75.9. Configure HTTP/2 75.9.1. HTTP/2 with Undertow 75.9.2. HTTP/2 with Jetty 75.9.3. HTTP/2 with Tomcat 75.10. Configure Access Logging 75.11. Running Behind a Front-end Proxy Server 75.11.1. Customize Tomcat’s Proxy Configuration 75.12. Configure Tomcat 75.13. Enable Multiple Connectors with Tomcat 75.14. Use Tomcat’s LegacyCookieProcessor 75.15. Configure Undertow 75.16. Enable Multiple Listeners with Undertow 75.17. Create WebSocket Endpoints Using @ServerEndpoint 75.18. Enable HTTP Response Compression 76. Spring MVC 76.1. Write a JSON REST Service 76.2. Write an XML REST Service 76.3. Customize the Jackson ObjectMapper 76.4. Customize the @ResponseBody Rendering 76.5. Handling Multipart File Uploads 76.6. Switch Off the Spring MVC DispatcherServlet 76.7. Switch off the Default MVC Configuration 76.8. Customize ViewResolvers 77. HTTP Clients 77.1. Configure RestTemplate to Use a Proxy 78. Logging 78.1. Configure Logback for Logging 78.1.1. Configure Logback for File-only Output 78.2. Configure Log4j for Logging 78.2.1. Use YAML or JSON to Configure Log4j 2 79. Data Access 79.1. Configure a Custom DataSource 79.2. Configure Two DataSources 79.3. Use Spring Data Repositories 79.4. Separate @Entity Definitions from Spring Configuration 79.5. Configure JPA Properties 79.6. Configure Hibernate Naming Strategy 79.7. Use a Custom EntityManagerFactory 79.8. Use Two EntityManagers 79.9. Use a Traditional persistence.xml File 79.10. Use Spring Data JPA and Mongo Repositories 79.11. Expose Spring Data Repositories as REST Endpoint 79.12. Configure a Component that is Used by JPA 79.13. Configure jOOQ with Two DataSources 80. Database Initialization 80.1. Initialize a Database Using JPA 80.2. Initialize a Database Using Hibernate 80.3. Initialize a Database 80.4. Initialize a Spring Batch Database 80.5. Use a Higher-level Database Migration Tool 80.5.1. Execute Flyway Database Migrations on Startup 80.5.2. Execute Liquibase Database Migrations on Startup 81. Messaging 81.1. Disable Transacted JMS Session 82. Batch Applications 82.1. Execute Spring Batch Jobs on Startup 83. Actuator 83.1. Change the HTTP Port or Address of the Actuator Endpoints 83.2. Customize the ‘whitelabel’ Error Page 84. Security 84.1. Switch off the Spring Boot Security Configuration 84.2. Change the UserDetailsService and Add User Accounts 84.3. Enable HTTPS When Running behind a Proxy Server 85. Hot Swapping 85.1. Reload Static Content 85.2. Reload Templates without Restarting the Container 85.2.1. Thymeleaf Templates 85.2.2. FreeMarker Templates 85.2.3. Groovy Templates 85.3. Fast Application Restarts 85.4. Reload Java Classes without Restarting the Container 86. Build 86.1. Generate Build Information 86.2. Generate Git Information 86.3. Customize Dependency Versions 86.4. Create an Executable JAR with Maven 86.5. Use a Spring Boot Application as a Dependency 86.6. Extract Specific Libraries When an Executable Jar Runs 86.7. Create a Non-executable JAR with Exclusions 86.8. Remote Debug a Spring Boot Application Started with Maven 86.9. Build an Executable Archive from Ant without Using spring-boot-antlib 87. Traditional Deployment 87.1. Create a Deployable War File 87.2. Convert an Existing Application to Spring Boot 87.3. Deploying a WAR to WebLogic 87.4. Use Jedis Instead of Lettuce X. Appendices A. Common application properties B. Configuration Metadata B.1. Metadata Format B.1.1. Group Attributes B.1.2. Property Attributes B.1.3. Hint Attributes B.1.4. Repeated Metadata Items B.2. Providing Manual Hints B.2.1. Value Hint B.2.2. Value Providers Any Class Reference Handle As Logger Name Spring Bean Reference Spring Profile Name B.3. Generating Your Own Metadata by Using the Annotation Processor B.3.1. Nested Properties B.3.2. Adding Additional Metadata C. Auto-configuration classes C.1. From the “spring-boot-autoconfigure” module C.2. From the “spring-boot-actuator-autoconfigure” module D. Test auto-configuration annotations E. The Executable Jar Format E.1. Nested JARs E.1.1. The Executable Jar File Structure E.1.2. The Executable War File Structure E.2. Spring Boot’s “JarFile” Class E.2.1. Compatibility with the Standard Java “JarFile” E.3. Launching Executable Jars E.3.1. Launcher Manifest E.3.2. Exploded Archives E.4. PropertiesLauncher Features E.5. Executable Jar Restrictions E.6. Alternative Single Jar Solutions F. Dependency versions

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值