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 ]

Writing event-driven serverless app plus local development

Categories

Tags cloud serverless microservices aws

Rupak Ganguly lengthy article on developing and event-driven serverless application. The application has a simple frontend using curl that calls into a couple of backend services: a users service and an email service. It relies on the serverless framework, and app is then deployed to AWS Lambda.

The post highlights event-driven application development with focus on full local development experience. Author chose to develop app in Node.js framework and the serverless application platform.

You will get detailed info how to:

  • Setup the development environment
  • Create an application project
  • Create a users service
  • Create an email service
  • Write an event-driven application
  • Run the serverless services locally
  • Run the full application locally

And you will be able to get the full source code to the mailman application project on Github. Excellent.

[Read More]

How to build multilingual app (PHP and Gettext)

Categories

Tags programming php

Igor Santos article on challenges of building multilingual applications. Whether you are building a website or a full-fledged web application, making it accessible to a wider audience often requires it to be available in different languages and locales.

Internationalization (i18n) of your codebase, helps ensure that it can be adapted to different languages or regions with relative ease.

He then dives into:

  • Tools for internationalization
  • Libraries to make things easy
  • Separating domains
  • Locale code
  • Tips and tricks - e.g. server caching issues

He also describes why you may want to use the Gettext formats, so you can use the original Gettext toolchain (including Poedit) as described in the rest of the chapter.

Article then goes into example usage and how in a common application, you would use some Gettext functions while writing static text in your pages. Plenty of code examples included.

[Read More]

DDD - what's wrong with CRUD

Categories

Tags programming tdd software-architecture

Golo Roden extensive article about Domain Driven Design and limitations of CRUD. CRUD is simple but limited: the artificial restriction to four verbs and the destructive actions UPDATE and DELETE cause numerous problems. Typically, you will realize these problems early on, even in small applications.

Author builds his case around simple MVC application. All in all, the application is so trivial that it’s hard to not think about implementing it using CRUD: a list where you can add, change and delete entries - why should you solve this any differently?

A closer look, however, reveals a number of questions which at least create doubt that the application is really as trivial as it seemed at first glance.

Author then goes on and writes about:

  • What’s the intention of each action in CRUD
  • Domain language vs technical language
  • CRUD loses history - and what it means
  • What’s wrong with CRUD?

This is the first part in series of articles. Recommended.

[Read More]

MongoDB performance issues – fact or fiction

Categories

Tags nosql database

Ken W. Alger blog post aiming at clearing up the conversations about MongoDB performance. Often information against MongoDB is based on outdated data and older versions of MongoDB. Clearly, in the past there were some issues with data scalability and data concurrency in those earlier versions. In fact, Jepsen has done extensive tests on MongoDB on lost updates and dirty and stale reads.

The new versions of MongoDB address the results of these tests.

MongoDB 3.4.1 (and the current development release, 3.5.1) currently pass all MongoDB Jepsen tests….These results hold during general network partitions, and the isolated & clock-skewed primary scenario.

Beyond data security, customers are finding huge benefits in performance in the more current releases of MongoDB. Improvements to, or the introduction of, technologies such as replication compression, the WiredTiger storage engine, in memory cache, and performance enhancements to sharding and replica sets have been a win for users.

You can read more about his conclusions in his published results. You will also find some charts and case studies accompanying this article.

[Read More]

MongoDB architecture explained

Categories

Tags database nosql software

Older post from The IBM BP Network about MongoDB. In the blog authors explored the fundamental concepts and assumptions that underlay the architecture of MongoDB.

MongoDB’s design philosophy is focused on combining the critical capabilities of relational databases with the innovations of NoSQL technologies. Modern applications impose requirements not addressed by relational databases, and this has driven the development of NoSQL databases, which offer many features including: flexible data model, scalability and performance, always-on global deployments.

Article then describes:

  • MongoDB flexible storage architecture
  • Dynamic schema
  • How it deals with consistency (ACID compliant at the document level)
  • Availability - native replication
  • Security

Also links to further reading. Old but good article.

[Read More]

Negotiating key IT vendor contracts and CIO

Categories

Tags cio software-architecture agile

