Accurate pricing for complex cloud projects is a key requirement for success. Unfortunately the sheer number of variables and the ever changing landscape of pricing, shifting of regions, etc. makes it extremely difficult to keep a pricing model up to date as the project evolves. Google Cloud anticipated that when they created https://cloud.google.com/billing/v1/how-tos/catalog-api. Using this API, it’s possible to get up to the moment pricing for all Google Cloud SKUs. These pricing details can then be added to a Google Sheet or other dataset to create flexible cost models for projects of any......
Continue Reading
AI and Machine Learning (ML) can be a real boost for many companies, especially those with a lot of accumulated data from years of operation. AI platforms are getting easier to use without having data scientists on staff, while at the same time data lifecycle patterns are well established. Most of these AI platforms target cloud based use cases, which leads to the question: What do you do if the data needs to stay on premise? Patterns The illustration below shows a few common approaches to using AI. Something that may be less......
Continue Reading
This article is part of a series on Immutable Infrastructure and discusses the scenario of production release. It may be valuable to review Immutable Infrastructure Basics before reading this article. What is production? At first glance one might expect a straight forward answer to that question like: Any system that directly serves authoritative resources to the intended end user. That might be broad and general enough to capture most situations, but what about A single user’s laptop that is setup to compiler a binary that controls a production machine. Is that laptop considered......
Continue Reading
This article is part of a series on Immutable Infrastructure and discusses the scenario of CI/CD pipelines to deliver high quality software quickly. It may be valuable to review Immutable Infrastructure Basics before reading this article. Continuous Integration and Continuous Delivery, CI/CD, is a practice in software development that aims to ensure high quality updates efficiently progress toward a release. The “Integration” part of CI/CD seeks to confirm that a software change will work with related systems. The divergence of systems that occurs without immutable infrastructure can reduce the effectiveness of CI/CD pipelines.......
Continue Reading
This article is part of a series on Immutable Infrastructure and discusses the scenario of Development Environments and Team Collaboration. It may be valuable to review Immutable Infrastructure Basics before reading this article. Development environments are intended to be flexible and in motion by design. At the same time, teams need to be able to work together and eventually deliver their work to other environments. As teams form and change over time, these objectives are often at odds with each other. The illustration below shows this dynamic at play over time. The above......
Continue Reading
One of the biggest shifts in technology that can be attributed to cloud is the move from away from hand crafting systems to defining systems and letting automation create them. This is often referred to as Infrastructure as Code, and is manifested along a spectrum. Toward the more “cloudy” end of the spectrum is the concept of immutable infrastructure, which means that once created, infrastructure exists in the same state until it is replaced by something new, but it is never changed. Some Examples A good example of immutability is a Java jar......
Continue Reading
Traditional approaches to creating and maintaining workloads in the enterprise often include contributions from many teams and individuals. They also include a combination of manual and scripted activities. I sometimes refer to this as an assembly line. The workloads that come off the assembly line, like cars, have odometers and require regular maintenance. Others refer to these workloads as pets. When moving workloads to the cloud, it’s helpful to visualize how this typically happens on premise and how it will change when going into cloud. The illustration above shows the traditional approach in......
Continue Reading
UPDATE: Beginning in June, 2020, GKE will charge for the control plane. This means the design below will jump from $5/month to nearly $80/month. I was recently inspired by a post claiming it was possible to run kubernetes on Google for $5 per month. One reason I have been shy to jump all in with kubernetes is the cost of running a cluster for development work and later for production. After going through the post above, I realized that I could actually afford double that amount and end up with a very usable......
Continue Reading
Someone asked me today whether he should use HEAT or Ansible to automate his OpenStack deployment. My answer is that he should use both! It’s helpful to understand the original design decisions for each tool in order to use each effectively. OpenStack HEAT and Ansible were designed to do different things, although in the opensource tradition, they have been extended to accommodate some overlapping functionalities. Cloud Native In my post on What is Cloud Native, I show the five elements of application life cycle that can be automated in the cloud (image shown......
Continue Reading

I hear a lot of people talking about cloud native applications these days. This includes technologists and business managers. I have found that there really is a spectrum of meaning for the term cloud native and that two people rarely mean the same thing when they say cloud native. At one end of the spectrum would be running a traditional workload on a virtual machine. In this scenario the virtual host may have been manually provisioned, manually configured, manually deployed, etc. It’s cloudiness comes from the fact that it’s a virtual machine running......
Continue Reading