Welcome to curated list of handpicked free online resources related to IT, cloud, Big Data, programming languages, Devops. Fresh news and community maintained list of links updated daily. Like what you see? [ Join our newsletter ]

Simple Kafka producer in Kotlin, tutorial

Categories

Tags java programming queues devops kotlin

The first in series of tutorials by Alexis Seigneurin focused on Kafka. Author focuses on producing, consuming and processing messages or events.

The tutorial starts by using the Java client library, in particular its Producer API (later down the road, we will see how to use Kafka Streams and Spark Streaming).

It then explains:

  • How to mock source data
  • All about setting up our project
  • The KafkaProducer
  • How to go about testing the code

You will also learn some nice features of the Kotlin language. One thing to keep in mind, when producing data, is what write guarantee you want to achieve.

There is usually a trade-off to be made between your availability to produce, the latency when producing, and the guarantee that your messages will be safely written.

In the tutorial we choose to have a guarantee that a message will be persisted (although not flushed to disk) before we can produce another message: we will not loose messages but our latency is higher than in a “fire and forget” case.

Code examples are also included. Superb!

[Read More]

The Futures in Scala

Categories

Tags scala programming java functional-programming

Álvaro Navarro wrote this interesting short tutorial on Futures in Scala. In it he explains the nuts and bolts of dealing with Futures in Scala and Akka. Futures allow to perform many operations in parallel in an efficient and non-blocking way, but dealing with multiple operations can be a real headache.

In the modern object oriented languages (Java, Scala, Javascript) and frameworks (Akka, Play, Angular, Node.js) exist data structures to handle the asynchrony.

The most relevant are the futures and the promises.

They are also considered useful in several contexts, distributed or not. Some of these ones are:

  • Request-response patterns
  • Long-running computations
  • Database queries
  • RPC (Remote Procedure Call)
  • Reading data from Sockets
  • Input/output data (reading large files from disk)
  • Managing timeouts in services, etc.

The Futures are an important powerful abstraction that represents values which may or may not be currently available, but will be available at some point, or an exception if these values are available. The simplest variation includes two time-dependent states:

  • Completed/determined: the computation is complete and the future’s value is available
  • Incomplete/undetermined: the computation is not yet complete

Find more and code examples in this excellent tutorial!

[Read More]

The agile manager

Categories

Tags agile programming teams miscellaneous cloud

An article by Aaron De Smet focusing on the role od agile manager. He tries to explain these fundamental questions: who manages in an agile organization? And what exactly do they do?

In a McKinsey survey (Oct 2017) of more than 2,500 people across company sizes, functional specialties, industries, regions, and tenures, 37 percent of respondents said their organizations are carrying out company-wide agile transformations, and another 4 percent said their companies have fully implemented such transformations.

Small teams, often called “squads”, have a great deal of autonomy. Typically composed of eight to ten individuals, they have end-to-end accountability for specific outcomes and make their own decisions about how to achieve their goals.

The typical agile company employs a dynamic matrix structure with two types of reporting lines:

  • Capability line
  • Value-creation line

Above is then explained in detail and includes “squads”, “chapters”, “tribes” and management roles – e.g. chapter leader, tribe leader and their comparison to traditional managers.

The article also touches on the most difficult challenges for traditional managers tackling the tribe-leader role are letting go of the need to fully “own” all the people working for them

Well written!

[Read More]

Understanding the potential of Artificial Intelligence

Categories

Tags big-data cloud data-science miscellaneous machine-learning

An interesting interview with Daniel Hulme, CEO of the AI solutions startup Satalia, offers other chief executives a primer on the technology that will shape the future of work and business. Published on strategy-business.com by Euan Cameron and Deborah Unger.

Lately, Hulme has spent a good portion of his time explaining the ins and outs of artificial intelligence to other CEOs. He sees a big information gap at the top of most companies — yet this is where technology investment decisions are made.

There are two definitions of AI, and the more popular one is the weakest. This first definition [concerns] machines that can do tasks that were traditionally in the realm of human beings.

Humans are the most intelligent things we know in the universe, so when we start to see machines do tasks once constrained to the human domain, then we assume that is intelligence.

But the key word for me in the definition of goal-directed adaptive behavior is adaptive. If your computer system is not making a decision and then learning whether that decision was good or bad and adapting its own internal model of the world, I would argue that it’s not true AI.

A lot of people are saying, “Well, [with] these deep learning models, these data scientists will solve all our problems,” and actually, they won’t. As I said, machine learning, data science, and statistics are great at finding patterns in data.

Eyes opening interview. Please read original and support strategy-business.com!

[Read More]

Six ways to create an amazing agile team

Categories

Tags agile programming teams

The blog post by Kat Boogard for Atlassian on topic of building Agile team. Unfortunately, there’s no magic recipe, secret sauce, or tried-and-true formula to becoming a truly top-notch team.

