Wednesday, July 7, 2021

Some more AEM 6 Interview Questions for Architects

 Some more AEM 6 Interview Questions for Architects


1. Consider you have a workflow with two steps. One step is to transfer the asset from source to target. And in second step you require source folder url. How would you get this detail?

-> this can be achieved using MetaDataMap that can be retrieved using WorkflowItem object passed in execute method of process step.

2. AEM site security checklist.

3. How is the solutioning process goes in your organization.

-> First a solution architect determines the requirements. Then SME's (AEM, Front end, devops etc) are involved and a questionnaire is prepared around the requirements for the prospect client. Once the response is received, either further clarification is sought by a call or email conversation or first level/ROM estimations are prepared. All these estimations are stored in company's estimator tool. These estimations go through reviews with solution architects, SMEs and other stake holders. Solution architect compiles a detailed presentation mentioning resource plans, estimations, tentative timelines, cost calculations, assumptions, pros and cons of technologies etc. 2A/Final review is done with a team of MD and if approved, it is then presented to the prospect client. Several rounds of discussions happen there after.

4. How to cache pages those are only accessible after login?

Permission sensitive caching can be used here. AuthChecker module is configured in the dispatcher to check if the page should be served/cached for the particular user. The dispatcher calls a servlet in AEM in order to do so.

5. What is sticky connection?

When there are multiple publishers/dispatchers and the requests are being served using load balancer, it is load balancer's responsibility to determine which dispatcher/publisher will server a particular request. However, in case of auth pages (for example user account pages after the login) or specific client requirements, it may become mandatory to serve the pages through the same dispatcher/publisher. This is done via sticky connection.

In dispatcher sticky connections can be configured using /StickyConnectionFor.

For example

/StickyConnectionsFor "/content/folder"

6. What is the difference between csrf and xss.

XSS is cross site scripting means, injecting and executing script on the targeted site/application. While cross site request forgery is malicious request being sent to the targeted site without having knowledge of the attack.

In AEM XSS is mitigated using anti samy java liberary provided by owasp.

IN AEM sling referrer filter and dispatcher configurations are used in order to avoid csrf attacks. In dispatcher you can configure /clientheaders - CSRF-Token and /filters as well as /cache /rules in order to protect from csrf attacks. Sling referrer filter is specifically configured to allow only white listed hosts and only required http methods.

7. What is ReferrerFilter and how it works?

ReferrerFilter in AEM is used as the defense mechanism against csrf attack. By default referrer filter blocks all hosts and requests those are made to AEM instance. Referrer filter can be configured to allow hosts, methods, empty request etc.

8. Best approach to migrate pages from a CMS to AEM.

ETL cycles can be used to migrate the pages/contents from a CMS to AEM. E stands for extraction - i.e. extracting the data from source CMS into files like csv, excel sheets etc. T stands for transformation - i.e. transforming the contents into AEM understandable structures. L stands for load - i.e. loading the transformed contents into AEM either in batches or in one go depending upon the size of the contents. 

AEM's content transfer tool can be useful when the contents are to be transferred from AEM 6.3+ to AEM cloud environment.

The tool has two phases - Extraction and Ingestion.

9. Brand Portal and it's features.

AEM Brand portal is mainly developed to help marketers with providing secure environment to asset creators and distributors to work collaboratively on various types of assets across the different physical locations. Asset contribution enables the Brand Portal users with the ability to upload assets to Brand Portal and publish to Experience Manager Assets, without needing access to the author environment.

  • Asset Sourcing
  • AEM integration
  • On demand Asset distribution
  • Configurable search fields
  • Branding
  • Image presets
  • Metadata schema
  • Assets Reports
  • Dynamic Media integration
  • Assets Contributions
  • Assets Downloading

10. How to allow only limited set of users to access certain pages on your site. (Closed user groups and SAML 2)

Closed user groups is the best way to provide restrict the users from accessing certain pages.

Say you have two pages in /content/siteA/autpages namely /content/siteA/authpages/pageA and /content/siteA/authpages/pageB and some users are allowed to access pageA and some users are allowed to access pageB. Then you can define two CUG with appropriate permissions to see pageA or pageB. 

When the user logs in (mostly using SAML) the user will be assigned appropriate user group as per the login response received. Based on that user group the user will get access to pageA or pageB.

11. Large assets best practices (jvm parameters, indexing etc)


12. Dispatcher module code. (enabled farms, allowed farms, enabled vhosts, allowed vhosts, conf.d folder, conf folder, conf.dispatcher.d folder, conf.modules.d folder)

/conf

/conf.d

