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 ]

Platform Engineering: Building AWS landing zone with Pulumi

Categories

Tags devops distributed aws containers

In this blog, I will cover some key concepts and architecture of Pulumi. We will be building and provisioning the AWS landing zone. By A B Vijay Kumar.

Author wonders if Terraform is the ultimate tech for IaC? Coming with an application developer background, and entering the full-stack cloud developer – learning another language and syntax is painful. Terraform is a DSL (domain-specific language) and requires significant effort to learn and master.

In this blog series, we will be building the following infrastructure on AWS and will run our applications in the EC2 instance. The article then covers:

  • Install Pulumi
  • Setup AWS CLI
  • Generate Pulumi project — boilerplate code for AWS in Python
  • Activate virtual environment and install dependencies
  • Set up public/private key infra
  • Write Infra code

The article contains a lot of Pulumi code with detailed explanation of every code block. Nicely done!

[Read More]

Controlling concurrency in distributed systems using AWS Step Functions

Categories

Tags programming distributed aws app-development code-refactoring containers

Managing concurrency in distributed systems can be challenging. In a monolithic application, you use familiar concepts such as in-memory locks to avoid overloading a database or prevent overwriting a customer record by two users at the same time. With a distributed system, where your application is dispersed across computing environments without shared memory, these methods are no longer available to you. By James Beswick.

Controlling concurrency in distributed systems using AWS Step Function

Source: https://aws.amazon.com/blogs/compute/controlling-concurrency-in-distributed-systems-using-aws-step-functions//

In this blog, you use AWS Step Functions to control concurrency in your distributed system. This helps you avoid overloading limited resources in your serverless data processing pipeline or reduce availability risk by controlling velocity in your IT automation workflows. With this sample application, you implement a distributed semaphore using AWS Step Functions and Amazon DynamoDB to control concurrent invocations of a function in AWS Lambda.

The article the explains:

  • Deploying the concurrency control application
  • Running the concurrency control application
  • How it works
  • Handling failure

To apply this concurrency control in your own application, replace the branch defined in the Do Work parallel state with a state machine definition that contains the business logic of your application. You also update the ConcurrentAccessLimit value template.yaml to specify the level of concurrency that your application requires. Nice one!

[Read More]

How using same programming language for IaC made AWS Step Function testable

Categories

Tags nosql cloud devops microservices tdd serverless

AWS Step Functions are difficult to test. I found an approach to testing that helped in one particular scenario. It relies on using the same programming language for both testing and infrastructure-as-code (IaC). I hope the idea helps others tame their Step Functions into a testable submission. By Graham Allan.

Instead of testing the Step Function by executing it, I took advantage of using TypeScript for both CDK and integration tests in the same repository. I defined constants in their own file. With this simple change, I can use the DynamoDB client to execute the query in a Jest test. I run the test from my machine. I can iterate on the query without worrying about deploying or executing the Step Function. Sure, I need a real DynamoDB table, but that is rarely modified.

The article main parts will explain:

  • Why are Step Functions hard to test?
  • What about integration testing a Step Function?
  • Adding a DynamoDB task to a Step Function
  • How the shared programming language enabled better tests

Step Functions are hard to test. If that explanation does not work for you, try this: Step Functions are difficult to test in the same way stored procedures on a database server are hard to test. Having a shared programming language across IaC and tests allowed a creative way to gain confidence in author’s system, with more maintainable tests. Excellent read!

[Read More]

Cloud trends show customers increasing investments in hybrid and multicloud

Categories

Tags cloud cio management miscellaneous

Across every industry and geography, companies are working hard to keep pace with evolving business needs and build on their existing digital investments. In my role leading the product team for the core of Azure, I spend a lot of time with customers learning what they need to be successful as they integrate cloud technologies into their business strategy to digitally transform. By Erin Chapple - Corporate Vice President, Azure Core PM & Design.

As many have experienced firsthand, the pandemic has pushed more businesses to adopt wider use of cloud computing technology. A new survey finds it’s also driving more companies to deploy a hybrid (mix of on-premises and one or more public clouds) or multicloud (multiple public clouds) approach. The survey, conducted by The Harris Poll and sponsored by Microsoft, found 86% of all respondents plan to increase investment in hybrid or multicloud environments, and 95% say those technologies have already been critical to their success.

The survey and our own observations both underscore how companies are emphasizing remote work, increasing demands for efficiency and ever-present competitive pressures to reduce costs. While the pandemic has already accelerated use of cloud technology, respondents shared they will continue to proactively and strategically invest in cloud, specifically hybrid and multicloud, in the next few years. Good read!

[Read More]

A primer on WebAssembly

Categories

Tags web-development javascript open-source app-development

To understand why there was a requirement for WebAssembly, let’s take a not-so-quick stroll down memory lane. And why it hasn’t replaced Javascript yet. By Divya Mohan.

So what exactly is WebAssembly? It is a binary instruction format for stack based machines.It is closer to machine code than either asm.js or JavaScript. Therefore, it is a no-brainer that decoding, compiling, fetching, and optimizing WebAssembly code takes lesser time. Why?

The guide then explains:

  • History of the WWW
  • Enter JavaScript
  • asm.js
  • Enter WebAssembly

Introduced as a subset of JavaScript, the asm.js specification aimed at describing a sandboxed virtual machine for memory-unsafe languages like C or C++ and provide a low-level, efficient target language for compilers. Implemented first by the Mozilla Firefox browser, this spec introduced performance improvements via employment of ahead-of-time optimizing compilation strategy for valid asm.js code by the JavaScript engines.

