Thursday 21 March 2024

MuleSoft Interview Preparation

* What is Anypoint Exchange in MuleSoft?

Anypoint Exchange provides the benefit of being able to discover, share, and incorporate assets and resources into your applications. 

Anypoint Exchange helps you create API developer portals, view and test APIs, simulate data to APIs (Mocking Service), create assets, and use API Notebooks to describe and test API functions.

* What is Anypoint Platform?

Anypoint platform is highly productive, hybrid integration platform that creates an application network of app, data and devices by producing and consuming reusable assets. It is collection of Tools and Framework ( building application) and runtime for running application

* What are Anypoint Connectors in MuleSoft?

Anypoint connectors are used to integrate with SaaS and Cloud API e.g. Salesforce, AWS etc. also you can connect your on-premise applications using connectors, there are various connectors available like Database, Email, File, Salesforce etc.

* What is API Portal in MuleSoft?

API Portal allows providers to expose and publicize their APIs, educate developers communities about them, provision user access generate client keys and more

* What is API Notebook in MuleSoft?

API Notebook is web based tool for building interactive tutorials and examples in a Java Script workspace

* What are deployment options available in MuleSoft?

  • Cloud hub
  • On-premise
  • Runtime Fabric(RTF)
  • Anypoint PCE(Anypoint Private Cloud Edition)
  • Anypoint PCF(Anypoint Platform for Pivotal Cloud Foundry)

* What is Cloudhub?

Cloudhub is an (iPasS) Integrated platform as a service which is multi-tenant, secure, highly available service where we can deploy our integration application on cloud also integrate on-premise application with cloud services

* How many ways you can deploy application on Cloudhub?

  • Anypoint Studio
  • Runtime Manager
  • Anypoint CLI
  • Cloudhub API

*  What is PCE (Platform Cloud Edition in MuleSoft)?

With Anypoint Platform Private Cloud Edition (Anypoint Platform PCE), you run and manage Mule applications on your local servers

Anypoint Platform PCE uses Docker and Kubernetes to provide built-in high availability and scalability.

You can install the platform without understanding Docker or Kubernetes

* What is RTF (Run time Fabric)?

Anypoint Runtime Fabric is a container service that automates the deployment and orchestration of your Mule applications Runtime Fabric runs on customer-managed infrastructure on AWS, Azure, virtual machines (VMs)

Features of RTF

  • You can scale your mule application
  • There is option to run multiple version of mule runtime on same set of resources
  • Isolation between application by running a separate Mule runtime per application

* Why we use Mule Maven Plugin?

The Mule Maven plugin allows you to integrate the packaging and deployment of your Mule applications with your Maven lifecycle.

By using mule maven plugin you can automate the deployment of mule application on Cloudhub, on-premise or on RTF

*  What is the difference between op-premise deployment and cloud hub deployment strategy?

With Cloud hub deployment strategy you can deploy maximum 10 Application on 1 vCore machine but in on-premise you can deploy 100 application on 1 vCore depends on the In Cloudhub mule runtime will be managed by the MuleSoft, in on-premise mule runtime will be managed by the Customer itself

* What is persistent queue?

Persistent queues ensure zero message loss and allow you to distribute non-HTTP workloads across a set of workers, Persistent queues also guarantee delivery of your messages; even if one or more workers or data-centers go down, persistent queues facilitate disaster recovery and provide resilience to hardware or application failures.

*  Why we used Anypoint VPN?

We use Anypoint VPN to create a secure connection between MuleSoft VPC and on-premise network

*  What is static IP and in what scenarios static IP gets changed?

Static IP is the IP Address of the worker displayed on the cloud hub console; by default you are allocated a number of static IP equal to twice the number of production vCores. Static IP can be changed in below scenarios

Deleting an application will also remove its Static IP. If you create a new application with the same name, it will have a new dynamically assigned IP address.

Adding a new application by moving it from Dev to QA. This requires a new application name and a new Static IP is generated When application is re-deployed to a different geographic region

