Enabling developer self-service in Kubernetes


Platform engineering is taking the IT world by storm. We’re seeing articles claiming that platform engineering is finally going to end the DevOps reign and achieve everything DevOps never could – agility, automation, developer experience, efficiency and governance. The path to IT transformation and business growth that the new trend paints through self-service seems so painfully obvious, but let us tell you a little secret – it is not new. The trend might be a fresh marketing buzzword, but forward-thinking companies have already been utilizing the benefits of a platform engineering approach. Today’s platform teams are tasked with exactly this: building and maintaining an internal developer platform that connects the end-user to infrastructure management through simple developer self-service and improves efficiency and developer experience. 

This idea has been working in practice for a while -- and we should know, since improving operational efficiency through a developer platform with self-service is Cycloid's core offer. We've recently used platform engineering to help our client Alchemy scale their automation and move infrastructure to Kubernetes on AWS.

Here’s what we did step by step:

Step 1: Take an Opinionated Approach to the Development Environment

Alchemy is a digital asset management company that helps organizations to implement the open solution for managing digital content using Phraseanet, and starting now with the brand new Phrasea, a promising DAM/MAM on AWS. They have a small team of developers that were able to service their clients needs - but as the company grew, they needed a way to scale up effortlessly. 

Kubernetes clusters are a great option for enterprise applications and scaling on the fly, however they require vast specialist knowledge to set up. The team expressed a need for a self-service environment that would abstract away the Kubernetes complexity. Here’s what they were looking for in the platform:
  • Everyone can deploy Kubernetes automation regardless of skill level
  • Easy switching between organizations for different clients
  • See and control how much they’re spending on the cloud
  • Control deployment progress in CI/CD pipelines


Step 2. Adopt an engineering platform


The beauty of an engineering platform is that it gels together and centralizes all of the features and services you need -- like governance, deployment and operations. An engineering platform strives to achieve three things:
  • enable developer self-service
  • boost effectiveness and productivity by automating repetitive tasks
  • enhance developers’ and end-users’ experience of working with the infrastructure.

Not only does the Cycloid Engineering Platform provide a self-service portal that allows to automate and use Kubernetes clusters with ease, but it also completes the solution with modules around governance and FinOps in a full GitOps approach.

“As developers, we loved being able to operate the application in a simple way. It’s based on GitOps so we aren’t locked to any one service and embeds open-source solutions natively - which, being based on open-source Phraseanet, we really appreciated”, says Alchemy CEO  Guillaume Maubert.

The diagram below describes the benefits of a platform engineering approach:
Scale Kubernetes automation through an engineering platform:

blog-post_diagram


Step 3. Build the Stack

First order of action is to build a reproducible service catalog that would hide the Kubernetes complexity. 

Building a service catalog means being able to reproduce environment parameters for each new deployment without having to build it from scratch. This allows devs without specialized experience to simply choose approved and suitable infra configurations and save loads of time on deployments. It encourages the use of best practice in a full GitOps approach – without the need for time-consuming tech supervision. You only need to set it up once, and Kubernetes complexity just isn’t a problem anymore.

Cycloid’s service catalog is called Stacks and our DevOps team helped them build the first two. 

First one would allow Alchemy to create AWS EKS (Elastic Kubernetes Service) cluster and external services. 

The second application Stack was created to make it possible to deploy all their applications inside an AWS EKS cluster and configure them to use AWS services. 

Alchemy is using the following AWS services after migration:
  • Elastic Compute Cloud
  • Simple Storage Service
  • Elastic File System
  • Backup
  • Relational Database Service
  • OpenSearch Service
  • CloudWatch
  • ElastiCache (redis)
  • Elastic Load Balancing
  • Data Transfer
  • Route 53
  • Virtual Private Cloud
  • Elastic Container Service for Kubernetes
  • EC2 Container Registry (ECR)

Step 4. Get the best developer experience with self-service

Once the Stacks are set up and automation configs are ready, Alchemy developers are free to configure new environments in a self-service portal called StackForms. Cycloid’s self-service looks simple:  it’s a regular webform with dropdown menus and toggles for ease-of-use. Developers can now simply select the relevant Stack, choose variables and hit run – it’s that easy.

Stackforms-widgets (1)

How self-service improves DevX:
  • Fast and efficient deployment
  • User-friendly UX
  • Built-in governance


Cost Estimation on the side lets the developer know how much each new environment is going to cost before it’s deployed. It fosters autonomy, independence and business responsibility, while also improving developer experience. 

Step 5. Enjoy business acceleration

Where previously setting up a new Kubernetes cluster on AWS could easily take more than a day, with Cycloid’s self-service, it takes only takes 5 minutes! Taking into consideration the 30 minutes AWS needs to provision the new infra, and you’ve got a new environment in less than an hour! 

But the beauty of platform engineering with a self-service core doesn’t stop there. Since Alchemy works with multiple customers, the Cycloid platforms allows them to switch between them easily while still being able to apply the same service catalogue to their projects. The platform’s built-in governance features pre-define minimal user privilege, ensuring compliance but allowing exactly the right amount of flexibility individuals need to do their job. 

In the near future Alchemy is looking at utilising the capabilities of Cycloid’s built-in FinOps module that centralizes cloud costs in a single panel which you can view by provider, project, region, client etc. This would allow them to take better control of their Kubernetes deployments on AWS and possibly expand to other cloud providers – we’ve written about the benefits of hybrid cloud extensively. 

Platform Engineering for the win

With a self-service portal and controlled flexibility, we were able to find the right balance. On one hand, developers get a simple interface that abstracts away the unnecessary details of the underlying infrastructure. At the same time, the platform team has a full degree of flexibility to deploy any automation in a matter of minutes and in the process simplify one of the most complex and tedious DevOps tasks.

If you’re now establishing a platform engineering strategy, starting with a tried and tested platform would help you avoid reinventing the wheel and get started on your IT transformation journey quickly and painlessly.

Schedule a demo



Read More

The Inside Story: Terraform Module Handling

Francesc, a backend developer here at Cycloid and talented maintainer of TerraCognita, tells us...
Mar 25 - 3 min read

Why is DevOps such a hard sell? - interview with Benjamin Brial

According to the 2021 State of DevOps Report, 80% of organizations are failing to scale DevOps...
Apr 28 - 3 min read

Does DevX spell the end of DevOps? - Roundtable notes with Benjamin Brial

Developer experience (DevX) is becoming a hot topic and, in 2022, one that tech and non-tech...
Apr 13 - 4 min read