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 ]

Expanding Service Mesh with Terminating Gateways

Categories

Tags kubernetes docker containers devops cicd

HashiCorp Consul 1.8 introduced two new features which ease the process of adopting a service mesh, terminating gateways and ingress gateways. In this blog we will discuss what a terminating gateway is, and how it can benefit organizations as they migrate applications into a hybrid service mesh. By Blake Covarrubias.

Many large enterprises typically have many applications and services running across multiple, geographically diverse datacenters on multiple compute infrastructure platforms such as bare metal, mainframes, virtual machines, or containers. Organizations typically adopt a service mesh to gain a common set of networking capabilities across these disparate environments.

Terminating gateways provide a way to extend the service mesh connectivity to applications or services which exist outside the mesh environment. They act as egress proxies which participate in the service mesh, and provide connectivity to one or more external destinations.

hashicorp.com

Terminating gateway

Source: @hashicorp https://www.hashicorp.com/blog/expanding-service-mesh-with-terminating-gateways/

The content is split into:

  • Service mesh primer
  • How Terminating Gateways work
  • Multi-DC mesh expansion

Terminating gateways enable enterprises to realize the benefits of a service mesh while still retaining the ability to securely communicate with external systems outside the mesh environment using a consistent network and security model. Great read!

[Read More]

Two-Factor Authentication (2FA) for SSH with Google Authenticator

Categories

Tags infosec google cloud app-development

If you’ve ever signed up for a Google, Github, or Twitter account then you’ve likely come across two-factor authentication. Adding in two-factor logins to SSH then seems like a no brainer. It provides a much-needed extra security layer on an otherwise very vulnerable port of entry to your server. By serverauth.com.

If you’ve ever signed up for a Google, Github, or Twitter account then you’ve likely come across two-factor authentication. It’s a fairly simple concept. A user tries to log in, and even if they enter the correct details, they then get asked to confirm a unique one-time code, often presented in an app or sent to them via SMS.

The article describes following step how to secure your server:

  • Two-factor for SSH
  • Adding Authenticator to your server (Debian, Ubuntu, CentOS, RedHat)
  • Configuration
  • Enabling SSH 2FA
  • Restart SSH & Test

You will also get explanation how to enable have a slight delay between tokens, so they don’t expire at exactly 30 seconds. This is handy for when times may not be 100% accurate, so is worth enabling. And you probably also want to enable rate-limiting. This prevents attackers from attempting to crack entry by brute force, so should be enabled. Straightforward and very useful!

[Read More]

How to pay your rent with your open source project

Categories

Tags agile software web-development open-source

Many open source projects are terribly under-resourced and under-funded. Some open source developers even have to sacrifice their financial security to work on their passion. Written by Marko Saric.

Financial sacrifice to work on an open source product many people use and enjoy should not be required. In order to build and grow great open source alternatives to proprietary software such as Firefox is to Chrome, we do need more people to be able to commit to open source full time.

The article main focus is on:

  • Why should open source projects need funding at all?
  • Business models aligned with something people are willing to pay for
  • Hosted, plug and play solution as a SaaS
  • Premium version with additional features and expanded functionality
  • Training, support or consulting services from the project’s maintainers
  • Crowdfunding, voluntary donations and sponsorship
  • Find what works best for your situation and your project

Explore the different options and different examples in this post. The list of funding methods above doesn’t mean that you have to choose and sticky to one business model only. Great read!

[Read More]

Training a deep CNN to learn about galaxies in 15 minutes

Categories

Tags big-data machine-learning data-science python

Let’s train a deep neural network from scratch! In this post, I provide a demonstration of how to optimize a model in order to predict galaxy metallicities using images, and I discuss some tricks for speeding up training and obtaining better results. By John F Wu.

In short, we want to train a convolutional neural network (CNN) to perform regression. The inputs are images of individual galaxies (although sometimes we’re photobombed by other galaxies). Galaxy metallicities can be obtained from the SDSS SkyServer using a SQL query and a bit of JOIN magic. All in all, we use 130,000 galaxies with metallicity measurements as our training + validation data set. In astronomy, metallicity is the abundance of elements present in an object that are heavier than hydrogen or helium.

The content of the article:

  • Predicting metallicities from pictures: obtaining the data
  • Organizing the data using the fastai2 DataBlock API
  • Neural network architecture and optimization
  • Evaluating our results

The author used fastai2 – a powerful high-level library that extends Pytorch and is easy to use/customize. At the moment, the documentation is still a bit lacking, but that’s okay – it’s still under active development! Very useful!

[Read More]

Do not follow JavaScript trends

Categories

Tags javascript nodejs web-development programming cio agile

What to do when you feel a sudden urge to use shiny new trendy framework or tool. You may ping your team lead or send a message to your whole team about this cool new way of doing things, and you suggest that you start using it. The idea of having to learn something new is good, and I agree with that, but how often should you do that? Written by Nikola Đuza.

So many choices, so little time. What to do?

Gartner: A hype cycle

Source: @gartner.com https://www.gartner.com/en/research/methodologies/gartner-hype-cycle/

It doesn’t matter what we choose now or what we chose back in the day. We will still get tempted or have to rewrite our code later down the road. Reasons to do it might vary:

  • Your company was using [insert framework name] and is unable to hire new folks
  • You feel the old solution is not working out for you anymore, and you want something new
  • You succumbed to the industry trends and want to use latest and greatest

Unless we break the cycle.

Constant improvement and shipping a new, better version is planted deep inside our industry. The need to make more efficient, less complex, prettier, robust solutions is breathing down our necks. The article describe the thought process, how:

  • What is HDD – Hype Driven Development
  • Break the cycle
  • Do not fall for the hype. Try to “feel” what works for you and go with that
  • Deal with hype
    • Research and test out before making a decision
    • Is it solving your problem, and what is the cost?
    • Get an opinion from other people

