What are distributed systems and where can we find them in our everyday life? Bottle CAP and CAP theorem what is the difference?
Nix is a declarative package manager with rising popularity. One of the best ways to actually learn it is to use it, and what better way to learn it than using it every day to manage your dotfiles?
Setting up reliable environments for our software is tricky. The task has kept developers and sysadmins up at night for decades. Making environments and packages truly reproducible and reliable for more than a few weeks before regression sets in, is surely no easy task. In this post, we'll see how we can set up truly deterministic, reproducible and even ephemeral environments with the help of a clever set of tools called Nix, so we can sleep better, knowing our systems can be installed from literary scratch and be guaranteed the same binary packages down to the lowest dependencies.
How did the container become so ubiquitous in application hosting? Most people know that they're used to run an application, but can't a virtual machine also do that? Why did we ever move away from hosting our applications on a physical server ourselves? Let's explore how we have previously hosted our applications, and why we transcended into containerised software!
There are many ways of structuring or designing your microservices. My thoughts on the matter are that there is no right way. However, there are some tips that I have experienced that I think are worth sharing, and that might fit your project as well.
I recently switched projects, and if you've ever started at or switched jobs to a mid- or large-size enterprise, you probably know the onboarding process can be both long and exhausting. Possibly sitting there weeks on end, without access to the services you need, and purely feeling like a bother because you have to ask one of your colleagues for help the 3027th time this week. Welp, I just shudder at the thought of it, and if you do too, I just might have the answer to all our boundary issues!
“Why don't they run the application on the cloud?” - every time a service goes down under heavy traffic this is a common response. Some developers seem to think that as long as you are running in the cloud, you are home free. Everything in the cloud can scale to infinity. This is of course not the case. It is easier to make an application that can scale to infinity in the cloud, but it is not necessarily easy.
Data is today recognized as the single most important resource to contribute to economic growth in the next decade. Connecting data in new ways creates new opportunities for innovation and new services. The public and private sector have engaged in this development by sharing many valuable datasets. But are todays methods for data sharing suitable for the future?
Have you ever had an application that you wanted to automate the building, packing, and deployment for? In this article, I will show you how to can utilize Docker, Github Actions, and Azure App Services in just a few steps.
So you have a Kubernetes-cluster and a bunch of applications. You trigger deploys by manually pushing templated yaml to your cluster. The codebase is large and the manual processes time-consuming and error-prone. You need a better way. Well, let me help you with an opinionated suggestion.
A special year is coming to its end, we look back at the pandemic dominating most of the news (fake or not). Despite the fact that he apparently is immune, it is still a special year for Santa Claus. This year he began his journey towards the cloud for his on-north-pole infrastructure.
This blog post will not focus on how or even why you should write your infrastructure as code. Rather, it will focus on how you, a curious developer working with Azure Resource Manager (ARM), can modularize your infrastructure code and share it with others through linked ARM templates. I will also show you the basic parts of a self-made "repository" of templates which makes using shared templates a breeze.
The container paradigm is upon us, and some love hacking and writing code for Kubernetes - while others struggle, finding maintaining or releasing for it difficult. How do you even test a Kubernetes deployment on your own computer anyway? In this post we will have a look at how the stripped-down Kubernetes variant K3s can be used to take the new hot container continuous delivery tool Argo CD for a spin on your own laptop or personal server - without much of the complexity Kubernetes requires.
I first heard about using Kubernetes for Internet of Things (IoT) and edge computing less than a year ago. I was pretty new to Kubernetes, and didn't know a lot about IoT. So it seemed like a big pile of buzzwords. And even if it seems like a lot of buzzwords to you, you should still consider Kubernetes when deciding how to manage your IoT and edge applications. In this article I will discuss some of the features and frameworks that are especially important when running Kubernetes on the edge.
Kubernetes has become the de facto container orchestrator since it's initial release in 2014. It is a great tool for managing diverse workloads in clusters of machines, possibly spanning multiple availability zones. As the usage grows, new requirements for how to deploy and operate specialized software emerges. The Operator pattern is one of the more prominent responses to these new requirements.
You've got a Kubernetes cluster running your application on Google Cloud Platform (GCP), managed by Terraform. Metrics from your cluster, from your app or any other instance in our cluster - what to do with them? Sure, you've got Metrics Explorer in GCP that lets you play around with the metrics. Another option is to create a monitoring dashboard by manually selecting the metrics, aggregations, alignments, etc. to be shown. However, this can also be managed with Terraform, allowing a lot more control over your monitoring.
Most organizations eventually encounter the need to automate and schedule repetative tasks. A common approach to this is using shell scripts and cron jobs. This article is a quick introduction to an alternative way of doing this: By writing python code and using Cloud Composer.
Uffizzi (https://uffizzi.com) is a new cloud platform that helps developers deploy and host applications with zero cloud infrastructure knowledge. Uffizzi is similar to Heroku in many ways, but it is built on top of GKE, which means that it has a very solid and scalable foundation. This blog post is a quick guide to deploying applications to Uffizzi.
Azure has been growing rapidly in the enterprise in recent years. But its app services offering, which is the most important service for developers, is still mediocre. Kubernetes is, in my opinion, the only viable alternative for running applications in Azure. This blogpost explains how I came to that conclusion after roughly 6 years of working with Azure.
Cloud environments quickly grow in size. There’s tons of services and we start utilizing SaaS solutions for different problems. Solving problems through infrastructure and SaaS is after all one of the main reasons we're in the cloud in the first place.
If you're anything like me, you run all your code in managed services. But believe it or not, you might come across a problem that you can't solve with fully managed cloud services, and that's why Kelsey Hightower made Kubernetes... right?
I juli falt en dom i den europeiske domstolen som vil få store konsekvenser for bruken av skytjenester i Europa. Max Schrems vant frem i sitt søksmål mot Facebook, hvor han mente at overføring av hans personopplysninger til USA var ulovlig. Denne avgjørelsen endrer ikke bare hvordan Facebook opererer, men kan potensielt forby bruk av de amerikanske skyleverandørene, samt leverandører i andre land som ikke har godt nok personvern.
When using fully-managed Azure SQL databases, there are mainly two different cost/resource models to choose between. In my team, we have been running the Standard tier, which has a fixed amount of resources provisioned, and thus a predictable fixed cost. The alternative is the Serverless tier that scales the database on demand, and instead, you pay-per-use. One of our important production databases uses a lot of computing power while performing various tasks once every morning, and then smaller sporadic load the rest of the day and night. A good fit for the Serverless tier? Could we achieve the same performance at a reduced cost? Read on, and I will let you in on what I figured out.
NSM er bekymret for den samlede nasjonale avhengigheten av utenlandske skytjenesteleverandører. De mener Norge bør vurdere å etablere en offentlig sky på norsk jord, for å sikre nasjonal kontroll. Er dette en god idé?
With the age of continuous delivery sometimes comes the need for creating multiple short-lived test environments. There a many ways one could achieve this, but in this blog post I'll use Kubernetes external-dns. The basic idea is to create one test environment per code branch, and create what I like to call preview environments which use the git-commit SHA as part of the hostname where the app will be hosted. OK, let's get started!
Serverless computing has been with us for some years now, and has been "production ready" for quite a while. Services like AWS Lambda, Google Cloud Functions, and Azure Functions allow us to create highly scalable services with minimal overhead where you only pay for what you actually need. Azure Durable Functions is an extension of the Azure Functions family that lets you create stateful functions. This is useful for a lot of different scenarios, including the fan-out/fan-in pattern, which we will look into in this blog post.
The Cloud has changed the way we work. From enabling truly global scale through faster and repeatable deployments to a whole new DevEx for working with back-end services.
Teslas are the most technologically advanced cars on the market right now. One interesting feature is called Sentry Mode, it's a built-in security system that uses 4 (out of 8) cameras to continuously monitoring the surroundings of the car. Unfortunately, there is no way to watch the videos remotely, they have to be stored on a USB drive that’s plugged into the car. That’s very impractical, it takes only a few days before there are too many videos and you end up just ignoring them. In this post, I want to describe how I’m trying to use video content analysis to determine if there is a person on any video and then send a notification to the owner. I’m using Azure for archiving the videos and AWS to process them.
So like every year, Christmas is approaching too fast, and like every year I’m late at writing Christmas cards! Like all other complex problems in life, also this can be tackled by using the open source infrastructure as code tool Terraform!
Data imports from sources that don't care as much about data integrity and data quality as you do can often be a nightmare. This article describes how we use Azure Functions, ServiceBus, and BlobStorage to mitigate problems that can occur during sketchy data-imports.
Entur operates the national registry for all public transport in Norway, collecting data from 60 public transportation operators. The registry contains data about 21,000 daily departures on 3,000 routes. This data is open and free to use for app and service developers. Based on this registry Entur also provides Norway’s public transport route planner and ticketing app - Entur - with over 250 000 downloads. The app is developed using React Native, and it’s supplemented with a lot of Google Firebase features. In this post we’ll be highlighting how we use the Firebase Remote Config feature and the Cloud Functions.
We are generating astounding amounts of data. Estimates show that the amount of data worldwide will increase by 60% per year, reaching 175 zettabytes by 2025, up from 33 in 2018. Roughly half of it will be stored in public clouds and the rest in other types of data centers.
Dashboards and information screens are becoming increasingly common for monitoring and displaying important, relevant information at a glance. This blog post is part two of a short series where we look at how I, without much programming skills, was able to build such a dashboard in the cloud using Google’s BigQuery and DataStudio tools.
Dashboards and information screens are becoming increasingly common for monitoring and displaying important, relevant information at a glance. Over the following two blog posts, we will look at how I, without much programming skills, was able to build such a dashboard in the cloud using Google’s BigQuery and DataStudio tools.
Have you ever wanted to host a low traffic website in Azure, but required features like SSL and a custom domain? Were you disappointed when you found out that these features are only supported in the B1 App Service Plan for a whooping 50$ a month? With some simple changes and a Content Delivery Network (CDN) you can have it all for FREE!
At Digipost we are in the progress of building up our new infrastructure on Azure. We are already enthusiastic users of Terraform and have chosen to continue down that path, towards infrastructure-as-code (IaC) bliss, where the totality of your infrastructure can be created by a single command. But what happens when that totality is a bit big for a single Terraform state-file?
Companies and developers love the cloud. The cloud provides scalability and resilience to some of the most critical applications for a company. Due to the cloud, companies are no longer required to have large server installations on-premises. Actually, many companies are able to fully migrate almost all of their daily operations into the cloud. So, what are the downsides? Well, according to Info World, there are some major concerns regarding the cloud, one of them being costs. There are many ways to combat costs, and today I want to introduce you to one of my favorite ones, the spot market.
If you've read yesterdays post about ZEIT Now, you've already seen one of many approaches to develop and deploy a serverless API. In this post we will have a look at an alternative you can use to develop serverless applications, namely Serverless Framework. Serverless Framework can be used to develop, deploy and test your serverless applications targeted towards different cloud providers, or as they describe themselves: "The complete solution for building & operating serverless applications." Let's have a look on what this framework is all about.
By now, you have probably heard about serverless applications. You know, the applications where you focus on the code and let some third-party cloud provider manage the infrastructure and deployment process. With serverless functions offered by these cloud providers, it is surprisingly easy to create modular and serverless APIs that can easily be deployed with one command. Let's dig into how.
Do you want to run stateless container-based applications or microservices, but don't need all the features and management of a full-fledged Kubernetes cluster? Or do you crave the serverless model with no management and only-pay-what-you-use billing of other FaaS platforms, but find the runtime model and supported languages or versions too limiting? Let's have a look at Google Cloud Run - a fully managed serverless platform for running stateless HTTP-driven containers. And where you only pay for resources used when handling requests.
Feature toggling, or feature flags, is a fairly well known concept in the world of modern system development. It provides the foundation for separating launching a feature from the physical deployment of code, enabling things like A/B testing, piloting and a faster development process. With a few clicks, you can get going with a streamlined feature toggling setup in no time using hosted cloud services.
A typical cloud architecture - from a cloud native solution to a public cloud solution - consists of multiple connected services. Some of these services are your own, others are third-party services. Common for these is that they all communicate with each other over a network and that they depend on each other's availability. When your application integrates with another service - your application must handle erroneous behavior from the service. Thinking resilience is, based on my experience, something we developers often forget and is first addressed once we experience availability issues with the service in production.
This November, GitHub Actions moved to General Availability making another mark of GitHubs push towards eating more of the CI/CD ecosystem. In this article I'll show you how you can start testing your code directly in GitHub.
The Problem You’ve got your SPA, consisting of static CSS, HTML and JS, and high-performing microservices to provide the dynamic behavior of your app. The only thing remaining is hosting the static content somewhere, point a DNS to it, and call it a day. However, it turns out that your app needs a top menu, which is shared between all the apps in the organization, to provide a common look-and-feel and navigation. All of a sudden you’re pushed into the world of content transclusion, now loosely referred to as micro frontends
The dire second level consequences of choosing a private PaaS...
Have you ever deployed a static site, but found yourself in need of an API endpoint? Perhaps you needed somewhere to post form data, but the thought of setting up your own server, manage the endpoint and write the logic seemed like too much work. Not anymore