MCIA Slides question Flashcards
Auto/manual scaling in RTF? need to dockerize apps for RTF?
manual scaling! And no, no need to dockerize apps for RTF!
Anypoint (E.) Security min/full available for?
min for RTF, full for on prem, not at all for PCE,PCF
Anypoint Tokenization available for?
on prem only! not rtf or pce or pcf
Load balancing available for?
CH, RTF
DLB support available only for?
CH
Which runtime and control planes can support AWS auto-scaling in EC2 instances under ELB control?
– The best choice is customer-managed Mule runtimes deployed into EC2 instances under ELB control
– PCF, CloudHub, and !!!obs!!!! Runtime Fabric !!! cannot support this requirement
what options does NOT REQUIRE Devops with expert capability in K8s and Docker?
Customer-hosted runtimes in RTF or on-prem solution do not required DevOps with expert capability in K8s and Docker
what runtime alternatives can use splunk?
hybrid or on-prem/pce solution can use existing monitoring capability of Splunk. This is according to course material and this page: “Export Data from Runtime Manager to External Analytics Tools”
P.s. RTF workaround??? exist https://docs.mulesoft.com/runtime-fabric/1.0/configure-log-forwarding
what options make VM queues messages to be load balanced for deployments to a cluster
VM queues messages are load balanced for deployments to a cluster of Mule runtimes: Fabric, on-prem
what only runs in the primary node in a cluster?
scheduler
when to use a private Object Store?
For cases where shared state is a security risk, you should use a private Object Store.
For cases where you do not want anyone to manipulate the store from the connector level. For example, you want to avoid the chance that someone changes the configuration of a Clear operation so that it deletes all your authorization data.
how fast is replicated in-memory data grid vs disk?
Replicated in-memory data grid storage lies somewhere between in-memory and on-disk
A MuleSoft Object Store have no what?
no query mechanism, objects are only retrievable by the key
Customer-hosted clusters have additional configuration options that also affect the implementation and behavior of object stores, true or lie?
True!
You can persistently store JDBC data in a central system that is accessible by all cluster nodes when using Mule runtime engine on-premises. Object store persistence is not currently supported for Mule applications deployed on Runtime Fabric.
To enable object store persistence, create a database and define its configuration values in the {MULE_HOME}/.mule/mule-cluster.properties file:
mule. cluster.jdbcstoreurl: JDBC URL for connection to the database
mule. cluster.jdbcstoreusername: Database username
mule. cluster.jdbcstorepassword: Database user password
mule. cluster.jdbcstoredriver: JDBC Driver class name
mule. cluster.jdbcstorequerystrategy: SQL dialect
Persistent queues are not available between…
Between different Mule applications, especially deployed to different Mule runtimes. or to non-mule apps.
File persistence (reliablility, durability, and persistency) in Runtime Fabric compared to standalone Mule runtime?
not as good in RTF compared to standalone
whatermark for scheduling?
Use a watermark to keep a persistent variable between scheduling events. P.s. i guess it survice restart since its using persistent object store!?
System.out messages in app or system log?
in CH in app log, in Customer hosted in system log
Can CloudHub integrate with third party log management systems in an abritrary way?
Yes, using custom aggregator application. It can be done by creating an application with Mule or any other language
what happens to default business events if it is currently configured disabled in the Mule application?
Default business events tracking still will be enabled for every flow and component
What is next generation tool from MuleSoft for analyzing and monitoring applications/servers?
Anypoint Monitoring
IPSEC VPN, VPC peering, direct connect is used when?
You can connect an Anypoint Virtual Private Cloud (Anypoint VPC) to your private network using an IPsec tunnel, VPC peering (AWS), and CloudHub Direct Connect (AWS).
P.s. VPC Peering can be used to connect your AWS and Anypoint VPCs but they must be located in the same region. CloudHub Direct Connect can be used to connect to AWS too in the same region.
Data partitioning??? ACID vs. BASE transactions??
https://docs.mulesoft.com/mule-runtime/4.3/choosing-the-right-clustering-topology
The rise of NoSQL databases provided a flexible and fluid way to manipulate data.The acronym BASE is slightly more confusing than ACID (Atomic, Consitent, Isolated, Durable)
BASE stands for:
Basically Available – Rather than enforcing immediate consistency, BASE-modelled NoSQL databases will ensure availability of data by spreading and replicating it across the nodes of the database cluster.
Soft State – Due to the lack of immediate consistency, data values may change over time. The BASE model breaks off with the concept of a database which enforces its own consistency, delegating that responsibility to developers.
Eventually Consistent – The fact that BASE does not enforce immediate consistency does not mean that it never achieves it. However, until it does, data reads are still possible (even though they might not reflect the reality).
Rollback of Tx happens
1) After a failure occurs in a transaction scope, but only if the error is not handled in an On Error Continue scope 2) On error Propagate 3) By throwing an error in a flow or in a Try scope
JMS Recover session?
JMS Recover session is used inside Error Handler to redeliver messages
Receipt of JMS messages must be acknowledged when?
when JMS transactions are not used
when to use JMS Transaction vs Jms Ack
● Use JMS ack if
– Acknowledgment should occur eventually, perhaps asynchronously
– The performance of the message receipt is paramount
– The message processing is idempotent
– For the choreography portion of the SAGA pattern
● Use JMS transactions
– For all other times in the integration you want to perform an atomic unit of
work
– When the unit of work comprises more than the receipt of a single message
– To simplify and unify the programming model (begin/commit/rollback)
HTTP Request operation have what validation types?
Failure status code validator, Success status code validator, but also Expression and None
how to set encryption key for enc props
chap 15, slide 34:
Encryption key for encryption sets as system property or env variable
chap 15 slide 38:
● On-premises
– Set from JDK system properties ■ Mule -M-Dencryption.key=Mule
– Set from environment variables from OS ■ varies with OS
– Set from wrapper.conf in /conf
■ wrapper.java.additional.=-Dencryption.key=Mule
● CloudHub
– Set from Runtime Manager console’s property tab
– Best practice is to set key from Runtime Manager console and hide as application property by listing under secureProperties key as comma separated list in mule-artifact.json
supported secure protocols?
HTTPS, TLS, SFTP, FTPS, SMTP/S, IPSec
API Policy Authentication/Authorization supported through:
● Basic Authentication: LDAP/Simple
OAuth 2.0 token enforcement API policies
● IP-based access control
■ Blacklisting, whitelisting
name five Anypoint Edge policies!?
● Service Virtualization ● Connection Security and Certificate Management ● Content Security ● Quality of Service ● Application Level(Dos)
Edge/Tokenization deployed where?
● Edge Security servers are usually deployed in a DMZ in a customer-hosted environment
– Provides edge policies
● Tokenization is usually deployed inside the firewall to replace
sensitive data with fake data in the same format
Secrets Manager is only supported by?
Secrets Manager is only supported for customer-hosted Mule runtimes in Runtime Fabric only
When is system error handler invoked?
• When an error does not involve a Mule event, the system error handler is invoked
zero downtime is mandatory for what packaging?
CH, it appears its understood that way
By design, Correlation Ids cannot be changed within a flow in Mule 4 applications and can be set only at source. But how???
If “X-Correlation-Id” header is present, HTTP connector uses this as the Correlation Id.
If “X-Correlation-Id” header is NOT present, a Correlation Id is randomly generated.
Obs! This ID is part of the Event Context and is generated as soon as the message is received by the application.
Cert förnyelse gäller INTE RTF eller CH, utan bara gäller Hybrid o PCE
Registering a Mule server in Anypoint Runtime Manager requires a valid certificate provisioned and signed by Runtime Manager. Det går att förnya i Runtime Manager direkt. Man ser det direkt under servers fliken.
Från examen: External Analytics Tools För PCE eller Hybrid kan möjligöras hurdå?
You can configure the Runtime Manager agent to export data to external analytics tools. Using either the Runtime Manager cloud console or Anypoint Platform Private Cloud Edition, you can:
1) Send Mule event notifications, including flow executions and exceptions, to Splunk or ELK.
2) Send API Analytics to Splunk or ELK.
Common message construction patterns?
● Common data models
● Message transformation patterns
● Message validation patterns
● Message routing patterns
Datasense is about what?
- it can automatically sense and import metadata from the connectors
- With DataSense, inbound and outbound schemas can be auto-populated
- DataSense assists you at design time by providing a live stream of content types while you are coding
Which language can NOT be used for transformation?
Seems its Java. Those are supported: Transformation using scripting Groovy, JRuby (Ruby), JPython(Python), Nashorn(JavaScript)
system mapping complexity with or w/o cdm?
w/o can be worst: O(N^2). with its linear O(N)
Mule application A receives a request Anypoint MQ message REQU
With a payload containing a variable-length list of request object.
Application A uses the For Each scope to split the list into individual objects and sends each
Object as a message to an Anypoint MQ queue. Service S listens on that queue,
Processes each message independently of all other messages and sends a response
Message to a response queue. Application A listens on that response queue and must
In turn create and publish a response Anypoint MQ message RESP with a payload containing
The list od responses sent by service S in the same order as the request objects originally
Sent in Requ. Assume successful response messages are returned by services S for all request messages.
What is required so that application A can ensure that the length and order of the list of objects in RESP and REQU
Match, while at the same time maximizing message throughput?
q14
https://www.coursehero.com/file/p1q81bh/Mule-application-A-receives-a-request-Anypoint-MQ-message-REQU-with-a-payload/
it appears scatter-gather inside for each is the answer here. but i was worried about conccurrency but maxconcurrency=1 can help.
what type of faults can be produced by APIKIT?
APIkit - JSON validation, throw SOAP faults
what happens typically when condition fails in APIKIT or Mule validation module?
Error thrown happens! It is mandatory to catch the thrown error to control the flow of events!!!
Dont forget you can get a boolean in dataweave lik this: when expression=
“#[ Validation::isEmail(vars.unknownVariable) ]”
APIKIT for Rest only?
Not since 4.1.1. Soap!
configure sequential execution of batch?
- e.g. calling one batch job after the other by just adding a batch:execute in each batch:on-complete will be enough, until you realize that you need to change the sequence, then you will need to start repointing the batch jobs with each other.
- An alternative to this could be using the main flow that has the logic to keep the sequence of the execution. and each batch job only knows its own ID and calls the main flow sending it as payload. So, the logic determines the order based on the predecessor batch job ID.
batch size vs batch scope?
Dont confuse with batch scope!!! “for each” have “batch size” feature in order to aggregate elements in the collection into smaller batch collections
A batch size of 1 means that individual elements (not 1-element collections) are passed on
The Organization Owner is a role or user?
It is NOT a role but an identifier for this single user
– Inherits the Organization Administrator role by default
Can VPC be assigned to many business groups?
Each VPC is assigned to a business group.
An Anypoint Platform VPC can be configured to span across multiple environments and child business groups under the current business group
Does RTF support domain proj?
NO!!! If your on-premises application has a domain project with shared configs, you will need to refactor these configurations and have local configs for each application in Runtime Fabric. For example: HTTP/HTTPS listeners, DB configuration, etc.
zero downtime for the Mule application works due to redirection to old or new worker?
Provides automatic redirection to new CloudHub worker(s) after a Mule application is resized or restarted
Can logs be viewed in ARM in PCE?
NO! Logs are not available in Runtime Manager for PCE or RTF or PCF, only for CH https://docs.mulesoft.com/runtime-manager/viewing-log-data
which packaging provide customer hosted control plane?
PCE, or PCF (you can use either control plane for PCF)
in RTF, do we need to dockerize mule apps?
NO, No need to dockerize Mule apps in RTF!
OOTB capabilities of RTF?
Patch management, registering of Mule Apps and APIs, in Mule control plane, Zero … etc..
how is primary node selected in customer hosted cluster
All worker nodes work in active-active
model and always one (auto-elected)primary node
mule domain supported by?
ONLY available for customer-hosted Mule runtimes, but not for Anypoint Runtime Fabric
how to share config using mule domain?
Add global element configurations to the domain project
● Associate Mule applications with the domain name
– Each Mule application automatically shares all the Mule domain’s global elements
Clustering of Mule runtimes have a * next to it for RTF and PCF, why?
Cause it requires external Hazelcast cluster service
Access to on-prem data from CH by the means of?
VPC or over internet
Runtime tuning in RTF and PCF ?
not supported in RTF. Template control in PCF
file persistence in CH? in RTF? PCF
yes for CH ? and PCF! less reliable for RTF!
DevOps containerization capability?
Prefered for all except Private CLoud Foundry
what doesnt require DevOps with expert capability in K8s and Docker?
Customer-hosted runtimes in RTF or on-prem solution do not required DevOps with expert capability in K8s and Docker
when are SSL endpoints not required?
No more outbound SSL endpoints as runtimes are deployed in existing infrastructure
what happens to stuff on disk when cloudhub worker stopped?
its like disappearance
of the disk when a CloudHub worker is stopped
what happens to vm queues in CH as a result of service outages?
persistent queues can retain certain Mule application data such as messages in VM queues after service outages
vm queue limits in Anypoint Fabric?
– Persistent queuing has no message limit
– maxOutstandingMessages attribute is set to limit the number of messages saved in each VM queue
whats Mule application instance in cloudhub?
Each worker is an instance of Mule that runs your integration applications
non obivous use of persistent VM queues ?
Share state (events) between Mule application INSTANCES (workers) deployed to multiple customer-hosted Mule runtimes (nodes) in a cluster or CloudHub workers
guaranteed only once delivery for vm queue?
Persistence queues may not guarantee that a message is delivered only once
which folder can CH file storage access e.g.?
The File connector can only access specific folders such as /tmp or /opt/storage, depending on the CloudHub worker size
File persistence in
replicated deployments of Mule applications works how?
File persistence does not work across nodes/workers/servers in replicated deployments of Mule applications
– The file-system is not shared between CloudHub workers and also typically not within a Mule runtime cluster
CH osv2 “persistence queue” checkbox override queue defined in the app totally meaning?
- when checkbox disabled, persistence or transient suck equally on all cases
- when checkbox enabled, persistence or transient queue rock’n’roll in all cases totally!
persistence vm queue messages visible in ARM?
not for customer cluster, yes for CH
cache a stream?
Cache limitation: Does not cache consumable payloads such as a stream
cache using external store?
In Mule 4, the cache scope does not directly support external stores such as DB, Redis
– Can be done using the Mule SDK
why cache api?
according to the pic, its if u want to use not only object store but also DB, Redis , etc. And then you only talk to Cache API.
what watermarking option for the On New and Updated File are there? and for what connectors?
There is a watermarking option for the On New and Updated File operation for the family of file connectors
– There are two watermarking modes
■ CREATION_TIMESTAMP
■ MODIFIED_TIMESTAMP
whats the risk with Asynchronous processing in scenarios with watermark involved?
Asynchronous processing may not deliver the watermarked value in the correct increasing order, which might cause new records to be skipped
How does an On Table Row operation’s watermark work?
This operation selects from a table at a regular interval and generates one message per obtained row.
Unlike batch and scheduler, whats Event/messaging queues good for?
Event/messaging queues
– Events/messages decouple data producers from data consumers
– Useful for real time data integration
Can caching avoid duplicate processing?
Yes
what to cache?: only a part of object or entire object in object store?
Persists cache objects (like repetitive payloads) in object store to share across REQUESTS. If using scheduling, use a watermark to keep a persistent variable between scheduling events
most obvious use cases for OS/Persistent queues/Caching ?
● Use the Object Store connector to persist and share a watermark (or other data) across flow executions
● Use persistent queues for managing state of application in case of failure of application or Mule runtime
● Use Caching to avoid intensive processing for repetitive payload
3 reliability enablers/patterns exception Untill-successfull and transactions, all start with R ?
– Reconnection strategies
– Redelivery policy
– NS:RETRY_EXHAUSTED exception scope
reconnection strategy is used by what component(s)?
To retry after connection failures, Mule connectors can set a reconnection strategy. Recon.strategy can be set for a connector (in the Global Elements Properties) or for a specific connector operation (in the Properties view)
redelivery policy unlike other Re’s is what?
A redelivery policy is a filter that helps you conserve resources by limiting the number of times the Mule runtime engine (Mule) executes messages that generate errors. You can add a redelivery policy to any source in a flow. It is configured on inbound connectors, such as the JMS connector, to specify the number of redeliveries before discarding the message
RETRY_EXHAUSTED is a compliment to what?
●Before discarding the message after the number of redeliveries attempted, the connectors raises an exception of type RETRY_EXHAUSTED
● An error scope can handle the RETRY_EXHAUSTED error
Zero message/data loss for non-transactional systems is achieved using a reliability pattern. Its implemented using:
● Splits processing between an acquisition flow and a processing flow
● The flows do not call each other directly, but use persisted queues
1 big and 2 minor pecularities when achieving reliability for non-transactional systems, ordered accordingly?
1) The processing flow must read the message queue transactionally
2) A redelivery policy is set on event sources in both flows
3) REDELIVERY_EXHAUSTED type errors are handled in both the acquisition and processing flows
4) Queues can be persistent VM queues or JMS queues
whats API Functional Monitoring?
API Functional Monitoring is a framework for assuring the quality and reliability of public and private APIs ..
The API Functional Monitoring solution enables developers and operators to perform consistent testing of the functional behavior and performance of their APIs, throughout the API lifecycle, in testing and production environments.
The solution helps you carry out the following tasks:
White-box testing: This type of testing validates the behavior of individual APIs against the understanding of how their internals work. As part of this type of testing, you mock and simulate dependencies (for example, back-end systems and other APIs).
Black-box testing: This type of testing validates the overall behavior of an API and its real/live dependencies as a whole, based purely on inputs and outputs (i.e. without knowing or altering the API internals - no simulation or mocking).
Runtime monitoring: This type of monitoring ensures that deployed APIs are operating within expected performance in production environments. It makes use of behavioral test cases that use real inputs and expected outputs, and exercise dependencies, as in black-box testing.
primary node difference?
In an active-active model, there is no primary node. However, one of the nodes acts as the primary polling node. This means that sources can be configured to only be used by the primary polling node so that no other node reads messages from that source.
This feature works differently depending on the source type:
Scheduler source: only runs in the primary polling node.
Any other source: defined by the primaryNodeOnly attribute. Check each connector’s documentation to know which is the default value for primaryNodeOnly in that connector.
Example configuration for JMS:
server group vs cluster?
state-aware, automatic in-flight transaction failover.
P.s. länken för 4.3 verkar var kopia av 3.9 och är fel
https://docs.mulesoft.com/mule-runtime/4.3/creating-and-managing-a-cluster-manually
examples of problems with duplicates that does not exist in clusters
- All JMS topic subscribers connect to the same topic, resulting in duplicate processing
- File based connectors.
All Mule instances access the same Mule file folders concurrently, which can lead to duplicate file processing and possible failures if a file is deleted or modified by the Mule application. - Multicast connector.
All Mule instances get the same TCP requests and then process duplicate messages.
what happens when configuring HA using multiple CloudHub workers (>1)
● Each worker is created in a different
availability zone in the same AWS region
● Mule application data can be stored and shared
between CloudHub workers using Anypoint Object Store (OSv2)
● VM queues can be changed to persistent or non-persistent in Runtime Manager
– Without changing any configuration or properties of the deployed Mule app
is app redeploy required when cluster nodes add/subtrated as long as there is 1+ nodes?
NO. if primary node dies, one of the rest is autoelected as new primary
what does quorum mean?
A quorum size sets the minimum number of Mule runtimes that must be in the cluster in order Mule applications to run and accept inbound requests
– This also sets the number of nodes to which data is replicated
cluster node discover and join using multicast and unicast. pros and cons with both?
● Unicast pros: no special network req except ip. cons:
IP of at least one other node must be known and configured in each node’s cluster configuration
● multicast pros: Nodes dynamically join the cluster when the node is started. cons: Only permitted in network where multicast is allowed
what are components that use a cluster’s shared memory ?
● VM Queues
● Object Stores
● Most connectors are not cluster-aware
– But all connectors that use an Object Store are implicitly cluster-aware
– Examples include: Cache scope, Idempotent Message validator, and the Round Robin router
Clusterings pros and cons (in comparison to load balancing) incl. implicit ones?
special pros: - Built-in load balancing for VM queues special cons: - Requires 3rd-party product to achieve HTTP load balancing Obs! implicit cons: no loadbalancing for ex. Jms. you would need to disable primaryNodeOnly="false" for Queues, but for topics not using the primaryNodeOnly configuration will cause the cluster to process the same message more than once, unless JMS 2.0 shared-subscriptions is used.
Load balancing pros and cons (in comparison to clustering), (having on-prem in mind) ?
special pros: ●Configurable load balancing algorithms (round-robin, IP sticky, load-based, etc.) All cons: ● Requires third-party product ● No data synchronization ● Manage idempotency programmatically
Identify cluster aware connectors and design consideration for HA
● Socket based
– Receives incoming traffic
– Traffic must be distributed
– Outbound socket based connectors don’t need special consideration
– Example: HTTP
● Resource based
– Cluster automatically manages access to resource so only one clustered
instance can access resource at a time
– Outbound (writing) resource based connector generates unique resources, Examples: File, FTP
– Distributed locking is not supported while writing
Identify cluster aware connectors and design consideration for HA: listener based, what happens to incoming traffic?
– Traffic is distributed automatically
– Must decide if the listener should only fire on the primary node or on all nodes
– Examples: VM, JMS
what to think about considering Load balancing for HTTP/S connector for customer-hosted runtime plane?
● For customer-hosted Mule runtimes, HTTP requests need to be load balanced through a 3rd-party product
– Traffic must be distributed
– Load balancers is required (Nginx, Apache web server)
– Outbound socket based connector don’t need special consideration
whats special about Clustering for VM Connector?
● Messages published to a VM queue in a cluster are automatically load balanced to receiving flows
– Every node in the cluster can execute flows of deployed Mule apps
– The cluster manager automatically determines what node to use based on load
■ Not a deterministic round-robin algorithm