Brian E. Thomas article on valude proposition when negotiating new contracts. While it’s important for CIOs to provide a strategic advantage and to work on creating a partnership mentality, one area that needs to be smartly managed are those cumbersome and expensive vendor contracts.

Before CIO negotiates a key vendor contract, he/he needs to have developed the right vendor management strategy. In order to negotiate key IT vendor agreements so as to benefit your company as well as preserve the vendor relationship, CIO needs:

  • Recognizing the value - strategic partners provided effective delivery and gone one step further
  • Regain control - protection of your interests via four-step negotiation process (described in article)
  • Additional best practices

Striking the right balance with negotiating a key vendor contract is just as much about the planning as it is about the approach.

[Read More]

Service discovery for microservices with mu on AWS

Categories

Tags microservices aws software-architecture

Casey Lee post about using stelligent.com tool called mu for microservices discovery. mu is a tool that makes it simple and cost-efficient for developers to use AWS as the platform for running their microservices.

One of the biggest benefits of a microservices architecture is that the services can be deployed independently of one another.

Author also discusses common solution to microservices discovery:

  • Load balancer per microservice
  • Shared load balancer
  • Client load balancer

In the article you’ll learn how to create a zuul router service to provide an edge service via Netflix’s Zuul. Zuul is a proxy service that serves as the front door for all requests from outside the microservice environment. Zuul will use Consul for service discovery to determine where best to route the incoming request. Consul is also used for service discovery and registration of your microservices.

If your infrastructure lives on AWS Cloud - have a look!

[Read More]

MySQL 8.0 performance and ReadWrite workloads scalability

Categories

Tags sql database software

Dimitri Kravtchuk (MySQL Performance Architect, Oracle) - published blog post on new MySQL 8.0 performance. He writes about how their Read-Only scalability was a big pain, as Read-Only (RO) workloads were often slower than Read-Write (sounds very odd: “add Writes to your Reads to go faster”, but this was our reality ;-)) – and things were largely improved since MySQL 5.7 where we broke 1M queries per second (QPS) barrier and reached 1.6M QPS for the first time. However, improving Writes or mixed Read+Writes (RW) workloads is a much more complex story.

They identified the main scalability show-stoppers in MySQL 5.7 and current 8.0 release candidate for RW and IO-bound workloads:

  • REDO log contentions are blocking your whole transaction processing
  • Transaction (TRX) management
  • internal locking and row locking (LOCK)
  • historically as soon as you’re involving any IO operations, they all will go via one single and global locking path (fil_system mutex) which will make a use of faster storage solutions (flash) simply useless.

Article then goes in length how they redesigned InnoDB REDO with detailed charts and performance tests. Plus download the tarball with author’s scripts + sysbench binary + my.conf. Excellent!

[Read More]

Advanced kubernetes ingress

Categories

Tags kubernetes containers devops software-architecture infosec

Björn Wenzel deatiled writting on how to to setup a more complex kubernetes ingress example. This blog post is building on his previous post - Install kubernetes ingress. The application in this example has an api-server and a separate ui server.

This is hands on tutorial with many references to provided code. It focuses on:

  • The ingress path-based routing for the same domain
  • SSL certificate and how to add it to the cluster
  • Kube-Lego deployment to the cluster for Let’s Encrypt certificate generation

You will learn how Kube-Lego can generate a kubernetes secret called with a Let’s Encrypt certificate valid for your application. And then Kube-Lego will deploy the secret for you. Excellent!

[Read More]

Getting started with Webpack - dev server

Categories

Tags javascript programming nodejs

Abraham Williams sweet post about moving fast when developing. Developers want to move fast 🚀 🚀 🚀. Manually triggering a rebuild of your source code after ever little change is slow and annoying.

Webpack are constantly adding features and fixing bugs so they release pretty often. With the Webpack Dev Server and Webpack watch you can greatly improve your code, build, try cycles.

Series of commands and visual clues will guide you through this tutorial. After going through this tutorial you can write code, save it and Webpack will push the changes to the browser without you ever having to leave the editor.

Also the source code available on GitHub and check out the next article Getting started with Webpack: Source Maps.

[Read More]