In which time zone MuleSoft scheduler runs?

Mulesoft Schedulers always run in UTC/GMT timezone

*  What happens to your logs when you delete mule application from Cloudhub?

After you delete your application your log data is no longer accessible through the console, Cloudhub archive old log data for a limited period of time before being purged, if you want to recover data you have to raise support ticket with MuleSoft.

*  What is object store V2?

Object Store v2 lets Cloudhub applications store data and states across batch processes, Mule components and applications, from within an application.

Persists keys for 30 days unless updated. If a key is updated, the TTL (time-to-live) is extended by another 30 days from the current expiration date

Allows for an unlimited number of entries. There is no limit on the total size of v2 object-stores. Stores values up to 10 MB

* How can one mule app access the object store of another mule app?

To share data between Mule 4 apps create a flow to retrieve the data using the Retrieve operation in the Object Store Connector 

In Mule 3, use the Object Store v2 REST API to read from one app and store to another.

* What is Anypoint MQ?

Anypoint MQ is a multi-tenant, cloud messaging service that offers customers to perform asynchronous messaging scenarios between their applications.

Anypoint MQ is fully integrated with Anypoint Platform

Anypoint MQ requires a separate Enterprise subscription

* How MuleSoft scheduler runs in multi worker cloud hub environment

Mule runtime cluster or multi-worker Cloudhub deployment, the Scheduler runs (or triggers) only on the primary node (that is, only in one Mule runtime).

* How you can prevent your application hosted in Cloudhub from being publicly accessible

Remove the Anypoint VPC Firewall rules with source Anywhere (0.0.0.0/0) and port 8081/82 or create a whitelist in your dedicated load balancer with the IP Address you want to authorize.

* What is Control Plane?

In Anypoint Platform, the control plane consists of Anypoint Design Center, Anypoint Management Center, and Anypoint Exchange, API Manager Etc. Control plane is used to deploy, monitor and manage the running application in Mule runtime

* What is Anypoint runtime Plane?

Anypoint runtime plane is used where we deploy the mule runtime application also where the mule runtime engine runs, in case of Cloudhub runtime plane will be managed by MuleSoft and for on-premise and RTF Runtime plane will be managed by Customer

* What is EU Control Plane?

MuleSoft hosts a version of the Anypoint Platform control plane entirely within the EU (Frankfurt or Dublin data centers). This enables you to deploy and manage your APIs, applications, and related data entirely within the European Union. This includes data and metadata about your MuleSoft implementation. The EU control plane ensures that all MuleSoft data is stored within the EU

* What is Anypoint Visualizer?

Anypoint Visualizer displays views of different aspects of an application network graph.

Anypoint Visualizer provides a real-time, graphical representation of the APIs and mule application that are running.

It also displays third party system that are invoked by a mule API, proxy or application within your application network

Anypoint Visualizer collects data from Mule applications, APIs, and proxies deployed to Cloudhub; from standalone Mule runtime engines (Mule instances); or from Runtime Fabric, to discover all incoming and outgoing connections through an embedded plugin.

* What is Anypoint VPC?

The Anypoint Virtual Private Cloud (VPC) offering allows you to create a virtual, private, and isolated network segment in the cloud to host your Cloudhub workers

Connecting to your Anypoint VPC extends your corporate network and allows Cloudhub workers to access resources behind your corporate firewall. You can connect on-premises data centers through a secured VPN tunnel, or a private AWS VPC through VPC peering, or by using AWS Direct Connect.

* What are the methods to connect on-premise network with Anypoint VPC

You can use an IPsec tunnel with network-to-network configuration to connect your on-premises data centers to your Anypoint VPC. An IPsec VPN tunnel is generally the recommended solution for VPC to on-premises connectivity

* What is VPC Peering?

VPC peering provides connectivity between two VPC, this enables you to route traffic between 2 VPCs so that they can communicate as though they are in same network.

To use VPC peering your AWS and Anypoint VPCs must be located in the same AWS region

