CloudDevOpsKubernetesSoftware architecture
Insights

Understanding DevOps | Tools and Services

In my previous post, I described the fundamental concepts of DevOps and touched on some of the tools used in the process. In this post, I am diving deeper into the toolset we use at Saritasa to manage our DevOps process. Some of these tools are open-source and platform agnostic while others are more specific to Amazon Web Services (AWS), which is where we host most of the applications we develop for our clients.

Wheel helm computer developer app concept. Business digital open source program. Data coding steering 3D low polygonal vector line illustration. DevOps, kubernetes

Common DevOps Tools – Kubernetes & Terraform

As mentioned in my previous post, Kubernetes and Terraform are important components of DevOps. Kubernetes can be almost synonymous with DevOps, it’s very hard to separate the two. It is important to note that Kubernetes and Terraform are platform agnostic. They work with any cloud hosting platform and are not specific to AWS or Azure.

Kubernetes is an open-source application that aids with container orchestration. It helps automate deployment, scale, and networking. It makes it easier for DevOps engineers and developers to manage Containers.

Terraform is a tool that enables engineers to set up a template for configuring a hosting environment. These templates are called Blocks or Terraform Blocks. Terraform can help configure cloud hosting environments like AWS or Azure. A Terraform Block could be set up to configure numerous cloud hosting services, like setting up EKS, RDS, and VPC on AWS. More on this in the next section.

cloud computing technology concept transfer database to cloud. There is a large cloud icon that stands out in the center of the abstract world above the polygon with a dark blue background.

AWS Cloud Services

A big part of the DevOps language is all the cloud services an application might use. Setting up, configuring, and maintaining all these services is part of a DevOps engineer’s job. Below is a list of these services with a short explanation of what they are. These are AWS services, but Azure and Google Cloud offer similar services which have different names. If hosting an application locally (on your dedicated servers), you would use various utilities to manage these same resources.

  • Route53 – Manages all the DNS – Points mydomain.com to the right place on AWS
  • VPC – Virtual Private Cloud – The internal network for all the stuff on AWS
  • RDS – Relational Database Service – This allows you to set up any relational database on AWS. Relational databases include:
    • MySQL
    • SQL Server
    • PostgreSQL
    • Aurora (Amazon)
  • EKS – Elastic Kubernetes Service – Amazon’s way of hosting Kubernetes
  • NLB – Network Load Balancer – Balances the user load across multiple containers
  • ECR – Elastic Container Registry – A directory for all the containers. It stores the containers we use and allows us to move them around easily.
  • S3 – Storage – Think of this as disc space, but in the cloud.
  • ElastiCache – Think of this as memory, enables better scaling and response time, like holding something in memory as opposed to a disc.
  • SES or SendGrid – Email server
  • EC2 – Elastic Compute Cloud – The cloud equivalent of a processor

Devops software development operations infinity symbol. Programmer administration system life cycle quality. Coding building testing release monitoring. Data flow vector illustration.

Other DevOps Services

Not all DevOps services are specific to AWS. Here’s a list of tools we use in our DevOps process that are not specific to AWS.

    • Cert-Manager – Manages SSL (security) certifications in the cloud
    • Tekton – An open-source continuous integration / continuous deployment (CI/CD) framework that helps standardize tooling and processes across languages and environments.
    • Argo-CD – A continuous deployment framework that automates the deployment of application versions, aka version control. Version control helps keep deployments auditable, trackable, and, easy to understand.
    • Grafana – Monitoring tool for optimal application performance. This tool enables the user to create custom dashboards to display performance and resource usage metrics. We use a set of standard dashboards for all our implementations so that any of our DevOps Engineers can easily understand the state of any application deployment.
    • Prometheus – Used to collect metrics and integrated with Grafana
      • Alert Manager – Works with Prometheus to route alerts. For example: send an email to Devops if something is slow.
      • Loki / Promtail – Manages application log files and allows you to query all of them at once.
      • Tempo/Open Telemetry/Jaeger – Tracing tools, monitoring performance, and troubleshooting transactions
      • Velero – is used for backups
    • Teleport – Security platform that enables the management of access for everything in one place.

Infinity vector infographic presentation template in DevOps concept is combining software development (Dev) and IT operations(Ops) to shorten the systems development lifecycle with agile methodology

The Importance of a Standardized DevOps Process

There are many tools and services used to manage a DevOps process for an application hosted in the cloud. While this may seem like overkill, many of these tools are critical for a seamless flow from development to deployment. Consider that you must maintain and manage three typical environments for an application; Development (where the coding happens), Staging (Where QA and Testing happened), and Production (where the end users access the application). Maintaining and managing all the services for each environment while migrating code from one environment to another is a complex process with many moving parts and a lot of little details. It is good to have a well-formed and standardized set of tools and services to avoid any performance issues or application downtime.

At Saritasa we use a standardized deployment to AWS using the same toolset and set of services so that each deployment we perform is very similar. Doing so means that any of our DevOps engineers are immediately familiar with any deployment. There is no reliance on specific application knowledge to maintain the process day to day. This provides a high level of redundancy within our DevOps team; any engineer can work on any application efficiently with little or no ramp-up time.

Recommended for You

Check out related insights from the team

custom software development
legacy systems
Product Planning
software architecture
2 min read

Software Maintenance Versus Software Support

Software maintenance and support often get lumped together, and while both are important, the terms are not interchangeable.

Sabrina
Sabrina
4 May 2023
custom software development
Product Planning
project management
project quotes
scope creep
software architecture
2 min read

Why Software Development Projects Fail: Common Causes and Solutions

Software has the potential to bring about innovative solutions and revolutionize the way businesses operate.

Stuart Smith
Stuart Smith
13 Apr 2023
Business
Cloud
code takeover
CRM
custom software development
DevOps
legacy systems
software architecture
2 min read

Stuck in the β€˜90s? | Add IT to your Company's New Year's Resolutions

Ah, the β€˜90s … a time when grunge, hip hop, and the World Wide Web rocked our world.

Dan Kenton
Dan Kenton
12 Jan 2023
Business
Cloud
DevOps
Kubernetes
software architecture
2 min read

Understanding DevOps | The Basics And Benefits

If you are involved with software development, considering developing an application, or managing a software application, then you probably have heard the term DevOps and some of the associated terms such as CI/CD and Containerization.

Stuart Smith
Stuart Smith
8 Dec 2022
Business
Cloud
2 min read

How to Make 5G a Great Customer Service Tool

Not only does 5G wireless service offer dramatically faster speeds, but it also eliminates latency: the delays that sometimes occur in transmission.

Nik Froehlich
Nik Froehlich
29 Apr 2021
Cloud
custom software development
mobile apps
software architecture
web development
2 min read

Will It Scale? | The Importance of Software Architecture

If you are considering building an application of any kind, you want to ensure the application you build will meet your current needs and expected future demands.

Stuart Smith
Stuart Smith
4 Feb 2021
Business
Cloud
custom software development
2 min read

How Cloud-Delivered Software Changed the Relationship Between Companies and Tech

Those old enough to remember when the Apple ][, the IBM PC, and other early β€œpersonal” computers were introduced may also remember that sales didn't take off until someone introduced software that made them truly useful.

Nik Froehlich
Nik Froehlich
17 Sep 2020
Business
Cloud
custom software development
2 min read

Why You Must Own Your Data and Control Access to It

Software-as-a-Service (SaaS) has been positioned as a better, more affordable way to utilize technology for businesses.

Nik Froehlich
Nik Froehlich
23 Jul 2020

Get empowered, subscribe today

Receive industry insights, tips, and advice from Saritasa.