The last one might be tricky if you are working in a small company or a team of not so experienced team members. Try to look for an opinion from an architect or a senior engineer. Just because some library is working out nicely for AirBnB and their website, might not be the best for you, and you might have overlooked some aspect of it. Talking to someone experienced is sometimes a privilege, but if you have it, use it! Excellent read!

[Read More]

How to integrate with Visual Studio Code, Azure Cloud instance and Docker desktop

Categories

Tags docker containers devops azure python

Back in January, Docker and Microsoft Joined In Hand to Hand for New Strategic way to help developers and development teams to build and ship application better way . key part of this strategy to helping involve the ecosystem. By Sangam Biradar.

Visual Studio Code is one of best tool for all developer with lot of open source extensions and it is widely used tool in day to day developer’s life.

This is step by step tutorial which covers deploying simple Python application:

  • Installing Visual Studio Code
  • Install Docker extension for Visual Studio Code
  • Create Dockerfile with Python runtime
  • Create Python application
  • Build DockerFile and run Dockerized
  • Check containers via Docker extension in Visual Code
  • Creating Azure Container Registry
  • Enable admin more
  • Check your Azure Container Registry via portal

Each step is documented with detailed screen grabs and the code is also provided via GitHub repository. Good read!

[Read More]

Memory management in Java

Categories

Tags java programming devops

In this article, we will see how does the Java programming language is doing memory management, we will look at registers, stack, heap, constants, non-ram memory, and the famous Java garbage collector. Let’s start with the fastest storage in Java the register. By Aleksandar Vasilevski.

Garbage Collector in Java is running in the background and looks into all objects that are in the memory to find out objects that are not referenced. Every unreferenced objects that are found are deleted so the space can be allocated for other objects. Unlike other languages such as C where memory allocation and deallocation it’s manually, in Java it’s done automatically by default.

The article explains in clear manner following:

  • Register
  • Stack
  • Heap
  • Constant
  • Non-RAM
  • Java Garbage Collector

Memory management in Java is a very interesting topic but very broad topic too, Java itself will manage the memory without major interventions by the programmer, but knowing how memory work in will give you the advantage of writing good and optimized code in terms of memory usage, finding and fixing memory leaks. The article also provides example code together with explanation how Java memory management would work on selected piece of code. Nice and informative!

[Read More]

An introduction to the automation test wheel

Categories

Tags tdd programming javascript json

As a software tester, I like thinking about testing a product from a number of different angles. Over the last few years I’ve learned about security testing and performance testing, and I’ve come to see how important those activities are in validating software quality. By Kristin Jackvony.

As testers, we should be validating the quality of the entire application. In thinking about how to incorporate all test types into a traditional testing workflow, author conceived of the idea of an Automation Test Wheel.

Automation test wheel

Source: https://www.ministryoftesting.com/dojo/lessons/an-introduction-to-the-automation-test-wheel

Each section of the wheel should be considered when you are creating a test automation strategy. Author included a GitHub repository showing a working example of each test type. Additionally, the “Read Me” section of each repository has a link to a blog post that describes how to run the tests.

The article is split into following parts:

  • The traditional approach: the test automation pyramid
  • The sections of the automation wheel
  • What about the test pyramid
  • What about manual testing?
  • Why are the sections of the wheel all the same size?
  • What about monkey testing, data-driven testing, etc.?
  • Designing a test strategy with the automation test wheel

And remember manual testing always has a place in the tester’s tool belt. Great read!

[Read More]

5 reasons Elixir can be your competitive advantage

Categories

Tags elixir web-development functional-programming software-architecture

Elixir is a relatively new programming language. Release of v1.0 was announced on September 18, 2014. Elixir has been trusted by several companies to be part of their toolset. Some of those well-known companies that publicly shared they use Elixir to build their products are Pinterest, PagerDuty and Wistia. By Elvio Vicosa.

The Elixir language and the Erlang eco-system have a special relationship with a number of industries, which have been relying on and benefiting from it: telecoms, banking, e-commerce, advertisement, instant messaging, IoT,

Elixir has the concept of Supervisors, which goes hand in hand with the “let it crash” idea. As the name implies, “supervisors” are used to supervise other processes. When a supervised process crashes, a “supervisor” kicks in and take measures to handle the crash.

The article main focus is on:

  • Battle-tested environment with modern features
  • Concurrency
  • Performance
  • Scalability
  • Fault-Tolerance

Elixir is a unique, powerful and productive language. It includes features that enable development teams to build distributed, fault-tolerant and highly-available systems. Good one!

[Read More]

Introduction to Python SQL libraries

Categories

Tags python sql database software-architecture

All software applications interact with data, most commonly through a database management system (DBMS). Some programming languages come with modules that you can use to interact with a DBMS, while others require the use of third-party packages. In this tutorial, you will explore the different Python SQL libraries that you can use. You will develop a straightforward application to interact with SQLite, MySQL, and PostgreSQL databases. By Usman Malik.

  • Understanding the database schema
  • Using Python SQL libraries to connect to a database
  • Creating tables
    • Inserting records
    • Selecting records
    • Updating table records
    • Deleting table records

SQLite is probably the most straightforward database to connect to with a Python application since you don’t need to install any external Python SQL modules to do so. What’s more, SQLite databases are serverless and self-contained, since they read and write data to a file. By default, your Python installation contains a Python SQL library named sqlite3 that you can use to interact with an SQLite database.

Links to further resources also included. Straight forward good tutorial!

[Read More]