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 ]

New to a codebase? Try drilling!

Categories

Tags programming software-architecture how-to learning

For an entry-level developer, working on the large codebase was quite overwhelming at the beginning. Every time I opened up VScode and loaded up one of our repositories, I felt like I was lost at sea. By Louie Berwanger.

So, in my next team sync, I asked one of the developers what to do about this problem. My coworker gave me some solid advice. She told me to try “drilling” through the codebase.

The article gives the glimpse of:

  • Drilling teaches you how things connect
  • Drilling shows defined patterns
  • Drilling helps you understand boundaries
  • Drilling teaches you how certain tools work
  • Build confidence by drilling through the codebase

Exploring the code during your free time can help you start understanding the architectural patterns of the code. That means when you start creating new things, you know where they should go and how you should create them. Excellent read!

[Read More]

Change management in SAP projects: How employees drive transformation

Categories

Tags ansible teams career software-architecture devops cio management

Unfamiliar systems, new processes, completely different ways of working: an SAP implementation may unsettle users. That’s why change management is crucial for the success of any IT project, especially in the course of a business transformation. By Thomas Jenewein.

Entire industries are repositioning themselves on their intelligent enterprise journey to meet the demand for different approaches to business that did not exist before. Technologies such as artificial intelligence (AI) are also fundamentally and increasingly changing the processes. The software for business transformation is being implemented under the leadership of the CIO, sometimes at a rapid pace.

The article reads about these three issues:

  • The human factor in change management
  • Crisp communication and a shared future
  • Connect training with digital transformation

Furthermore, it is important that a transformation is seen as more than just a one-off activity, but as a continuous learning journey. Guido Schlief, head of SAP Services Middle and Eastern Europe, agrees that employees should always have access to information on software updates, new learning material, and background information in order to best meet the latest requirements. Good read!

[Read More]

Ansible tutorial for beginners: Playbook & examples

Categories

Tags ansible software-architecture devops cio cicd

Ansible is one of the most used tools for managing cloud and on-premises infrastructure. If you are looking for a flexible and powerful tool to automate your infrastructure management and configuration tasks Ansible is the way to go. By Ioannis Moustakis.

In this introductory guide, you will learn everything you need to get started with Ansible and start building robust automation solutions. Ansible uses the concepts of control and managed nodes. It connects from the control node, any machine with Ansible installed, to the managed nodes sending commands and instructions to them.

The article then explains the following:

  • What is Ansible?
  • How does Ansible work?
  • Benefits of using Ansible
  • Basic Concepts & Terms
  • How to install Ansible
  • Ansible Inventory
  • Ansible ad hoc commands
  • Intro to Ansible Playbooks

… and more. In this article, we explored Ansible’s basic concepts, features, and functionality while we also explained why it is such a great tool for automation purposes. Good read!

[Read More]

How to manage an underperformer remotely

Categories

Tags performance agile learning management career

Love it or hate it, working remotely is likely to remain a reality for some time to come. A fairly common challenge, now that people have had time to settle into new workflows, is that more employees may be struggling to keep up. By Lolly Daskal.

How you handle that situation is important—to your employee, to you, and ultimately to your entire team. Here are some tips that have proven to be successful for preventing and dealing with underperformance:

  • Set up clear expectations
  • Get to know people individually
  • Manage how you give feedback
  • Ask how you can support them
  • Serve as a coach
  • Stay connected

It’s not easy to work with an employee who’s not performing well, especially when you can’t sit down face to face and talk from the heart. But using these specific road-tested techniques can help you strengthen others and improve your leadership. Invest in your people as you invest in your organization. Let people know they matter to you, especially when they are struggling.

[Read More]

Discarding magic feathers -- Going frameworkless in Scala

Categories

Tags scala akka programming app-development web-development

A good few years back, I looked into building a Scala webapp using Java’s little-known provided HTTP server rather than one of the many frameworks already out there during my 10% time at Springer Nature. I made a mistake here - to avoid those frameworks I built my own framework to route requests within a webapp. I called it Sommelier, and it is now hidden away in a private github repo as really, we don’t need another of those. Maybe we don’t need any of them at all. By Jim Kinsey.

Building a Scala app with the intention of not using any of those frameworks with their obscure syntax and unnecessary concepts and then going on to build it with SBT would be kind of perverse. I could use Li Haoyi’s excellent Mill, and I have been doing both in professional and personal projects, but given the nature of this project I wanted to see what I could do without.

The article main points:

  • Building a Scala app without a build tool
  • Testing a Scala app without a test framework
  • Handling HTTP in a Scala app without a web framework
  • Frontend in a Scala webapp without a framework
  • Database access in a Scala app without an ORM / DB framework
  • Dependency injection in a Scala app without a DI framework
  • Performance of a frameworkless Scala app

Interesting observations were found in performance space. The average cold build time for the “unframeworkless” version using SBT was 178.86s, over 3 minutes, compared to 7.08s frameworkless. Understanding the kinds of problems the frameworks and libraries we use every day are designed to solve, and the challenges faced in solving them, should help us understand how to work with them better ourselves. The potential causes of unexpected behaviour become clearer - and by understanding these fundamentals without reference to any framework, the learnings can be applied across frameworks. It helps to understand the fundamentals. Good read!

[Read More]

Why mutability is essential for real-time data analytics

Categories

Tags analytics database big-data cio data-science search

