How Does a Software Architect Fit into Autonomous Teams?

Image for post
Image for post
Photo by You X Ventures on Unsplash

Software architects are responsible for the architecture of a system. This includes the overall design, the corresponding components, and their communication.

One popular definition of architecture is “stuff that’s hard to change”. I’d argue that a good architect makes change easier — thus reducing architecture.

Martin Fowler

A software architect should also aim for maintainability and sustainability of a system, thus making assumptions on the system usage and trying to verify these. In contrast, a developer’s point of view of the system is more fine-granular, focused on the implementation details and limited to the components’ context regardless whether the component…


A How-To guide using Terraform

Image for post
Image for post
Photo by Mika Baumeister on Unsplash

Hashicorp Vault is an open-source tool to manage secrets and secret access. The official definition of a secret in Vault:

A secret is anything that you want to tightly control access to, such as API keys, passwords, certificates, and more. — Vault Documentation

Access to secrets is granted via group memberships and the corresponding policies. Despite you can manage users within Vault, in an enterprise context users are often managed centrally. There are several capabilities to authenticate users to Vault and this post elaborates on how to integrate the open source identity provider Keycloak with Vault. …


Beyond Continuous Deployment

Image for post
Image for post
Photo by Marc-Olivier Jodoin on Unsplash

Releasing software efficiently is a crucial part of the software delivery chain. The idea of integrating different copies of software multiple times a day initially was born with the concept of Extreme programming (XP). Today many companies already have an automated process of integrating their software with the help of unit- and integration test suites. Due to several aspects (eg. the system’s complexity, business criticality, legacy), the release/ deployment workflow is still a manual step. With the adoption of flexible cloud infrastructure and serverless applications, there is a capability to easily extend Continuous Integration (CI) to Continuous Deployment (CD).


Beware of the microservices, if you don’t need them

Image for post
Image for post
Photo by Joshua Sortino on Unsplash

At the very beginning of a new project or when maintaining an existing software there is a point where you have to decide which kind of system architecture you’d like to choose. Whether it’s suitable for the projects use case to build a monolithic system, a self contained system or a microservice.

Influenced from the steadily growing serverless hype many decisions are made towards the microservice approach. …


How to automate GCP Cloud Run setup with Terraform Cloud (Part 1/2)

Image for post
Image for post
Starting on a greenfield

In this post, we will deploy a web service written in Deno to GCP Cloud Run using Terraform, a cloud independent infrastructure as a code framework. This post is split into two parts. The first one is about how to set up all baselines, where the second one will cover the integration into GitHub and automation with GitHub actions. You can get the sample project files here.

Requirements

To follow this post you need to have the following setup:

gcloud CLI

Docker

Terraform

The sample project

Setup Google Cloud

GCP is our target platform, hence we need to have an…


Setup a pipeline with GitHub actions (Part 2/2)

Image for post
Image for post
Shipping code continuously

In this post we will create a CI/CD pipeline to deploy a webservice written in Deno to GCP Google Cloud Run with Terraform and GitHub actions. This is the second part of a series, where the first part was about the basic setup. If you haven’t read it yet, head over to part I. The source of the sample project can be found here.

GitHub Actions

GitHub released its fully integrated CI/CD workflow tool GitHub actions as GA in November 2019. The tool is event-driven and enables you to run a series of commands after an event happened. Events can be internal…


A comparision of Docker build capabilities

Image for post
Image for post
Different ways to get your container

Purpose

We will take a look on how to build Docker images and take notes about building time, resulting image size and files sent to the build context. The projects sources are considered as an example but are intended to be transfered to real life issues. You can checkout the project here. Let’s docker!

The setup

Our target is to build a Linux Docker Container with Ansible and AWS CLI installed. We have the following project file tree:


Image for post
Image for post

Few years ago few people cared about coded infrastructure, there was configmanagement and application code, however the server specifications, networks and other basic infrastructure were still admin concerns. Then Infrastructure as Code began to rise and multiple tools entered the market. AWS Cloudformation, Hashicorp Terraform, GCP Deployment Manager, Azure Resource Manager to mention few of them, on top of them several frameworks adopted those tools under the hood like eg. serverless framework.

Having a closer look, the common thing is, most of them use (kind of) YAML/ JSON syntax to describe the resources. Depending on your needs you can choose…


Image for post
Image for post
Because every article needs a picture ;)

Covid-19 has tremendous impacts on our lives. The enormuous economic damages the pandemic causes are not yet clear and many lost their jobs or might loose it as a consequence of dramatic sales increase.

Me as an engineer at a company selling tickets for big events the situation changed suddenly in march. The companies core business was no longer able to operate and gain profit. As a result everybody had to go into short time work to keep costs as low as possible. Big shutdown.

After enjoying some sparetime, i searched for new opportunities for me to level up my…

Pascal Euhus

Software-Engineer and DevOps-Enthusiast, AWS Solutions Architect Professional, GCP Professional Cloud 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