<div> TABLE OF CONTENTS <span style="white-space:pre"> </span>6 </div> <div> <br> </div> <div> TABLE OF FIGURES <span style="white-space:pre"> </span>8 </div> <div> <br> </div> <div> INTRODUCTION <span style="white-space:pre"> </span>9 </div> <div> <br> </div> <div> 1. <span style="white-space:pre"> </span>SOFTWARE DEVELOPMENT AND DESIGN <span style="white-space:pre"> </span>11 </div> <div> <br> </div> <div> 1.1 <span style="white-space:pre"> </span>DESCRIBE DISTRIBUTED APPLICATIONS RELATED TO THE CONCEPTS OF FRONT END, BACK END, AND LOAD BALANCING <span style="white-space:pre"> </span>11 </div> <div> <br> </div> <div> 1.2 <span style="white-space:pre"> </span>EVALUATE AN APPLICATION DESIGN CONSIDERING SCALABILITY AND MODULARITY <span style="white-space:pre"> </span>13 </div> <div> <br> </div> <div> 1.3 <span style="white-space:pre"> </span>EVALUATE AN APPLICATION DESIGN CONSIDERING HIGH-AVAILABILITY AND RESILIENCY (INCLUDING ON-PREMISES, </div> <div> HYBRID, AND CLOUD) <span style="white-space:pre"> </span>15 </div> <div> <br> </div> <div> 1.4 <span style="white-space:pre"> </span>EVALUATE AN APPLICATION DESIGN CONSIDERING LATENCY AND RATE-LIMITING <span style="white-space:pre"> </span>17 </div> <div> <br> </div> <div> 1.5 <span style="white-space:pre"> </span>EVALUATE AN APPLICATION DESIGN AND IMPLEMENTATION CONSIDERING MAINTAINABILITY <span style="white-space:pre"> </span>19 </div> <div> <br> </div> <div> 1.6 <span style="white-space:pre"> </span>EVALUATE AN APPLICATION DESIGN AND IMPLEMENTATION CONSIDERING OBSERVABILITY <span style="white-space:pre"> </span>20 </div> <div> <br> </div> <div> 1.7 <span style="white-space:pre"> </span>DIAGNOSE PROBLEMS WITH AN APPLICATION GIVEN LOGS RELATED TO AN EVENT <span style="white-space:pre"> </span>21 </div> <div> <br> </div> <div> 1.8 <span style="white-space:pre"> </span>EVALUATE CHOICE OF DATABASE TYPES WITH RESPECT TO APPLICATION REQUIREMENTS (SUCH AS RELATIONAL, </div> <div> DOCUMENT, GRAPH, COLUMNAR, AND TIME SERIES) <span style="white-space:pre"> </span>22 </div> <div> <br> </div> <div> 1.9 <span style="white-space:pre"> </span>EXPLAIN ARCHITECTURAL PATTERNS (MONOLITHIC, SERVICES-ORIENTED, MICROSERVICES, AND EVENT-DRIVEN) <span style="white-space:pre"> </span>25 </div> <div> <br> </div> <div> 1.10 <span style="white-space:pre"> </span>UTILIZE ADVANCED VERSION CONTROL OPERATIONS WITH GIT <span style="white-space:pre"> </span>31 </div> <div> <br> </div> <div> 1.10.A <span style="white-space:pre"> </span>MERGE A BRANCH <span style="white-space:pre"> </span>35 </div> <div> <br> </div> <div> 1.10.B <span style="white-space:pre"> </span>RESOLVE CONFLICTS <span style="white-space:pre"> </span>38 </div> <div> <br> </div> <div> 1.10.C <span style="white-space:pre"> </span>GIT RESET <span style="white-space:pre"> </span>40 </div> <div> <br> </div> <div> 1.10.D <span style="white-space:pre"> </span>GIT CHECKOUT <span style="white-space:pre"> </span>42 </div> <div> <br> </div> <div> 1.10.E <span style="white-space:pre"> </span>GIT REVERT <span style="white-space:pre"> </span>43 </div> <div> <br> </div> <div> 1.11 <span style="white-space:pre"> </span>EXPLAIN THE CONCEPTS OF RELEASE PACKAGING AND DEPENDENCY MANAGEMENT <span style="white-space:pre"> </span>45 </div> <div> <br> </div> <div> 1.12 <span style="white-space:pre"> </span>CONSTRUCT A SEQUENCE DIAGRAM THAT INCLUDES API CALLS <span style="white-space:pre"> </span>47 </div> <div> <br> </div> <div> 1.13 <span style="white-space:pre"> </span>CHAPTER 1 REVIEW QUESTIONS <span style="white-space:pre"> </span>49 </div> <div> <br> </div> <div> 2. <span style="white-space:pre"> </span>USING APIS <span style="white-space:pre"> </span>55 </div> <div> <br> </div> <div> 2.1 <span style="white-space:pre"> </span>IMPLEMENT ROBUST REST API ERROR HANDLING FOR TIMEOUTS AND RATE LIMITS <span style="white-space:pre"> </span>55 </div> <div> <br> </div> <div> 2.2 <span style="white-space:pre"> </span>IMPLEMENT CONTROL FLOW OF CONSUMER CODE FOR UNRECOVERABLE REST API ERRORS <span style="white-space:pre"> </span>57 </div> <div> <br> </div> <div> 2.3 <span style="white-space:pre"> </span>IDENTIFY WAYS TO OPTIMIZE API USAGE THROUGH HTTP CACHE CONTROLS <span style="white-space:pre"> </span>59 </div> <div> <br> </div> <div> 2.4 <span style="white-space:pre"> </span>CONSTRUCT AN APPLICATION THAT CONSUMES A REST API THAT SUPPORTS PAGINATION <span style="white-space:pre"> </span>62 </div> <div> <br> </div> <div> 2.5 <span style="white-space:pre"> </span>DESCRIBE THE STEPS IN THE OAUTH2 THREE-LEGGED AUTHORIZATION CODE GRANT FLOW <span style="white-space:pre"> </span>66 </div> <div> <br> </div> <div> 2.6 <span style="white-space:pre"> </span>CHAPTER 2 REVIEW QUESTIONS <span style="white-space:pre"> </span>70 </div> <div> <br> </div> <div> 3. <span style="white-space:pre"> </span>CISCO PLATFORMS <span style="white-space:pre"> </span>73 </div> <div> <br> </div> <div> 3.1 <span style="white-space:pre"> </span>CONSTRUCT API REQUESTS TO IMPLEMENT CHATOPS WITH WEBEX API <span style="white-space:pre"> </span>73 </div> <div> <br> </div> <div> 3.2 <span style="white-space:pre"> </span>CONSTRUCT API REQUESTS TO CREATE AND DELETE OBJECTS USING FIREPOWER DEVICE MANAGEMENT (FDM) <span style="white-space:pre"> </span>76 </div> <div> <br> </div> <div> 3.3 <span style="white-space:pre"> </span>CONSTRUCT API REQUESTS USING THE MERAKI PLATFORM TO ACCOMPLISH THESE TASKS <span style="white-space:pre"> </span>80 </div> <div> <br> </div> <div> 3.3.A <span style="white-space:pre"> </span>USE MERAKI DASHBOARD APIS TO ENABLE AN SSID <span style="white-space:pre"> </span>81 </div> <div> <br> </div> <div> 3.3.B <span style="white-space:pre"> </span>USE MERAKI LOCATION APIS TO RETRIEVE LOCATION DATA <span style="white-space:pre"> </span>83 </div> <div> <br> </div> <div> 3.4 <span style="white-space:pre"> </span>CONSTRUCT API CALLS TO RETRIEVE DATA FROM INTERSIGHT <span style="white-space:pre"> </span>85 </div> <div> <br> </div> <div> 3.5 <span style="white-space:pre"> </span>CONSTRUCT A PYTHON SCRIPT USING THE UCS APIS TO PROVISION A NEW UCS SERVER GIVEN A TEMPLATE <span style="white-space:pre"> </span>87 </div> <div> <br> </div> <div> 3.6 <span style="white-space:pre"> </span>CONSTRUCT A PYTHON SCRIPT USING THE CISCO DNA CENTER APIS TO RETRIEVE AND DISPLAY WIRELESS HEALTH INFORMATION <span style="white-space:pre"> </span>90 </div> <div> <br> </div> <div> 3.7 <span style="white-space:pre"> </span>DESCRIBE THE CAPABILITIES OF APPDYNAMICS WHEN INSTRUMENTING AN APPLICATION <span style="white-space:pre"> </span>92 </div> <div> <br> </div> <div> 3.8 <span style="white-space:pre"> </span>DESCRIBE STEPS TO BUILD A CUSTOM DASHBOARD TO PRESENT DATA COLLECTED FROM CISCO APIS <span style="white-space:pre"> </span>94 </div> <div> <br> </div> <div> 3.9 <span style="white-space:pre"> </span>CHAPTER 3 REVIEW QUESTIONS <span style="white-space:pre"> </span>95 </div> <div> <br> </div> <div> 4. <span style="white-space:pre"> </span>APPLICATION DEPLOYMENT AND SECURITY <span style="white-space:pre"> </span>97 </div> <div> <br> </div> <div> 4.1 <span style="white-space:pre"> </span>DIAGNOSE A CI/CD PIPELINE FAILURE (SUCH AS MISSING DEPENDENCY, INCOMPATIBLE VERSIONS OF COMPONENTS, AND FAILED TESTS) <span style="white-space:pre"> </span>97 </div> <div> <br> </div> <div> 4.2 <span style="white-space:pre"> </span>INTEGRATE AN APPLICATION INTO A PREBUILT CD ENVIRONMENT LEVERAGING DOCKER AND KUBERNETES <span style="white-space:pre"> </span>99 </div> <div> <br> </div> <div> 4.3 <span style="white-space:pre"> </span>DESCRIBE THE BENEFITS OF CONTINUOUS TESTING AND STATIC CODE ANALYSIS IN A CI PIPELINE <span style="white-space:pre"> </span>103 </div> <div> <br> </div> <div> 4.4 <span style="white-space:pre"> </span>UTILIZE DOCKER TO CONTAINERIZE AN APPLICATION <span style="white-space:pre"> </span>103 </div> <div> <br> </div> <div> 4.5 <span style="white-space:pre"> </span>DESCRIBE THE TENETS OF THE "12-FACTOR APP" <span style="white-space:pre"> </span>109 </div> <div> <br> </div> <div> 4.6 <span style="white-space:pre"> </span>DESCRIBE AN EFFECTIVE LOGGING STRATEGY FOR AN APPLICATION <span style="white-space:pre"> </span>111 </div> <div> <br> </div> <div> 4.7 <span style="white-space:pre"> </span>EXPLAIN DATA PRIVACY CONCERNS RELATED TO STORAGE AND TRANSMISSION OF DATA <span style="white-space:pre"> </span>114 </div> <div> <br> </div> <div> 4.8 <span style="white-space:pre"> </span>IDENTIFY THE SECRET STORAGE APPROACH RELEVANT TO A GIVEN SCENARIO <span style="white-space:pre"> </span>115 </div> <div> <br> </div> <div> 4.9 <span style="white-space:pre"> </span>CONFIGURE APPLICATION-SPECIFIC SSL CERTIFICATES <span style="white-space:pre"> </span>117 </div> <div> <br> </div> <div> 4.10 <span style="white-space:pre"> </span>IMPLEMENT MITIGATION STRATEGIES FOR OWASP THREATS (SUCH AS XSS, CSRF, AND SQL INJECTION) <span style="white-space:pre"> </span>122 </div> <div> <br> </div> <div> 4.11 <span style="white-space:pre"> </span>DESCRIBE HOW END-TO-END ENCRYPTION PRINCIPLES APPLY TO APIS <span style="white-space:pre"> </span>125 </div> <div> <br> </div> <div> 4.12 <span style="white-space:pre"> </span>CHAPTER 4 REVIEW QUESTIONS <span style="white-space:pre"> </span>127 </div> <div> <br> </div> <div> 5. <span style="white-space:pre"> </span>INFRASTRUCTURE AND AUTOMATION <span style="white-space:pre"> </span>132 </div> <div> <br> </div> <div> 5.1 <span style="white-space:pre"> </span>EXPLAIN CONSIDERATIONS OF MODEL-DRIVEN TELEMETRY (INCLUDING DATA CONSUMPTION AND DATA STORAGE) <span style="white-space:pre"> </span>132 </div> <div> <br> </div> <div> 5.2 <span style="white-space:pre"> </span>UTILIZE RESTCONF TO CONFIGURE A NETWORK DEVICE INCLUDING INTERFACES, STATIC ROUTES, AND VLANS </div> <div> (IOS XE ONLY) <span style="white-space:pre"> </span>133 </div> <div> <br> </div> <div> 5.3 <span style="white-space:pre"> </span>CONSTRUCT A WORKFLOW TO CONFIGURE NETWORK PARAMETERS WITH: <span style="white-space:pre"> </span>145 </div> <div> <br> </div> <div> 5.3.A <span style="white-space:pre"> </span>ANSIBLE PLAYBOOK <span style="white-space:pre"> </span>145 </div> <div> <br> </div> <div> 5.3.B <span style="white-space:pre"> </span>PUPPET MANIFEST <span style="white-space:pre"> </span>149 </div> <div> <br> </div> <div> 5.4 <span style="white-space:pre"> </span>IDENTIFY A CONFIGURATION MANAGEMENT SOLUTION TO ACHIEVE TECHNICAL / BUSINESS REQUIREMENTS <span style="white-space:pre"> </span>150 </div> <div> <br> </div> <div> 5.5 <span style="white-space:pre"> </span>DESCRIBE HOW TO HOST AN APPLICATION ON A NETWORK DEVICE (INCLUDING CATALYST 9000 AND CISCO </div> <div> IOX-ENABLED DEVICES) <span style="white-space:pre"> </span>152 </div> <div> <br> </div> <div> 5.6 <span style="white-space:pre"> </span>CHAPTER 5 REVIEW QUESTIONS <span style="white-space:pre"> </span>156 </div> <div> <br> </div> <div> 6. <span style="white-space:pre"> </span>APPENDIX A: RESTCONF URI DEMYSTIFIED (IOS XE) <span style="white-space:pre"> </span>159 </div> <div> <br> </div> <div> 7. <span style="white-space:pre"> </span>APPENDIX B: ANSWERS TO CHAPTER REVIEW QUESTIONS <span style="white-space:pre"> </span>164 </div> <div> <br> </div> <div> 7.1 <span style="white-space:pre"> </span>ANSWERS TO CHAPTER 1: SOFTWARE DEVELOPMENT AND DESIGN <span style="white-space:pre"> </span>164 </div> <div> <br> </div> <div> 7.2 <span style="white-space:pre"> </span>ANSWERS TO CHAPTER 2: USING APIS <span style="white-space:pre"> </span>172 </div> <div> <br> </div> <div> 7.3 <span style="white-space:pre"> </span>ANSWERS TO CHAPTER 3: CISCO PLATFORMS <span style="white-space:pre"> </span>176 </div> <div> <br> </div> <div> 7.4 <span style="white-space:pre"> </span>ANSWERS TO CHAPTER 4: APPLICATION DEPLOYMENT AND SECURITY <span style="white-space:pre"> </span>180 </div> <div> <br> </div> <div> 7.5 <span style="white-space:pre"> </span>ANSWERS TO CHAPTER 5: INFRASTRUCTURE AND AUTOMATION <span style="white-space:pre"> </span>186 </div> <div> <br> </div> <div> <br> </div> <div> <br> </div> <div> <br> </div>