Tag descriptor

Deploying and managing web applications

An article, posted 2 days ago filed in deployment, linux, AWS, cloud, hosting, discussion, unix, yaml, virtualisation, docker, local, infrastructure, automation, security & standardization.

Traditional software is downloaded, installed, then run. With web applications it is different. These are built, then pushed to a remote server and then the interface of that application is presented to the screen of the users via web-technologies like HTML, CSS & JavaScript, in the past sometimes assisted by Flash, these days using WASM. Besides that web applications need databases, storage, cache-systems, maybe a search solution, and sometimes more dedicated tools. From the end-user’s perspective, it became a lot easier (although more restrictive) to access these tools, but getting it up and running got harder.

Continue reading...

Deploy style: Declarative cloud / infrastructure

An article, posted 2 days ago filed in deployment, linux, hosting, discussion, unix, yaml, virtualisation, AWS, cloud & azure.

This is an article in a series on Deployment

Not everything can be run on a single machine (although much can, systems are powerful these days(!)). There are options to declare a full cloud configuration, albeit typically linked to a single cloud provider. You declare what servers need to be running what images, which additional services you need (managed storage, databases), network architecture and more. Well known options are Amazon’s CloudFormation (“limited” to manage AWS) and OpenTofu (multi cloud fork of the now “BSL” licensed Terraform).

Properties

