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 ]

A large-scale study of programming languages and code quality in Github

Categories

Tags programming

Baishakhi Ray, Daryl Posnett, Premkumar Devanbu, Vladimir Filkov detailed study of programming languages and code quality. They tried to answer the question: What is the effect of programming languages on software quality?

In this study, we gather a very large data set from GitHub (728 projects, 63 million SLOC, 29,000 authors, 1.5 million commits, in 17 languages).

The reasonably large sample size allowed authors to use a mixed-methods approach, combining multiple regression modeling with visualization and text analytics.\

Functional languages have a smaller relationship to defects than other language classes whereas procedural languages are greater than or similar to the average.

One should take care not to overestimate the impact of language on defects. While the observed relationships are statistically significant, the effects are quite small. Analysis of deviance reveals that language accounts for less than 1% of the total explained deviance.

Great article full of insights!

[Read More]

Angular security -- Authentication with JSON Web Tokens (JWT), complete guide

Categories

Tags nodejs javascript angular infosec apis

Angular university brought you this a step-by-step guide for both designing and implementing JWT-based Authentication in an Angular application. The goal here is to discuss JWT-based Authentication Design and Implementation in general.

In a nutshell, JWTs are digitally signed JSON payloads, encoded in a URL-friendly string format. A JWT can contain any payload in general, but the most common use case is to use the payload to define a user session.

The guide follows the complete journey of a JWT from creation on the Authentication server and back to the client, and then back to the Application server and talk about all the design options and decisions involved.

Selected points touched by the article:

  • JWT-based Authentication in a Nutshell
  • User Login in an Angular Application
  • Creating a JWT Session Token using node-jsonwebtoken
  • Sending a JWT back to the client
  • Where to store a JWT Session Token?
  • Checking User Expiration
  • Building a custom Express middleware for JWT validation

… and much more. Perfect!

[Read More]

Beyond CPU: horizontal pod autoscaling, custom metrics in Google Kubernetes Engine

Categories

Tags kubernetes containers devops

Interesting article by Maks Osowski addressing common problem for enterprises and their need to autoscale their environments based on more than just CPU usage. Horizontal Pod Autoscaler (HPA) on Kubernetes Engine 1.10+ will enable you to configure your deployments to scale horizontally in a variety of ways.

The article then introduces a real life scenario based on Microservices architecture for a global video-streaming company.

The services are then scaled:

  • To make sure she meets the service level agreement for the latency
  • Horizontally based on the queue length
  • Using the new ‘External’ metric type when configuring the Horizontal Pod Autoscaler
  • Utilizing Pods custom metric type
  • Using an existing feature of the Horizontal Pod Autoscaler to scale based on multiple metrics at the same time

To handle scaledowns correctly, we also make sure to set graceful termination periods of pods that are long enough to allow anything happening on pods to complete.

Example configuration is presented together with explanation. Great read!

[Read More]

Advanced logging on Kubernetes

Categories

Tags kubernetes containers devops

Sandor Guba article diving into Kubernetes logging. The article covers some advanced techniques and visualizations of the collected logs. It is part of the series of articles on Kubernetes topic. Banzai Cloud puts huge efforts to monitor large and federated clusters and they push large amounts of logs of the distributed applications to Kubernetes.

The author’s focus is on Kubernetes and Fluentd; an open source data collector, which lets you unify the data collection and consumption for a better use and understanding of data.

Article deals with:

  • Logs parsing
  • Filtering messages based on app label
  • Logs storage
  • Kibana
  • Legacy applications monitoring

There is plenty of code examples and charts helping you to understand logging architecture they use. The charts and configurations available in their helm chart repository. Great read!

[Read More]

Fact vs. fiction: 6 myths about container security

Categories

Tags programming containers infosec devops

David Lawrence wrote this article to help you to quell these myths so you can find default security and secure coding at the heart of well-architected containers. In this article, authors take a look specifically at the myths surrounding container security – and the opportunities container technology presents to integrate security at each stage of the application lifecycle that otherwise would be hard to achieve.

Containers are in fact a security tool, offering more methods to secure your applications.

The article focuses on these myths:

  • Containers are inherently insecure
  • You must purchase additional security for containers to secure your application
  • I need to change my applications to get modern security
  • All containers are the same

Click the link below to learn about another 2 myths mentioned in this article. Nice reading.

[Read More]

Trying out Containerized Applications on Apache Hadoop YARN 3.1

Categories

Tags big-data data-science database

Shane Kumpf & Vinod Kumar Vavilapalli & Saumitra Buragohain from Hortonworks wrote series of articles about Hadoop. This is the 5th blog of this seres and in this blog, they will explore running Docker containers on YARN for faster time to market and faster time to insights for data intensive workloads at scale.

