Cheatsheet
Select all the following that would likely be considered enterprise Software.
B2B Portal, Human Resource Management, Legal Document Management, B2C Portal,
Accounts Receivables, Order Processing
Select all the statements that best describe Scrum.
Small prioritized deliverables
Cross-functional self-organized teams
Select all the values Scrum encourages
Have open communication
Have frequent releases
Have clear goals
Focus on continuous improvement
Select all the key points about enterprise applications discussed in the Patterns of enterprise application architecture book.
Usually requires integration with other Enterprise Applications
Usually involves persistent date
Usually requires Transaction Managers to handle concurrent access to data
Select all the (TRUE) statements about HTTP:
|
|
|
|
|
|
|
|
Select all the appropriate responsibilities of a Product Owner.
Manages a prioritized backlog
Creates the shared vision of the project
Select all the (TRUE) statements about scaling up.
As an example, add more CPU and Memory
Same as vertical
Select all the (TRUE) statements about scaling out.
Add more servers
Same as horizontal
Select all the statements that best describe Kanban.
Visualized Workflow
Limit work in progress
Select all the appropriate responsibilities of a Scrum Master:
Coaches the team on Scrum
Makes sure the team has daily Scrum meetings
Select all the recent Enterprise Software trends.
(ALL OF THE ANSWERS)
Mobile Focused
Emphasis on Agile
Support for Collaboration
User-centered Design
Move to Cloud
Support for API
Built-in Analytics Capabilities & Integrated Security Features,
Bare-bones software / “Minimum Viable Product” (MVP) to increase time to market, Faster updates and release cycles / Lean & Agile,
Cloud-focused for flexibility and lower Total Cost of Ownership,
Mobile-Friendly (Mobile First Workforce)
Built-in collaboration capabilities
Cloud, Containers, Kubernetes, and Microservices
The API Economy – Business Services via APIs for Consumption
Select the enterprise software components discussed in class:
Load balancers, DNS, Database, Message-Oriented Middleware, and API Gateway. Also: CDN, Proxies (front/back), databases, cache. (NOT XML databases, DNC, dynamic proxies, Microsoft Office, adobe sync, or Facebook app)
Select the Core Principles of Kanban:
Start with what you know
Agree to pursue incremental and evolutionary change
Select the core practices of Kanban:
Make processes explicit
Limit work in progress
Use a Kanban Board to visualize
Manage flow
Select the most secure way to authenticate a rest API.
OAuth2
Select the different load Balancer Algorithms.
(Correct: Round Robin, Random, least busy, based on Client Headers)
(Not on the quiz: sticky session/cookies, by request parameter)
Select the typical users for each.
Enterprise Software User SaaS
Enterprise Software Developer | PaaS |
Enterprise Software IT | IaaS |
Enterprise Software DevOps | IaaS |
Mobile Software Developer | PaaS |
Select which phase in data analytics processing you would find the following:
Staging Data: | Load |
Data Validation: | Transform |
Remove Extraneous Data: | Transform |
Reference Data: | Extract, transform, and Load |
Creating Summations: | Transform |
Match the appropriate methodology to the feedback loops.
Sprint – Scrum
Daily Standups – Scrum
Continuous Integration – XP
Unit Testing – XP
Pair Programming – XP
Integration Demo – Scrum
Match the Lean Values
a. Find the work that you’re doing that doesn’t directly help to create valuable software and remove it from the project. – Eliminate Waste
b. Establish a focused and effective work environment and build a whole team of energized people. –
Empower the Team
c. Use feedback from your project to improve how you build software – Amplify learning
d. Make every important decision for your project when you have the most information about it-at the last responsible moment – Decide as Late as Possible
Match the Use Cases with the best option for Database Technology:
column-oriented, map-reduce, RDBMS,
document-oriented, apache-spark, graph database or key-value
HTTP Session Management: Key-Value
Data Analytics Dashboard: Column-Oriented
Transaction Logs: Column-Oriented
E-commerce shopping cart: Key-Value
Order Processing: RDBMS
Match the Agile Principles with the Traditional Waterfall Equivalent Values:
● Individuals and interactions – Processes and Tools
● Working Software – Comprehensive Documentation
● Customer Collaboration – Contract Negotiation
● Responding to Change – Following a Plan
Match the XP Values:
Developers focus on writing the most simple and direct solutions possible. → Simplicity
Constant tests and feedback loops keep the quality of the product in check. → Feedback
Each team member is aware of the work everyone else is doing. → Communication
Each team member is focused on making the best choices for the project, even if it means having to discard failing solutions or approach things differently. → Courage
Every team member is important and valuable to the project. → Respect
Match the Domain Logic Pattern
Process for each user action – transaction script
Object-Oriented design for business logic – domain model
Organize business logic using record sets – table module
Match the practices to the right Project Role
Task board – Team Lead
Story points – Developer
Product backlog – Product Owner
Refactoring – Developer
User stories – Product Owner
Pair programming – Developer
Relative ranking – Product Owner
Test-driven development – Developer
Match the following Scaling Patterns: (execution orchestrator, result cache, bulk sync parallel, load balancer, map-reduce, shared space, pipe & filter, AFK scaling)
Use a recent local copy of data instead of data on the server: Result cache
Alternate forwarding request to one of the backend workers: Load balancer
Chain together a series of working using queues: Pipe & Filter
Process a large data set distribution across many servers: Map Reduce
Match the Enterprise Protocols and Middleware?
Enterprise Protocols: TCP, UDP, HTTP, HTTPS/TLS, REST API, Distr. the publish-subscribe message, – XMPP, STOMP, AMQP;
Middleware: KAFKA, Active MQ, RabbitMQ, Jabber, Microservices
Match the appropriate term for the concepts listed.
Organize data into smaller functional databases instead of a single large database.
○ Federation
Split data across multiple databases since data won’t fit on a single database server.
○ Sharding
Store data from different customers in the same database and schema.
○ Data replication (Data Replication, Single Tenancy, Microservices)
Store data from the different customers in the same database but with different schemas.
○ Multi-Tenancy (SaaS Challenge)
Match the example responsibilities with the appropriate TCP/IP Layer:
Rendering JSON from REST API | Application Layer |
Network Routing | Internet Layer |
Session Management | Application Layer |
Transmission Flow & Error Control | Host-to-Host Layer |
Identifying Hardware Addresses | Network Access Layer |
Match the RabbitMQ statements.
Ignores Routing Key and Routes Messages to all Queues – Fan Out Exchange
Routes Messages using Routing Key – Direct Exchange
Uses a Pattern Match to Routes Messages – Topic Exchange
Route Messages based on matching message headers – Headers Exchange
Match the protocol used by the following enterprise software components.
Rabbit MQ: | AMQP |
ActiveMQ: | STOMP |
Jabber: | XMPP |
Kafka: | Pub/Sub |
Microservices | REST |
Match the data lake, data mart vs Data Warehouse for each of the following statements.
Used for Predictive Analytics – Data Lake
Used for Operational Analytics – Data Warehouse
Used for LOB Reporting – Data Mart
Typical Time-to-Market of Hours to Days – Data Warehouse
Typical Time-to-Market of Weeks to Months – Data Lake
Typical Time-to-Market of Minutes to Hours – Data Mart
Has Moderate Data Growth – Data Warehouse
Has Low Data Growth – Data Mart
Has Large Data Growth – Data Lake
Match the domain logic patterns.
A process for each user action: (Transaction script)
An object-oriented design for business logic: (Domain Model)
Organize Business Logic using Record Sets: (Table Module)
Match and CAP Scaling Properties
C=Consistent
A=Available
P=Partition Tolerant
Match each statement with either OLTP or OLAP
Typically has Long Transactions – OLAP
Focused on Creating Business Data – OLTP Database Typically Normalized in 3NF – OLTP
Database Typically not Normalized – OLAP
Focused on Reporting on Business Data – OLAP
Which of the following are examples of applications and system architecture?
single-machine web service (NOT web services), 3-tier web service, Message Bus, Distributed
N-tier
Which of the following would be considered a “focus” of enterprise software?
Supporting Business agility
Supporting cost management
Maintaining and improving existing Software systems
Which dimension of scaling in the AKF scale cube deals with sharding, replicas, and microservices?
x-axis = replicas, y-axis = microservices, z-axis = sharding
Which protocol is more reliable?
TCP over UDP
Which practices do Scrum and XP have in common?
Task Boards
Stories
Backlog
Retrospectives
Which Locking strategy will yield better transaction processing throughput?
Optimistic offline locks
Which walking strategy will yield better traction processing throughput
optimistic offline locks
What are the top three digital transformation spending areas for enterprises in 2019 as cited by Gartner?
Business intelligence or Data analytics, Cyber/information security, Clouder services or solutions
What are the essential characteristics of a cloud service?
On-Demand/self-serving, broad network access, Resource Pooling, Rapid elasticity, Measured service
What are some pain points of Enterprise Software cited in this class
Comes in “Big ERP suites”
High support costs
On-Prem Legacy
What is the feature in Load Balancers to prevent a new replica from being flooded with requests on startup?
Slow start
What is pair programming?
Two developers writing code together, providing constant peer review
What is the best method for detecting if the contents of a file have changed?
Hash Function, because Hash algorithms are used to provide a digital fingerprint of a file’s contents, to ensure that the file has not been altered
What is the Public Key Cryptography Implementation?
RSA
The “long Tail” is a term coined by Chris Anderson for the industry trend toward mass production of popular products for consumers. For example, Apple’s iPhone
(False)
The practice of looking for patterns in enterprise data is also known as?
Data analytics (also, analytics, marketing, analysis, optimization)
The “Fat Client, thin server” architecture is also known as?
Two-Tier
The master-master database scaling architecture, clients can read and write on any of the notes.
(TRUE)
The master-slave database scaling architecture, clients can read and write on any of the notes.
(False)
A UDP Load Balancer is also known as a?
Layer 4
A CDN is used to improve the performance of Web Traffic by caching content on edge servers closer to the Client
(TRUE)
A document database, such as MongoDB is basically a key-value database with the values is also processed by the DB engine to support the optimizations (such as indexing for fast searching).
(TRUE)
A goal of MVC is to separate the model (Business Logic) from the view (Presentation) by adding an intermediary (controller) so that the model and view can evolve independently.
(TRUE)
A mechanism to prove that the sender sent this message
first public key crypto – RSA
A performant system has high latency and low throughput.
(False)
A three-tier architecture typically consists of
Presentation, Business Logic, and Database Tier
A user story must be in the “user voice format” to help the team understand their users by clearly explaining a specific need, and how the software will meet that need.
(False)
AP Databases typically use Master-Slave Replication, whereas CP Databases use peer-to-peer.
(False)
AI and ML are currently in the Early Majority Technology Adoption Life Cycle.
(TRUE)
An Agile Burndown Chart shows
All of these
Asymmetric Key Cryptography is also known as Public-Key Cryptography
(TRUE)
Asynchronous Workloads are typically implemented using Queues and Background jobs to help increase response time to Clients for running compute-intensive operations.
(False)
Both asymmetric key and symmetric key cryptography can be used for confidentiality, message integrity, and non-repudiation.
(False)
Check all the phases of the Hype Cycle tracked by ThoughtWorks.
Innovation Trigger
CP databases typically use master-slave replication, whereas AP databases use peer-to-peer.
(TRUE)
Currently, on the Internet, the most common form of host-to-host authentication is host-name or host-ip which is strong enough for Transport Security.
(False)
DES and AES are Symmetric Key Cryptography Ciphers that use a 56-bit key and 64-bit blocks.
(False)
Each user story has conditions of satisfaction to help the team know when the story is done. This is also known as the “definition of done” or “playable stories”.
(TRUE)
Feature Branches are typically forked from Master: False ➢ Google Protobuf is a more performant replacement for XMP
(TRUE)
For horizontal database scaling, at least 1 of the 3 CAP properties must be (TRUE).
(False)
For laas, select which would be outsourced from the development team.
virtualization, servers, storage, and network For PaaS: same as IaaS + OS, middleware, and runtime
Google.com and microsoft.com are examples of top-level domains
(False)
Google Protobuf is a more permanent replacement for XML.
(TRUE)
Hotfix Branches are typically forked from the Master
(TRUE)
HMAC uses a cryptography hash function and asymmetric key
(False)
High network latency will result in a slower web browser response to render a web page.
(TRUE)
HUBs are stateful architectures, while ESBs are not
(TRUE)
HUBS can scale just as well as ESB, but are simpler to get started for small numbers of integration points
(False)
In Enterprise Security, Message Integrity is ensuring that no one except the intended receiver can read the message.
(False)
In Enterprise Protocols, what are the different ways requests can be handled?
Request/response, publish/subscribe, notification – one-to-one (event-based), async messages
TLS is a modern version of SSL and allows a client to verify the identity of the server.
(TRUE)
In Symmetric Key Cryptography, the Sender of a message and the receiver use a shared key for encryption and decryption.
(TRUE)
In an AP database, it is possible to have a write conflict during partition:
(TRUE)
In database lingo, BASE stands for Basically Available, Strong Consistency, and Eventually Durable. As opposed to ACID which has strict properties of atomicity, consistency, and durability.
(False)
In a hub-and-spoke architecture, the data exchanged is typically in a canonical format.
(False)
It is possible to horizontally scale a database without support for partition tolerance.
(False)
In a CP database, it is possible to have a write conflict during partition.
(False)
In a hub-and-spoke architecture, the data exchanged is typically in a canonical format.
(False)
In database lingo, BASE stands for Basically Available, Strong Consistency, and Eventually Durable. As opposed to ACID which has strict properties of Atomic, Consistent, isolated, and durable.
(False)
In the inverted index example:
The map function is: it takes a document and outputs a list of words and an identifier for the document (document id).
The Reduce Function is: it takes all the word and document id pairs and outputs the word with the list of documents the word is found in.
(TRUE)
It is possible to horizontally scale a database without support for partition tolerance.
(False)
Integration Styles:
Prone to stale data due to low-frequency updates: File Transfer
Difficult to design the same Schema Apps: Shared Database
Integrate via Functions rather than Data: Remote Procedure Invocation(RPC)
Achieves better loose coupling in integration: Messaging
Kafka is better suited for event streaming than RabbitMQ.
(TRUE)
Kafka can not scale linearly with data size
False
Kubernetes and Dockers are typically used together.
(TRUE)
Latency is the minimum time required to get any form of response.
(TRUE)
Load balancers use health check pings against back-end servers to determine if they are busy and can be sent a request.
(TRUE)
Low network latency will result in a slower web browser response to render a web page
(False)
Microservices are more coarse-grain compared to SOA.
(False)
Message Integrity is a security mechanism the recipient of a message can use to check if a message has been altered in transit.
(TRUE)
Microservices are easier to maintain, deploy and debug compared to a large Monolithic Application
(False)
Microservices are better suited for synchronizing APIs than a message in architecture like ESB’s (TRUE)
Middleware Use Cases
Integration
Caching
SSO
Microservices typically result in a partitioned Database Architecture
(TRUE)
Microservices typically share the same database.
(False)
Microservices are easier to maintain, deploy and debug compared to a large Monolithic Application
(False)
Microservices typically share the same database.
(False)
Microservices are better suited for synchronizing apis than a message in architecture like ESB’s
(TRUE)
Non-repudiation is a security mechanism to improve that the receiver is supposed to receive the message
(False)
OWASP’s top ten includes the injection Attack, which is about how attackers add untrusted code that can be executed on the server without proper authorization.
(TRUE)
Only technical writers can create documentation during a Sprint.
(False)
RabbitMQ is better suited for event streaming than Kafka.
(False)
Redis is typically used to cache popular queries to increase response times.
(False)
Request and Response Transformations are typically the responsibility of the API Gateway
Forward proxy, Reverse Proxy, API gateway, CDN, and Load Balancer
Responsiveness is the amount of time a system takes to process a request from a user or API call.
(False)
Response time is the amount of time a system takes to process a request from a user or API call.
(TRUE)
Scrum Backlog Items must fit a Sprint
(False)
Sharding is used when it is not possible to store the data on a single server
(TRUE)
Spark was created to improve the processing speed of Hadoop and to also support other computational models besides batch processing
(TRUE)
Spring Framework is considered to be an IoC Container that heavily uses the Dependency Injection Pattern.
(TRUE)
SSL Termination is typically the responsibility of Reverse Proxies
Forward proxy, Reverse Proxy, CDN, Load Balancer
SSL Termination is typically the responsibility of?
Reverse Proxy
Teams use story points and velocity to estimate how many stories they can include in each sprint.
(TRUE)
To refine Product Backlog items, the following activities will occur implicitly or explicitly:
Decomposition
Design
Analysis
There are no “Time Boxes” in Kanban.
(TRUE)
The early Majority are typically found in the growth phase of a Technology Life Cycle.
(TRUE)
To resolve a conflict in a NOSql Database during partition recovery, select the best mechanism to use.
Vector clock stamp
Turning on a sticky (persistent) session for a load balancer sends all requests from a client to the same back end server using stateful features of HTTP.
(False)
Using RPC is considered to be loosely coupled as an Enterprise Integration approach
(False)
What are the typical charts used to track progress for each of the following?
Waterfall – Gantt Chart
XP – Total work done
Scrum – Burndown chart
Kanban – Cumulative flow diagram
When a client machine needs to access “google.com” via TCP/IP, the client may consult a DNS server on the local LAN if the IP for google.com doesn’t exist in the local cache (i.e /etc/hosts). The response from the LAN DNS server is considered an Authoritative Response
(False)
Why is it hard to scale a typical relational database? (select all that apply)
A. Because RDBMS requires a fixed schema (v)
B. Because there is an upper bound to adding more memory and CPU (v)
C. Because RDBMS don’t support BASE
D. Because it is expensive to vertically scale (v)
E. Because RDBMS don’t support horizontal scaling (v)
F. Because RDBMS doesn’t support functional partitioning
Who writes tests in a Scrum Team?
The Development Team
Why are automated builds important?
They provide rapid assurance that defects and configuration management issues have not been introduced
XMPP is the protocol used by RabbitMQ
(False)