*  Why we use Shared Load Balancer (SLB)?

Shared load balancer is a default load balancer provides basic load balancing functionality, with Shared load balancer you cannot configure customer SSL certificate proxy rule. Shared load balancer has lower rate limits

* Why we used Dedicated Load Balancer?

Cloudhub dedicated load balancers (DLBs) are component of Anypoint Platform that enable you to route external HTTP and HTTPS traffic to multiple Mule applications deployed to Cloudhub workers in a Virtual Private Cloud (VPC).

Features of DLB:

  • It handles the load balancing among different cloud hub workers
  • You can also configure the custom SSL certificate and enforce 2-way SSL client authentication

* What are the prerequisite to create DLB?

Your profile is authorized to perform this action by adding the Cloudhub Network Administrator permission to the profile of the organization where you are creating the load balancer.

Create an Anypoint Virtual Private Cloud (Anypoint VPC) in the organization where you want to create a load balancer.

Create at least one certificate and private key for your certificate.

* How many ways you can configure the Dedicated Load Balancer

There are three ways to create and configure a dedicated load balancer for your Anypoint VPC

  • Runtime Manager from Anypoint Platform
  • The Cloudhub load-balancer create command from the Anypoint Platform CLI
  • The Cloudhub API

* How can you achieve the High Availability in MuleSoft?

HA is to keep overall system operational when a system component fails, usually it is achieved with multiple level of fault tolerance or load balancing.

In case of on-premise you can deploy the mule application on multiple Clusters

In case of Cloudhub you can deploy the mule application on multiple cloud hub workers i.e horizontal scaling to multiple mule run time

* What is API Manager?

API Manager is a component of Anypoint Platform for managing APIs.

API Manager manages APIs that reside in Exchange

API Manger is used to apply the policies on APIs

* What is API Autodiscovery?

API Autodiscovery is used to pair the API in API Manger to it deployed mule application

When autodiscovery is correctly configured in your Mule application you can say that your application’s API is tracked by or paired to API Manager.

An API in a Mule runtime can only be associated with one autodiscovery instance. No two Autodiscoveries can be associated to the same API in a Mule Runtime.

* What is API Gateway?

API Gateway is embedded inside mule runtime, using this gateway any user can apply basic authentication policy on top of Mule application, enrich and incoming outgoing message or any other complex capability to an API without writing code. Basically it is an orchestration layer on top of your back end API to help you separate orchestration from implementation.

* What are API security policies are available in MuleSoft?

XML or JSON threat protection – this will protect against the oversized XML or JSON payload

Client ID enforcement – authentication is need for proper use of an API, only client authorized can use the API and no one else

SLA-based Rate Limiting – this is more need in case we want to monetize an API otherwise ignored e.g. Free – 20 request per minute

Unlimited – 100K request per minute

IP blacklisting – this can be used if we want to limit the consumption of an API to particular IPs e.g. IPs know for hacking etc.

Tokenization – to tokenize any element which can be sensitive e.g. credit cards etc.

HTTP Caching – in case we think the response don’t change frequently and it’s ok to send the same response for particular request

Cross-Origin resource sharing – is a standard mechanism that allows JavaScript XMLHttpRequest (XHR) calls executed in a web page to interact with resources from non-origin domains. CORS is a commonly implemented solution to the “same-origin policy” that is enforced by all browsers.

Spike Control API – it will protect the system against burst requests Header removal or injection – add remove HTTP header

Message logging – Logs custom messages between policies and flow. the payload will be consumed by the policy if it’s a non-repeatable streams

* What is the difference between Throttling and Rate Limiting?

Rate Limiting and Throttling are the API Policies available in MuleSoft, you can apply these policies through API Manager.

Rate Limiting: The Rate Limiting policy limits the number of requests an API accepts within a window of time. The API rejects requests that exceed the limit

