DevOps – Tech 4!

Article by Prince Boothe, Cloud and DevOps Engineer


Introduction

Over the last ten (10) years, the landscape of automation through innovation has evolved into a reservoir of open source tools and services from provisioning infrastructure, configuring applications, deploying containers to managing and scaling micro services within an agile framework that addresses the demand for faster and more intensive operational processes capable of meeting the needs of customers across the world.

The 21st Century Technological Era has entered into a new age with a sequel scripted and directed by the mastermind and star of the show, DevOps. In 2009, the term DevOps was coined by Patrick Debois and Andrew “Clay” Shafer, which then emerged as a revolution bridging the gap between engineers/developers to operation professionals/administrators in creating the perfect cast of characters to provide the ultimate platform with Continuous Integration (CI) and Continuous Development (CD) for customer interaction and satisfaction.

The reality is, most if not all IT organizations have segmented environments for different teams. After a while, especially with a growing infrastructure tailored to meet the increased market demands, administrative overhead, bottlenecks and operational challenges can:
  • 1. Become costly at a premium and
  • 2. Be critically damaging to the health of an institution.


In order for ease of management, DevOps tools can quickly, efficiently and easily at scale, automate and manage the optimization of infrastructure over a development cycle.

DevOps has created many scenes, but today I will focus on four (4) scenes in this film. Tech 4! Lights! Camera! Action!



Tech4!

Tech4 is an embodiment of four (4) open-source DevOps platforms and technologies that are widely used today spanning over a decade. Though separate, they have their own identity and function, however, when intertwined and integrated, they create a beautiful symphony and song with great attraction and appeal. These are Terraform, Ansible, Docker, and Kubernetes.

Tech1! – Terraform

Tech1

In the first scene of the sequel, we analyze the open-source infrastructure as a code (IaC) tool, Terraform, which was first introduced to the DevOps ecosystem in 2014 by Mitchell Hashimoto et al. Terraform is an orchestration lifecycle tool that uses declarative language to deploy and manage infrastructure components from resources provided by a cloud or virtualization platform.

Terraform does the provisioning of infrastructure through programmatic configuration files that allows an administrator/engineer to automate the build, modification and versioning of resources in a safe and efficient manner, along with the ability to scale vertically or horizontally. Once the file is configured, Terraform will handle the requisite dependencies and provision the infrastructure for the customer.

Terraform can integrate seamlessly with all popular cloud providers such as AWS, Azure, GCP and virtualization platforms such as VMWare and Microsoft Hyper-V, as well as continuous integration platforms like GitLab/GitHub, Jenkins and Bitbucket for deploying DevOps pipelines and containerized micro service tools such as Docker and Kubernetes. However, Terraform supports “immutable infrastructure”, which means the infrastructure cannot be modified once deployed.

Don’t stop the sequel, there is more. Let’s us move into next scene.


Tech2! Lights! Camera! Action!

tech2

While Terraform is an IaC provisioning DevOps tool, Ansible, introduced in 2012 by Michael DeHaan, is a configuration management tool used to automate daily, weekly, monthly or yearly repetitive tasks and enable faster application deployments on the provisioned infrastructure. This provides a strategic framework for developers and operators to execute complex multi-level activities by leveraging templates, modules and playbooks as part of configurations governed by schedules to automate resource management of applications, networks, infrastructure, security, containers, etc. based on set best practices and standard compliance procedures. Ansible can be managed and configured, whether using command line interface (CLI) or graphic user interface (GUI).

In DevOps processes and pipelines, Ansible reduces complexity with ease by using simple YAML code configuration files via playbooks. Even though Ansible can use declarative language like Terraform, it is more suited to procedural language for configuration management, and agentless with a master (via SSH connection to nodes) responsible for executing configurations required to manage and update application servers hosted on virtual machines (VMs) or micro-services, whether on a virtualized or cloud platforms, as well as containerized systems.

Based on a schedule, Ansible pushes the most recent configurations using modules to install or update or remove the application or apply standards or benchmarks to same. There is also the option to run ad-hoc commands in Ansible for executing small tasks with speed and efficiency. This makes Ansible able to support “mutable infrastructure”, which means that when changes are necessary, infrastructure can be added, removed or modified.

Wow! That was such an edifying scene in painting a picture about Ansible. A DevOps tool that can move an organization from a state of complexity to ease of management. If you thought that was enlightening, then jump to the next scene.


Tech3! Lights! Camera! Action!

tech3

Ansible and Terraform displayed incredible capabilities that can transform the tasks of an administrator, engineer, developer and operator into an easy-to-execute-and-manage mechanism at scale with limited to no human interaction in an automated agile framework and not much planning is required. However, Kubernetes is a more complex and modular DevOps tool that requires pre-planning and well-coordinated efforts, especially in defining nodes, whether master or worker nodes.

