Moving To OpenEdge 12: Lessons Learned And Best Practices

2y ago
12 Views
2 Downloads
1.84 MB
42 Pages
Last View : 1m ago
Last Download : 2m ago
Upload by : Bria Koontz
Transcription

Moving to OpenEdge 12:Lessons Learned andBest PracticesShelley Chase, Software Fellow, ProgressEdsel Garcia, Software Architect, ProgressOctober 2019

“Support Adoption of OpenEdgeProducts for CustomerEngagements ” 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.2

Early Adopter Success Team for 12.x and PAS for OpenEdge Migration from Classic AppServer WebSpeed migration Security Performance Tuning Diagnostics CI/CD Pipeline 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.3

OpenEdge 12.1 and 12.0

rce/openedge-whats-new.pdf 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.5

Target Architecture 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.6

Progress Application Server for OpenEdge(PAS for OE) Cloud-ready, available as a Docker container for Linux (12.0) 12.1 Enhancements Deferred logging (troubleshooting) Get active requests API (monitoring) Refresh agents (high availability) Latest version of OpenSSL and Spring security 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.7

PAS for OE Architecture RecommendationPAS for OpenEdge Instancehttps://localhost:8810Session Pool ofmulti-sessionAVM agentsTomcat Web ServerABL Applicationhttps://localhost:8810\ROOT ABL Service 1/rest/*ABL Service \ABL Web App 1https://localhost:8810\webapp2\ABL Web App 2TCPAVMSessionMapABL Service AABL Service Bhttps://localhost:8810\oemanager\REST APIoemanager By convention onetomcat Web Serverholds one ABLApplication (host/port)https://localhost:8810\xxx\External Web Appxxx 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.Tomcat can host nonOE Web Apps Explicitly name WebApps if more than oneis needed for: Security Modularization Monitoring traffic forbilling, throughput,etc.11

Enhanced OpenEdge RDBMS High availability with increased online operations Improved performance with new buffer pool hash table (BHT) latching Fault-tolerance with enhanced Replication Enhanced security cyphers for encryption New in 12.1 Param defaults changed to increase performance-aibufs, -bibufs, -lruskips, -lru2skips, -pica, -prefetchDelay,-prefetchFactor, -prefetchNumRecs, -prefetchPriority, -Mm, -Mxs Modify database startup parameters online (added 40 new ones) Allow non-structural schema changes online (field format, help string, label, etc.) Server-side joins for dynamic queries forward-only, no-lock (FOR EACH was added in 12.0) Replication: properties validation utility and Enhanced Replication Status in VSTs Sequences increased to 32K Extend and mark variable-length extents as fixed 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.12

OE RDBMS Best Practices Move from shared memory to Client-Server Significant performance improvements make this more feasibleMulti-threaded database serverKill of remote client can’t crash a databaseServer-side joins Enable Replication AI blocks transmitted to the targets as they are generated Hot standbys (future: automatic db connection on failure) Use Pro2 for read-only access for reporting, etc. Keep production DB at peak performance 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.13

Lessons Learned forWebSpeed Migration

WebSpeed Migration Scenario WebSpeed Application (CGI and AJAX) REST APIs provided by WebSpeed app users table Goal Migrate customers from WebSpeed 10.2B to 11.7.x Move all applications to 11.7.x PAS for OE and Spring security 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.15

Lessons Learned Supported WebSpeed WebObjects Embedded SpeedScript CGI Wrapper OpenEdge.Web.CompatibilityHandler WebHandler Support Conversion needed for: HTML Mapped WebObjects Customized web-disp.p 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.16

Lessons Learned MigratingClassic AppServer

Migration to PAS for OE: Customer A Scenario Large partner with a cloud-based product Application hosted on dedicated AppServer and DB servers– A few high volume customers have their own on premise solution OpenEdge 11.7 Classic AppServer Using shared memory connections Goal Migrate to PAS for OpenEdge on 11.7 first phase; limited re-architecture Migrate to OpenEdge 12 second phase Improve security and performance of application 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.18

