Online webinar – Cloud-native architecture and containers

We would like to invite you to a 3-hour session on cloud-native architecture and containers. Content will delivered via Microsoft Teams platform on Thursday, April 4th, 15.00 – 18.00 EEST (time in your location).

(Hungary/Poland time: 14.00 – 17.00) – Add to calendar

The first 40 minutes will include a presentation by Tomasz Kopacz, CEE ISV Technical Recruit Lead, Poland:

  • What is a microservice
  • Domain-driven architecture
  • How to design a microservice
  • Tools at our disposal

The next 2 hours will include a presentation by Dimitris Gkanatsios, Technical Evangelist, Greece:

  • Intro to containers and container registries
  • Hands-on demos building containers
  • How to use containers on Azure (Web App for Containers, Azure Container  Instances)
  • The need for orchestration and the path to Kubernetes
  • Intro to Azure Kubernetes Service

The primary aim of the session is to clear all architectural questions and doubts and to provide guidance on running container workloads on Azure. You can (should!) ask questions during the call. There will be a break as well as time for questions at the end of the call. Content will be delivered in the English language.

How can you participate? You can use your browser and just click this link at the designated date and time in order to join the event

Join Microsoft Teams Meeting

+36 1 500 9010   Hungary, Budapest (Toll)

Conference ID: 598 508 03#

Local numbers | Reset PIN | Learn more about Teams | Meeting Options

CU there!

Certified Kubernetes Application Developer

Capture

Really happy to share that yesterday I succeeded in taking the Certified Kubernetes Application Developer (CKAD) exam (official page) from the Cloud Native Computing Foundation. This is an online 2-hour, proctored, performance based practical test that consists of several problems that are to be solved using only the command line. Exam format is really similar to the Linux Foundation Certified System Administrator exam that I took last year. The problem domains are the following, along with their weights (June 2018):

  • 13% – Core Concepts
  • 18% Configuration
  • 10% Multi-Container Pods
  • 18% – Observability
  • 20% – Pod Design
  • 13% – Services & Networking
  • 8% – State Persistence

Read More »

Presenting at Microsoft Build 2018 about game development and Azure

IMG_0052

This year, I was lucky enough to be invited to Seattle to present two sessions on Microsoft Build 2018 developer conference. Both sessions were presented by Brian Peek and myself and their focus was on game development using Microsoft Azure.

At the first session, we demonstrated how to scale dedicated multiplayer game servers on Azure Container Instances using various Azure Services like Functions, Event Grid and more. Project we demonstrated is open source, completely written in Node.js and you can find it here on GitHub. Same project got a really cool mention at the Azure Container Instances general availability announcement blog post, check the video here (thanks Justin!).

At the second session, we demonstrated how to use Azure Cognitive Services as well as Functions and Cosmos DB to power up a Unity game. Moreover, we added some PlayFab stuff like leaderboards and events. This project is open source as well and you can find it here.

Read More »

Big data reference architecture for an online multiplayer game on Azure

TL;DR – code is here on GitHub

A customer I’ve been talking to recently asked me to work together to create a reference implementation (more like a proof of concept) for the next generation the backend for a game they currently have. In short, they needed a platform that would accommodate these needs and specifications:

  • accept incoming messages from game servers
  • incoming message rate would be a couple of hundred messages per minute
  • we need to store game session related events, so each piece of data is relevant to a specific game session that can run for minutes (20′-30′)
  • scalability and high availability (of course)
  • data is needed to be displayed in real-time (e.g. live leaderboards)
  • data is needed to be stored for later analysis (e.g. best players of the week)

Read More »

Using Azure Functions, Node.js and Cosmos DB to create a game leaderboard

In the previous blog post, we described some thoughts on how to design a game leaderboard and how to represent it programmatically. In this one, we are going to discuss about a new open source project of mine called AzureFunctionsNodeLeaderboards-Cosmos. As the name implies, this project is about game leaderboards using Azure Functions with Node.js and Cosmos DB.Read More »

Designing a general purpose game leaderboard

In this blog post we are going to write down some thoughts regarding a game leaderboard implementation. They are written as question and answer pairs and cover the leaderboard design process as well as its technical implementation on a high level.

What is a leaderboard?

Leaderboards are a necessary asset for many types of games. A leaderboard provides a means to reward the best users and increase the game’s replay value by allowing the players to compete. It is defined as a collection of high scores achieved in a game session during a specific time segment in a specific portion of game for a specific set of users.

  • ‘time segment’ relates to the lifetime of the leaderboard. Is it permanent or resets every day/week/month?
  • ‘game portion’ relates to the portion/segment of the game the score was achieved in. Is the score relevant to the entire game or in just one of its levels? Is the score relevant to a single round of gameplay (single session) or multiple ones?
  • ‘specific set of users’ relates to the ‘locality’ of the users and means that the leaderboard may contain scores for users that are in single machine or in a specific region (e.g. Europe) or worldwide
seawolfscreenshot
Sea Wolf, the first video game to use the term “high score”, Wikipedia

Read More »

Deploying a Docker Swarm Mode cluster on Azure Container Service

On June 28th, 2017, Azure Container Service team announced that a new version of the service was deployed in the UK region. This version exposes some new cool features with one of them being the ability to deploy DockerCE (swarm mode) clusters. In this article, you will see how the Azure CLI can be used to deploy a DockerCE cluster in Azure Container Service. Once the cluster is deployed, you can manage it with the docker command-line tool and deploy your Linux container(s).

This tutorial requires the Azure CLI version 2.0.4 or later. Run az --version to find the version. If you need to upgrade, see Install Azure CLI 2.0. You can also use the embedded shell in Azure Portal, called Azure Cloud Shell.

If you don’t have an Azure subscription, create a free account before you begin.

Read More »

Using SSL/TLS for a service hosted on a Kubernetes cluster

This article will dive into the necessary steps that you need to do in order to use SSL/TLS for a service of yours that is hosted on a Kubernetes cluster, making it accessible via https. We will use one Microsoft Bot Framework app to demonstrate this. This framework allows you to easily built chatbots that are hosted on the provider of your choice. Its Bot Connector service allows your bot to open “conversation channels” with Messenger, Skype, Slack and other providers. For this purpose, it requires the chatbot’s endpoint to be accessible via SSL/HTTPS, so that makes for a nice proof of concept apt for this article. So, how would you host a chatbot app on a Kubernetes cluster, taking into account the SSL requirement? One option, of course, would be to have the app itself handle the certificate process, like this example. The other option, which you’ll see in this article, is to use the Kubernetes ingress controller to handle all the SSL setup and usage. The only prerequisites from your side is to have a domain name that the certificate will be issued for and, of course, access to a Kubernetes cluster.

Read More »