Throttling: The Throttling policy queues requests that exceed limits for possible processing in a subsequent window. The API eventually rejects the request if processing cannot occur after a certain number of attempts. You can configure a delay between retries, as well as limit the number of retries

* What is RAML? 

RAML stands for Restful API Modelling Language,

RAML is a well-defined contract in a human readable format to actually exist as your source code

it is open-specification language built on YAML 1.2 and JSON for describing Restful APIs.

Restful API Modelling Language (RAML) makes it easy to manage the API lifecycle from design to deployment to sharing. It’s concise and reusable; you only have to write what you need to define and you can use it again and again.           

* What are API Fragments in RAML

API Fragment is part of RAML specification; it is not in itself a complete RAML specification. These are the small reusable component used in API specification. You can create fragment and publish it to exchange to make it reuse in the organization. Example of Fragments: Library, Data Type etc.

* Why we use Design Center

Design center can be used to write API definitions with RAML using API Designer

You can also create API Fragment in RAML, after you create a specification or fragment you can publish it to Anypoint Exchange so that it can be reused in the organization. Design center can also be used to create mule applications using flow designer

* How to achieve the parallel processing in MuleSoft?

To achieve the parallel processing you can use scatter gather or batch job and with mule 42 on wards there is also parallel for each has been added to process the message simultaneously.

* How to access secure property inside dataweave?

By using p(‘secure::<property name>’) you can access the secure property defined as part of secure property file in mule application

* How can you raise error explicitly in Mule flow/subflow?

By using the Raise Error component you can explicitly raise the error in between the flow 

* How can you handle errors in middle of the processing in MuleSoft?

You can use the Try block to handle the errors in between the flows, try block also support the transaction. By using try block you can use the on-error continue or on-error propagate to handle the error

* How to call Flow from inside a dataweave?

You can use dataweave lookup function to call flow from inside a dataweave It works in Mule apps that are running on Mule Runtime version 4.1.4 and later It takes the flow’s name and an input payload as parameters. For example, lookup(“flowname”, payload)

* What is the difference between map, mapObject and pluck?

  • map is used to iterate over array
  • mapObject is used to iterate over object and return object
  • pluck iterates over an object and returns an array of keys, values, or indices in that object.

* How will you combine 2 arrays into single array in MuleSoft?

You can use flatten dataweave function to combine two arrays in to single array

* What are target variable in MuleSoft

When creating a flow in mule app, you can store data in variable so that any component in a flow can use it. In Mule 4 Target Variable replaces the Message Enricher of Mule 3, target variable is available with most of the connectors

* How many phases are there for batch job in Mule 4

Each batch job contains 3 different Phase

  • Load and Dispatch.
  • Process
  • On Complete.

*  When we should use batch processing

You can use batch processing when:

Synchronizing data sets between business applications, such as syncing contacts between two different ERPs

Extracting, transforming and loading (ETL) information into a target system, such as uploading data from a flat file (CSV) to Hadoop.

Handling large quantities of incoming data from an API into a different systems

* Why we use Batch Aggregator scope

Batch Aggregator scope is used to accumulate a subset of records from a batch step and process them to external source or service for example rather than processing single record to target system you can use batch aggregate to process all the records at once. You can also configure batch aggregator scope to process fixed size groups of records inside a batch aggregator scope

* What is the difference between For each and Batch Process

For each do the processing in single thread while Batch Process performs multi-threaded processing moreinformation

* How to manage the Transaction in MuleSoft

MuleSoft supports two types of transactions

  • Single resource( Local)
  • XA transactions (extended architecture)

You can configure the transaction depends on the requirement

You can start a transaction from a message source. In this case, the entire flow takes part in transaction This is useful when working with messaging connectors to prevent the consumption of the message if a problem occurs when processing it, allowing you to retry later (because of the rollback).

You can also use the Try block which support the transaction when you want to handle the transaction in middle of the flow

There are below transaction Action define the type of action that operations take regarding transactions

  • Always_Begin
  • Always_Join
  • Begin-or-join
  • Join-if-possible
  • Indifferent
  • None
  • Not Supported

 * What are various types of error handling in Mule 4?

