Service Catalog is what allows Kubernetes to provision and connect to resources in the cloud. Let me explain through a demo.
In Kubernetes, we can deploy ‘almost’ anything. Anything that is a container. We can deploy SQL/NoSQL Databases, API Gateways, Queueing systems, monitoring tools, etc… But, it is still hard manage them. For example, running a database server in a container in Kubernetes is not always the best option. Because, if we will need a High Availability (HA), SLA of 99.99%, Failover plans… then we will need to do a lot of work. It is doable, for sure. …
Let’s see how we can quickly setup a SonarQube environment using Docker container to run a code analysis for a .NET Core application.
$ docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube
Download SonarScanner from this link. Extract it, then look for the file ‘SonarQube.Analysis.xml’ and add the following:
<SonarQubeAnalysisProperties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.sonarsource.com/msbuild/integration/2015/1">
Then, Add the path to the extracted SonarScanner folder to your PATH environment variable.
Run the command:
$ dotnet tool install --global dotnet-sonarscanner --version 4.7.1
Along with Unit and Integration Tests, UI tests are very important in the software development lifecycle. They can detect bugs and anomalies before going to Production. But, UI tests could be so expensive to setup: we need a full VM with all the dependencies. And sometimes we need more than one VM if we want to scale out to run tests in less time.
What would be a light and easy solution to run UI tests ?
Instead of relying on VMs, we can launch UI Tests in Docker containers !
Let’s see how that works through a demo.
We will take a sample .NET Core UI tests written using Selenium. …
This workshop will get you started with installing Prometheus and Grafana into Kubernetes to monitor applications to view metrics. We’ll go through these 3 steps:
You will need to have the following to start the lab:
We want to configure the app to start exporting metrics. These metrics will be scraped later by Prometheus. We’ll create a new ASP.NET Core app and we’ll enable exporting predefined metrics. …
Templates are a good solution for reusing pages’ design. In fact, when designing pages, we have a specific code dedicated for the design. Think of the page layout, colors, font sizes, title style, margins, etc… In a traditional approach, we need to rewrite this design’s code for every component that uses it. This results in code duplication, thus less maintainable code!
Fortunately, as we could refactor and reuse code for business logic, we could apply the same principal for UI code. This what is known under the name Application or Page Template. This approach could be used in almost all UI frameworks and platforms. …
Do you think that change is hard? Here is what could make it easy and natural. My short answer is “listen to people around you!”
Next, I’ll share my own experience and explain how my friends inspired me to achieve three major career changes in few years.
First career change
The first career change started when I was a software engineering student, 8 years ago. My university used to focus heavily on technologies like Java and Oracle. However, one of my friends had a different experience. Indeed, he studied in a different university and used different technologies. Ones I hardly heard of before: .NET/C# and SQL Server. Both of us were working on almost the same project, each using what he learned. My work was satisfactory, nevertheless, he showed me what he had done. His application’s user interface was way so much better than mine. In addition to that, he had done the work in half the time it took me! …
This quick workshop will walk you through configuring AKS with AAD to use RBAC to authenticate users.
The development team members needs to access Kubernetes cluster to deploy apps and configure the cluster. But, not all members needs the same level of access rights. It is even a best practice or a must have to grant members different access levels. For example, developers can get, create and delete deployments inside their own namespace. And, Ops guys can configure the cluster to add or remove users, scale the cluster or upgrade it. …
This tutorial will guide you on how to use RBAC with Minikube. The objective is to create users with limited and controlled access to kubernetes resources.
RBAC or Role Based Access Control is a security approach to grant access for specific resources to assigned users.
Minikube, by default, gives you full access to manage the resources in kubernetes. That is because it assumes that you are using it for learning and it is only you who is using it. Though, it is still possible to create multiple accounts with different access levels using RBAC. For example, we can create a user (e.g developers & Ops) who can create and delete resources and another user (e.g developers from another department) who can only read resources. The same thing could be done with groups. In addition to that, the access could be managed by namespace. So you can create users or groups who can access a specific namespace and not others. This is useful for scenarios where you isolate the dev and production environments through namespaces. …
Deploying changes to the production database is really risky. It is enough to forget about one single simple detail and the migration will fail. Customers will start complaining and even worst they will go to the competitors.
In this article, we’ll solve this issue by creating a PreProd environment to run migrations and tests. Then, we’ll detail the challenges of this approach.
In a previous article, we have detailed the main options on how to apply migrations to the database from the CI/CD pipeline. …
Most talks about DevOps focuses on the application’s source code and dismiss the database. In this article, we’ll see how to add the database to the same CI/CD pipelines used for the app.
The objective of DevOps is to create a process for safe, secure and even more frequent delivery for the app. By saying the app, we mean the entire app including the database. Because, in a new app update, we might also change the database schema. For example, we need to add a property Color to our products. …