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 ]

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]

Hands-on: Create Your First Serverless Application in Apache OpenWhisk

Categories

Tags devops serverless

Janakiram MSV article about an open source serverless platform from IBM, OpenWhisk. OpenWhisk is available in two modes, hosted and on-premises. Developers can easily get started with it for implementing event-driven, loosely coupled functions.

Article detailed instructions will help you to set up, configure, and Test Apache OpenWhisk in a Virtual Machine. Configuring the platform is simple and straightforward.

Key Concepts and Terminology - OpenWhisk deals with three key components: Triggers, Actions, and Rules. Actions are the functions that developers write, which get invoked directly through an HTTP call or by a Trigger. OpenWhisk supports JavaScript, Java, Swift, and even arbitrary binaries packaged as Docker containers.

Creating an Action to Send an Email - Example code will help you demonstrate how to use custom node.js packages to build a function, and invoking it asynchronously. And then you will use SendGrid for sending the email.

[Read More]

Learn Why and How to Use Infrastructure as a Code

Categories

Tags software-architecture devops

In recent years, the term infrastructure has emerged as code in the software development terminology. In the modern sense, an infrastructure is considered as all elements of a project solution, but excluding the application. Configured web servers and operating systems among other components make up the infrastructure.

Infrastructure as a code is a concept that has emerged to place an emphasis on using the techniques of organizing code in organizing your infrastructure.

Infrastructure as a code is the process of managing and provisioning computing infrastructure (processes, bare-metal servers, virtual servers, etc.) and their configuration through machine-processable definition files, rather than physical hardware configuration or the use of interactive configuration tools

In this tutorial author identifies two tools - Vagrant and Puppet - which can be used to overcome challenges of traditional infrastructure provisioning. Light reading.

[Read More]

The Algorithms Behind Probabilistic Programming

Categories

Tags programming big-data

This post by Mike gives a feel for the content in our report on probabilistic programming by introducing the algorithms and technology that make probabilistic programming possible.

Probabilistic programming enables us to construct and fit Bayesian models in code. Bayesian inference is a principled way to draw conclusions from incomplete or imperfect data, by interpreting data in light of prior knowledge of probabilities.

The problem is that, until recently, the algorithms that make product and business problems tractable using Bayesian methods have been difficult to implement and computationally expensive to run.

Until recently, the main alternative to this naive approach was Markov Chain Monte Carlo sampling (of which Metropolis Hastings and Gibbs sampling are well-known examples). Articles then continues with explanation of Hamiltonian Monte Carlo and the No U-Turn Sampler, Variational Inference and Automatic Differentation.

[Read More]