Skip to Content

In the first blog of this series I just got you interested, dangled out the technology choises and why this whole approach is good.

Now lets look at the different deployment scenarios depending on your setup.

HCP – All in the cloud

In this scenario you are devloping and deploying in the HCP cloud. This is probably the best as it is a simple ‘Deploy’ button. Ideal. I am not sure though that you get any minification or creation of dbg sources or any of the other goodies I talked about in my first blog. This is more than likely on the roadmap but I am not sure if this is there yet. Perhaps you can enlighten me I will certainly update it.

This scenario looks like this:

/wp-content/uploads/2016/04/hcp_919981.png

All in the cloud.

Local development with Git

This scenario is one that I have used on several clients and I know that others use it too. Source code is developed locally and commited to github or similar in the cloud. Testing is done on local servers with tunnels to odata sources. I mentioned that Graham Robinson’s deployer was an inspiration to this series and this is pretty much what is happening in this scenario.

It looks like this:

/wp-content/uploads/2016/04/git_local_920069.png

All in the firewall

The scenario we are going to focus on mostly in this series is this one. All in the firewall on ‘On premise’ as you cloudy types like to say.

source control, developement workstations and the odata sources all are in the firewall and there will be no naughty touching any fluffy cloudy services thank you very much.

As expected it looks like this:

/wp-content/uploads/2016/04/on_prem_920070.png

Local Deployment

So with local development you have a little bit more of the control of having the basis people open up ports and trust the source control server and do something very similar to what Graham achieved with his Git and Local development. But basis people being basis people instead of going for a deploy on push to source control (ideal) I am going for a push to Gateway. I can contol this a little more because I am going to carefully refactor (hack) a local copy of the /UI5/UI5_REPOSITORY_LOAD_HTTP function module to accept a zip file that I will prepare with grunt.

/wp-content/uploads/2016/04/solution_920085.png

You should note that we have all our projects / apps under one big folder. Normally I am an advocate of one rep per app but in this scenario we didn’t have that control over the source control and it made things simpler for our cross-app navigation. As bonus I found a grunt package that enabled me to create one grunt file and then have one project.json file that pointed to that grunt file to avoid repeating all the build steps for each project aka app.

The simple folder layout looks like this:

/wp-content/uploads/2016/04/projects_920086.png

Right, so now we are done with all the introductiony stuff. Next time we will get our grunt on.

<– Previous blog: Introduction   Next blog : Getting our Grunt on –>

To report this post you need to login first.

10 Comments

You must be Logged on to comment or reply to a post.

        1. Nigel James Post author

          Yet another?

          Well…I was thinking of exactly that blog so I guess I will find a bottle of chateau de chasselas the next time I am up at the beach office.

          (0) 
  1. Daniel Ruiz

    Hi Nigel,

    How do you actually tell your customers running “On-Premise” (ABAP GW) that they need a Git because ABAP BSP Repository does not provide source control?

    This is actually the most painful part IMO – trying to make them understand what SAP does provide and what SAP does not provide.

    Do you have some support documentation you use or I could use where somehow SAP states the value of Git vs ABAP Repository? (as long as there’s the SAP logo on the document they don’t really care)

    Cheers,

    Dan.

    (0) 
    1. Nigel James Post author

      This is an ongoing issue Daniel We do have source control – SVN – inside the firewall. And we are trying to get git but this is like trying to turn the Titanic.

      Sorry I dont have a magic document but ABAP is a snapshot repo (an that’s being generous) with no capability for branching which is critical anytime you need to maintain hotfixes in prod and new dev features.

      I do know that hana server sp11 is out and has git built in … so convince them to upgrade to that.

      HTH,

      Nigel

      (0) 
      1. Daniel Ruiz

        Hi Nigel,

        I agree, it’s been an issue since SAP decided to use Gateway to deploy and run UI5 – at the very start we would really do all of this in AS Java and NWDI even thou it sucks does provide the minimum for source control.

        As far I understand, it’s irresponsible from SAP to promote “use ABAP to run your code” but not provide simple “guidelines” for source control of the artifacts that are generated – most SAP Customers do expect “SAP has it all covered” – they simply don’t in this case and it’s very much up to the Customer running “On-Premise” to deal with source control system.

        When you refer to the docs, it’s only mentioned the “UI5 Repository” (BSP Repository) – so trying to talk a Customer into understanding SAP does not have it covered, the Customer itself does not have a decent source control system in place is simply madness.

        Quite nice, you run version A or B you don’t have such issues since SAP does provide source control.. but really, there are so many easy options around that this should be easy to cross out.. Gitlab & Docker and in 4 hours you have it all.. but since there is no direction from SAP, it’s a “developers word” vs “we know what” and usually these things are either neglected or not very well understood by stakeholders since it’s not “official words”.

        Thanks for your input, I’m just another developer doing battles to have simple tools that are so well-known everywhere but they somehow never make their way into SAP Landscape.

        Cheers,

        Dan.

        PS: IMO a simple dropbox account does a better job than ABAP Repo.. – at least I can rollback code with ease when needed.

        😉

        (0) 

Leave a Reply