[Deploy] Deploying application - New Best Practices?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

[Deploy] Deploying application - New Best Practices?

sergio_101
Hey, all..

I have a Pharo application that I ready to deploy to production. I haven’t done this in a lot of years, so I thought I might check around on what the current best practices are.

The app is a Teapot(REST) based application that processes SMS and MMS messages, including saving files to the file system, etc..

In the past, I would have added some kind of remote desktop server into my image, and run it headless on the server. When I needed to update the source code with monticello, I would use a VNC client to log in, update my source code, save the image, etc.

I have a feeling things have progressed at this point. Can anyone point me in the right direction to learn current best practices?

I will most likely be updating this to a gemstones app, but while this is in beta, i just want to worry about user experience of the application..

Thanks!


signature.asc (852 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [Deploy] Deploying application - New Best Practices?

Pierce Ng-3
On Fri, May 26, 2017 at 03:47:42PM -0400, sergio ruiz wrote:
> I have a feeling things have progressed at this point. Can anyone point me in
> the right direction to learn current best practices?

Some things I'm now doing differently, based on reading up on current best
practices:

Initial deployment - creating uid/gid, creating directories, deploying VM,
copying image and various artefacts, templating daemontools run file, etc is
done using Ansible. Check out Ansible, Chef and Puppet.

For my blog, content management is under version control using Fossil and is
pushed from my workstation where I write/check the post to my blog server:

  http://www.samadhiweb.com/blog/2016.08.12.fossil.html

This approach also works for pushing application changes. I use Fossil, but for
Git you can find any number of tutorials on the web on how to push-hook and all
that. Better Git support built into Pharo should make this easier.

> In the past, I would have added some kind of remote desktop server into my
> image, and run it headless on the server. When I needed to update the source
> code with monticello, I would use a VNC client to log in, update my source
> code, save the image, etc

The latest thinking is to blow away whatever is currently running, deploy new
artefacts (image, etc) freshly built from CI, and restart the application.
Fashionable memes are "cattle, not pets" and "no snowflakes".

I still build my images with RFBServer running so that I can VNC into them.
Over time I do that less and less.

Pierce


Reply | Threaded
Open this post in threaded view
|

Re: [Deploy] Deploying application - New Best Practices?

Stephane Ducasse-3
Hi sergio

This is great to hear that you will deploy your app. I really want that we really improve the deployment of Pharo App. Could you log and report to us what worked with you and what did not work. 
I would like that the community build and share some scripts. 
Sven in the past shared with us his build scripts and it was a great start.
There are in the deep into pharo book.
Can you check if they help you. 

Stef

On Sat, May 27, 2017 at 8:18 AM, Pierce Ng <[hidden email]> wrote:
On Fri, May 26, 2017 at 03:47:42PM -0400, sergio ruiz wrote:
> I have a feeling things have progressed at this point. Can anyone point me in
> the right direction to learn current best practices?

Some things I'm now doing differently, based on reading up on current best
practices:

Initial deployment - creating uid/gid, creating directories, deploying VM,
copying image and various artefacts, templating daemontools run file, etc is
done using Ansible. Check out Ansible, Chef and Puppet.

For my blog, content management is under version control using Fossil and is
pushed from my workstation where I write/check the post to my blog server:

  http://www.samadhiweb.com/blog/2016.08.12.fossil.html

This approach also works for pushing application changes. I use Fossil, but for
Git you can find any number of tutorials on the web on how to push-hook and all
that. Better Git support built into Pharo should make this easier.

> In the past, I would have added some kind of remote desktop server into my
> image, and run it headless on the server. When I needed to update the source
> code with monticello, I would use a VNC client to log in, update my source
> code, save the image, etc

The latest thinking is to blow away whatever is currently running, deploy new
artefacts (image, etc) freshly built from CI, and restart the application.
Fashionable memes are "cattle, not pets" and "no snowflakes".

I still build my images with RFBServer running so that I can VNC into them.
Over time I do that less and less.

Pierce



Reply | Threaded
Open this post in threaded view
|

Re: [Deploy] Deploying application - New Best Practices?

Sven Van Caekenberghe-2
In reply to this post by sergio_101

> On 26 May 2017, at 21:47, sergio ruiz <[hidden email]> wrote:
>
> Hey, all..
>
> I have a Pharo application that I ready to deploy to production. I haven’t done this in a lot of years, so I thought I might check around on what the current best practices are.
>
> The app is a Teapot(REST) based application that processes SMS and MMS messages, including saving files to the file system, etc..
>
> In the past, I would have added some kind of remote desktop server into my image, and run it headless on the server. When I needed to update the source code with monticello, I would use a VNC client to log in, update my source code, save the image, etc.

My current approach is more or less what you find here

  https://github.com/svenvc/pharo-server-tools

That include a REPL and Metrics server for operational purposes.

> I have a feeling things have progressed at this point. Can anyone point me in the right direction to learn current best practices?
>
> I will most likely be updating this to a gemstones app, but while this is in beta, i just want to worry about user experience of the application..
>
> Thanks!
>
> ----
> peace,
> sergio
> photographer, journalist, visionary
>
> Public Key: http://bit.ly/29z9fG0
> #BitMessage BM-NBaswViL21xqgg9STRJjaJaUoyiNe2dV
> http://www.Village-Buzz.com
> http://www.ThoseOptimizeGuys.com
> http://www.coffee-black.com
> http://www.painlessfrugality.com
> http://www.twitter.com/sergio_101
> http://www.facebook.com/sergio101


Reply | Threaded
Open this post in threaded view
|

Re: [Deploy] Deploying application - New Best Practices?

sergio_101
In reply to this post by Pierce Ng-3
Where can i find a current RFBServer?

Right now, I don't want to blow away what's currently running as it is an image with data.. will figure out persistence later..
Reply | Threaded
Open this post in threaded view
|

Re: [Deploy] Deploying application - New Best Practices?

Pierce Ng-3
On Fri, Jun 02, 2017 at 12:52:35PM -0700, sergio_101 wrote:
> Where can i find a current RFBServer?

  http://smalltalkhub.com/#!/~PharoExtras/RFB