See for possibilities Deploying Web applications:

  • Style: Declarative
  • OS virtuality: Typical
  • Application virtuality: Direct to the virtual OS (often [Containered](https://murb.nl/articles/4…

Continue reading...

Deploy style: Declarative OS

An article, posted 2 days ago filed in deployment, linux, hosting, discussion, unix, yaml & virtualisation.

This is an article in a series on Deployment

What if you can define not only your application OS declaratively, but also your apps, making it fully reproducible? That is what NixOS pioneered, but is now also offered by Guix system (where GUI doesn’t mean Graphical User Interface, but something along ‘Guile Unix’, referring to the definition language) and variants of Fedora: Atomic desktops (these are less suitable for server deployments).

Properties

See for possibilities Deploying Web applications:

  • Style: Declerative
  • OS virtuality: Out of scope
  • Application virtuality: Direct to OS
  • From where: Anywhere
  • Scope: From OS to Application

Continue reading...

Deploy style: Images

An article, posted 2 days ago filed in deployment, linux, hosting, discussion, unix, yaml, virtualisation, image & vm.

This is an article in a series on Deployment.

This technically what I have been using as the basis of my ‘infrastructure’. On top of these images I would manage the OS semi manual (assisted with Capistrano) and deploy images using Capistrano, in separated user domains different, the application servers.

You can of course completely prepare the desired OS state as an image and deploy that.

Images avant la lettre? WAR

I made this in a separate category.

The next VM? WebAssembly’s VM

WebAssembly runs in a VM. Solomon Hykes, a co-founder of Docker, is quoted on WebAssembly’s Wikipedia page: “If WASM+WASI existed in 2008, we wouldn’t have needed to create Docker. That’s how important it is. WebAssembly on the server is the future of computing.” I’d consider it to be a promising development, but will not bet on this yet.

Properties

See …

Continue reading...

Deploy style: Containers

An article, posted 2 days ago filed in deployment, linux, hosting, discussion, unix, yaml, virtualisation & docker.

This is an article in a series on Deployment.

Docker has popularised the concept of deploying containers. Containers should not be confused with images. VPS providers for example, run images in a virtual machine, on a much larger physical machine. Before Docker, when you would like to have some form of reproducible builds, you would build your own images to create controlled environments. These images were then spun up like virtual machines. Docker, however, is building on Linux kernel features such as namespaces and cgroups, hence not requiring a full OS as a lot of tasks are executed by the host-kernel, outside Docker, making it a more efficient way of deploying. Security wise, one might argue that hardware based virtualisation is safer, but when you’re controlling the machine something of reduced importance.

There are different ways to run containers: Docker, Podman, Kubernetes and more. You may even consider running containers using …

Continue reading...

Deploy style: Ansible

An article, posted 2 days ago filed in deployment, linux, hosting, discussion, unix, yaml, virtualisation & python.

This is an article in a series on Deployment.

In my experience with Ansible, it was comparable to Capistrano. The major difference is that while Capistrano is just running a list of procedures consecutively; Ansible tries to act declarative, defining an end state rather than how to get there. Which is theoretically the nicest approach, but in the end Ansible performs tasks, which becomes apparent if you try to do something that isn’t supported by default, in these cases you’ll be writing writing scripts where you need to carefully think about processing a command and rolling it back. With many plugins there is a difference between theory and practice.

Properties

See for possibilities Deploying Web applications:

  • Style: Declarative
  • OS virtuality: Out of scope
  • Application virtuality:…

Continue reading...

Deploy style: WAR

An article, posted 2 days ago filed in deployment, linux, hosting, discussion, unix, yaml, virtualisation & War.

This is an article in a series on Deployment.

Is it an image, is it a container? Bundling an entire application to be run isolated, perhaps a WAR file is a container avant la lettre. It allows JVM compiled applications to be run within a VM. This is not exclusive to applications written in Java, and might even include JRuby. Since it is atypical for Rails applications to be deployed this way, I am not considering it, but it might be an alternative for you.

Properties

See for possibilities Deploying Web applications:

  • Style: Neither
  • OS virtuality: Not applicable
  • Application virtuality: VM
  • From where: Local or CI build, deployment can be a manual step or part of the CI build
  • Scope: Application

Continue reading...

Deploy style: Copy files (from SCP to Git)

An article, posted 2 days ago filed in deployment, linux, hosting, discussion, unix, yaml, virtualisation, files & Git.

This is an article in a series on Deployment.

Copying files is essentially the basis of all deployment styles

Deploy with SCP (or rsync over SSH)

Deploying may not be that hard if you’re deploying something static. A simple copy or rsync command may well suffice.

This will work fine for static sites, but more dynamic sites often require more setup. Hence, you will often find some additional scripts that will take care of this. These scripts are imperative in nature.

Variant: deploy with .git

Small applications can be deployed with a true .git deployment: git push and remote pull, directly serving the git repository via a server.

.git based deploy

First time encounter I had with a .git based deployment approach was with Heroku (US based), a service that made deployment easy. You push (git terminology) your app, would configure your database, and it would figure out the ruby version…

Continue reading...

Deploy styles: Capistrano

An article, posted 2 days ago filed in deployment, linux, hosting, discussion, unix, yaml, virtualisation & capistrano.

This is an article in a series on Deployment

Capistrano is a solution that I’ve been relying on for years, and has served me well over these: easy rollbacks, easy to have files that are permanent. Capistrano fetches the latest version from git, and sets the right symlinks, and triggers additional commands in a predefined order such as update.

It is can be understood quite well, and its systematic deployment procedure takes care about a lot of things (building assets, running database migrations, restarting servers). It is also pretty easy to deploy the same code to multiple servers.

Properties

See for possibilities Deploying Web applications:

  • Style: Imperative
  • OS virtuality: Out of scope
  • Application virtuality: Direct to OS
  • From where: Local (but from CI is possible)
  • Scope: Application …

Continue reading...

Book notes: Geweten van Maurits de Bruijn en Hoe houd je je hart zacht van Natascha van Weezel

An article, posted 2 months ago filed in book, book notes, review, Israel, palestina & Gaza.

Vorig jaar las ik twee boeken geschreven vanuit joods perspectief over de oorlog tussen Israël en Palestina, die zich het meest wreekt in het gebied dat de Gaza strook heet (noem mensen die wonen in Gaza geen Gazanen): Geweten van Maurits de Bruijn en Hoe houd je je hart zacht van Natascha van Weezel.

Je zou de boeken op een spectrum kunnen plaatsen van (anti-)zionisme. Maurits de Bruin zal zichzelf waarschijnlijk wel kunnen identificeren als antizionist. Natascha van Weezel identificeerde zich weliswaar zeker als zionist, maar is ze nu een kritische middenpositie gaan innemen. Nog steeds voorstander van een staat voor Joodse mensen, maar niet op deze manier.

Natascha van Weezel maakt met die meer middenpositie geen vrienden. Ze wordt scheef aangekeken door zowel de zionistische kant als de antizionistische …

Continue reading...

My favourite development related podcasts (2026 edition)

An article, posted 4 months ago filed in podcast, ruby, development, software, maintenance, KentBeck & hanami.

Three podcasts I’m currently enjoying on development (I listen to more, but these are asap play when they arrive):

Dead Code

Dead code always ends with “and now delete some”, followed by a death metally grunt “DEAD CODE”. But while the show is death metal themed, don’t expect just bearded men with long hair mumbling. Jared Norman discusses a wide range of topics in depth. Often his shows are triggered by someone who wrote a blogpost about some niche programming related topic. From rescript (a typed language that compiles to Javascript), new style version management tools other than git, a discussion around why (the lucky stiff) who influenced the ruby culture to something much more quirkier than others, to discussions about the language we program in (english vs. non-english, ‘css’ vs assembly…).

Maintainable - the art of improving existing software

In this podcast Robby Russel talks to experts in the field ab…

Continue reading...

Tag descriptor

murb “design system”

An article, posted 4 months ago filed in murb, design system, design, html & css.

While working on this website and some others of mine, I’ve been steering towards a single source of truth for design. One might call it a design system, but it is really light weight. This website is a demo, but more can be found here on this automatically published resource.

It is work in progress.

The code can be found on Gitlab.

To get started, just link to this url with all css:

```

```

Or… when using rails, include this gem: murb_design_system

Not including anything rails / ruby specific, when introducing components, these might very well be web-components. We’ll see.

Continue reading...

Book notes: Coderspeak by Guilherme Orlandini Heurich

An article, posted 5 months ago filed in development, background, design, ruby, book, book notes, review & summary.

Highlights / summaries that I made while reading Coderspeak by Guilherme Orlandini Heurich

On Community

When they contribute to open-source projects, they often say they want to ‘give back to the community’, (…which…) comes from the connection between the programmers who wrote it and the program they created.

Heurich cites Marcel MaussThe Gift:

What imposes obligation in the present received and exchanged is the fact that the thing received is not inactive. (…) It is something attached to me, the giver, and it will be permanently attached to me, even if you pass my gift along.

That is why, Heurich concludes, it is not the companies who contribute graciously, instead, but the individual developers who reciprocate. And not for the prestige (as Eric S. Raymond tends to think of it), but for a feeling of belonging to a…

Continue reading...

When to use Serializers?

An article, posted 6 months ago filed in ruby, rails, ruby on rails, service, architecture, when to use, json & JSON-API.

Define Serializer

Serialisation (I’ll use s in writing about the concept, and z when discussing the thing itself) in programming is about converting the state of an object into something that can be stored or transferred. When you really want to serialise the state of an application to disk, you probably want full, unmodified serialisation, so the question about serialisation typically comes up when you want to share data with external parties. To these parties you don’t want to share the raw data, but pre-process it a bit, perhaps convert the internal state to objects that are more generic and don’t expose the full internals. In such case you might want to consider introducing the concept of Serializers.

Alternatives to using serializers

Before introducing new tooling, always consider the following default options Rails offers:

  • Serializers live on the view-layer. The default approach rails suggests is to have e.g. {index, show}.json.jbuilder files in your v…

Continue reading...

De nerd vote: Barbara Kathmann

An article, posted 7 months ago filed in links, politiek, pvda, groenlinks, GL/PvdA, GLPvdA, waarom links, asielcrisis, crisis, stikstof, woningbouw, CBS, rechts, BarbaraKathmann & privacy.

Voor zij die professioneel en politiek gescheiden willen houden: sommige dingen zijn soms ook politiek en het negeren ervan is vaak net zo goed politiek.

Politici worden geacht alle problemen op te lossen. Als ze dat niet bereiken hebben ze gefaald. Of hebben de andere partijen gefaald. Maar we leven in een democratie. Een, weliswaar grote, minderheid (30%) stemt extreem rechts (PVV, JA21, FvD), maar wil alle regels opzij kunnen zetten om hun gelijk te halen. Zo werkt het natuurlijk niet. Niet iedereen wil dat namelijk. En dus gaat het niet lukken. We moeten samen meerderheden vormen en samen problemen oplossen.

Tegenwoordig wint de oneliner het te vaak van de waarheid. Zelfs een fatsoenlijke partij als D66 durft niet gewoon eerlijk te zeggen dat ze voor hebben gesteld het basispakket te bevriezen. Frans Timmermans komt er altijd een beetje mêh vanaf in dat soort spelletjes. Maar als het over de inhoud gaat weet hij waarover hij het heeft. En dat is vaak genuan…

Continue reading...