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 ]

Google's Engineering Practices documentations

Categories

Tags miscellaneous programming software-architecture devops

Google engineering practices are now open source. The pages in this section contain recommendations on the best way to do code reviews, based on long experience.

The primary purpose of code review is to make sure that the overall code health of code base is improving over time. First, developers must be able to make progress on their tasks. If you never submit an improvement to the codebase, then the codebase never improves. Also, if a reviewer makes it very difficult for any change to go in, then developers are disincentivized to make improvements in the future.

The guide has these sections:

  • The standard of code review
  • What to Look For In a Code Review
  • Navigating a CL in review
  • Speed of code reviews
  • How to write code review comments
  • Handling pushback in code reviews

Excellent guide!

[Read More]

What is GitOps and why it might be the next big thing for DevOps

Categories

Tags devops programming software-architecture

With containers comes a level of agility never before experienced in the world of business. An article by Jack Wallen explaining what GitOps is.

GitOps is a method of workflow that was conceptualized by “everyone who successfully did infrastructure-as-code … is the true creator of the concept of GitOps,” according to Priyanka Sharma, who is the director of technical evangelism at GitLab.

On the surface, it is quite simple. GitOps is centered around using a version control system (such as Git) to house all information, documentation, and code for a Kubernetes deployment, and then use automated directors to deploy changes to the cluster.

Article then deals with:

  • What is GitOps
  • How Does GitOps Work?
  • Why Should You Use GitOps?

First and foremost, GitOps makes your workflow far more efficient. On top of that, using GitOps makes passing SOC 2 compliance far more cost-efficient. And on the topic of saving money. Link to podcast is also included. Good read.

[Read More]

Leveraging the Dependency Injection support in Azure Functions

Categories

Tags azure open-source cloud nodejs web-development serverless

Cecil Phillip, Rich Lander are authors of this video in which they walk you though dependency injection for Azure functions (serverless). .NET developers have been taking advantage of dependency injection (DI) to make their code easier to test and manage. The latest update to Azure Functions v2 now has support for registering services with DI.

In this episode, Fabio Cavalcante from the Azure Functions team showcases how this feature works:

  • Why is dependency injection so important for Azure Functions?
  • What had to happen on the engineering side to enable this feature?
  • How to register services using the DI capabilities?
  • How do our functions consume these services?
  • What scenarios does this feature simplify?
  • How can we use HttpClientFactory in Functions?
  • How can we customize ILogger?
  • What other services are registered by default?
  • Is there support for scoped services?

You will also get links to further reading and resources. Excellent!

[Read More]

A deep dive into Hot Module Replacement with Webpack

Categories

Tags web-development javascript react nodejs app-development

An article by Stanimira Vlaeva about Hot Module Replacement with webpack. webpack is a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser.

Webpack supports a feature called Hot Module Replacement (HMR). HMR exchanges, adds, or removes modules while an application is running, without a full reload. This is significantly faster because the user session is persisted.

Webpack has three closely related terms - module, chunk, and bundle. A module is a piece of JS code that encapsulates data and provides functionality. Modules can depend on one another and thus, form a dependency graph. In the webpack bundling process, a few modules form a chunk. A bundle is an output file, produced by the bundling process. In most cases, each chunk emits exactly one bundle.

However, HMR doesn’t magically reload your app when you change the code. The application itself must know how to react to the incoming changes. Let’s take a closer look at the HMR process.

  • When you make a change, the webpack compiler is responsible for generating a ‘diff’ (hot update) between the old version of the bundle and the new one.
  • The webpack development server handles the transportation logistics for HMR.
  • A special code, injected into your application bundle, fetches the hot update.
  • The module is replaced if an appropriate handler is found.

Video demonstrating difference between Hot Module Replacement and traditional mobile application development cycle is also included. Nice one!

[Read More]

AWS Lambda: how to share code between functions in a monorepo

Categories

Tags serverless containers aws web-development javascript

Yan Cui put together this tutorial about sharing business logic between services in a Node.js monorepo.

His advise can be summarized like this:

  • Encapsulate the shared business logic into modules, and put them in a separate folder
  • In the Lambda handler functions, reference the shared modules using relative paths
  • Use webpack to resolve and bundle them into the deployment package
  • Deploy every service on every commit

Loads of code examples together with deployment script included. And To see how everything fits together, check out this demo repo. It has CI/CD set up already through drone.io. Nice one!

[Read More]

Pivoting to digital maturity

Categories

Tags management miscellaneous teams

An article about seven capabilities central to digital transformation for enterprise. By Ragu Gurumurthy and David Schatsky for Deloitte Insights.

