Ihre Browserversion ist veraltet. Wir empfehlen, Ihren Browser auf die neueste Version zu aktualisieren.

Kustomize

Java Operator SDK 

Azure APP config and Feature flags onto SpringBoot apps

OAUTH 2.0 Token Grant Flows

1. The OAuth 2.0 client credentials grant flow permits a web service (confidential client) to use its own credentials, instead of impersonating a user, to authenticate when calling another web service. The grant specified in RFC 6749, sometimes called two-legged OAuth, can be used to access web-hosted resources by using the identity of an application. 

2. The OAuth 2.0 authorization code grant type, or auth code flow, enables a client application to obtain authorized access to protected resources like web APIs. The auth code flow requires a user-agent that supports redirection from the authorization server (the Microsoft identity platform) back to your application. For example, a web browser, desktop, or mobile application operated by a user to sign in to your app and access their data.

 

OAUTH 2.0 SpringBoot Resource server

OIDC JWT Spring Security

SpringTest

  1. If you want to have full control about the spring's configuration (and not rely on the hidden magic of auto configuration
  2. Getting Started | Testing the Web Layer (spring.io)
  3. SpringBoot 3.1 Built-in Test Containers Support
  4. A Guide to REST-assured
  5. https://spring.io/blog/2023/06/23/improved-testcontainers-support-in-spring-boot-3-1
  6. https://docs.spring.io/spring-boot/reference/testing/testcontainers.html
  7. https://www.baeldung.com/spring-boot-exclude-auto-configuration-test
  8. Spring Boot Application Testing and Development with Testcontainers *** (
      You’ll need to add the spring-boot-testcontainers module as a test dependency in order to use service connections with Testcontainers.
    )
  9. Write Integration Test using @SpringBootTest **
  10. https://bell-sw.com/blog/how-to-use-testcontainers-with-spring-boot-applications-for-integration-testing/
  11. SpringBootTest vs MockMvc
  12. https://spring.academy/guides/spring-spring-boot-testing#only-load-slices-of-functionality

Override Properties in Spring's Tests

  1. Override Properties in Spring's Tests | Education
  2. ConfigFileApplicationContextInitializer
  3. Run custom ApplicationContextInitializer in @SpringBootTest
  4. Guide to @DynamicPropertySource in Spring | Education

Azure pipelines

Building ETL with SpringBatch

 The Java collections framework provides a set of interfaces and classes to implement various data structures and algorithms. Any group of individual objects that are represented as a single unit is known as a Java Collection of Objects. Before the Collection Framework(or before JDK 1.2) was introduced, the standard methods for grouping Java objects (or collections) were Arrays or Vectors, or Hashtables. All of these collections had no common interface.

Spring Framework gives you everything you need out of the box: transaction management (2PC), multithreading and parallel processing (Task Executors), tracking and tracing (Listeners). Built in scalability, parallel processing, limit the thread invocation by setting attribute throtteLimit, fault tolerance, retry mechanism and transaction awareness, 2PC. The Partitioner is an interface which provides the facility to define a set of input values for each of the slaves. In other words, logic to divide tasks into respective threads goes here.

 

Best PostgreSQL performance posts

K8S Jobs

AKS SpringBoot container logging

Java Kubernetes Client API

Kubernetes RBAC

Azure Application Gateway Ingress

An Ingress may be configured to give Services externally-reachable URLs, load balance traffic, terminate SSL / TLS, and offer name-based virtual hosting.

Azure Credential grant flow (2-legged Oauth)

The authorization code and Implicit flow and implicit flow both require at least one user-interactive login to your application.


If you need a completely non-interactive flow, you must use the client credentials flow. sometimes called two-legged OAuth, which allows applications to authenticate as themselves (rather than on behalf of a user) to programmatically and securely obtain access to an API.

This type of grant is commonly used for server-to-server interactions that must run in the background, without immediate interaction with a user. The OAuth 2.0 client credentials grant flow permits a web service (confidential client) to use its own credentials, instead of impersonating a user, to authenticate when calling another web service. Because the application's own credentials are being used, these credentials must be kept safe - never publish that credential in your source code.

 

 

Spring Cloud Azure

About managed identities

Event Sourcing - Database Inside Out

The database inside out is an analogy for stream processing where the same components we find in a database—a commit log, views, indexes, caches—are not confined to a single place, but instead can be made available wherever they are needed.

"Moving from a relational database toward a log of immutable events and materialized views can offer tremendous benefits."

Kafka State Stores

Kafka Exactly-Once Semantics and Transactions

Kafka Streams and JUnit testing

DataOps with Lenses

Lenses Streaming SQL

Kafka Streams and Spring

Swiss RE and MS Azure

