Ulrich Windl <[email protected]> writes: > Hello! > > I'd like to comment as an "old" SuSE customer: > I'm amazed that lighttpd is dropped in favor of some new go application: > SuSE now has a base system that needs (correct me if I'm wrong): shell, perl, > python, java, go, ruby, ...? >
Oh, that list is a lot longer, and this is not the first go project to make it into SLE. > Maybe each programmer has his favorite. Personally I also learned quite a lot > of languages (and even editors), but most being equivalent, you'll have to > decide whether it makes sense to start using still another language (go in > this > case). Especially i'm afraid of single-vendor languages... TBH I am more sceptical about languages designed by committee ;) Cheers, Kristoffer > > Regards, > Ulrich > >>>> Kristoffer Grönlund <[email protected]> schrieb am 12.02.2019 um 20:00 > in > Nachricht <[email protected]>: >> Hello everyone, >> >> I just wanted to send out an email about the hawk-apiserver project >> which was moved into the ClusterLabs organization on Github today. This >> project is used by us at SUSE for Hawk in our latest releases already, >> and is also available in openSUSE for use with Hawk. However, I am >> hoping that it can prove to be useful more generally, not just for Hawk >> but for other projects that may want to integrate with Pacemaker using >> the C API, and also to show what is possible when using the API. >> >> To describe the hawk-apiserver briefly, I'll start by describing the use >> case it was designed to cover: Previously, we were using lighttpd as the >> web server for Hawk (a Ruby on Rails application), but a while ago the >> maintainers of lighttpd decided that since Hawk was the only user of >> this project in SLE, they would like to remove it from the next >> release. This left Apache as the web server available to us, which has >> some interesting issues for Hawk: Mainly, we expect people to run apache >> as a resource in the cluster which might result in a confusing mix of >> processes on the systems. >> >> At the same time, I had started looking at Go and discovered how easy it >> was to write a basic proxying web server in Go. So, as an experiment I >> decided to see if I could replace the use of lighttpd with a custom web >> server written in Go. Turns out the answer was yes! Once we had our own >> web server, I discovered new things we could do with it. So here are >> some of the other unique features in hawk-apiserver now: >> >> * SSL certificate termination, and automatic detection and redirection >> from HTTP to HTTPS *on the same port*: Hawk runs on port 7630, and if >> someone accesses that port via HTTP, they will get a redirect to the >> same port but on HTTPS. It's magic. >> >> * Persistent connection to Pacemaker via the C API, enabling instant >> change notification to the web frontend. From the point of view of the >> web frontend, this is a long-lived connection which completes when >> something changes in the CIB. On the backend side, it uses goroutines >> to enable thousands of such long-lived connections with minimal >> overhead. >> >> * Optional exposure of the CIB as a REST API. Right now this is somewhat >> primitive, but we are working on making this a more fully featured >> API. >> >> * Configurable static file serving routes (serve images on /img from >> /srv/http/images for example). >> >> * Configurable proxying of subroutes to other web applications. >> >> The URL to the project is https://github.com/ClusterLabs/hawk-apiserver, >> I hope you will find it useful. Comments, issues and contributions are >> of course more than welcome. >> >> One final note: hawk-apiserver uses a project called go-pacemaker >> located at https://github.com/krig/go-pacemaker. I indend to transfer >> this to ClusterLabs as well. go-pacemaker is still somewhat rough around >> the edges, and our plan is to work on the C API of pacemaker to make >> using and exposing it via Go easier, as well as moving functionality >> from crm_mon into the C API so that status information can be made >> available in a more convenient format via the API as well. >> >> -- >> // Kristoffer Grönlund >> // [email protected] >> _______________________________________________ >> Users mailing list: [email protected] >> https://lists.clusterlabs.org/mailman/listinfo/users >> >> Project Home: http://www.clusterlabs.org >> Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf >> Bugs: http://bugs.clusterlabs.org > > > > _______________________________________________ > Users mailing list: [email protected] > https://lists.clusterlabs.org/mailman/listinfo/users > > Project Home: http://www.clusterlabs.org > Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf > Bugs: http://bugs.clusterlabs.org -- // Kristoffer Grönlund // [email protected] _______________________________________________ Users mailing list: [email protected] https://lists.clusterlabs.org/mailman/listinfo/users Project Home: http://www.clusterlabs.org Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf Bugs: http://bugs.clusterlabs.org
