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 ]

Java 9: Step by Step From Zero to Modules (Part 1)

Categories

Tags programming java

Tomer Ben David wrote guide which covers the basic building blocks of making modules in Java 9. Java 9 is around the corner, so it makes sense to get started with making modules.

No matter whether you are writing in a dynamic language or a static language, modules are a super important part of your application. Modules are the building blocks of microservices!

Article is one piece in 3 parts series. It depicts and executes detailed plan from installation of Java 9 to deploying of your newly created module. It also touches on naming convention to be followed while creating a module path and something similar when creating the source code. Nice chart with all the new stuff in Java 9 also inlcluded.

Short and straight to the point tutorial. Please also follow parts 2 and 3.

[Read More]

How Algolia Reduces Latency For 21B Searches Per Month

Categories

Tags search nginx servers

Josh Dzielak, Developer Advocate as Algolia wrote interesting article about building search engine from scratch.

At the core of Algolia is a built-from-scratch search engine exposed via a JSON API. In February 2017, they processed 21 billion queries and 27 billion indexing operations for 8,000+ live integrations.

In this post tehy’ll look at how their stack is designed from the ground up to reduce latency and the tools we use to monitor latency in production.

The article touches many interesting topics including deployment, scaling, monitoring, collaboration, teams. Josh also quickly describes their stack. Many people are surprised when they’ll learn that:

  • The Algolia search engine is written in C++ and runs inside of nginx
  • API clients connect directly to the nginx host where the search happens
  • Algolia runs on hand-picked bare metal (high frequency CPUs)
  • Algolia uses a hybrid-tenancy model (shared and dedicated)
  • Algolia doesn’t use AWS or any cloud-based hosting for the API
[Read More]

Create lean Node.js image with Docker multi-stage build

Categories

Tags docker containers

Alexei Ledenev’s blog post about single Dockerfile that can build multiple helper images with compilers, tools, and tests and use files from above images to produce the final Docker image.

Article depicts basic idea behind the Docker build container pattern. A Dockerfile is a text file that contains a list of all the commands needed to build a new Docker image. The syntax of Dockerfile is pretty simple and the Docker team tries to keep it intact between Docker engine releases. The core principle is very simple: 1 Dockerfile -> 1 Docker Image. This principle works just fine for basic use cases.

Article then describes changes introduced in Docker 17.0.5 which extends Dockerfile syntax to support new multi-stage build, by extending two commands: FROM and COPY.

Example Dockerfile for multi-stage Node.js app with explanation is included. With Docker multi-stage build feature, it’s possible to implement an advanced Docker image build pipeline using a single Dockerfile.

[Read More]

Exposing OpenWhisk RESTful APIs with API Gateway

Categories

Tags serverless javascript IBM

Andrew Trice’s short blog post describing IBM’s API Gateway - the incredibly powerful, scalable, event-driven programming model for building actions (functions) using serverless computing.

API Gateway is IBM’s response to AWS API Gateway. The API gateway is an experimental new feature that enables you to easily expose your OpenWhisk actions as RESTful endpoints. You can assign actions to specific endpoints, and even have verbs (get, put, post, delete) from the same endpoint assigned to different actions - the API gateway gives you an easy path to expose your OpenWhisk actions to other non-credentialed applications.

Example code (JavaScript) with simple action is provided. Code and links to feature requests and feedback via github repo.

[Read More]

Crypto Tools for DevOps: git-crypt

Categories

Tags crypto devops

Eric Mann’s short and sweet article about crypto tools for DevOps – help explain a specific utility that empowers developers to keep credentials and the code that uses them in the same place.

Managing credentials securely with end-to-end encryption utilities helps development teams to avoid embarrassing data leaks while sharing passwords among themselves or with deployment environments.

The biggest advantage of git-crypt is that private data and public data can live in the same location. This means any developer can clone your repository, but only permitted developers can decrypt and utilize the information protected within it. git-crypt is a fantastic utility that allows us to keep all of our data in the same spot and automically control who (or what) has access to secrets’ plain text.

On its own, git-crypt is merely an encrypted storage system for secrets. It’s incredibly useful for keeping secrets alongside the code that uses them. It also enables fine-grained access control through specific GPG keys.

