Migration of an On-Premise Kubernetes Cluster to Azure Cloud
Period: 03/2020 – 09/2020
Role: Software Developer
Client: Lowell
Team size: 3
Person days: 120
Initially, services were operated in an on-premise Kubernetes cluster. The goal of the project was to migrate all services to Azure Cloud. Additionally, technologies and cloud services were evaluated, utility classes and templates were created for future development, and a CI/CD pipeline was established.
My contributions to the project::
- Selection of cloud services to be used in coordination with the architect
- Agreements on future autonomy of development teams
- Review of existing code and resulting best practices
- Documentation of the Transaction Outbox Pattern, idempotency, aggregates, and other useful microservice patterns
- Utility classes for sending and receiving Protobuf business events
- Creation of the CI part of the CI/CD pipeline
- Evaluation and implementation of Azure Serverless
- Setting up infrastructure using Infrastructure as Code (IaC)
- Liveness check / readiness check for services in Kubernetes
- Creation of cron jobs in Kubernetes
- Creation of C# templates for building new services
Knowledge:
C#
Architecture
Automated Tests
Unit Tests
Continuous Integration
Continuous Delivery
Docker
Docker Compose
Container
Istio
Infrastructure as Code (IaC)
Microservices
Self-Contained Systems
Protobuf
Cloud Native
Azure
Messaging
Azure ServiceBus
Azure Serverless
PostgreSQL
Design Pattern
Microservice Pattern
Idempotency
Transaction Outbox Pattern
Gateway
Event Driven System
C# Template
Azure Pipeline Template