Changes for page Impact of Runtime Image Upgrades
Last modified by Erik Bakker on 2024/09/03 08:14
From version 3.1
edited by eMagiz
on 2022/11/22 09:23
on 2022/11/22 09:23
Change comment:
There is no comment for this version
To version 22.1
edited by Carlijn Kokkeler
on 2024/08/27 15:02
on 2024/08/27 15:02
Change comment:
There is no comment for this version
Summary
-
Page properties (3 modified, 0 added, 0 removed)
Details
- Page properties
-
- Title
-
... ... @@ -1,1 +1,1 @@ 1 -Impact of Runtime imageupgrades1 +Impact of Runtime Image Upgrades - Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. eMagiz1 +XWiki.CarlijnKokkeler - Content
-
... ... @@ -1,7 +1,7 @@ 1 1 {{container}}{{container layoutStyle="columns"}}((( 2 -In this microlearning, we will focus on thehelping you to assess the impact of upgrading to newbuildnumbers.2 +In this microlearning, we will focus on helping you to assess the impact of upgrading to a new image. 3 3 4 - Shouldyou have any questions, pleaseget inouch with[[academy@emagiz.com>>mailto:academy@emagiz.com]].4 +If you have any questions, please contact [[academy@emagiz.com>>mailto:academy@emagiz.com]]. 5 5 6 6 == 1. Prerequisites == 7 7 ... ... @@ -9,57 +9,53 @@ 9 9 10 10 == 2. Key concepts == 11 11 12 -With runtime image we mean the template that isused to create runtimespinup dockercontainersand contains all required software components to let thedockercontainer function properly. One of thekeyrequirements is to load therequiredlibrariesthat areused byflows of aruntime. A library in this context is a software component that performs a specific, often technical function in the eMagiz runtime. These libraries are Javabasedanddifferent versionsexistof these libraries.12 +With runtime image, we mean the template used to create runtime-specific (docker) images. That image is used to deploy an eMagiz container and contains all required software components to let the eMagiz container function properly. One of the critical requirements is to load the necessary libraries used by runtime flows. A library in this context is a software component that performs a specific, often technical function in the eMagiz runtime. These libraries are based on Java and many open-source frameworks, such as Spring and Artemis. Given that these frameworks also continuously develop, it means that from time to time, we need to upgrade the versions of these underlying frameworks. 13 13 14 14 == 3. Assessing the impact of runtime images == 15 15 16 -As mentioned the runtime image is a template which effectively means that all specific images that are created from this template. The template holds all latest software updates and libraries that the integration flows require. eMagiz follows the strategy to update these required libraries on a frequent basis to ensure vulnerabilities can be fixed quickly and new functionality is available on a needed basis. Furthermore, by having a single template available all runtime are operating on exactly the same software base across all eMagiz clients. This way, a single mix of libraries can be made available to the community that is tested properly and coherent. There can be no other mixes of 17 - 18 - 19 - 20 - 21 -=== 3.1 Release notes & impact assessment === 16 +As mentioned, the runtime image is a template (i.e., blueprint), meaning all specific eMagiz container images are created from this template. The template holds all the latest software updates and libraries that the integration flows require. eMagiz follows the strategy of updating these required libraries frequently to ensure vulnerabilities can be fixed quickly and new functionality is available on a needed basis. Furthermore, having a single template available allows all eMagiz containers to operate on the same software base across all eMagiz clients. This way, a single mix of libraries can be made available to the community and tested correctly and coherently. There can be no other mix of software components that behave differently (as we had in our legacy runtime architecture). 22 22 23 - These canbefound[[here>>doc:Main.ReleaseInformation.Build numbers.WebHome||target="blank"]].Oncetherelease notesare properly read, assessthe impact. This effectively means thatthekey notesaround the model componentscan be used.18 +In essence, any container image consists of multiple layers. The first (foundational) layer comprises the operating system information (i.e., Linux configuration or Windows configuration) and a Java installation (correct JRE). Building on this in the second layer, we see a wide array of open-source code heavenly rooted in the Spring and Java frameworks combined with our proprietary monitoring stack, allowing us to gather information on your model upon which you can monitor. The third layer consists of your collection of flows that should run on a container (i.e., runtime). This layer is built up by the various flow designer components used in your release's flow versions. The fourth layer is the configuration layer in the form of (application) properties, memory configuration, and other configuration elements (i.e., route, deployment location, volumes, runtime settings). Below, you see a picture that illustrates this concept in an abstract form. In eMagiz, as well as in the image, you see that the layers form one construct that facilitates the purpose of the object. For eMagiz, this purpose is handling data via integrations. 24 24 25 - You see often a list of libraries thatareupdated, and when these are theonly notes that means that theimpact is slim tonone.Thenmakesure to readthe notes abovearound themodelcomponents touched. These will help toasses the. Some model components haveadditional capability, andsomehave a limited capabilityora fix.20 +[[image:Main.Images.Microlearning.WebHome@advanced-lifecycle-management-impact-of-runtime-image-upgrades--runtime-layers.png]] 26 26 27 -**Example** 28 -Flows containing a Jetty server (support object), primarily used to host REST and SOAP web services, require some special attention when deploying because not all combinations of build number 50 (and higher) and 48 (and lower) flows will work correctly: 22 +This approach allows us to easily provide updates of not only dedicated eMagiz functionality but also of the OS, Java, and open-source frameworks used through a unified approach regardless of whether you deploy in our cloud or on-premises. 29 29 30 -* After installing any build 50 (or higher) flow, build 48 (or lower) flows containing a Jetty server on the same runtime cannot be started anymore. If it is really necessary to still install/start a build 48 (or lower) Jetty server flow: uninstall all build 50 (or higher) flows on that runtime first, then install/start the build 48 (or lower) Jetty server flow, and finally re-install the build 50 (or higher) flows. 31 -* When deploying a flow containing a Jetty server, the infra flow of that runtime must have a matching build number, that is: if the the Jetty server flow is build 48 (or lower) the infra needs to be build 48 (or lower) as well, if the Jetty server flow is build 50 (or higher) the infra needs to be 50 (or higher) as well. 24 +=== 3.1 Overal deployment strategy === 32 32 33 - **Impact**:review the runtimes that haveflows with aJettycomponent andensure thatmatchingbuildnumbers are insidetheseruntimesfor allflows.26 +When the prepare release step is triggered, the runtime image will create specific runtime images to deploy eMagiz containers. When we release a new runtime (base) image, eMagiz will trigger the generation of a new container image for each runtime (i.e., container) captured within the first release created **after** we release our new runtime image. For more information on when eMagiz creates a new container image, please check out this [[microlearning>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Platform.crashcourse-platform-deploy-execute-deployment-plan-gen3.WebHome||target="blank"]]. 34 34 35 -=== 3.2 Upgrade === 28 +=== 3.2 Release notes & impact assessment === 29 + 30 +Release notes for runtime images can be found [[here>>doc:Main.Release Information.Runtime Images.WebHome||target="blank"]]. Please consult these regularly or at the moment when unexpected behavior is observed. In the strategy of eMagiz, very frequent updates are made to the Runtime Image so that the delta in the software components is incremental. In this way, the risk of unwanted side effects is minimalized. The risk is also mitigated by all flows inside the runtime adhering to the same version of libraries inside the docker image. All this means that the release notes are relevant to understand an issue better. 36 36 37 - Usethedesigned optionsin eMagiztoupgrade theflowsto thenewbuildnumber. See therelevantmicrolearningsforthat.32 +{{info}}Should an issue occur, we want to be informed of this to take action. If it turns out that a rollback is needed to an earlier image, you can facilitate this via our "disaster recovery" mechanism described below.{{/info}} 38 38 39 -=== 3.3 Functionalchanges===34 +=== 3.3 Approach === 40 40 41 - Beforean environmentis updatestotheflowswiththe latestreleases,it is advicedtofirst checkwhichflowshave functional changes. Theseflowsneedtobetestedandputintoproductionfirstsothatyoucansolate issuesin casetheyoccur. Oncetheseflowsare testedand live,only thenmovetheflowswith thenewbuildnumbersfrom test to production.36 +We strongly advise updating your Test and Acceptance environment before moving to Production. This will avoid potential problems appearing in a Production environment before any other environment. We will inform our customer base along the following timelines to better anticipate when a new runtime image will be released. 42 42 43 -=== 3.4 Approach === 38 +* High impact 39 +** As part of the release notes of **three** releases ahead of us releasing the new runtime image. 40 +** This information is shared with the whole community upfront through this release notes. 41 +* Medium impact 42 +** As part of the release notes of **one** release ahead of us releasing the new runtime image. 43 +** This information is shared with the whole community upfront through this release notes. 44 +* Low impact 45 +** As part of the release notes for the current release, 46 +** This information is shared upfront with key users. 44 44 45 - Itisusually bestto updatethetest and acceptance environment firstand leave thatrunning for a certain graceperiod. So that in casepotential issues can be fixed still.48 +=== 3.3 Disaster recovery runtimes === 46 46 47 - ==4. Assignment==50 +In particular cases, a runtime may not function properly after a specific release is done. That means the flows in that runtime are not 100% compatible with the runtime image used to create the container images. As a result, action is needed at eMagiz to update the runtime image or assist you as a client in resolving the issue within the constraints of the new runtime image. This situation is expected to be very exceptional. We at eMagiz need to be informed if you encounter such a situation. As part of our regular process and agreements with our partners and clients, we need a registered ticket from our Support department to act upon this. 48 48 49 - Takealook at thereleasenotes in the eMagiz Portal to ensureyou know where to look.52 +== 4. Key takeaways == 50 50 51 -== 5. Key takeaways == 54 +* A runtime image is the foundational layer of a container image. 55 +* Based on the assessed impact, we communicate sooner or later. 56 +* Read the release notes for runtime images carefully to assess the impact. 52 52 53 -* Keep as close to the latest buildnumber as possible for the entire environment 54 -* The best option is to have the entire environment run on the same buildnumber 55 -* A mix of buildnumbers in a runtime is not a good plan - conflicting behaviors may occur. 56 -* Read the release notes for builnumbers carefully to assess the impact - in case the impact is minimal proceed with the upgrade 57 -* Make the buildnumber upgrades planable so the release schedule takes these actions into account. 58 - 59 -== 6. Suggested Additional Readings == 60 - 61 -If you are interested in this topic and want more information on it, please read the release notes provided by eMagiz 62 - 63 -== 7. Silent demonstration video == 64 - 65 -There is no video available as this is more a theoretical microlearning.)))((({{toc/}}))){{/container}}{{/container}} 58 +== 5. Suggested Additional Readings == 59 +* [[Release Information (Menu)>>doc:Main.Release Information.WebHome||target="blank"]] 60 +** [[Runtime Images (Navigation)>>doc:Main.Release Information.Runtime Images.WebHome||target="blank"]] 61 +)))((({{toc/}}))){{/container}}{{/container}}