[Read More]

What Google Learned From Its Quest to Build the Perfect Team

Categories

Tags agile google teams

Charles Duhigg’s extensive and honest article about open-minded scientific techniques brought to bear on helping people to function more effectively.

In 2012, Google embarked on an initiative - code-named Project Aristotle - to study hundreds of Google’s teams and figure out why some stumbled while others soared.

Project Aristotle’s researchers began by reviewing a half-century of academic studies looking at how teams worked. Were the best teams made up of people with similar interests? Or did it matter more whether everyone was motivated by the same kinds of rewards? Based on those studies, the researchers scrutinized the composition of groups inside Google…

Interesting reading with not very surprising results. We recommend to readcomments left by readers.

[Read More]

An Overview of Object-Oriented Programming Using Python

Categories

Tags programming python oop

Sajjan Kumar article serves as intro into Object-Oriented Programming in Python. Object-oriented programming is a programming paradigm that is organized around objects (involving both data and methods) and it aims to take advantage of code re-usability.

Author talks about the basics of class, why they are useful, and how to use them (hopefully). Object oriented programming is a big topic. This post was not designed as a one-stop for classes. Read more about classes and Python here to get a deeper insight.

Really gentle intro for people starting with OOP concepts. Examples of code in Python are provided as well.

[Read More]

Detecting Bots in Apache & Nginx Logs

Categories

Tags nginx servers infosec

Mark Litwintschik put together this article to help server admins with separating bot and human-generated traffic in web server logs, which can be challenging. In this blog he’ll walk you through the steps he went through to build an IPv4 ownership and browser string-based bot detection script.

His solution includes implementing free IPv4 database of country and city registration tohether with Python-based library for fast lookups. He theh grepped logs and found IPs where “robots.txt” was being requested. From that list he spot-checked some of the more frequently-appearing IP addresses and found a number of hosting and cloud providers being listed as the owners of these IPs. In in addition to Google, six firms came up a lot: Amazon, Baidu, Digital Ocean, Hetzner, Linode and New Dream Network.

Final code for monitoring script in Python is provided together with instructions how to programatically filter bots from both Apache and Nginx logs. Good read and very useful code.

[Read More]

Building Chrome extension using React.js, Redux and Gulp automation

Categories

Tags browsers javascript

Interesting article about building Chrome browser extension. Building extension for Google Chrome is no different from building javascript application.

Simple approach to building using modern javascript ecosystem. Ecosystem is so huge and has many tools which helps in building solid javascript applications. In this post, author intends to show how make use of React with Redux to build Chrome extension.

Links to resources and boilerplate are present. There is a boilerplate which uses Webpack, and also built separate boilerplate using Gulp tasks involving Browserify & Css-modulesify.

Authors also includes simple walkthrough react source files which are included via Gist files. Good starting point for your next Google Chrome extension.

[Read More]

Near real-time monitoring charts with Spring Boot Actuator, Jolokia and Grafana

Categories

Tags monitoring servers

Bruno Simioni who is systems architect and in charge of CI&T’s software architecture strategy of commerce and retail businesses wrote short article about real time monitoring with Spring Boots. In a clustered and elastic environment, applications nodes can grow, multiply and be composed by a very large number of instances. Monitoring isolated nodes can be painful and inconclusive. A tool for aggregating time-series data fits better.

This post intention is to find out a solution for monitoring Spring Boot Metrics over time, in a time-series fashion, with no implementation needed, only by tooling and configuration.

Author compares various solutions - either from 3rd parties, e.g. APMs like NewRelic, AppDynamics or DataDog, or spring-boot-admin, jconsole, visualvm etc. Continues with some Ops modern tools - Prometheus, Sensu, StatsD, Graphite, OpenTSDB, JMXTrans without much success as all of these require some customization.

Author seeks to find solution with zero coding, which he finds with InfluxDB, Jolokia and Telegraf. Also uses Grafana which works with InfluxDB out of box. Example configuration provided in github project and docker compose. If you try to implement near real tie monitoring this article may be useful.

[Read More]