--- /available_vhosts (available but not enabled vhosts)

--- /enabled_vhosts (enabled/currently in use vhosts)

--- /rewrites (contains rewrite rules for the sites and content paths)

--- /variables (site specific variables to be used)

--- /whitelists 

other apache conf files

/conf.dispatcher.d

--- /available_farms 

--- /enabled_farms

--- /vhosts

--- /clientheaders

--- /filters

--- /renders

--- /cache

/conf.modules.d

13. Rewrite rules

mod_rewrite is the module responsible for the execution of rewrite rules in apache server. It enables one to rewrite urls based on the conditions/patterns.

Following in vhost enables rewriting of urls in apache server.

ReWriteEngine on

A rewrite rule can be configured using pattern as follows.

RewriteRule ^test$ /content/test.html [NC]

Which means if the url has test in it, redirect to /content/test.html.

Here [NC] is the flag that indicates the rule is case insensitive.

There are more flags and patterns those could be used. Also, RewriteCond can be used to specify what all conditions should be satisfied before the rule can be applied to the url.

14. Architecture of your current project 

15. Non-prod pipeline set up (In ams or jenkins)



Sunday, March 28, 2021

Advance Interview Questions Part 5

Advance Interview Questions Part 5


Here I will try to put new AEM 6.3+ version questions being asked in Interviews.


How jenkins know that the sonar has failed?

A : By using quality gates as post build action after every jenkins job, will ensure the jenkins build fails when quality (i.e. coverage or number of bugs etc) is not matched in sonarqube build.

How to inherit client libs from parent to child with child having it's own values?

A : Embed the global clientlibs category and override the required classes and js in your clientlibs.

How to ensure the assets are shared and used by different authors and publishers from one location in AEM?

A : For this scenario, using Asset as cloud service is the best and latest solution. However older versions of AEM also supported binary less assets replication for this purpose.

Core component - Image component out of the box lazy loading.

A : Image component has out of the box lazy loading feature as part of component policy (design dialog). 

Why content as service is required by AEM?

A: You need content to go anywhere and everywhere — screens, websites, mobile apps, IoT devices and beyond. But you don’t have the time to recreate that content for all those channels yourself. What it all comes down to is that you need content that works no matter what device they use, but you need it without all the heavy manual programming.

Content as a service lets you use any of your content in Experience Manager and delivering that content to any channel. You can set the content for delivery to different types of devices with just a few keystrokes. And your developers don’t need deep knowledge of the Experience Manager repository structure. Select how you want the content delivered — as packed HTML (HTML/CSS/JS) or channel-independent content (JSON). Now, you can easily manage content and experiences for your digital properties, viewing and changing content in real time.


What is the benefit of using language copy?

A : If you do wish to translate content, then please evaluate using Language Copy instead of live copy. Language Copies can be updated as well and synchronized with their source. AEM has Update & Translate workflows available Out of the box that can synchronize changes between the source and language copy. However, in order to use these workflows, one needs to structure the content in a way that language roots (pages with ISO locale code) are all at the same level.

What is shallow live copy?

A : Switching to a shallow live copy: Will have immediate effect and is non-reversible.

  • Child pages are explicitly detached from the live copy. Further modifications on children cannot be preserved if undone.
  • Will remove any descendant LiveRelationships even if there are nested LiveCopies.

Translation project in detail.

A : Translation projects enable you to manage the translation of AEM content. A translation project is a type of AEM project that contains resources that are to be translated into other languages. These resources are the pages and assets of the language copies that are created from the language master.

For more details check this link - https://experienceleague.adobe.com/docs/experience-manager-64/administering/introduction/tc-manage.html?lang=en#importing-a-translation-job

Third party integration with hybris.

A: 

1. Use Adobe's package share to install cq-hybris-server, cq-hybris-content, cq-geometrixx-hybris-content.

2. If you have cq-hybris-server package installed, Platform will start automatically along with AEM. You do not have to do anything more as it is already pre-configured and works out of the box. This will connect with your local hybris instance.

3. If you have to connect with a standalone ecomm server, do following

  • Go to http://localhost:4502/system/console/configMgr.
  • Search for Day CQ Commerce Hybris Connection Handler and click on it.
  • Now, change Base URL variable in the popup.
  • You can also change other values if required.
  • Test integration by importing the catalog from the Platform: http://localhost:4502/etc/importers/hybris.html.

What is cross channel and omni channel marketing?

A : Cross-channel marketing is a strategic, customer-focused digital marketing technique used by marketers globally to provide their customers with a consistent experience when interacting with their brand across multiple digital channels

