Image for post
Image for post
Master and secondary replica RDS instances

In this post we take a look what AWS RDS offers to be a high performant and resilient database system. RDS has two capabilities called Multi AZ and read replicas to get this done.

What means multi AZ on RDS?


Image for post
Image for post

You covered your codebase with unit tests but you’re still facing some weird bugs from time to time and don’t know how to find the issues in your web application, serverless endpoint or cron job script? This post will guide you through the pain of setting up debuggers in your IDE and describes how a debugger works in detail.

All the code used in this post can be found here: https://github.com/stefpe/node_debugging

What is debugging?

Debugging means to find a bug/anomaly in your code/program. Normally you can use a debugger to start your program in a monitoring mode to see what happens by stepping…


Image for post
Image for post
Access an EC2 Instance via SSH in a private VPC subnet

You want to check services running in a private subnet in your VPC on AWS, or just want to play around with the shell on a small instance on your private network? This guide shows you how to access an EC2 instance on a private subnet within your VPC via SSH:


Image for post
Image for post

What do we build?

In this post we’re gonna implement a search as you type feature with Symfony. We will feed product information into Elasticsearch, build a user interface to search for a product by it’s title and manage the Symfony integration to query Elasticsearch.

What is Elasticsearch?

Elasticsearch is an open source search and analysis engine based on Apache Lucene developed in Java. Feed it with your data using a REST interface and explore it with powerful queries and aggregation possibilities. Use it as a base for analytical dashboards or realtime systems.

Elasticsearch is designed as a distributed system from the ground up to build a…


Image for post
Image for post

Let’s checkout how to connect Symfony with Amazon SQS and SNS Services by using a Symfony component.

Github repo for this article:

What is the Symfony Messenger?

It’s a Message-Bus that can be used for the following design patterns:

We are going to use a Command-Bus pattern that seperates the description, what needs to be done, from where it’s going to happen. It’s like getting an order in a restaurant that gets prepared in the kitchen. In our case we will create a TestMessage object, that gets send and consumed by a handler.

Setup the Symfony project:

Create a Symfony CLI skeleton:

docker run — rm…


Image for post
Image for post

Are you tired of storing a file with your application secrets in a password manager and need to copy it to your CI/CD environment everytime you change it to deploy your application in a security compliant way?

Spin up Symfony

Create a docker-compose.yml in your project root and add the following:

(See PHP Docker development with XDEBUG explained here)

version: '3' services: php: image: webdevops/php-nginx-dev:7.4 working_dir: /app environment: - WEB_DOCUMENT_ROOT=/app/public - PHP_DISPLAY_ERRORS=1 - PHP_MEMORY_LIMIT=2048M - PHP_MAX_EXECUTION_TIME=-1 - XDEBUG_REMOTE_AUTOSTART=1 - XDEBUG_REMOTE_PORT=9000 - XDEBUG_PROFILER_ENABLE=0 - XDEBUG_REMOTE_CONNECT_BACK=0 - XDEBUG_REMOTE_HOST=docker.for.mac.localhost - php.xdebug.idekey=PHPSTORM - php.xdebug.remote_enable=1 - php.xdebug.max_nesting_level=1000 ports: - "8080:80" volumes: - ./:/app:rw,cached depends_on: - mysql mysql: image…


Image for post
Image for post

For applications it’s often really annoying to aggregate data in memory with a self written command/program instead of having this already done by the storage engine, which holds the data. The point is, it’s really cumbersome to fetch data from a database, aggregate it within a program and write it to another table, which will be used as data source for another program. When you see something like this, please always try to get rid of this aggregation work and let your storage engine handle it. So let’s clearify how materialized views can help in this situation.

What are Views?

First of all…


Image for post
Image for post

What is a Software Architecture Assessment?

It‘s much better to discover a missing bedroom while the
architecture is just a blueprint, rather than on the moving day (by Paul Clements)

In a software architecture assessment, you try to find problems within the architecture / implementation. When can you do that?

In practice the assessment is done most of the time after the implementation is done and the project is already in production.

What is TARA?

The tiny architectural review approach(TARA) was invented for situations…


Image for post
Image for post
What’s up with the Buckets?

What is S3?

S3 = Simple Storage Service

Object

Stored objects consist of the following structure:

The storage size for an object can be from 0 bytes to 5 terabytes.

S3 Bucket

A Bucket is like a unique namespace where you can store your objects in. …


You need to build a simple static website? The best tool I’ve seen so far is Hugo, a static website builder written in Go.

Start building the page

hugo new site my-page

2. Change to the directory and initialize a git repo:

cd my-page && git init

3. Install a theme (hugo-fresh business theme)

git submodule add https://github.com/StefMa/hugo-fresh.git themes/hugo-fresh && curl -O https://raw.githubusercontent.com/StefMa/hugo-fresh/master/exampleSite/config.yaml && rm config.toml

4. Run your website locally and browse it at http://localhost:1313

hugo server

Now you can see your website looking like this:

Image for post
Image for post
Your page at http://localhost:1313

To adjust the content…

Stefan Pöltl

Software Architect

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store