Successful data-driven companies like Uber, Facebook and Amazon rely on real-time analytics. Personalizing customer experiences for e-commerce, managing fleets and supply chains, and automating internal operations all require instant insights on the freshest data. By Dhruba Borthakur.

One of the technologies I founded was open source RocksDB, the high-performance key-value engine used by MySQL, Apache Kafka and CockroachDB. RocksDB’s data format is a mutable data format, which means that you can update, overwrite or delete individual fields in a record. It’s also the embedded storage engine at Rockset, a real-time analytics database I founded with fully mutable indexes.

The article contains good information on:

  • Differences between mutable and immutable data
  • The historic usefulness of immutability
  • The problems with immutable data
  • Mutability aids machine learning
  • How mutability enables real-time analytics

To sum up, mutability is key for today’s real-time analytics because event streams can be incomplete or out of order. When that happens, a database will need to correct and backfill missing and erroneous data. To ensure high performance, low cost, error-free queries and developer efficiency, your database must support mutability.

[Read More]

Implementing in-app subscriptions in iOS & Android with no backend servers

Categories

Tags ios how-to android app-development google

More recently I have been experimenting with different monetization strategies for the apps so users can unlock features or just leave a tip. For the longest time I kept things simple with a “non-consumable” one-time purchase. Over the holiday break I decided to take things a step further and dip my toes into the world of subscriptions. By James Montemagno.

One of my goals of this was to not use any backend servers or accounts at all as I didn’t want to add additional costs to management. That leads to even more complexity, but for me it was worth it, so let’s get into it!

The article provides details on the following:

  • Setting up subscriptions
  • Purchasing subscriptions
  • Handling subscription renewals and cancellations
  • Verifying & restoring a subscription
  • Receipt validation
  • Testing subscriptions
  • In-App Subscriptions SaaS

In-app subscriptions are pretty neat as they offer a lot of flexibility over a single IAP or up-front app purchase. If you have great features and want to help your long-term development it is a great option to generate revenue. Nice one!

[Read More]

Five ways to get started with network automation

Categories

Tags cloud devops cicd ansible

However, even though network automation has become increasingly popular, most organizations are still managing their network infrastructure manually by a CLI or GUI. Why is this? By Sean Cavanaugh.

This manual CLI work often means that network engineers are reactive and constantly drowning with break-fix network issues because of manual mis-configurations, or the inability to implement change quickly and efficiently.

Because network engineers are so busy firefighting in their day job, they don’t have time to look at a new activity like automating, even though automation will save them time and money in the long run. I fundamentally believe that network automation is not an all or nothing situation. You need to adopt network automation in small increments so you can earn yourself, and your team more time. In other words, start small and think big. I put together this video to help network engineers brainstorm five great use cases for network automation. This list is not exhaustive; there are many more use-cases that you can do with network automation, but this is meant to give network administrators an idea of what is possible.

The video post contains following sections:

  • Configuration backup and restore
  • Infrastructure awareness
  • Scoped configuration management
  • Operational state validation
  • Automated netops

The article also contains links to further resources and reading. Whether you are beginning your automation journey or a seasoned veteran, there are a variety of resources to enhance your automation knowledge. Nice one!

[Read More]

A cloud-like on-prem load balancer for Kubernetes?

Categories

Tags cloud devops cicd kubernetes

Everyone knows that using a Kubernetes Load Balancer is a challenge. Back in the day when I was responsible for network operations, the load balancer management was under my team’s responsibility too. By Alex Saroyan.

Public cloud providers offer a great deal of convenience by automatically provisioning and configuring the services needed by the application.

All major public cloud providers offer on-demand load balancer services that you use for exposing your Kubernetes applications to the public Internet. Or you are using an Ingress controller and your Ingress controller is using the on-demand load balancer for exposing it’s public TCP port towards the Internet.

In the article you will learn:

  • What user experience are cloud practitioners expecting from Layer-4 load balancers?
  • How can we get this cloud-like experience in a private cloud, on-prem?
  • Where is the most practical place for the Layer-4 load balancer function in my architecture?
  • Why are network gateways great places for Layer-4 load balancing functions?
  • What are the options (suitable for Kubernetes)?
  • Practical, cloud-like network gateway with native Kubernetes integration

Linux machine + optionally DPDK / SmartNIC acceleration can make a great network gateway with Layer-4 load balancer and native integration with Kubernetes. Almost any common Linux distribution has the minimum building blocks i.e. Layer-2, Layer-3, Layer-4 network functionality. Good read!

[Read More]

Applying test-driven development to your database

Categories

Tags cloud database cicd tdd nosql

Test-driven development (TDD) is a popular software development methodology that aims to reduce defects and improve the ease of maintaining code. In this post, you learn how to apply TDD to write queries and expressions with the Fauna Query Language (FQL). By Ron Callahan.

TDD begins with writing a single failing test. For example, if you are implementing a Split() function that accepts a string and a delimiter and returns an array of strings “split” at each occurrence of the delimiter, you would test that Split(“127.0.0.1”, “.”) is equal to [“127”, “0”, “0”, “1”]. When you first run your test suite, the test fails, because you have not yet implemented the Split() function.

The tutorial reads about:

  • TDD overview
  • Setting up your environment
  • Configuring Jest
  • Testing partial FQL expressions
  • Preparing your test harness
  • Create a single failing test
  • Implementation

To test your knowledge, try implementing tests for the remaining two specifications. Once you have those tests in place and passing, try to refactor the implementation of Split(). Notice how TDD allows you to safely refactor your code without introducing regressions. Interesting!

[Read More]