Uploaded image for project: 'PUBLIC - Liferay Portal Community Edition'
  1. PUBLIC - Liferay Portal Community Edition
  2. LPS-54644

Build a simpler, faster, scalable and offline upgrade/verifier process

Details

    Description

      Our current upgrade and verify process are executed online at the time the portal is started. This has turned out to be really painful for many of our customers (long and faulty processes). The main goals of the current story are:

      • Create an offline process which can be executed as an standalone process. You no longer need to start the portal to execute the upgrade/verify process
      • Faster processes: we will be looking for a solution where we can speedup the execution time of our current upgrades/verifiers.
      • Resilient process: we will try to create a more resilient process where we will try to minimice the errors
      • Provide useful information: we are looking for a solution where the user could get some insights about what's going on during the execution of the upgrades/verifiers.

      Some high level details

      • Apps will have an independent upgrade/verify process module which won't be deployed at runtime.
      • Apps will have a requirement on the schema version they need (through a capability definition). Modules won't get resolved until this dependency is properly satisfied. In case the app is being newly installed it won't get resolved: the administrator will need to execute the database scripts
      • The upgrade/verify process of the core will be moved offline as well. When doing a fresh Liferay installation we won't execute the verify process, we'll only do it after an upgrade process is executed.

      Some open questions

      • Installing a new bundle which requires a database action should be unresolved by default, and the SQL scripts should be executed in order to get properly resolved. However, when you are not running in production (development environments, pre-production environments, ...), do you still need this behaviour?
      • The above concept applies for upgrade/verify process. Should we have the ability to support upgrade/verification at deploy time? At least for a newly installed application we should have some mechanism to create the initial configuration "on the fly"

      Attachments

        Issue Links

          1.
          Create new Upgrade Module which take care of the new upgrade mechanisms LPS-54647 Technical Task Closed Miguel Ángel Pastor Olivar (Inactive)  
          2.
          Finer control of wired services LPS-57523 Technical Task Closed Brian Chan  
          3.
          Replace the ServletContext publication with a more detailed service LPS-57556 Technical Task Closed Miguel Ángel Pastor Olivar (Inactive)  
          4.
          Convert the buildNumber column on the Release_ table from Integer to String LPS-57681 Technical Task Closed Brian Chan  
          5.
          Write a Release manager which will be in charge of the upgrade execution LPS-57727 Technical Task Closed Miguel Ángel Pastor Olivar (Inactive)  
          6.
          Core Upgrades: move the upgrades from the core modules to the new system LPS-59196 Technical Task Closed Miguel Ángel Pastor Olivar (Inactive)  
          7.
          Apply the new pattern to Bookmarks LPS-59225 Technical Task Closed Miguel Ángel Pastor Olivar (Inactive)  
          8.
          Handle verifiers as the last step of the upgrade chain LPS-59238 Technical Task Closed Miguel Ángel Pastor Olivar (Inactive)  
          9.
          Apply the new pattern to Journal LPS-59287 Technical Task Closed Brian Chan  
          10.
          Apply the new pattern to Dynamic Data Mapping LPS-59292 Technical Task Closed Miguel Ángel Pastor Olivar (Inactive)  
          11.
          Replace manipulations of tables from other modules to use the Services in Journal Upgrade LPS-59408 Technical Task Closed SE Support  
          12.
          Migrate all WCM Upgrades to implement the UpgradeStepRegistrator LPS-59409 Technical Task Closed Julio Camarero (Inactive)  
          13.
          Migrate all DM Upgrades to implement the UpgradeStepRegistrator LPS-59410 Technical Task Closed Sergio Gonzalez (Inactive)  
          14.
          Migrate all Collaboration Upgrades to implement the UpgradeStepRegistrator LPS-59411 Technical Task Closed Sergio Gonzalez (Inactive)  
          15.
          Migrate all Business Productivity Upgrades to implement the UpgradeStepRegistrator LPS-59412 Technical Task Closed Adam Brandizzi  
          16.
          Migrate all User & Configuration Upgrades to implement the UpgradeStepRegistrator LPS-59413 Technical Task Closed Brian Chan  
          17.
          Migrate all App Management Upgrades to implement the UpgradeStepRegistrator LPS-59414 Technical Task Closed Brian Chan  
          18.
          Migrate all Staging/Export/Import Upgrades to implement the UpgradeStepRegistrator LPS-59415 Technical Task Closed SE Support  
          19.
          Replace manipulations of tables from other modules to use the Services in Collaboration Upgrades LPS-59416 Technical Task Closed SE Support  
          20.
          Replace manipulations of tables from other modules to use the Services in Business Productivity Upgrades LPS-59420 Technical Task Closed Brian Chan  
          21.
          Migrate Social Networking upgrades to new pattern LPS-59430 Technical Task Closed SE Support  
          22.
          Apply new pattern to Microblogs portlet upgrades LPS-59548 Technical Task Closed Brian Chan  
          23.
          Apply new pattern to Polls portlet upgrades LPS-59547 Technical Task Closed Adam Brandizzi  
          24.
          Apply Shopping portlet upgrades to new pattern LPS-59494 Technical Task Closed Brian Chan  
          25.
          Apply Wiki portlet upgrades to new pattern LPS-59537 Technical Task Closed Brian Chan  
          26.
          Apply the new pattern to Dynamic Data List LPS-60101 Technical Task Closed Brian Chan  
          27.
          Use the new upgrade mechanism in AnnouncementsWebUpgrade LPS-60105 Technical Task Closed Brian Chan  
          28.
          Use the new upgrade mechanism in RecentBloggersWebUpgrade LPS-60106 Technical Task Closed Sergio Gonzalez (Inactive)  
          29.
          Use the new upgrade mechanism in BlogsWebUpgrade LPS-60107 Technical Task Closed Adolfo Pérez  
          30.
          Use the new upgrade mechanism in PageCommentsWebUpgrade LPS-60108 Technical Task Closed Sergio Gonzalez (Inactive)  
          31.
          Use the new upgrade mechanism in DLWebUpgrade LPS-60109 Technical Task Closed Sergio Gonzalez (Inactive)  
          32.
          Use the new upgrade mechanism in PageFlagsWebUpgrade LPS-60110 Technical Task Closed Sergio Gonzalez (Inactive)  
          33.
          Use the new upgrade mechanism in ItemSelectorWebUpgrade LPS-60111 Technical Task Closed Sergio Gonzalez (Inactive)  
          34.
          Use the new upgrade mechanism in MBWebUpgrade LPS-60112 Technical Task Closed Sergio Gonzalez (Inactive)  
          35.
          Use the new upgrade mechanism in PageRatingsWebUpgrade LPS-60113 Technical Task Closed Sergio Gonzalez (Inactive)  
          36.
          Use the new upgrade mechanism in SocialActivitiesWebUpgrade LPS-60114 Technical Task Closed Sergio Gonzalez (Inactive)  
          37.
          Use the new upgrade mechanism in SocialActivityWebUpgrade LPS-60115 Technical Task Closed Sergio Gonzalez (Inactive)  
          38.
          Use the new upgrade mechanism in SocialGroupStatisticsWebUpgrade LPS-60116 Technical Task Closed Sergio Gonzalez (Inactive)  
          39.
          Use the new upgrade mechanism in SocialRequestsWebUpgrade LPS-60117 Technical Task Closed Sergio Gonzalez (Inactive)  
          40.
          Use the new upgrade mechanism in SocialUserStatisticsWebUpgrade LPS-60118 Technical Task Closed Brian Chan  
          41.
          Portlets Components Upgrade Pattern LPS-60160 Technical Task Closed Miguel Ángel Pastor Olivar (Inactive)  
          42.
          Deal with the max index length size when running upgrades LPS-60163 Technical Task Closed Miguel Ángel Pastor Olivar (Inactive)  
          43.
          Upgrade Process: hook SAP Verifier into the new infrastructure LPS-60231 Technical Task Closed Miguel Ángel Pastor Olivar (Inactive)  
          44.
          Use the new upgrade mechanism in AmazonRankingWebUpgrade LPS-60251 Technical Task Closed Miguel Ángel Pastor Olivar (Inactive)  
          45.
          Upgrade:list: show just pending modules to upgrade whose upgrade dependencies are covered LPS-60808 Technical Task Closed SE Support  
          46.
          Hook modules' verifiers into the new infra LPS-60827 Technical Task Closed Miguel Ángel Pastor Olivar (Inactive)  
          47.
          Improve Shell Scrip to run the upgrade process in offline mode LPS-60828 Technical Task Closed Miguel Ángel Pastor Olivar (Inactive)  
          48.
          Ability to disable transactions while running upgrades and verifiers on the modules LPS-60846 Technical Task Closed Miguel Ángel Pastor Olivar (Inactive)  
          49.
          Upgrade Release table so Legacy apps can be converted to the new infrastructure LPS-61295 Technical Task Closed Brian Chan  
          50.
          Build.xml for the upgrade tool misses some options compared to the run.sh script LPS-62588 Technical Task Closed SE Support  
          51.
          Ability to disable the read-only state of the indexes while executing verifiers LPS-64106 Technical Task Closed Manuel de la Peña (Inactive)  
          52.
          Ability to get pending modules to upgrade in a certain moment LPS-64865 Technical Task Closed Carlos Sierra (Inactive)  

          Activity

            People

              victor.ware Victor Ware
              miguel.pastor Miguel Ángel Pastor Olivar (Inactive)
              Kiyoshi Lee Kiyoshi Lee
              Votes:
              1 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Packages

                  Version Package
                  Master