However, there are some key strategies that can help you make your team an awesome one. The author recommends these:

  • Remember that patience is a virtue
  • Respond to change
  • Focus on results
  • Don’t miss the forest for the trees
  • Seek and use feedback

… and read the article to learn more. In addition to these tips, there are tools and add-ons that can help your agile team work like a dream.

Every member of the team needs to trust that others will hold up their ends of the bargain and get things done when and how they said they would do them.

Nice read!

[Read More]

Yes, cross-functional teams -- but real ones!

Categories

Tags devops agile web-development teams

An article by Jutta Eckstein and John Buck on hot topic of cross-functional teams. If you start with Agile, one of the first things you typically do is come up with a team. And yes of course, the team will be cross-functional. But what’s actually meant by cross-functionality?

If you check with the Agile Fluency™ Model, this is the first shift for your Agile journey and is called the “Team Culture Shift”.

Some other shifts mentioned in the article:

  • Teams skills shift
  • Organizational structure shift
  • Organizational culture shift

What about real cross-functional teams? This means that the whole team has full business expertise, knows the market, can even disrupt the market, and isn’t waiting for some person (e.g. the Product Owner) to decide on priorities.

If you are thinking of implementing company-wide agility, the expertise of real cross-functional teams’ spans beyond software and comprehends the whole value stream.

Interesting read for anybody interested in Agile or digital transformation. Well recommended!

[Read More]

How to innovate in organisations that don't like failure

Categories

Tags miscellaneous cloud agile

An article by James Gadsby Peet on topic of innovation in bigger organisation when change often happens slowly. In order to drive lasting and sustainable change, one needs to be curious about the people he is working with and explore their perspectives.

Big organisations love the idea of innovation – but they struggle with the reality.

Many of stakeholders may not be used to co-creating a solution that isn’t yet proven to work. For them, discovery, making mistakes, and failing along the way is what they’ve spent their entire careers trying to avoid.

The article then explores following topics:

  • Why experimentation feels like slow motion failure
  • Digital is 10% tech and 90% human
  • How to create relationships and a shared vision
  • Why you want recruit a team of weebles – the power is in the recovery
  • How to tune in to what’s not being said and explore it

Change is hard for anyone. Driving change can feel like a never-ending battle that you’re always losing.

Make sure that you have a community of support to help you work through this and deliver what you’re meant to for the organisation. Great advice!

[Read More]

Microservice architecture at Medium

Categories

Tags microservices ux software web-development devops programming

Xiao Ma wrote an article about their experience with microservices at Medium. They have built a couple of satellite services, but haven’t created a strategy to adopt the microservice architecture systematically.

The goal of microservice architecture is to help engineering teams ship products faster, safer, and with higher quality. Decoupled services allow teams to iterate quickly and with minimal impact to the rest of the system.

They first started with monolithic Node.js app which served them well for several years, but it started slowing the teams down from shipping great projects and iterating quickly.

The article then depict:

  • What is microservice architecture?
  • Microservice strategies
  • Monolithic persistent storage considered harmful
  • Decouple “Building a Service” and “Running Services”
  • Thorough and consistent observability

… and much more. You will also find schemes explaining some aspects of microservices. Great article!

[Read More]

How to manage storage on Linux with LVM

Categories

Tags linux devops miscellaneous cloud open-source

An article by Seth Kenlon describing how to create, expand, and encrypt storage pools as needed with the Linux LVM utilities. There are lots of reasons to use it, especially in a data center or any place where storage requirements change over time.

The tutorial then dives into:

  • How to create an LVM pool
  • How to add space to your pool
  • How to use utils to understand your storage structure
  • How to use LVM in a rescue environment
  • How to integrate LVM with LUKS encryption
  • How to use encrypted drive

Using LVM and Linux Unified Key Setup (LUKS) encryption toolchain is easy, and it provides flexibility for you as a user and an admin. Being tightly integrated into Linux itself, it’s well-supported and a great way to add a layer of security to your data. Insightful!

[Read More]

Tutorial: Route network traffic with a route table using the Azure portal

Categories

Tags linux devops miscellaneous cloud azure

Tutorial focusing on routing between subnets in Azure cloud. Azure routes traffic between all subnets within a virtual network, by default. You can create your own routes to override Azure’s default routing. The ability to create custom routes is helpful if, for example, you want to route traffic between subnets through a network virtual appliance (NVA).

In this tutorial, you learn how to:

  • Create a route table
  • Create a route
  • Create a virtual network with multiple subnets
  • Associate a route table to a subnet
  • Create an NVA that routes traffic
  • Deploy virtual machines (VM) into different subnets
  • Route traffic from one subnet to another through an NVA

This very thorough and detailed tutorial with tons of screen grabs to illustrate each step. Wonderful!

[Read More]