Why do digital transformation efforts sometimes fail to deliver? Applying seven “digital pivots” across the enterprise can help organizations reap the benefits of increasing digital maturity.

Without the right leadership, digital transformation efforts tend not to fulfill their potential. Digital transformation requires executive sponsorship and engagement to both convey the message that digital transformation is a priority and facilitate collaboration throughout the organization.

In search of the factors that lead to digital transformation success, authors surveyed 1,200 senior executives knowledgeable about their organizations’ digital transformation efforts.

The article then explains:

  • Executing digital transformation
  • Seven digital pivots
  • Increasing the impact of digital transformation
  • Prioritizing digital transformation efforts
  • Beyond the digital pivots
  • The benefits: Digital maturity drives financial impact

… and more. Excellent, detailed report!

[Read More]

Concurrent programming in Python is not what you think it is

Categories

Tags programming app-development python web-development devops

In this article, author will first walk you through the distinction between concurrent programming and parallel execution, discuss about Python built-ins concurrent programming mechanisms and the pitfalls of multi-threading in Python. By Melvin Koh.

Concurrent programming is not equivalent to parallel execution, despite the fact that these two terms are often being used interchangeably.

Concurrency is a property which more than one operation can be run simultaneously but it doesn’t mean it will be. (Imagine if your processor is single-threaded)

Parallel is a property which operations are actually being run simultaneously. It is usually determined by the hardware constraints.

The article content is split into few sections:

  • Understanding Concurrent Programming vs Parallel Execution
  • Python Built-ins
  • What is Global Interpreter Lock (GIL)?
  • How to bypass GIL?
  • Multiprocessing – Process-based Parallelism

The constraint of GIL was something that caught author in the very beginning of time as a Python developer. Good read!

[Read More]

Modernize existing .NET applications

Categories

Tags programming app-development miscellaneous

An article by Derya Sezen about the way to modernize existing .NET applications. Together with the Cloud movement, its functions and benefits, software practices and trends have been converging towards creating or migrating the applications towards a cloud-native compliant architecture.

The article discusses few options:

  • Microservices
  • Polyglot architecture
  • Containers
  • Serverless

The article offers a multi-dimensional model for the .NET modernization. There are 3 main dimensions in this model:

  • .NET Core Transition
  • Splitting the Monolith
  • Cloud-Native

… and much more. The last major programming language which is not natively supported on Linux based Kubernetes, .NET versions prior v4.x, definitely needs to be migrated. Good guide!

[Read More]

Enabling enterprise governance in Azure

Categories

Tags software azure miscellaneous open-source cloud

At Microsoft Core Services and Engineering (CSEO), Microsoft used Azure governance to create a solution that enables enterprise-scale governance and compliance enforcement for our entire Azure environment. Article by Microsoft.

At Azure they use Management Groups to create a logical hierarchy within the Azure governance environment. Azure Management groups can be nested, so they use the nesting behavior to replicate the relevant business and engineering structure for the groups and organizations that support each subscription.

The article goes on and covers:

  • Adopting a cloud-centric architecture at Microsoft
  • Adopting Azure governance
  • Building an effective framework in Azure governance
  • Best practices

Azure governance has enabled CSEO to create an Azure-native, enterprise-scale governance solution that will provide decentralized management of our Azure environment and its governance needs. With Azure governance, our environment is more compliant with our organizational policies and, as a result, more efficient, robust, and effective.

The cloud governance hierarchy and few more schemas included. Nice one!

[Read More]

Robotic process automation (RPA) vs. AI, explained

Categories

Tags robotics app-development miscellaneous

An article by Kevin Casey explaining what is the difference between Robotic Process Automation (RPA) and AI. The expanding universe of artificial intelligence includes many terms and technologies.

While just about everyone agrees that machine learning is an AI discipline, that same consensus doesn’t exist with RPA and AI.

One reason for this is lack of consensus is that RPA technologies and use cases to this point haven’t been all that “intelligent.” RPA can do a great job of handling repetitive, rules-based tasks that would previously have required human effort, but it doesn’t learn as it goes like, say, a deep neural network. If something changes in the automated task -– a field in a web form moves, for example –- the RPA bot typically won’t be able to figure that out on its own.

The article then describes:

  • What is the difference between AI and RPA?
  • How RPA and AI work together
  • What is intelligent automation?
  • RPA and AI use cases
  • RPA vs. automation: Plenty of room for humans

The pairing of RPA and AI may bring significant moves forward toward some of the loftier predictions about automation and the future of work.

[Read More]