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…
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. …
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).
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. …
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.
To follow this post you need to have the following setup:
✓ Docker
GCP is our target platform, hence we need to have an…
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 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…
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!
Our target is to build a Linux Docker Container with Ansible and AWS CLI installed. We have the following project file tree:
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…
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…
Software-Engineer and DevOps-Enthusiast, AWS Solutions Architect Professional, GCP Professional Cloud Architect