Building an Enterprise Platform CLI with Go

By Mahesh Veerabathiran

Elevator Pitch

Enterprise platforms are essential for business operations but should not be intimidating the users. An opinionated custom CLI is a wise investment to the platform for self-serving needs. This talk addresses the importance of building custom CLI to assist end users and how to start developing one.

Description

In large enterprise organizations, we often have application platforms at the core of our business. These platforms often support multiple teams, each with different use cases from on-boarding to resource provisioning to troubleshooting. Over time, the groups supporting these platforms get flooded with support tickets, and they become not only a bottleneck but a place to lay blame for delays and blown deadlines.

Rather than having the support team perform all these tasks manually, we can empower other teams with self-service to do onboarding, provisioning, data queries, and other platform engagement tasks. Investing in building an opinionated CLI will start paying dividends right away.

Why Go? Go is a statically compiled, modern general purpose programming language, bundled with rich standard libraries and strong community support. Creating a command line application (CLI) and distributing to multiple OS platforms has never been easier than with Go. At Capital One, we built a CLI for few core application platforms, and the engineers absolutely love it. In this talk, I’ll cover how to develop your first CLI application in Go, explore the libraries available and share some lessons learned from our experience.

Notes

Mahesh Veerabathiran is a Full-stack engineer, specialized in building Microservices at scale, Big Data processing & DevOps automation. His current interest is Golang, building/rebuilding microservices in Go for yielding high performance for real-time credit-card decisions and fulfillment platforms. He is also a Certified Kubernetes administrator (CKA), AWS developer and SysOps administrator associate. Mahesh has worked on multiple core-platforms in Capital one since last year, improved engineers experience in building CLI for feature-library management, internally hosted FAAS platform and production issue troubleshooting & tracking needs.

This talk will address the importance of building CLI but not limited to simplify production troubleshooting, automate trivial tasks and better developer on-boarding experience to their platform. Developers, Architects and Product Owners of the core platform will understand the importance of improved developer experience and productivity to manage a successful platform.