I first heard of The Phoenix Project in 2016, when a former customer told me he expected all of his employees to read the book. At the time, I skimmed the book, both out of curiosity and to be a good partner.
As I continue my growth in Cloud & DevOps, I thought it’d make sense to finally read the book completely. This article is the result of my notes & key takeaways from The Phoenix Project.
As for a book review, I give it 5/5 stars because the book:
In this exercise I used Python to build a Linux & Bash-themed quiz. The program calls upon users to answer ten questions, and at the end of the quiz, the user is told their score.
First I made the following dictionary named data.py (Image 1). This features ten trivia…
GitLab is a web-based DevOps lifecycle tool providing users with a Git repository manager and CI/CD pipeline features. GitLab is open-source with additional functionality being proprietary.
In this exercise, I will launch a static website using GitLab, and I will explore the tool in the context of CI/CD. The steps I took to first register, then create a new project, then run the project pipeline, and then to test my work.
I went to the Sign In/Register page on GitLab. I then registered (Image 1).
Amazon Elastic Kubernetes Service (EKS) is AWS’ service for deploying, managing, and scaling containerized applications with Kubernetes. Terraform Cloud is an application that manages Terraform runs & allows for automated deployments.
In this exercise, my plan was to provision an Amazon EKS cluster with Terraform Cloud, while meeting the following requirements: For the EKS Cluster, one worker group shall have a desired capacity of 2. Also, a random string shall allows 5 characters to build the cluster name. Next, we will output the cluster name and IP address of the containers in the cluster. …
Continuous Integration / Continuous Development (CI/CD) is the frequent delivery of applications by steamlining & automating development and operations processes. This method is beautifully illustrated as the key solution towards the end of the novel The Phoenix Project, which I summarized in a previous Medium article.
In this exercise we will create a highly available two-tier AWS architecture, and we will deploy this using Terraform Cloud as our CI/CD tool.
My objective was to create a highly available infrastructure with three public subnets, three private subnets, an auto scaling group…
In Terraform, modules are blocks containing multiple resources being used together. Modules allow you to feed information and other “child” modules into a “parent” module, though “parent” modules cannot be fed into “child” modules. In this exercise, we will make a custom module so that a standardized EC2 instance with an Amazon Linux 2 AMI can be easily reproduced and adjusted in the future.
Using modules in Terraform is great, but one should be cautious of over-using modules because it can be challenging to understand and maintain an unorganized or redundant family of modules.
This exercise centers around Amazon Elastic Container Service (ECS), a service offering managed container orchestration. It integrates with the AWS platform to deploy, manage & scale containerized applications. Also in this exercise we will leverage Terraform Registry, which is a place for providers to offer resource types and modules for quick deployments.
In order to create an Amazon ECS cluster with a CentOS image using Terraform, I first made a new directory for this project called ecsclusterproject, and therein I made…
Terraform is an open-source infrastructure as code tool made by HashiCorp, who’s logo is in the banner of this article. With Terraform, you can control infrastructure in a straight-forward, human-readable code called HCL (HashiCorp Configuration Language). HCL will be commonly used throughout this exercise. It’s worth knowing, HCL is declarative code, meaning unlike imperative code which requires developers to explicitly list steps to accomplish a result, developers using HCL are only required to described their desired results to execute the code.
In this exercise, I used Terraform to setup a VPC, subnets, RDS MySQL, and a load balancer. …
Docker is a containerization tool designed to make it easier to create, deploy, and run applications. Containers are packages that can be efficiently shared and deployed. Hence the Docker logo illustrates cargo being grouped and transported in shipping containers.
It’s important to compare Docker and Virtual Machines. Docker images are much smaller than virtual machines and run faster. Also with Docker the containers running share host OS kernel, whereas VMs consist of user space and kernel space of an operating system. You can learn more about this similarities and differences here.
My goal in this exercise was to deploy a…
In my previous article, I used an Ubuntu server on EC2 to host a virtual Python environment. This time we will do a bit more with Python.
Homebrew is a popular package management system for Mac. The following command will install Homebrew as seen in Image 1.
/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Cloud & DevOps. Also Blockchain.