How are Elia Group & 50Hertz building a Software Factory in Germany?

Soulaiman Ghanem
Elia Group Engineering Blog
5 min readJan 11, 2021

About Elia Group — One of Europe’s top five players

Elia Group is active in electricity transmission. We ensure that production and consumption are balanced around the clock, supplying 30 million end users with electricity. With subsidiaries in Belgium (Elia) and north-east Germany (50Hertz), we operate 19,271 km of high-voltage connections. As such, our group is one of Europe‘s top 5. With a reliability level of 99.999%, we give society a robust power grid, which is important for socio-economic prosperity. We also aspire to be a catalyst for a successful energy transition towards a reliable, sustainable and affordable energy system.

The TMD team

Our architects for Tailor Made Development (TMD) are part of the ADM (Application development & maintenance) division. The TMD “tribe” has +70 software developers, testers, architects and technical writers. We adopt the agile mindset during all product development phases. The teams are built around the product and we combine Scrum and Kanban to adapt to the product needs and constraints.

Beside the product teams, we team up with other departments and divisions to work on new initiatives and onboard new technologies. These “Squads” hold members from Infrastructure, security, data and Innovation teams. The DevOps cross-functional team, for example, is leading the Docker and Kubernetes integration in Elia Group’s infrastructure.

We hold regular committee meetings on a wider perspective. Architecture committee, for example, decides on the technology road-map on the enterprise level. Infrastructure committee focuses on the on-prem infrastructure and developing the digital workplace.

Tech Stack & Infrastructure

.NET & Arc4u

The TMD team relies heavily on the Microsoft stack. We develop and maintain applications written in C# and ASP.NET. The development spectrum includes: .NET framework, .NET Core and the new .NET 5. On top of the .NET framework, the Elia team has gradually developed the Arc4U framework. It consists of software packages, design patterns and code templates. The framework saves the developer time to set up a new project, ensures the commitment to the TMD best code and architecture practices and shortens the learning curves when teams change the contexts.

The Arc4u software packages provides out of the box integration to Active Directory Federation Services (ADFS), Database and storage, Message brokers like RabbitMQ and NServiceBus, Redis in memory caching, Splunk logging and monitoring, web and mobile development and lately cloud integration for Microsoft Azure.

Storage Technologies

The TMD team evaluates regularly the new emerging technologies and updates the tech road map with new adopted technologies. The currently adopted storage and database technologies consist of Microsoft SQL Server for relational databases, MongoDB for No SQL and recently added Neo4j for graph-based data. We continue to maintain a wide range of other technologies like Oracle and Casandra and currently evaluating the integration of cloud storage like Cosmos DB.

Authentication & Authorization

Active Directory, federation services, ADAL, SSO, SAML and Oauth2 are implemented everywhere in the Elia corporation infrastructure. TMD is not an exception. We have integrated the ADFS in all in-house developed solutions. We have designed a customized authorization manager that is linked to the Arc4u and the ADFS to authorize access on a function level.

Logging & Monitoring

Application errors and performance metrics logging is a standard process at Elia Group. Splunk is one means of monitoring infrastructure. All running applications in the QA and production send the logs to the logging infrastructure through a load balancer. We have built customized dashboards on Splunk and Grafana to help application managers and support teams find performance issues and odd executions and react to them efficiently.

Deployment Infrastructure

Strictly segregation of duties and multiple network zones make the deployment at Elia Group a challenging process. We have 2 major network zones: The Business IT Zone that host the LOB solutions like HR and finance. The second zone is the Technical IT Zone. Grid management and power dispatching are examples of critical solutions hosted in this zone. Cloud deployment is the preferred solution for hosting POCs and MVPs. The TMD team is responsible to define the release processes and implement the DevOps plans to deploy apps to the target IT zone and re-deploy cloud solutions on the on-premise environment.

Development Environment

Every member of the development team has her/his own Virtual Machine. The VM runs Windows 10 Enterprise and is configured to meet the Elia Group security guidelines. Hyper-V and instant RAM allocation provide smooth high-performance development experiences where the user cannot differentiate the virtual host from a physical one. The Windows image is shipped with a software center to download the development tools and updates.

The Software Factory developed a code generation plugin to bootstrap the development process as well as to keep clean code and architecture practices in place. The plugin is published as Visual Studio extension. It will generate a complete solution that runs without code modification. The developer can start with the backbone services like Business Logic and Domain and gradually add new services and client applications like UWP or Vue JS.

DevSecOps

One Azure DevOps server is serving both Elia and 50Hertz in Elia Group. However, we maintain a local deployment and release management. Any new solution under development, will be released to 4 well defined environments: development, test, Q&A and production. All client applications must be signed in order to run on the Elia Group infrastructure. We have built sync bridges to connect our on-prem server with Elia’s cloud Azure DevOps services as well as our service providers’ build and deployment infrastructure.

Proget Enterprise is our software package manager. We set up feeds to support .NET, NPM, Python and Docker. Thanks to Feed replication for enabling us to replicate the feeds both on the Belgium and the German servers. Security is a first-class requirement in any TSO. Therefore, we have a strict policy for third-party and open-source software components. Automated vulnerability scanning and human-interaction workflows guarantee that we integrate safe and malware-free packages.

We are continuously updating our tech road map. Dockerizing existing and new applications is set at high priority. We have extended our development as well as adapted the build and release pipelines to support Windows and Linux containers as first-class citizens. Red Hat OpenShift manages our Kubernetes clusters. On the other hand, AKS on Azure gives us the flexibility to test new architecture and deployment scenarios in the cloud.

Join Us!

This introductory post is the first post in our engineering blog. We will continue to post frequently to highlight our way of working, projects we develop and how we adopt new technologies to serve the Elia Group. If you are a Software engineer or architect who would like to work with us, please check our job listing page here.

--

--