Mule 4 has redesigned error handling by introducing the error-handler component, which can contain any number of internal handlers and can route an error to the first one matching it. Such handlers are on-error-continue and on-error-propagate.

* How can you process message asynchronously in MuleSoft?

You can use the Async Scope to process the message asynchronously.

Async can be used to do the processing in parallel with the main flow, it can be used to process the time consuming operations that does not expect a response back  

* How can you achieve the Reliability in MuleSoft?

If your application uses a transactional transport such as JMS, VM, DB etc. Reliable messaging is ensured by the built in support of transactions in the transport. Reliable messaging pattern is important when dealing with non-transactional endpoints

* How can you improve performance of Mule Application in MuleSoft?

There are multiple ways to improve the performance

  • Try to save the result and reuse them later
  • If processing is expansive do it only once and save result and use them later
  • Try to put the validation at start of the flow
  • Use Streaming to process data
  • Try to process the data asynchronously wherever is possible

* How can you optimize memory efficiency of the Code in MuleSoft?

Do not save the Payload in to the flow Variable as it is more memory consuming element

Do not load unnecessary part of the document

Use better Database polling for highly concurrent scenarios

* What is distributed file polling?

In mule 4 distributed file polling is used to poll files in cluster nodes

There are few connectors where this feature is enabled by default

  • File Connector
  • FTP Connector
  • SFTP Connector

You can configure connectors to poll only from primary node @primaryNode Only which ignores the default setting set by mule runtime engine

* How will you implement caching in MuleSoft?

There are 2 ways to implement the caching in MuleSoft

  • Use Object Store
  • Use Cache scope to cache the Response

 * If we wanted to process only one message at a time in mule flow how can we achieve that?

we can make a flow to process in single thread, there is an option to define the Max Concurrency  you can configure the same as 1 to   process only one message at a time

* What is runtime manager?

Runtime manager is to deploy and manage mule application on mule runtime engine, where mule runtime is running on Cloudhub or on-premise or on RTF.

By using runtime manage you can deploy/undeploy the mule app

You can change the runtime version at any time

You can increase/decrease the worker size

* What is vCore?

It is unit of compute capacity for processing on Cloudhub. In 1 vCore maximum 10 applications can be deployed where 0.1 vCore will be consumed by each mule application

* What is worker in MuleSoft?

Worker is an dedicated Instance of Mule hosted on AWS is used to run your integration application

Features of workers:

  • Capacity: Each worker has a specific amount of capacity to process data.
  • Isolation: Each worker run in a separate container from every other application
  • Manageability: Each worker is deployed and Managed independently
  • Locality: Each worker runs in specific worker cloud such as US,EU or Asia-Pacific

* How many mule applications you can deployed in one worker in Cloudhub

Only one Mule Application can be deployed in MuleSoft in one worker

* What is minimum and maximum Worker size available in Cloudhub?

0.1 vCores is the Minimum and 16 vCores is the maximum worker size available in Cloudhub

* What is horizontal scaling and vertical scaling?

Vertical scaling is to increase the worker size, when you want to process the CPU Intensive API’s or process large payload with small number of request increase the vCore size.

Horizontal scaling is to increase the number of worker, if you want to increase the throughput of high frequency small payload

* How to achieve clustering in MuleSoft

You can achieve this by adding multiple workers to your application to make it horizontally scale, Cloudhub automatically distribute multiple workers for same application across 2 or more data centres for maximum reliability When deploying your application to two or more workers, the HTTP load balancing service distributes requests across these workers, allowing you to scale your services horizontally. Requests are distributed on a round-robin basis.

* Can you disable the Cloudhub Logs?

Yes, in that case only the system logs are available in Runtime Manager. System logs provide the status of your worker deployment and whether your application started correctly, but do not provide application logs

* What is Mule Runtime?

A Mule runtime is a runtime engine used to host and run Mule applications – Similar to an application server