Introduced in 2014 by Google and continued to be developed by Cloud Native Computing Foundation (CNCF), Kubernetes is an open-source DevOps system that provides components to deploy, maintain and scale containerized applications through automation and scheduling. This multi-dimensional tool is liken to an “onion” that has several layers intertwined as one with shared responsibilities. Though it exist as one entity, each infrastructure layer has their own individuality, identity and purpose. Kubernetes allows management of each layer from a single container instance to pods, nodes, namespaces, and clusters along with security, multi-host networking, attached storage, hosts; and then enable monitoring, auditing and logging with no default high availability (HA) capabilities.

However,Kubernetes addresses customer’s demand by deploying multiple large applications predictably and quickly in an automated fashion limiting hardware usage to only required resources, while intuitively and intelligently through defined workflow parameters, scaling them and launching new features via CI/CD pipelines by developers and management by operators. This “onion” as it were, is the very definition of DevOps. The ability to deploy multiple micro services with front-end web interfaces for customers to interact with and backend mechanisms that scale based on demand integrating with APIs, disturbed systems and resource groups/pools is a sight to behold. It is a steep learning curve, however, the benefits are worth it.

For example, in this use case/scenario, we observe that instead of deploying a VM with an operating system and heavy resources to support an application, Kubernetes can deploy this application on a container with a basic workflow utilizing less hardware resources through the configuration of a yaml, python, json or script file. This will significantly reduce and save time, money, effort and resources. What more can I say, then to say, Kubernetes is any customer’s dream.

Let’s close out in grand sytle! Next scene!


Tech4! Lights! Camera! Action!

tech4

When you think about Docker, it reminds me of a cargo ship that host several containers with workloads transported from one multipurpose port terminal and logistics provider to another. Introduced in 2014 by Solomon Hykes, Docker is a software defined containerized platform that allows users to create, deploy, run and manage applications within the concept of a container. Its modular framework provides a secure method of building applications both on premise and in the cloud, especially large scale deployments.

Docker has been easily adopted by organizations, as numerous businesses have migrated their server applications from VMs to containers. According to Docker in 2018, “over 3.5 million applications have been deployed in containers using their technology, and over 37 billion containerized applications have been downloaded”. Imagine 2022! Why is this happening? Docker makes it possible to deploy far more applications running on even old hardware due to its modular design, and then easily packaging and shipping programs through DevOps CI/CD pipelines.

Docker is an open source technology that utilizes the Linux kernel libraries and binary framework to deploy apps via programmatic code language such as bash scripts and the like in an automated fashion.

tech4

The rapid adoption of Docker has exponentially increased the annual revenue of industries by four times (4x). Docker’s mantra “doing more with less” has seen organizations empowered with the flexibility to create more services for customers by utilizing less hardware resources. A “dream” for many CIOs/CTOs is predicated upon this question, “How can I spend less on hardware resources and build more services, in order to generate more revenue and profit margins?” The answer is containerized apps using Docker.

So why have companies moved to Docker? Virtualized platforms, such as Microsoft Hyper-V, VMWare, KVM and Citrix Xen are based on emulation of physical hardware as software, which consumes a lot of resources as per system requirements to build applications, especially with each VM having their own guest operating system (OS). However, Docker use a shared OS to deploy multiple applications. This is a more efficient methodology than hypervisors. Instead of multiple VMs with multiple OS to deploy multiple applications, Docker has one instance with one OS to deploy multiple applications and can build as many as five-to-six times the number of applications as oppose to using VMs.

According to Steven Vaughan-Nicolas in his article, “What is Docker and why is it so darn popular?” provides more reasons to use this technology saying that, “Another reason why containers are popular is they lend themselves to Continuous Integration/Continuous Deployment (CI/CD). This a DevOps methodology designed to encourage developers to integrate their code into a shared repository early and often, and then to deploy the code quickly and efficiently.” Therefore, it is a no-brainer, Docker is the future.


Conclusion

What can I say? What a great sequel of Tech4 DevOps technologies with the ability to automate, manage, scale and deploy infrastructure and applications easily and efficiently by utilizing less resources from a configuration file over a development cycle. WOW! Tech4 can integrate with cloud, virtualized platforms and even with themselves to provide the most streamlined framework for any small, medium or large organization. Guest what? They are free and open-source, customizable at your convenience with no license requirements, no large investments in physical hardware, little to no human intervention, the fewest operating systems (OS) to maintain, patch and update and gives any organization a competitive edge within any market, because with DevOps Tech4, size doesn’t matter. The biggest companies in the world use Tech4, Google, Twitter, Netflix, Pinterest, Hulu etc. and Cloud vendors like Google, AWS and Azure leverage these technologies to provide multiple services for customers to grow their businesses and organizations.

Step into the DevOps world with me, because the future is already here. Let’s explore it together; equipping and empowering industries with the tools to grow and build their organizations.

Tech4! Lights Out!