Continues Delivery for a .NET Core Service on OpenShift/Origin Platform via Chatbot

By Ümit Şeremet

Elevator Pitch

Docker is one of the best tools for DevOps. Kubernetes is the best Container Scheduler. Origin is the most user-friendly PaaS tool using Kubernetes. Chatbot is the easiest way to manage your SDLC using all of these technologies, even if you are only a developer who has no idea about any of these.

Description

Nowadays containers are a hot topic for the whole IT world. Containers are rapidly becoming the deployment technology of choice in organizations adopting DevOps principles and practices. Moving applications and services from traditional deployment platforms to container deployments make the application deployable on a single clustered cloud or on-premise architecture instead of many disparate sets of hardware and platform configurations. Docker is currently one of the most popular and common ways to create and consume containers. While it is quite easy and effective to use it for test cases via the docker-compose method, there is a huge challenge to use it in prod cases. Cluster-Management and Service-Discovery for containers are one of the most critical challenges. Kubernetes is a powerful open-source system, initially developed by Google, for managing containerized applications in a clustered environment. It aims to provide better ways of managing related, distributed components and services across the varied infrastructure. OpenShift/Origin, which can also be described as a Platform-as-a-Service (PaaS), uses Kubernetes technology for container orchestration. Origin is an open source platform that helps developers and operations staff accelerate application development and deployment for on-premises, private cloud and hybrid cloud environments. You can deploy all of your applications via a user-friendly GUI or you can deploy soley using the Kubernetes approach. Especially, if you are a DevOps engineer in a company which is trying to complete a transition from .NET to .NET Core there will be huge challenges changing platforms from Microsoft Env to Open-Source World. Furthermore, SDLC operations will provide another challenge because of complex flows in the microservice approach compared to the monolith. DevOps is about prioritizing keeping the software deployable over working on new features via release automation. So that means a quick action must be done if any problem is detected on live environment as mush as possible via a rollback automation. Chatbot is one of the easiest way to manage release and rollback operations in a complex environment which includes containers, Jenkins, IaC(Ansible), source-code-management and cluster-scheduler. The most well-known chatbot available today is Hubot which is a Node.js application extensible with CoffeeScript or JavaScript. In this presentation, Continues Delivery for a .NET Core Service on Origin Platform via Chatbot will be applied. The aim of this presentation is to show how this complex flow can be managed as a quite user-friendly way for everyone in the IT World.

Notes

We are using Origin in our company actively not only as DevOps but also as developer groups. If we had used pure Kubernetes structure for microservices one devops would not have been enough for whole transformation cycle. Thanks to s2i, which is a very helpful component of Origin, devops operations including Kubernetes features are distributed to whole IT instead of a single point as devops. These operations are clearly difficult operations to manage especially for .NET Core developers who are new for Linux, Container, and Kubernetes. Beside of GUI based user-friendly product, Chatbot makes all operations as much easier and more trackable as the mobile or traditional office environment. Chatbot also provides being on the same paper for all teams. Collaboration is very important for SDLC, because there are lots of team in the cycle like the architect, QA, development, operations. The subject of the presentation is based on a sample of this cycle. Although the sample is a .NET Core App, the sample can be applied to each application desired.