Building the Foundation: Our Take on Training

Author: Savvas Michael | Posted on: March 29, 2024



Introduction

Imagine acquiring sought-after engineering skills that could significantly boost your expertise and confidence, in a matter of weeks.

As the need to have specialised training originated internally within our own company, we were dead serious about creating a no-nonsense set of training modules that would upskill an individual while being conscious of time constraints.

Our Training

Training. A word that gets peddled around very frequently, without carrying the same weight or meaning for everyone. As you might have imagined, at CECG we take training very seriously.

Even though you will inevitably need to use specific tools, we do not just teach tools or a single way of solving a problem. We are keen on teaching tool-agnostic concepts, which you can utilise when embarking on your own journey. We strive to equip people with the knowledge they need to tackle real-world problems – knowledge that would otherwise take years of working to experience. Our own exposure gained from working with various multinational organisations over the years has helped shape our training, and as our experiences are enriched, so is our training.

We are so confident that our training is worth it, that each of our own engineers goes through it upon joining the company.

Training Structure

Modules

We have split our training material into various modules. Each module represents a specific area of interest, but let’s go with some real module examples:

NFT & Observability

This module includes various topics, focusing on Non-Functional Testing and Observability:

  1. Showing some of the necessary stages of a mature Path to Production pipeline
  2. Teaching the importance of monitoring and alerting
  3. Showcase common resource sizing practices (Vertical/Horizontal scaling)
  4. Writing and refactoring NFT’s (Non-Functional Tests)

By the end of this module, among other things, the participant should be able to install a monitoring stack, add metrics to an application for analysing performance issues and horizontally scale an application to meet the expected demand.

This module intends to showcase why Non-Functional testing is important as part of a mature path to production, and how relying on your monitoring simplifies discoverability and observability. On top of that, having alerts in place ensures that you can be both proactive(E.g: Get alerted when the application memory usage is approaching 90%) and reactive(a service replica has been down for more than X amount of seconds/minutes ) when it comes to your applications..

Platform Engineering with Golang

This module emphasises levelling up your engineering skills, by building a Kubernetes Operator.

Participants will be tasked with developing a platform feature, designed to empower multiple teams on a multi-tenanted Kubernetes Platform. This will include creating an interface between the platform and its tenants, while simultaneously constructing the custom operator.

By the end of this module, engineers will have gained a deeper understanding of the typical applications of operators, the process of constructing one, key considerations in its design, and ultimately the opportunity to see it all in action by using the developed operator.

As a platform engineer, you are frequently thinking about how to expose platform features to better serve the tenants of your platform, while keeping some key aspects within your control(E.g: Centralised updates and security patches). This module was purpose-built to equip an engineer with the necessary skill-set for tackling custom Kubernetes operators.

Multi tenant Kubernetes

This module is all about multi-tenancy in a Kubernetes cluster: This refers to the practice of sharing the resources of a single cluster, among multiple groups/teams, also known as tenants. Simply put, it allows several independent tenants to run their applications on the same cluster, with isolation and security measures in place.

This module delves into several key topics, including:

  • Setting tenant boundaries via RBAC/Hierarchical Namespaces(HNC)
  • Control and secure network access with Network Policies
  • Learn about and use the Canary deployment methodology

Multi-tenanted Kubernetes clusters offer numerous advantages such as enhanced resource efficiency and simplified management. However, it is important to be mindful of certain aspects like heightened complexity, security issues and the potential for resource conflicts. This module is designed to provide engineers with the necessary skills to address prevalent challenges and considerations within a multi-tenanted cluster.

Open Source, Open Minds

Sharing is caring!

We’ve always been against knowledge silos, and we do our best to share our current and future knowledge as much as we can. We are so unwavering in our commitment, that we’ve open-sourced our training material, alongside our knowledge base, a curated database of knowledge gained over years of exposure working with various diverse, multinational clients.

CECG is committed to continuously updating our open-source offering and to continue giving back and contributing to the wonderful open-source community meaningfully.

The future is interactive

Looking ahead, the future of our training is set to move towards a more interactive and engaging model. We envision a training environment where hands-on activities and real-world simulations take centre stage.

Concluding this blog, our training revolves around pragmatic and real-world scenarios. As we move closer to a more interactive and engaging model, we remain responsive to the dynamic landscape of technology.

For further details on our training, please visit:

https://www.cecg.io/training