Omnichannel marketing refers to the multichannel sales approach that provides the customer with an integrated shopping experience. The customer can be shopping online from a desktop or mobile device, via phone, or in a brick-and-mortar store, and the experience will be seamless

How to make sure only a part of page is dynamic in akamai (CDN) in case we're not using dispatcher or SDI?

A : most of the CDN are capable of supporting ESI, which is Edge Side Include. This is same as Apache's Server Side Include, which facilitates, only some part of the page be fetched dynamically and other static part of the page remains cached.

Content with an ESI tag is fetched from somewhere else, while the rest of the webpage's content can be cached. If only some of the webpage is generated dynamically and the rest is cached, the webpage will load much more quickly than if the whole page needed to be generated for each user.

What is the reason for using Dynamic media?

Dynamic media is a content as service offering from Adobe. Dynamic media provides with some unique AI based features to assets in AEM like smart tagging, smart crop, interactive images etc. Dynamic media images can be accessed through AEM instances and can be configured to give dynamic digital experiences to the consumers. There are plenty of URL modifiers can be used those can be used with assets to get dynamic rendering of the images/videos. This is useful when there are large assets involved and those require dynamic modification on the fly.

Explain shared DAM in AEM 6.5.

Shared DAM or connected DAM is a feature offered by AEM to provide integration of AEM sites and Assets. At times the website creation capabilities and digital assets used to create these websites may reside in different deployments. One reason can be geographically distributed existing deployments that are required to work together. Another reason can be acquisitions leading to heterogenous infrastructure, including different Experience Manager versions, that the parent company wants to use together.

Explain the process of using S3 bucket to store assets.

AEM can be configured with S3 bucket allowing assets binary data to be stored on S3 bucket. There are two ways of using S3 bucket for storing assets.

1. Clustered 

2. Stand alone

A special feature pack is required to be installed in AEM, Once the necessary configuration changes have been made and AEM is started it will automatically start syncing all its binary data to the S3 storage bucket.

Download the S3 bucket related jar from here - https://repo1.maven.org/maven2/com/adobe/granite/com.adobe.granite.oak.s3connector/

and then go to \jcr_root\libs\system\install and copy all the jar files and keep it inside crx_quickstart/system/install directory of your local instance of AEM. Restart the AEM. This should install required connector for S3 bucket in you environment.

S3 bucket can easily handle 100 requests per second.

Each asset is stored as a separate entry.

When storage size runs into the terabyte range a clustered S3 architecture can be useful. Instead of having 3 buckets for 3 servers with a total of 15 TB it is also possible to share a single bucket. 

When storage size runs into the terabyte range a clustered S3 architecture becomes interesting: instead of having 3 buckets for 3 servers with a total of 15 TB it is also possible to share a single bucket. Finally, as a rule of thumb: if total size equals or exceeds 500 GB a move to S3 is advisable. Similarly, if the repository is expected to grow larger than 500 GB or its growth cannot easily be accommodated on the current hosting platform than a move to S3 is also suggested. 

Provide details of ams services.

Adobe Managed Services, or AMS, is a Cloud-based management service bringing Adobe Experience Cloud products (including Analytics, Campaign, Target and Experience Manager) closer to Software as a Service (SAAS) solutions. To create powerful digital experiences, you need agility, speed and security.

AMS gives automated capabilities like CI/CD pipelines based on cloud manager. It is secure, scalable and provides high availability.


Some more points to consider while giving interview for Architect position

Migration checklist and rfp.

For architect :

preparations, planning, development preparations - content architecture, system architecture, application architecture - , developing , operations, handovers, performance and testing, rollout, golive, 


Sunday, June 28, 2020

AEM importing contents from external systems

AEM importing contents from external systems

1. Day CQ Polling importer : Can be configured using osgi config manager. Allowed paths can be /etc or /content or /var. Imports RSS feed on intervals and saves it for use.

2. Bulk Editor : Deprecated from AEM 6.4. It allows to search for contents, bulk edit them and export them in csv file.

3. eCommerce Product Importer : Tools - > ecommerce -> product import. You can also create the products and their variants there.

4. Sling Post Servlet : CSRF and Referrer filters have to allow post action. Using this content zip can be imported. 

5. Package manager : This can also be used to migrate users from different instances. Exclude rules should be applied. Change mode in filter to merge before importing package to other instance. This will ensure the existing users are not replaced.

6. CRX3Oak migration 

7. ACS migration can be used to migrate users, groups and ACLs.



Some more AEM 6 Interview Questions for Architects

 Some more AEM 6 Interview Questions for Architects 1. Consider you have a workflow with two steps. One step is to transfer the asset from s...