Apache Hadoop YARN community has been hard at work enabling the building blocks for running a diverse set of data intensive workloads at unprecedented scale. The rich scheduling and multi tenancy features that are already present in YARN combined with containerization, open up many more use cases.

Hadoop has three core components, plus ZooKeeper if you want to enable high availability:

  • Hadoop Distributed File System(HDFS)
  • MapReduce
  • Yet Another Resource Negotiator(YARN)

YARN (Yet Another Resource Negotiator) is the framework responsible for assigning computational resources for application execution.

In the article you will find instructions how to go about:

  • Setting up yarn resource manager & scheduler
  • Setting up yarn containerization on the NodeManager
  • Setting up yarn NodeManager – yarn-site.xml
  • Setting up yarn container-executor binary (container-executor.cfg)
  • Running containerized distributed shell

Detailed tutorial, which gets you started with dockerized Hadoop. Security considerations are also mentioned. Good read!

[Read More]

When, how and why use Node.js as your backend

Categories

Tags programming javascript web-development nodejs

Justyna Rachowicz published this article about leveraging the Node.js technology in building applications. The benefits of Node.js are countless, but you should also be aware of its constraints. Get a full picture of Node.js and avoid making serious mistakes in development that could cost you money.

Thanks to Nodej.js unique I/O model, it excels at the sort of scalable and real-time situations we are increasingly demanding of our servers. It’s also lightweight, efficient, and its ability to use JavaScript on both frontend and backend opens new avenues for development.

The article then outlines:

  • What is Node.js?
  • How is Node.js different from web JavaScript?
  • Why is it worth developing your project in Node.js?
  • Good use cases for Node.js
  • When might Node.js not be the best idea?
  • Package quality considerations

PLenty of further reading and resources are included as well. Node scales well, works great with real-time tasks and is generally fast. To learn more, read this excellent guide.

[Read More]

Event Sourcing made Simple

Categories

Tags programming software-architecture event-driven messaging

Neat article by Philippe Creux, Ruby and Rails developer at kickstarter, about implementation a minimal event sourcing framework at Kickstarter to power d.rip. Event Sourcing is to data what Git is to code. It’s simple and it has made their life so much better! Read on!

They start by observation of the Git and how Git is also a time machine, that allows you to go back in time and see what the code looked like back then: git checkout @{12.days.ago}.

User action, API calls, callbacks (webhooks), recurring cron jobs can all generate Events. Events are persisted and immutable. We know when they happened, who triggered them and what they were. By going through these events, we get a sense of what the current state of the world is and how it came to be in that state. It would be nice not to play all events every time we want to build application state.

They define four components that make a (minimal) Event Sourcing system: Events, Calculators, Aggregates and Reactors.

Article then dives in:

  • Why Event Sourcing
  • Events, Calculators, Aggregates, Reactors
  • Dispatchers and Commands
  • Event Sourcing for d.rip, how they went about the project

Code examples are also included. Great article!

[Read More]

Intuitive guide to data structures and algorithms

Categories

Tags programming data-science

Excellent, simple and user-friendly guide to data structures and algorithms by interviewcake.com. Interview Cake is a study tool that preps software engineering candidates for programming interviews. Created by Parker Phinney, ex-Googler who also worked in a handful of startups.

The coding interviews require rock-solid foundation in algorithms, data structures and big O notation, as well as the confidence and expertise to work through problems you’d never seen before.

This site claims not to be a freaking textbook. No confusing academic jargon. No long lists of properties to memorize. No proofs. Because that stuff doesn’t help you actually get it.

The guide is then split into 3 sections:

  • Big O notation
  • Data structures for
  • Logarithms

Excellent guide, worth your time even if you are experienced developer.

[Read More]

Resiliency in distributed systems

Categories

Tags event-driven software-architecture programming

Rajeev Bharshetty neat article about why we need consider resiliency in software development. Resiliency of a system is directly proportional to its up-time and availability. The more resilient the systems, the more available it is to serve users.

Resiliency is all about preventing faults turning into failures. The most resilient piece of code you ever write will be the code you never wrote.

The article then helps you with:

  • Basic terminology for resilient systems
  • Explains why do we care about resiliency in our systems
  • Explains why resiliency in distributed systems is hard
  • Introduces you to basic patterns

But remember, despite the best effort, systems do fail. The sad truth is we have to deal with these failures. To be resilient, we have to design our systems for failure.

Good read with many charts and diagrams supporting explanations.

[Read More]