WebAssembly, abbreviated Wasm, was designed to be a portable compilation target for programming languages, enabling deployment on the web for client and server applications.

WebAssembly, abbreviated Wasm, was designed to be a portable compilation target for programming languages, enabling deployment on the web for client and server applications. Good read!

[Read More]

Securing IoT with Quantum Cryptography

Categories

Tags cloud cio infosec crypto iot

The Internet of Things (IoT) is a growing technology that continues to gain traction year after year. On the one hand, it can be helpful, but on the other hand, it carries many security threats. These threats include scalable remote attacks, side-channel attacks on cryptography, DDoS attacks, data breaches, malware, and others. By Roland Atoui.

The article then search answer for the following questions:

  • Why use Quantum Cryptography?
  • Why secure IoT?
  • How does Quantum Cryptography work?

Of course, technical quantum solutions are challenging to implement in IoT devices due to technical and commercial constraints. Therefore, a few security options combine both the quantum and classical approaches. One option keeps the current semiconductor chips but uses quantum techniques to create a unique long cryptographic key for every device. This can be done with a quantum random number generation (QRNG). It creates a noise source with a high randomness level.

Although quantum cryptography and quantum computing have developed quite efficiently, some more advancement is necessary for them to become a reality in commercial systems. Commercial use is a big challenge. Firstly, implementing quantum systems in IoT is expensive. Secondly, large-scale quantum apparatus is hard to afford for many organizations. Thirdly, the properties of photons restrict them from traveling long distances. If these issues can be resolved, we will have successful IoT systems with quantum cryptography. Good read!

[Read More]

Best practices for using AWS StepFunctions

Categories

Tags aws devops cio containers javascript serverless

In this post you will learn some of the best patterns/tricks author has learned during my time creating Step Functions workflows. By Lukas Fruntke.

Since it has been introduced in June Step Functions Workflow Studio proved its value to me several times. As its a low-code editor with the most common configurations already baked-in, the effort of writing/designing a workflow with Amazon States Language plummeted. Those minutes and hours handwriting workflows with 100 lines++ are finally over for good, which is something you must not ignore when dealing with Step Functions.

The main points captured in this article:

  • Make use of the Step Functions Workflow Studio
  • Utilize the service integrations
  • Use .waitForTaskToken
  • Make use of the inbuilt retries
  • Utilize Heartbeats to fail fast
  • Define a Catch Handler
  • Further reading

While AWS offers some 17 “optimized” service integrations (for the definitive list see here), that include different custom options of integrating with the specific services, AWS has released an option to call the APIs of nearly all AWS services directly, as described in this article. This allows you to scrap some of the utility lambdas one uses to add much-needed functionality-augmentation to a service and go with Step Function instead. You will also get links to further reading. Excellent!

[Read More]

Google's 20% rule spend on learning new skills and why it works

Categories

Tags learning management cio agile

Most people spend every second of their workday trying to keep up with their calendars and to-do lists — attending meetings, responding to emails, racing to meet deadlines. This makes it difficult to set aside time to explore ideas that interest us or learn new skills. And during a time when it’s impossible to predict how our jobs and industries will evolve, expanding our expertise is what gives us a competitive edge in the long-run. By Dorie Clark.

How can we ensure we make the time to stay ahead? Enter: Google’s “20% time” rule, a concept made popular when Google went public in 2004:

  • Clearly identify what you want to learn
  • Win — even if you lose
  • Be flexible and committed
  • Look for ways to make it fun
  • Think in decades

Just like with an investment in the stock market, when you invest time in your 20% projects, the power of compound interest is dramatic. What at first seems small and meaningless can enable you to put massive distance between you and your competitors. Good advice!

[Read More]

Search indexing best practices for top performance (with code samples)

Categories

Tags performance nodejs javascript nosql app-development

Every search interface relies on a fast back-end data-indexing process that keeps its search results up to date in as timely a manner as possible. But search indexing is only one side of the coin. The other side is the real-time speed of a high-quality relevant search engine. By Peter Villani.

The article then explains how you could imrpove search performance for Algolia NoSQL database:

  • Indexing for search
  • Indexing to create a company-wide, multi-purpose, searchable data layer
  • Indexing as a “matchmaker” – the collaborative indexing use case
  • Best practices for fast indexing performance (with code snippets)
    • Batch indexing instead of updating one record at a time
    • Batch indexing instead of updating one record at a time
    • Partial indexing (updating only changed attributes)

For all search engines, the search request is the highest priority, with indexing a (very) close second. There are several reasons for this, but the most important is a business argument: every search is a potential game changer, a path to a conversion. Any slow or dropped search request, or irrelevant result, is a potential financial or business loss. Nice one!

[Read More]

DevOps for Node.js engineers: Building and publishing JavaScript application artifacts

Categories

Tags nodejs javascript web-development app-development

An artifact is a single portable file that allows us to deploy our application. It usally is an archive of the project with its dependencies (or not) but could also be a executable binary file. By Florian Goto.

The JavaScript world is generally more flexible than other languages in terms of how to do things. This is most of the time a benefit but it sometimes like standardization (efforts are being made to change that with the OpenJS foundation).

Blog post is split into these sections:

  • Packaging frontend code
  • Build with other languages
  • Publishing to an artifact repository

Contrary to certain belief, the frontend code is actually more complex than the backend (my opinion, could be wrong). On the frontend, you usually use some framework like React with its fancy JSX syntax which requires additional step to run the code. Good read!

[Read More]