Mule runtimes can be provisioned on-premises and/or in the cloud

One Mule runtime can host several Mule applications

* What all different API policies should be applied on different API levels like Experience, Process and System Level?

 Experience

XML or JSON threat protection – this will protect against the oversized XML or JSON payload

Client ID enforcement – authentication is need for proper use of an API, only client authorized can use the API and no one else

SLA-based Rate Limiting – this is more need in case we want to monetize an API otherwise ignored e.g.

Free – 20 request per minute

Unlimited – 100K request per minute

IP blacklisting – this can be used if we want to limit the consumption of an API to particular IPs e.g. IPs know for hacking etc.

Tokenization – to tokenize any element which can be sensitive e.g. credit cards etc.

HTTP Caching – in case we think the response don’t change frequently and it’s ok to send the same response for particular request

Cross-Origin resource sharing – is a standard mechanism that allows JavaScript XMLHttpRequest (XHR) calls executed in a web page to interact with resources from non-origin domains. CORS is a commonly implemented solution to the “same-origin policy” that is enforced by all browsers.

JWT Validation – JSON web token validation

Process

IP whitelisting – making sure the request are coming from allowed VPC or within organization

SLA-based Rate Limiting – it will make sure that target system will not go down in case of burst request

Client ID enforcement – authentication is need for proper use of an API, only client authorized can use the API and no one else

Spike Control – it will protect the system against burst requests

Tokenization – to tokenize any element which can be sensitive e.g. credit cards etc.

System

IP whitelisting – making sure the request are coming from allowed VPC or within organization

SLA-based Rate Limiting – it will make sure that target system will not go down in case of burst request

Client ID enforcement – authentication is need for proper use of an API, only client authorized can use the API and no one else

Spike Control – it will protect the system against burst requests

Tokenization – to tokenize any element which can be sensitive e.g. credit cards etc.

Other – based on requirement and can be applied on any level

Header removal or injection – add remove HTTP header

Message logging – Logs custom messages between policies and flow. the payload will be consumed by the policy if it’s a non-repeatable streams

* Why we use identity management?

You can configure identity management to set up users for Single sign-on

Following are below SSO Standard

  • Open ID connect
  • SAML 2.0
  • Salesforce
  • Open AM
  • OKTA
  • Ping Federate

* Why we use client management?

With the help of client management you can configure external client provider to authorize client applications. As a API owner you  can also apply the OAUTH policy to authorize client to access your apis to use the OAUTH policy you need an OAUTH provider.

Mulesoft provides below options to configure the OAUTH provider.

  • Open AM
  • Ping Federate
  • OpenID Connect Dynamic Client Registration

* How many ways we can ensure data and API security?

  • Multi-factor Authentication
  • Token-based authentication
  • Digital signature
  • Public key cryptography
  • Digital certificate

* What is OATH 2.0 dance?

The OAuth 2.0 dance is the authentication process performed by the Mule OAuth 2.0 provider, API, and client application

* What are the Grant type in OAUTH 2.0?

  • AUTHORIZATION_CODE
  • IMPLICIT
  • RESOURCE_OWNER_PASSWORD_CREDENTIALS
  • CLIENT_CREDENTIALS

* What are keystore and truststore?

In SSL handshake purpose of trustStore is to verify credentials and the purpose of keyStore is to provide credential. keyStore stores private key and certificates corresponding to there public keys and require if you are SSL Server or SSL requires client authentication.

TrustStore stores certificates from third party, your Java application communicate or certificates signed by CA(certificate authorities like Verisign, Thawte, Geotrust or GoDaddy) which can be used to identify third party

#mulesoft #api #integration #APITesting  #QualityAssurance  #testautomation  #testing #automation #softwaretesting #qa #api #software #MCD #Anypoint 

                      

No comments:

Salesforce AI Associate Certification - 3

What is semantic retrieval in the context of LLMs?   Searching for relevant information in other data sources What additional protection do...