Swiss Re will transform its internal operating platform by modernising and moving it to the Azure cloud. Swiss Re decided to adopt Microsoft Azure. "Security, availability, and reliability. The reason for Microsoft's success in this country is the company's decision to build two data centers in Switzerland. In addition to the location, the US company has also accommodated the local banks and regulators with physical access authorizations to the server farms, as finews.ch Cloud solution providers also received a boost this spring beyond UBS and CS. The Bankers Association published a guideline that informs about the correct handling of the cloud. Consequently, it is to be expected that more banks will dare to use external computers. already reported.

Azure

Azure DevOps

Azure DevOps Services, these cloud services, provide a scalable, reliable, and globally available hosted services. Are backed by a 99.9% SLA, monitored by 24x7 operations team, and available in local data centers around the world.

Spring on Azure

Azure Pipelines Deploy AKS

What is the difference between blue-green and canary deployment strategies?
Canary deployment works similarly to blue-green deployment, but uses a slightly different method. Instead of another full environment waiting to be switched over once deployment is finished, canary deployments cut over just a small subset of servers or nodes first, before finishing the others.

Azure Spring Cloud

What is Cloud Native computing

Almost everything you read on REST and MicroServices Architecture MSA is closely related to Cloud Native software development and computingLet's first get the definition right.

"Cloud-native technologies are used to develop applications built as services(MSA), packaged in containers, deployed and managed on elastic infrastructure (like Kubernetes) through agile DevOps processes and continuous delivery workflows".

Read about the 10 KEY ATTRIBUTES OF CLOUD-NATIVE APPLICATIONS

 

About 12-Factor Principles

The Twelve-Factor App Methodology is suggested by developers for smoothly working and delivering Software as a Service (SaaS) Applications or Web Apps with a focus on Microservices.

Running Spring Boot GraalVM Native Images with Docker

All those Micronaut, Quarkus.io & Co. frameworks sound great! But Spring is the undisputed forerunner in Enterprise Java. Wouldn't it be great to combine Spring Boot with the benefits of GraalVM?!

Skaffold

If a developer has to wait for 30 minutes for their code to compile, that code lacks velocity. So, the developer experience is awful, and he/she is very frustrated. Skaffold automates the workflow for building, pushing and deploying applications into a Kubernetes cluster. With Skaffold, developers can iterate on application source code locally while having it continually updated and ready for validation or testing in their local or remote Kubernetes clusters. Developers can run Skaffold as a background process while they are developing their code.

Spring on Kubernetes

When it comes to building Java apps that run in the cloud, Spring and Spring Boot are clear favorites. It is also increasingly clear that technologies such as Docker and Kubernetes play an important role in the Spring community.

Developing SpringBoot on Kubernetes

In the cloud-native world, where microservices are developed, distributed, and operated, the operational burden becomes more complicated as the services become smaller and smaller. Fortunately, there are technologies available to vastly reduce both the time and costs associated with development and operations. 

SpringBoot and ISTIO

Istio is currently the leading solution for building service mesh on Kubernetes. Thanks to Istio you can take control of a communication process between microservices. It also lets you secure and observe your services. Spring Boot is still the most popular JVM framework for building microservice applications.

SpringBoot OIDC flows

About Skaffold

Skaffold is a simple command-line tool that is able to handle the workflow for building, pushing and deploying your Java application on Kubernetes. It saves a lot of developer time by automating most of the work from source code to the deployment.

Jib, is dedicated only for Java applications. It allows you to build optimized Docker and OCI images for your Java applications without a Docker daemon. It is available as Maven of Gradle plugin, or just as a Java library. With Jib you don't need to maintain a Dockerfile or even run a Docker daemon.

About JIB Java Image Builder

Jib is a container tool that builds, pushes the Docker images of Java applications without a Docker daemon. Means, you don't have to have a docker daemon installed on your machine!

Distroless Docker images and JIB

"Distroless" images contain only your application and its runtime dependencies. They do not contain package managers, shells or any other programs you would expect to find in a standard Linux distribution.

Kustomize

Kustomize is a standalone configuration management tool. The basic idea is to create a collection of these configuration files as a ‘base’ configuration and apply ‘overlays’ to change them by the environment. Kustomize has been integrated with kubectl.

 

Writing Kubernetes Operators in Java

Java is no doubt one of the most popular programming languages in the world but it's been difficult for a period time for those non-Golang developers to build up their customized controller/operator due to the lack of library resources in the community. In the world of Golang, there're already some excellent controller frameworks. Driven by the emerging need of further integration into the platform of Kubernetes, we not only ported many essential toolings from the Golang SDK into the kubernetes Java SDK including informers, work-queues, leader-elections, etc. but also developed a controller-builder SDK which wires up everything into a runnable controller without hiccups.

Spring Boot Configuration Externalization with Azure App Configuration

Hosted by WEBLAND.CH