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 ]

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]

How to be Agile with distributed teams

Categories

Tags agile programming teams

Judah Gabriel Older article by Hugo Messer and John Okoro about Agile distributed teams. Distributed teams are the norm for many organisations today. Companies are global, communications technologies allow people to live away from the “office” location and many of the new workforce are nomads.

Becoming a high-performing team is possible in a distributed group, it just takes more effort to overcome the inherent challenges of distance.

In this inspiring article you will get plethora info on:

  • Introduction to the distributed agile framework
  • Learn how to manage culture within distributed teams
  • Learn how to organize distributed work within an enterprise
  • Practical examples and cases of distributed agile organizations
  • Questions, virtues and practices to organize better distributedly

Authors also open sourced a big part of their own agile framework. The framework we have developed consists of 8 ‘bubbles’ including culture, organization, team, engineering practices. Read to learn more!

[Read More]

Reusing & composing GraphQL APIs with GraphQL bindings

Categories

Tags big-data apis nosql

Graphcool published tutorial about GraphQL bindings. With GraphQL bindings you can embed existing GraphQL APIs into your GraphQL server. In this article, they present a new application of schema stitching which makes it particularly easy to reuse, compose and share existing GraphQL APIs: GraphQL bindings.

GraphQL bindings take the idea of schema delegation to the next level and make it easy to reuse, embed, compose and share GraphQL APIs.

Articles then explains what what are GraphQL bindings together with simple code examples. The major strength of GraphQL is its strongly typed schema.

Some benefits of using GraphQL bindings:

  • Pragmatic API & simple abstraction
  • Great IDE support: Autocompletion and other awesome IDE features
  • Reusable: Can be easily shared as reusable packages using NPM (or other package managers)
  • Compile-time error checking: Static bindings allow for static analysis
  • Language agnostic: Works with any (typed) programming language

Excellent article for anybody in the APIs business.

[Read More]