Architecture: Classic and PAS for OE (high-level)DMZCust1DMZCust2Cust 1Cust dule2module2loginloginAVMApache(or 1oerealmmod2oerealmmod2HTTPSAppServerDC One Tomcat instance in DMZ shared by allcustomers Authentication done from DMZ using directconnect APIs defined in DMZ, requests use HTTP Business logic and DB behind firewall One Tomcat instance for each customer behind firewall Requests routed by HTTPD (HTTPS) Scalable thought load balancing Version updates can be on-lineAuthentication, APIs are resolved behind the firewall 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.19

Architecture: Classic and PAS for OE (high-level)DMZCust1DMZCust2Cust 1Cust dule2module2loginloginAVMApache(or 1oerealmmod2oerealmmod2HTTPSAppServerDC One Tomcat instance in DMZ shared by allcustomers Authentication done from DMZ using directconnect APIs defined in DMZ, requests use HTTP Business logic and DB behind firewall One Tomcat instance for each customer behind firewall Requests routed by HTTPD (HTTPS) Scalable thought load balancing Version updates can be on-lineAuthentication, APIs are resolved behind the firewall 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.20

Lessons Learned Customer wanted multiple tenants to share PAS for OEinstances due to concerns with Java/Tomcat resource consumption A shared instance affected the SLAs for each customer Resource usage not as bad as originally thought Deployment topology depend on many factors: Prototypes often necessary to determine best architecture Evaluate trade-offs in SLA, resources, and performance Identify evolution path for modernization Identify milestones along the way and the work needed to get there 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.23

“Tests of classic state-free and PAS for OEshowed 1 classic broker and agentused only slightly less memorythan 1 PAS for OE instance and 1 multi-session agent.”- Customer X 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.24

Migration to PAS for OE: Example 2 Large partner Cloud-based product deployed on 11.7.x Existing mature (self-built) build and deploy toolchain Existing mature customer support environmentGoals Evaluate moving to OE 12 Evaluate moving from Classic AppServer to PAS for OE Changes to database connections initially not considered (ie SSJ) 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.25

Script Migration StepsExisting system:1. Run paspropconv to export Classic AppServer configsNew system:2. Create an instance using pasman create3. Merge exported properties using oeprop -f4. Optionally add any other configurations using pasman deployand oeprop -f 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.26

Export Classic AppServer configurationspaspropconv \--ubrokerPropsFile/path/to/ubroker.properties \--ubrokerNameUBroker.AS.as-app1 \# this becomes the abl-app name in the instance--pasoeAppNameas-app1-pasoe \# in this case, must match the abl-app s-guide.html 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.27

Setup PAS for OE Instances# 1. Create a new PASOE instancepasman create -f ports /path/to/instance/as-app1-pasoe# 2. Merge the properties for the ROOT webapppasman oeprop -I as-app1-pasoe -f /path/to/as-app1-pasoe.merge# For each of the Classic AppServers to merge into this PASOE Instance # 3. create the ABL in the instance (prop files and on disk)pasman deploy -I as-app1-pasoe \-a abl-app-name \# In this case webapp name is ABL-App name DLC/servers/pasoe/extras/oeabl.war abl-app-name # 4. merge the exported propertiespasman oeprop -I as-app1-pasoe \-f /path/to/ abl-app-name . broker-name .oemerge 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.28

Monitoring & TroubleshootingLots of moving parts 3 kinds of processes: Tomcat, MS Agent, DB server 3 kinds of sessions: HTTP, Spring, AVM/ABL Almost everything has its own logSupportability Knowledge Experience 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.Monitoring More & differentdata (depth-of) More logs &different formats30

Lessons Learned Moving one piece is reasonably easy How to do this at scale across the org? What changes are needed to the toolchain, for build, deploy, monitor? Keys to Monitoring Tracing the path of a single request is key to know where and what canbreak Log file formats differ, so scrapers/uploaders need to change Keys to Supportability Training on the technology reasonably simple Gaining experience in running applications on PAS for OE takes time 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.31

Lessons on BuildingCI/CD Pipeline

Continuous Development Cycle 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.33

Promote Container ImageRe-run Pipeline on error 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.34

Getting Started Build a basic automated pipeline then iterate Codify / Automate and use Infrastructure as Code principles Code Coverage and Quality is key Focus on areas of the pipeline based on organizationrequirements A Maturity Model can help to understand the state of CI/CD:– http://bekkopen.github.io/maturity-model/– -holy-grail-of-cloud-app-ma 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.35

Lessons Learned Automate, automate, automate Code Quality Build pipeline and iterate Use maturity model Promote image Blue-Green Deployment for High Availability 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.36

Using Containers 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.38

Lessons Learned Containers encapsulate application Using containers simplifies deployment Repeatable results Cluster Support Scalability High Availability 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.39

Lessons Learned onPerformance

Server Side Joins (SSJ) Enabled by Default Client/Server FOR Statement FORWARD-ONLY Dynamic Query NO-LOCK Same Logical DB Up to 10 Tables 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.50

Server Side Joins2.5x* 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.51

Lessons Learned Enable by default Reduction of data sent over the network FOR statement FORWARD-ONLY Dynamic Query QryInfo Logging 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.52

Next Steps

Recommended Next Steps: Getting Started Move to OpenEdge 12 Inventory of components and migration plan to PAS for OE Definition of Success 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.54

Recommended Next Steps PAS for OpenEdge Use separate PAS for OE instances based on SLA requirements REST Services Recommend Web transport WebSpeed Direct Migration using the Compatibility WebHandler– CGI Wrapper– HTML with embedded SpeedScript 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.55

Recommended Next Steps CI/CD Build WAR file for Web Application from Command Line Docker, Kubernetes Blue-Green Deployment Performance Write queries using multi-table joins to use Server Side Joins 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.56

Thank You. 2019 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.57

Performance Tuning Diagnostics CI/CD Pipeline. OpenEdge 12.1 and 12.0 . Progress Application Server for OpenEdge (PAS for OE) Cloud-ready, available as a Docker container for Linux (12.0) . Modify database startup parameters online (added 40 new ones)

Related Documents:

including OpenEdge 10.x, OpenEdge 11.0, OpenEdge 11.1, and OpenEdge 11.2. *** There were a couple of issues observed during recent certifications of OE 11.3.2 3

When you log into OpenEdge View, we send you an email with a security code to the email address associated with your OpenEdge View user profile. When you enter the security code, you can choose to remember the browser. As long as you don't delete your browsing data, OpenEdge View won't ask you for a security code for 45 days.

OpenEdge, a diision of loal Payments, operates trog te folloing entities OpenEdge Payments is a registered IO of Wells argo an Walnt ree A and a registered IO of O arris Ban icago, I and a registered IOP of ynos an olms, A. PayPros is a registered IO of Wells argo an Walnt ree A. About NFC Near-field communication (NFC) is a communication

UI Builder for OpenEdge (KUIB). The web application will interface with the Progress Application Server (PASOE) and the OpenEdge database on the backend. You will need to have access to: Progress Arcade. Each workshop participant will be provided a unique IP address for use during the session.

TOPIC 12 Understand Fractions as Numbers 8 LESSONS 13 DAYS TOPIC 13 Fraction Equivalence and Comparison 8 LESSONS 12 DAYS TOPIC 14 Solve Time, Capacity, and Mass Problems 9 LESSONS 11 DAYS TOPIC 15 Attributes of Two-Dimensional Shapes* 5 LESSONS 9 DAYS TOPIC 16 Solve Perimeter Problems 6 LESSONS 8 DAYS Step Up Lessons 10 LESSONS 10 DAYS TOTAL .

Dual moving averages are moving averages of moving averages, and according to symbols are written as MA (k k), which means moving averages as much as k periods of moving averages as much as k periods [10]. The steps used in calculating a double moving average are as follows: 1. Calculates the first moving average Mt Yt Yt-1 Yt-2 n (1) 2.

This document accompanies the Progress Exchange 2013 Performance Tuning Workshop. It provides step-by-step instructions for the hands-on portions of the Workshop. Disclaimer This document is not a manual. It provides examples of OpenEdge features and methods for monitoring database performance.

inertia of pile cross section with respect to the neutral axis. Relationships between variables lem p M dM V dV V M dx x x x x x F y p y I M x dx p right p (soil resistance) p left a) Pile loading b) Net soil reactionc) Pile deflection d) Slope e) Bending moment. The Genesis of the P-Y Curve: (Reese and Van Impe, 2001) B . P-y curve Method . P-Y CURVES . p-y model used for analysis of .