Live data from Hacker News

A Perl toolchain for building micro-services at scale

engineering.semantics3.com

21–30 of 57 posts

Re: A Perl toolchain for building micro-services at scale

#21
post #12

Earlier quoted context omitted.

> what ORM to use (or not to use an ORM) do you have something to recommend ? used Rose::DB in the past, then I discovered SQLAlchemy and it's difficult to look back...

I'd need someone suggesting anything other than DBIx::Class to present some ironcast arguments for that choice

[deleted]

Re: A Perl toolchain for building micro-services at scale

#22
post #12
post #3

I've just started tinkering with Mojolicious, after spending some time playing with a variety of other frameworks in other languages (I'm starting a new web project, and wanted to make an informed decision about how to build it). Mojolicious gets so many things right in such a tiny package, I'm surprised more folks aren't using it or talking about it. The real-time support is awesome; setting up Websockets is stupidl…

> what ORM to use (or not to use an ORM) do you have something to recommend ? used Rose::DB in the past, then I discovered SQLAlchemy and it's difficult to look back...

1 point by ashimema 0 minutes ago | edit | delete

Love DBIx::Class.. but it's not a good/perfect fit for Mojolicious by a long way.. it's blocking by nature and thus doesn't play too nicely if your aiming to write a non-blocking mojo app. reply

Re: A Perl toolchain for building micro-services at scale

#23
Nice post! At my most recent job, we used perl daily for processing scripts and many other functions. After initially having similar thoughts about it being "obsolete" and a "dinosaur", I quickly realized how resilient and flexible the language is (I know the flexibility can come with some criticism).

We investigated a lot of other options (go & python specifically) when building new projects, but found that perl was the best solution. It's flexibility allowed us to develop a custom and durable solution that surpassed our expectations.

We ran into some environment/portability issues and resorted to using docker, carton, and gitlab CI to solve these problems. It is incredible how reliable and easy it became to modify and deploy code to a variety of systems (new or old).

Re: A Perl toolchain for building micro-services at scale

#24
post #11

Earlier quoted context omitted.

Why would this surprise you? Perl continues to improve and is battle tested. More Perl is written today than ever before (that said, much more software in general is written than ever before, and there is no doubt Perl's share has declined). Particularly if you're doing lots of text processing Perl remains a great choice.

> Particularly if you're doing lots of text processing Perl remains a great choice. And, when you get right down to it, a huge chunk of web dev falls into that category.

A huge chunk of life is text processing nowadays.

Re: A Perl toolchain for building micro-services at scale

#25
A key component of the network side of our (https://scalableinformatics.com) SIOS layer is handled by Mojolicious running on Perl. Has been for a while (about 5 years).

I've taken some steps to do a re-implementation in node, but the perl version "just works" with very little fuss, under fairly heavy load, and is pretty easy to debug when I need to.

This is very much a microservice: tailored PXE environments as a service based upon a database, and the booting mac address as a key. A programmatic/database-based backend to a PXE server. It allows us to boot effectively anything that is bootable by modern hardware, from Linux, Windows, SmartOS/OpenSolaris, through FreeDOS, and other more esoteric systems. A number of our customers use this as a configuration tech underneath their own orchestration layers.

All Perl based, and using as modern techniques as possible.

We stopped using system Perl many years ago. Red Hat seems to like to ship not merely obsolete versions, but versions actually past their end-of-life, so that they are not really supported upstream anymore. They have a similar issue with Python and other languages. So, reluctantly, about a decade ago, we started building our own toolchain. First with Perl, then adding in Python, Julia, R, Octave, and other analytics codes. Our analytics tools use all of these as part of our SIOS rambooted appliances (http://scalableinformatics.com/fastpath), so we needed the updated toolchain. We are looking at Rust as well for future work, and have looked at incorporating Go, but we don't have any Go code developed/planned as of yet.

Re: A Perl toolchain for building micro-services at scale

#26
post #20
post #15

What's microservice-specific about that post? It's mostly about pretty standard perl packaging and deploying, most of which would apply to monolithic equally well (even more so, if your dividing line is DarkPAN-backed modules and not HTTP-isolated (micro-)servers).

You are absolutely right! The post's equally relevant to a monolithic setup as well. In such a setup, a code artifact (as mentioned in the post) will probably just be a script or a library (now I include a service too). A toolset like this is a good-to-have for a monolith but a pre-requisite for micro-services (if you want to reuse code as much as possible i.e.), I feel. The post has been written from a micro-service…

One the other hand, I've seen and read about companies where some forms of reused code are actually seen as code smells in this context. Especially when it comes to models, as one's service idea of what constitutes a 'Customer' might be different from others. Managing that (and redundant data stored in each microservice's private area) requires some heavy tooling...

So I'm always interested in the more specific approaches to communication and storing data when it comes to microservice architecture, which might be an idea for a sequel article ;)

Re: A Perl toolchain for building micro-services at scale

#27

It surprises me Perl isn't dead yet - in fact, German Bundeskriminalamt built a website for people having information about the German nazi hool riots during the France EM 2016 in Perl: https://www.bka-hinweisportal.de/

Why would this surprise you? Perl continues to improve and is battle tested. More Perl is written today than ever before (that said, much more software in general is written than ever before, and there is no doubt Perl's share has declined). Particularly if you're doing lots of text processing Perl remains a great choice.

Two great talks when it comes to the questionable greatness of Perl:

https://media.ccc.de/v/31c3_-_6243_-_en_-_saal_1_-_201412292...

https://media.ccc.de/v/32c3-7130-the_perl_jam_2

Re: A Perl toolchain for building micro-services at scale

#28

It surprises me Perl isn't dead yet - in fact, German Bundeskriminalamt built a website for people having information about the German nazi hool riots during the France EM 2016 in Perl: https://www.bka-hinweisportal.de/

Perl is bundled with many linux distributions and is a hard dependency for many popular programs. It isn't going away.

On the other hand, bundled Perl versions have been a bane as much as a boon for the language. After a lull because everyone was holding their breath for Perl6, there's been a decent amount of development regarding the Perl interpreter, and if your target server still bundles 5.0008...

And upgrading that might risk incompatible system services, which is why sysadmins usually have way fewer problems adding something like Perl or Python. Isolated language environments (cf. perlbrew) are a nice solution to this, at least until you happen upon a particular paranoid admin.

Re: A Perl toolchain for building micro-services at scale

#30
post #6

This is one of the first articles that clearly and consistently lays out the actual concrete benefits of microservices instead of the cargo cult Medium drivel that usually plagues the ecosystem. (Of course, these are still only arguments for SOA and there's no clear differentiation between SOA and microservices, because there is none.)

[deleted]
Post reply on HN