APEX Application lifecycle with feature based deployment

By Richard Martens

Elevator Pitch

APEX application deployment is mostly done by exporting and importing the application. But what if your team continuously develops, where do you stop developing to start preparing your release? This session shows you how to deploy based on features, without developers having to halt development.

Description

APEX Deployment

APEX application deployment is mostly done by exporting the application and importing it into the target environment. But what if your team continuously develops (as they should), where do you stop developing to start preparing your release-deployment? You should be able to deploy based on features; without your developers having to halt their development. The Strategy ============ The solution presented defines the core components of an APEX application as: - database objects (tables, views, pacakages etc) - the apex-application - static files on the web-server The Method ========== Using the deployment-method explained in this presentation you will be able to deploy based on features or tickets in your ticketing system. The method includes things like Code versioning (GIT), Feature-tickets (Jira), Code Review (Quality), Automated Deployment using Jenkins and Flyway. When implemented you will be able to successfully and predictively deploy your APEX applications (including underlying database objects) to the different deployment-environments. With a few modifications you can even upgrade the methodology to be a “continuous delivery” methodology. The Result ========== The result is a situation where you can deploy a specific version of your APEX application with the push of a button, wether it be at the test server, the acceptation-server or in production.

Notes

The session explains the entire software development-process as we use it at Smart4solutions. The process enables development teams to deploy features instead of entire application exports and imports. It is therefore much more flexible, since there is no “stop” in the process to prepare the deployment. Deployment to the next stage (test / acceptation / production) can be implemented using a build-server like Jenkins or by using pipelines. The latter technique is available in much GIT providers (GitHub / Bitbucket GitLab).