DevOps / SRE - Top Links Last Week
Week 45 Issue #52
Week 45 — Issue #52
Lightsail Containers: An Easy Way to Run Your Containers in the Cloud (2020)
Amazon Lightsail is an easy-to-use cloud service that offers you everything needed to deploy an application or website. It is ideal to deploy simple workloads, websites, or to get started with AWS. All you need to provide is a Docker image for your containers and we automatically containerize it for you. To create a new service, you can click into the service console to see a new container service already deployed and manage it. To create the service, create a container service: Create a service that is already deployed.
Doppler: A Platform for Managing Secrets Everywhere
Brian Vallelunga came to the realization that managing secrets, environment variables and app configuration wasn’t going to let him quit his day job. He attended a dinner in San Francisco before COVID with around 50 or 60 founders and developers and asked whether this was a problem for others. “They were built for security teams and DevOps teams. And the problem with that is that the security team really cares about security, but they don't care about usability,” he said.
WebSocket — 1 Million Connections using Appwrite
Appwrite is an open-source, self-hosted Backend-as-a-Service that aims to make app development easier. The WebSocket Server used in Appwrite powers a very flexible Realtime API to supercharge your apps with all services of Appwrite. The benchmark was run inside an internal isolated network (VPC) — so no traffic went outside. For the actual benchmark we have used Tsung to simulate users in order to test the scalability and performance of client/server applications.
5 Things to Know About Service Mesh Performance
Service Mesh architectural patterns are bringing in evolutionary change in microservice architectural patterns, no doubt anymore. Cloud native deployments across industries are in various stages of adopting service mesh. Service mesh architectures deploy a sidecar proxy along with every microservice-based application. It's very critical to understand what communication patterns between these deployment elements to truly understand the performance. Benchmarking should be done to reflect production workloads, traffic patterns, end point distribution, infrastructure tuning, etc., in order to provide a realistic impact of service mesh on application performance.
Dynamic by Default: Shopify’s Hydrogen, a New Take on React
Shopify has launched a new React-based web development framework, called Hydrogen. It’s open source and available now as a developer preview. Hydrogen is similar to Next.js, perhaps the most popular React framework, only it was built for e-commerce developers. The focus is on fast server-side rendering, not client-side React, in contrast to the Jamstack approach. Shopify's Principal Engineer, Ilya Grigorik, explains how Hydrogen fits into the existing JavaScript framework ecosystem.
Top five actions engineers should take based on the OWASP Top 10 2021 security updates
The OWASP Foundation released its long-anticipated security vulnerability trends for 2021. This list provides awareness for developers and security teams on the most critical security risks to applications. Insecure design has been added as a new category. Broken authentication has moved five steps down from position 2 to 7. Broken Access Control is considered more critical in 2021 in comparison to 2017 because it moved up four steps from position 5 to 1. New categories are software/data integrity and Server-Side Request Forgery (SSRF)
How to Deploy Laravel WebApp with AWS RDS & AWS Elastic Beanstalk By Zip Source Code
How to Deploy Laravel WebApp with AWS RDS & AWS Elastic Beanstalk By Zip Source Code: "Developer Friendly Deployment Docs" This article is focused on the deployment of Laravel Back-end Application to an auto-scaling AWS server with simple Developer friendly configurations. The next step is to ZIP the source code you want to deploy in the EBS using GitHub. In the next section, I will show you the automated deployment using GitHub using the simple CRUD-based Laravel application.
Infrastructure as Code: the next big shift is here
Infrastructure as Code (IaC) is a pattern where virtualized infrastructure and auxiliary services can be managed using configuration expressed in almost any language, usually hosted in a source code repository. Crossplane is the missing link in the infrastructure as code evolution. The power of Crossplane comes from using cloud native open standards and tools to enable Developers (aka Application Teams) and Ops (aka Platform Teams) to work together, but without depending on each other. Crossplane builds on Kubernetes and capitalizes on its powerful API model and control plane logic (control loops)
DistributedSQL Takes Databases to the Next Level
Rob Hedgpeth is the Director of Developer Relations for MariaDB Corporation. He has been writing code since the early 2000's. Distributed SQL is a single logical database made of multiple database nodes or nodes. The idea is that developers remove nodes on demand in order to accommodate changes in storage needs. The benefits of distributed SQL include the ability to add or remove nodes simply, quickly, quickly and update request requests. The technology’s innovations are based on lessons learned over the past 30 years to deliver true elasticity.
Flowchart: How should I run containers on AWS?
This blog post is for folks with vision impairment or low vision. Writing blog posts is hard, so I made a flowchart! I only wanted to post this on Twitter, but the accessibility text could not fit. Accessibility matters! I made this flowchart to help people with vision impairments or with low vision or vision problems. I made it easy to write a blog post with a flow chart. I also made it easier to write blog posts for people who have vision impairment, low vision, vision difficulties.
The Definitive Guide for setting up a clean and working AWS EKS Kubernetes Infrastructure
The Definitive Guide for setting up a clean and working AWS EKS Kubernetes Infrastructure. We want to build a full infrastructure where a demo application is running on an EKS cluster and is publicly available. We need a VPC that spans two availability zones, each with public and private subnets available. A public load balancer that is supplied with traffic from users and forwards this traffic to the EKS worker-nodes. A DNS record that resolves a subdomain to the DNS name of the public loadbalancer.
Setting up Prometheus Server with Ansible
Prometheus records and stores its metrics as time-series data (i.e. changes are recorded over time) Prometheus was developed at SoundCloud to meet the needs of a multi-dimensional data model, operational simplicity, scalable data collection, and a powerful query language, all in a single tool. Prometheus uses the HTTP pull model for its metric collection. In the pull monitoring technique, the agents on the systems to be monitored contain the monitoring configuration. The agents know what they need to collect and push the metrics to the monitoring system. The monitoring system gets these metrics by pulling from the agents.
Rust Is the Future of JavaScript Infrastructure
Rust is a fast, reliable, and memory-efficient programming language. It's been voted the most loved programming language six years in a row (survey) It's now used at Facebook, Apple, Amazon, Microsoft, and Google for systems infrastructure, encryption, virtualization, and more low-level programming. Rust is now being used to replace parts of the JavaScript web ecosystem like minification (Terser), transpilation (Babel), formatting (Prettier), bundling (webpack), linting (ESLint), and more?
Logs and tracing: not just for production, local development too
Google Cloud Trace is a distributed tracing solution for our Go app. We use Google Cloud Platform, which ships logs into StackDriver. We want to keep a small surface area of developer tools, avoid running infrastructure where we can, and lean into our preference for Google Cloud platform. Traces are useful as a debugging aid, but it's not everything- we log a lot of contextual information that could be really useful to see next to our trace. How to make that jump from a single log to all the same log line can make a world of difference: add the trace URL to every log line of every log.
Git techniques
Using git can be daunting at first, but the minute it gets hairy we're all screwed. I've decided to take a closer look at what git commands our engineering team uses on a day to day to get out of hairy situations. This first part will dive and revisit some of the basic git commands and will serve as a basis for the second part which will look into some of our favourite git tricks, workflows, case studies & more advanced scenarios we sometimes get into. We will be using a Github repository that I have created and can be found here.
Ferret — Your local Environment made Easy
Ferret is a pipeline composition scripting framework. It allows you to create and reuse predefined scripts in one cohesive YAML file which is both readable and flexible. Ferret allows the reuse of predefined pipelines as steps inside newly created pipelines. It fetches the pipelines from a Github repository (similar concept to Github Actions) and then executes the pipeline. The output of Ferret shows the progress and status of the steps used in the pipeline itself. Currently Ferret supports only MacOS and Linux (Homebrew supported Operating System)
Everyone Hates systemd
The Linux community is divided over the use of a Linux-based init system called "systemdock" This article will recount the history of Linux init systems, the rise of systemd, and why it has become so infamous in the various Linux communities. The goal of this piece is to educate the various folks in the tech field about a core component of the Linux ecosystem. In order to understand its present, we must understand its past and the reason it was created in the first place, we’ll need to learn about init systems.
Mozilla Guidelines to Secure SSH
The goal of this document is to help operational teams with the configuration of OpenSSH server and client. Mozilla's Security Assurance and Security Operations teams maintain this document as a reference guide. Only non-default settings that are security-related already provide good security, thus changing them is at your own risk. This guide shows settings for the most commonly deployed versions at Mozilla - however, using the latest version of Open SSH is recommended. The guide is mainly for use by RHEL 5.6, 5EL6, etc. which run older versions of the older versions.
Observability and Monitoring 101
There are two main approaches to monitoring systems: push monitoring and pull monitoring. Push monitoring is different from one company to another, nothing is written in stone. Monitoring and observability are designed to detect service degradations, outages, and unauthorized activity as well as to identify long-term trends for capacity planning and expose unexpected side effects of changes. The vast majority of software services and systems should aim for almost-perfect reliability rather than perfect reliability, that is 99.99% rather than 100%. Service Level Objectives provide precise numbers to define what “almost always” means for a particular service.
Infrastructure as Code — for everyone
"Infrastructure as code" (IaC) has rapidly become the standard for provisioning and managing Infrastructure. But the leading IaC tools are still complicated to use and require deep Cloud/Infrastructure expertise. In this post, we’d like to introduce a new alternative — Opta, designed for everyone. It helps you run in the cloud with an automated, secure and scalable setup — but without becoming an Infrastructure expert yourself! Opta is a new kind of Infrastructure-As-Code framework where you work with high-level constructs.
postman flows
Flows is a functionality meant to make it possible to work codeless in Postman. The Beta version is still in the development process and we have a chance to play with it. Flows allows users to create variables and share data between requests. You can use the new functionality to create a new flow of requests and test requests with the help of Flows. It is in the Beta version, you can send feedback to Postman team and postman team. So far Flows has only been added to the list of available blocks.