Changes for page Failover - Deploy Possibilities
Last modified by Erik Bakker on 2024/09/27 14:07
Summary
-
Page properties (2 modified, 0 added, 0 removed)
Details
- Page properties
-
- Title
-
... ... @@ -1,1 +1,1 @@ 1 - Setting upFailover- Deploy Phase1 +Flow Configuration - Content
-
... ... @@ -1,85 +1,122 @@ 1 1 {{container}} 2 2 {{container layoutStyle="columns"}} 3 3 ((( 4 +eMagiz flows, or more specifically, the flow's inbound component(s), can be grouped. The effect is that you can later in [[Deploy>>doc:Main.eMagiz Academy.Microlearnings.Intermediate Level.Grouping and Failover.intermediate-grouping-and-failover-deploy-possibilities.WebHome||target="blank"]], control them as one entity. This is mainly beneficial when faced with substantial maintenance or outage of systems connected to your eMagiz model. 4 4 5 - In the previousmicrolearning,we discussedwhatneedstobedoneintheCreatephaseto enablefailoverfor systemsthat areconfiguredto have themintheDesignphase. Nextto that,wealsodiscussedthatsettingup thisfailover functionality inyourmodel requires youtoexecutesomesteps in yourDesign, Create,andlastlyDeployphase. Pickingupfromwhatwehave toggled intheCreatephase,in thismicrolearning,wewillfocusonthesteps and configurationsthatyouhaveto make in theDeployphase toactivatetheactive/passivefailover functionality.6 +Building on this functionality, you can even configure the group to run in an active/passive failover mode when you activate the multiple runtimes option on your runtime, and each separate runtime is deployed on another machine. The failover functionality is not only relevant in cases of server maintenance. It can also assist you when you want to exchange data with a system that allows only one active connection. Should this connection be business-critical, you can use this failover functionality to create a passive failover situation that will take over when the active connection breaks down (regardless of the reason). 6 6 8 +In this microlearning, we will focus on configuring the flow to group various inbound components and configure the flow (including the infra) if you want to activate the active/passive failover configuration. 9 + 7 7 Should you have any questions, please get in touch with [[academy@emagiz.com>>mailto:academy@emagiz.com]]. 8 8 9 9 == 1. Prerequisites == 10 10 11 -* Intermediate knowledge of the eMagiz platform .14 +* Intermediate knowledge of the eMagiz platform 12 12 13 13 == 2. Key concepts == 14 14 15 -This microlearning describes what configurationthat youwill have todo inthe Deployphase, based on whatyou haveconfiguredinthe DesignandCreatephase, toenablefailover for systems connecting withyourmodel. The groupingandfailover functionality is relevant when faced with maintenance and outages of systems connected to your model. The failover functionality assists in that case and allows you to have a fallback option on an active connection.18 +This microlearning describes how to configure (parts of) your flow(s) to set up the grouping and, if needed, the failover functionality on the flow level. The grouping functionality is relevant when faced with maintenance and outages of systems connected to your model. The failover functionality assists in that case and allows you to have a fallback option on an active connection. 16 16 17 -== 3. DeployPhaseConfiguration ==20 +== 3. Flow Configuration == 18 18 19 -== 3.1 Deploy Architecture==22 +== 3.1 Grouping == 20 20 21 - After finishing up yourconfiguration in theCreate phase, youcanthenmove toyour Deploy>Architecture.Here, you will seethenewrouter containers,whichwehaveseeninthe Design>Architecture,to be addedtoyourexternalmachines.Whenyou press"Start Editing"in thispage,andthenpress "Apply to environment", youwillbefacedwithapop-up pagethatinforms you that these routercontainers will becreatedforthis specific environmentas shown inthe screenshot below.24 +To configure grouping, we need to open the flow designer of the flow in Create. We want to edit and enter "Start Editing" mode. On the inbound component(s) in the flow, we now have an "Advanced" tab that allows you to configure the grouping information. 22 22 23 - {{info}}**Note**:what you see belowis a typical situationwhere you already have two externalmachinesdeployed.Please refer to these microlearnings if you want to knowmoreabout [[deployingon-premise machine(s)>>doc:Main.eMagiz Academy.Microlearnings.IntermediateLevel.eMagiz Runtime Management.intermediate-emagiz-runtime-management-start-stop-flows.WebHome||target="blank"]] and [[apply toenvironment>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Platform.crashcourse-platform-deploy-understanding-deploy-architecture-basic||target="blank"]].{{/info}}26 +[[image:Main.Images.Microlearning.WebHome@grouping-and-failover--intermediate-grouping-and-failover-flow-configuration-starting-point.png]] 24 24 25 - [[image:Main.Images.Microlearning.WebHome@grouping-and-failover--intermediate-grouping-and-failover-setting-up-failover-deploy-phase-router-containers.png]]28 +{{info}}Note that the options above are available in all inbound components. The one chosen above is simply an illustration of how to configure.{{/info}} 26 26 27 -Once youhave applied the changes,whenyougotothe"Details" ofeach of those machinesvia right-clicking them,then youcanfindand setforeach failover runtimethepreferredmachine to be theleader.As anexampleshowninthescreenshotbelow, there are two runtimes that areenabledfor failoverandyou can select whether that runtimerunningin that "External01" machine is the preferredleader.Another option istoset the runtimethat youselect as the backup,or reset it back to "None" ifyou want.Nexttothat,notice that here youcan findthe"Internal IP address"and "Failoverport" fields, which have been pre-filled in with propertyplaceholders.We will comebacktothesepropertieslaterin the followingsections.30 +Once on the "Advanced" tab, you must define the group name. You can determine the group name if this is the first flow you change. In all subsequent flows, you want to add to the same group, you must use the **same** group name. 28 28 29 -[[image:Main.Images.Microlearning.WebHome@grouping-and-failover--intermediate-grouping-and-failover- setting-up-failover-deploy-phase-failover-preference.png]]32 +[[image:Main.Images.Microlearning.WebHome@grouping-and-failover--intermediate-grouping-and-failover-flow-configuration-define-group-name.png]] 30 30 31 - Whenyou havemadeyourdecision,and assumingthatyourmachinesarealreadydeployedand running,thenyoucanmovetothe other pagediscussed in the next section.34 +Once filled in, ensure that the auto startup configuration is set to Yes to ensure that, on default, all flows within the group start up when the container is started. 32 32 33 - == 3.2 DeploymentPlan==36 +[[image:Main.Images.Microlearning.WebHome@grouping-and-failover--intermediate-grouping-and-failover-flow-configuration-define-auto-startup.png]] 34 34 35 - Ifthisisthe firsttime that you configureyour failoversetup,thenthenextstepinDeployis tocheckyourDeploymentPlan. Here,youcan addadeploymentstepcalled"Balancefailover",which,when executed,willtriggerthefailovercontainer(s)to berunningon itspreferredmachineasyou previouslyconfiguredthemin Deploy>Architecture.See thescreenshot below.38 +Within a runtime context, you can add multiple groups that can be stopped and started separately from each other. In this example, we would also like to have a group for our exits to stop them if the connecting system undergoes maintenance or is down to store the messages in the queue. 36 36 37 -[[image:Main.Images.Microlearning.WebHome@grouping-and-failover--intermediate-grouping-and-failover- setting-up-failover-deploy-phase-balance-failover.png]]40 +[[image:Main.Images.Microlearning.WebHome@grouping-and-failover--intermediate-grouping-and-failover-flow-configuration-starting-point-exit.png]] 38 38 39 - Tomakesure that this functionality workscorrectly, then this step should beplaced at the end of yourdeployment plan (i.e., after the deployment of allruntimes). This is to ensure that all ofthe failoverconnectorruntimesarerunningandreachable beforeelecting the preferred runtime to be the leaderandturningoffthefollowerruntime. See the screenshot below as an example.42 +[[image:Main.Images.Microlearning.WebHome@grouping-and-failover--intermediate-grouping-and-failover-flow-configuration-other-group.png]] 40 40 41 - [[image:Main.Images.Microlearning.WebHome@grouping-and-failover--intermediate-grouping-and-failover-setting-up-failover-deploy-phase-deployment-plan.png]]44 +== 3.2 Failover == 42 42 43 - ==3.3DeployRelease==46 +If you want to expand the grouping functionality to include an active/passive failover component, you need to change the settings on the inbound component. Apart from specifying the group name, you need to configure the auto-startup option on "No" so the failover configuration can take the correct actions in all situations. 44 44 45 - Once you have configured your Deployment Plan, then it istime tocreate a new release foryour updated flowsintheDeploy>Release page. As youmight havenoticedin the Deploy>Architecture earlier whenopeningthe"Failover" tab in yourmachines' "Details",there are properties regardingthe machines' "Internal IP address"and "Failoverport". It is then becomesnaturalthat you first need tofill in these propertyvalues in the environment that you are working on at themoment (i.e., Testing, Acceptance, Production).48 +[[image:Main.Images.Microlearning.WebHome@grouping-and-failover--intermediate-grouping-and-failover-flow-configuration-failover-example-group.png]] 46 46 47 - To do this, you can create and fill inthe valuesforthese properties inDeploy>Release. If youare unsure on how todo this, please refer tothis [[Property Management>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash CoursePlatform.crashcourse-platform-deploy-property-management-new.WebHome||target="blank"]] microlearning.50 +[[image:Main.Images.Microlearning.WebHome@grouping-and-failover--intermediate-grouping-and-failover-flow-configuration-failover-other-group.png]] 48 48 52 +{{info}}Note that each group within a single runtime that you want to treat differently needs to have a **unique** name.{{/info}} 49 49 50 - Todo this, you can click the "wrench" icon on the right hand side beside the "Create phase" release and then press "New".In the pop-up presented to you, you can click the "Name" input field and then search for thepropertyplaceholder names that you saw earlier. The idea here is that you fill in theIP address and the (open) port ofthe externalmachines. Thus, based on the example above, you can search for the keyword "external01.failover.internal-ip" and then select it. Afterward, you can set this property as global for simplicity and fill in the correct value. The screenshot below shows an example of the end result. Once you have done so, then you can do the same for the other property (i.e., "external01.failover.port") and as well as the properties for the second machine.54 +== 3.3 Failover Infra == 51 51 52 - [[image:Main.Images.Microlearning.WebHome@grouping-and-failover--intermediate-grouping-and-failover-setting-up-failover-deploy-phase-failover-properties.png]]56 +The configuration of the infra flow of the runtime for which you want to configure the failover is detailed and only works if you configure all support objects correctly. Although we explain the various steps in the documentation, we advise utilizing the [[store item>>doc:Main.eMagiz Store.Accelerators.Active-Passive Failover.WebHome||target="blank"]] we created for this that will guide you in setting this up correctly. 53 53 54 - Whenyouare done,thenyoucansaveyourchanges,andproceedwithcreating anewrelease.Forthis,youwill needto createanewreleasefromyour"Create phase",in order toincludeall configurationsthateMagizhas providedinyournow failover-enabled Createphase.Onceyou havedonethis, givethereleaseanameandsaveit,then youcanproceedwithactivating thereleaseand deployit.58 +The configuration consists of at least three separate support objects. Two are needed once (infinispan cache manager and clustered lock registry), whereas the other is required per unique group you have defined within the context of your runtime. So, if you have two unique group names within the runtime, you need two leader initiator support objects. 55 55 56 -== 3.3 Trigger Failover == 60 +{{info}}When using this configuration across multiple runtimes on the same machines you need to take the following into account. 61 + * Each container needs a different port to communicate through. This can be configured by adding a [[route>>doc:Main.eMagiz Academy.Microlearnings.Intermediate Level.eMagiz Cloud Management.intermediate-emagiz-cloud-management-routes||target="blank"]] in Deploy Architecture 62 + * Each container needs their own cluster. This can be achieved by providing unique names for the cluster when configuring the Infinispan Cache Manager (via the [[store item>>doc:Main.eMagiz Store.Accelerators.Active-Passive Failover.WebHome||target="blank"]]){{/info}} 57 57 58 - Onceyouhave successfully deployed and run your release with thefailover connector runtimes, then you can observe the follower and leadershipstatus of your failover connectorruntimes in your Deploy>Architecture. There, if you right-click your external machines(which have the failover connector runtimes) and select [["Start/Stop flows">>doc:Main.eMagiz Academy.Microlearnings.IntermediateLevel.eMagiz Runtime Management.intermediate-emagiz-runtime-management-start-stop-flows.WebHome||target="blank"]], under the "Groups" tab, you will find the "Group name", "Failover status", as well as the "State" the connector runtime is in at that moment (whether it is now On or Off). See the screenshot below as an example.64 +=== 3.3.1 Infinispan Cache Manager === 59 59 60 - [[image:Main.Images.Microlearning.WebHome@grouping-and-failover--intermediate-grouping-and-failover-setting-up-failover-deploy-phase-start-stop.png]]66 +Given this, let us first look at the Infinispan cache manager. You can add this support object in the [[standard manner>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Platform.crashcourse-platform-create-support-objects-introduction||target="blank"]] by searching for "infinispan cache manager." 61 61 62 - Theexampleaboveshows that,inthat moment, the first runtime instance is currentlyactiveand acting astheLeader, whilethesecondruntime instance that acts as the Followeris Off. Youcan alsomanually switchtheleadership from onetoanotherbyclicking thePlay or Stopbuttonon the right-side.68 +[[image:Main.Images.Microlearning.WebHome@grouping-and-failover--intermediate-grouping-and-failover-flow-configuration-cache-manager-search-result.png]] 63 63 70 +Once found, give it a name and fill in a cluster name. 71 + 72 +[[image:Main.Images.Microlearning.WebHome@grouping-and-failover--intermediate-grouping-and-failover-flow-configuration-cache-manager-basic.png]] 73 + 74 +Once done, switch to the "Advanced" tab, select the option "TCP Ping," and fill in the "Host address" and "Other host addresses". Once filled in, press Save to keep your changes. 75 + 76 +[[image:Main.Images.Microlearning.WebHome@grouping-and-failover--intermediate-grouping-and-failover-flow-configuration-cache-manager-advanced.png]] 77 + 78 +{{warning}}Please note the following when configuring the values for the host and other host address(es): 79 +* The relevant values in case of running on-premise should be requested internally with your infrastructure provider 80 +* The relevant values in case of running in the cloud can be requested via eMagiz 81 +* The "Other host addresses" value **needs** to include a reference to the port through which both hosts communicate.{{/warning}} 82 + 83 +=== 3.3.2 Clustered Lock Registry === 84 + 85 +Now that we have the cache manager, we can configure the next support object on our list, the clustered lock registry. You can add this support object in the [[standard manner>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Platform.crashcourse-platform-create-support-objects-introduction||target="blank"]] by searching for "lock registry." 86 + 87 +[[image:Main.Images.Microlearning.WebHome@grouping-and-failover--intermediate-grouping-and-failover-flow-configuration-lock-registry-search-result.png]] 88 + 89 +Once found, name it and select the cache manager support object you created. 90 + 91 +[[image:Main.Images.Microlearning.WebHome@grouping-and-failover--intermediate-grouping-and-failover-flow-configuration-lock-registry-basic.png]] 92 + 93 +=== 3.3.3 Leader Initiator === 94 + 95 +Lastly, we need to configure a leader initiator for each **unique** group we have defined within the context of the runtime, and that uses the failover functionality. You can add this support object in the [[standard manner>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Platform.crashcourse-platform-create-support-objects-introduction||target="blank"]] by searching for "leader." 96 + 97 +[[image:Main.Images.Microlearning.WebHome@grouping-and-failover--intermediate-grouping-and-failover-flow-configuration-leader-initiator-search-result.png]] 98 + 99 +Once found, give it a name, define the role name (which should **exactly** match the name you gave in the inbound components), and link it to the lock registry. 100 + 101 +[[image:Main.Images.Microlearning.WebHome@grouping-and-failover--intermediate-grouping-and-failover-flow-configuration-leader-initiator-basic.png]] 102 + 64 64 == 4. Key takeaways == 65 65 66 -* By enablingmultipleruntimes across different machines, you canconfiguregroupsto operate inactive/passivefailovermode, ensuringcontinuedoperation duringconnection failures, systemmaintenances,or outages.67 -* In the Deploy>Architecturesection, users canconfigure therouter containersand setpreferredmachinesforfailoverruntime leadership.Thisensuresthatsystems arepreparedtohandlefailoverscenarios.68 -* If users assigned thefailoverIPaddressesandPortsproperties asglobal properties, users must configurea"Balancefailover"deploymentstepto triggerthefailovercontainer(s)to berunning on its preferredmachineas youpreviouslyconfiguredthem inDeploy>Architecture.69 -* Afterdeployment, userscanmonitorthe failover status,including leadershiproles,in Deploy>Architecture, and canmanuallyswitchbetweenactive(Leader)andbackup (Follower) runtimesif needed.105 +* Grouping is beneficial when external systems go through maintenance or downtime. 106 +* Failover can have the additional benefit of having a fallback scenario while still adhering to the requirement that there can only be one active connection at a time 107 +* The role naming in both grouping and failover is crucial. The whole name needs to be matched fully to make it work. 108 +* For the infra configuration of the failover setup, we have a store item that you can use. 70 70 71 71 == 5. Suggested Additional Readings == 72 72 73 -If you are interested in this topic and want more information, please read the help text provided by eMagiz and check out these links: 74 - 75 -* [[Crash Course (Menu)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.WebHome||target="blank"]] 112 +* [[Crash Courses (Menu)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.WebHome||target="blank"]] 76 76 ** [[Crash Course Platform (Navigation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Platform.WebHome||target="blank"]] 77 -*** [[ UnderstandingDeployArchitecture - Basic(Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Platform.crashcourse-platform-deploy-understanding-deploy-architecture-basic||target="blank"]]78 - * [[Intermediate Level (Menu)>>doc:Main.eMagiz Academy.Microlearnings.Intermediate Level.WebHome||target="blank"]]79 -* *[[eMagiz RuntimeManagement(Navigation)>>doc:Main.eMagiz Academy.Microlearnings.Intermediate Level.eMagiz RuntimeManagement.WebHome||target="blank"]]80 -** *[[Start/Stop Flows(Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Intermediate Level.eMagiz RuntimeManagement.intermediate-emagiz-runtime-management-start-stop-flows.WebHome||target="blank"]]81 -*** [[ eMagizDeployagent (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Intermediate Level.eMagiz RuntimeManagement.intermediate-emagiz-runtime-management-start-stop-flows.WebHome||target="blank"]]82 - * [[Failover (Search Results)>>url:https://docs.emagiz.com/bin/view/Main/Search?sort=score&sortOrder=desc&highlight=true&facet=true&r=1&f_space_facet=0%2FMain.&l_space_facet=10&f_type=DOCUMENT&f_locale=en&f_locale=&f_locale=en&text=%22Failover%22||target="blank"]]114 +*** [[Promote flows to deploy (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Platform.crashcourse-platform-create-promote-flows-to-deploy||target="blank"]] 115 + 116 +* [[Intermediate Level (Menu)>>doc:Main.eMagiz Academy.Microlearnings.Intermediate Level.Grouping and Failover.WebHome||target="blank"]] 117 +** [[Grouping and Failover (Navigation)>>doc:Main.eMagiz Academy.Microlearnings.Intermediate Level.Grouping and Failover.WebHome||target="blank"]] 118 +*** [[Deploy Possibilities (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Intermediate Level.Grouping and Failover.intermediate-grouping-and-failover-deploy-possibilities.WebHome||target="blank"]] 119 + 83 83 ))) 84 84 ((( 85 85 {{toc/}}