1,920 karma · joined July 27, 2014
Straight Qpid Dispatch (without waypoint messages to a broker) is basically providing something similar to HTTP, as far as end-to-end acknowledgements and "synchronous" processing (as in both the client and server must be up and stay up for the lifetime of the request). No surprise, this makes it way faster than a traditional broker, while still offering similar delivery guarantees.
This has some very painful downsides.
First, traditional message brokers (ie queues, topics, persistence, etc) introduce a potential bottleneck for all communication, and on top of that they are _slow_ compared to just using the network (ie HTTP, with no middleman). I've had customers who start breaking apart their monoliths and replacing with microservices, and since the monolith used messaging they use messaging between microservices as well. Well, the brokers were already scaled to capacity for the old system, so going from "1" monolith service to "10" microservices means deploying 10x more messaging infrastructure. Traditional messaging brokers also don't scale all that well horizontally, so that 10x is probably more like 20x.
Second, performance tuning becomes harder for people to understand. A core tenant of "lean" is to reduce the number/length of queues in a system to get more predictable latency and to make it easier to diagnose bottlenecks. But everyone always does the opposite with messaging: massive queues everywhere. By the time the alarms go off, multiple queues are backing up and no one is clear on where the actual bottleneck is.
What I would like to see more of is _strategic_ use of messaging. For example, a work queue to scale out processing, but the workers use HTTP or some other synchronous method to call downstream services. Limiting messaging to very few points in the process still give a lot of the async benefits to the original client, while limiting how often requests hit the broker and making it easier to diagnose performance problems.
On top of that, many railroads still operate with a static set of blocks, where the track is divided into areas called blocks that do not change over time. Only one train has essentially a lock on a block at a time. So a train has to own the block it is on, but also needs to get access to the next block early enough to avoid an emergency braking event. This reduces the capacity of a line.
There's a movement towards "moving block" systems, where railroads use sensors to track train movement and create a moving buffer around the train, which should increase capacity.
I work at Red Hat, happy to answer questions. We also just released OpenShift 4.0, which brings in all the features from the CoreOS acquisition, like single push button kubernetes and OS upgrades.
For the 10 largest metro areas (https://fred.stlouisfed.org/series/SPCS10RSA), the annual returns are the following. Interesting to note that nationally home values are over their 2006 peak values, but that in the 10 largest metro areas home values are only about even with the previous peak.
10 Years: 3.8%
20 Years: 4.7%
30 Years: 3.6%
Alternatively, if you look at just San Francisco (https://fred.stlouisfed.org/series/SFXRSA): 10 Years: 7.8%
20 Years: 5.7%
30 Years: 4.8%To avoid cherry-picking, if we go out to 20 years housing has an average annual return of 4%, and the S&P 500 is at 6%. Go out 30 years and housing hits 5% while the S&P is at 10%.
PS, I really appreciate the Case-Schiller index used above for housing prices. It's methodology specifically targets the change in value of a house, instead of capturing overall price increases caused by house flipping, the expanding size of houses over time, etc.
So it would look something like this:
job:
only:
refs:
- merge_requests
variables:
- $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master"I work for Red Hat, and AWX is the upstream community project for Ansible Tower, which we provide support for. AWX is one of our newer open source projects (we open sourced it after acquiring Ansible), so you'll sometimes have better luck searching for information on "Ansible Tower".
In most large companies, issuing certificates remains a manual process. Generate a CSR, create a ticket, wait for response, download certificate, install on host. ACME seems like it should be the standard API for fixing this.
In other words, 9 concurrent pregnant mothers would show 1 month/baby on those charts.
If I have that right, their comment makes more sense. After 20 concurrent requests, the overall throughput of operations/second does not increase with additional concurrency.
Support is something enterprise customers want, and they will sign yearly contracts to get it. In return, if/when they have a production issue, 0-day vulnerability, etc, they have someone to contact (or may have contacted them!) to help them resolve the issue. And Red Hat has experts in both support and engineering, meaning resolution can be anything from a config change to a rapidly released patch. Happy customers renew year after year.
I work for Red Hat Consulting. This is a very different beast, consulting involves selling lots of short to medium term projects with the occasional long project, then trying to optimally staff those projects. You only get revenue while consultants are on the ground. It's not surprising to me that an open source company that relies only on consulting wouldn't be sustainable.
Responding to some of the other comments, Red Hat revenue is nearly all from providing enterprise support for completely open source software. This is critically different from "services", ie consulting. These are yearly contracts that provide clients insurance if/when they have a production issue, a new major vulnerability is disclosed, etc, that someone knows the technology from the ground up and also knows the details of their deployment and can get them back into a good state. Our support+engineering teams are top notch, so retaining customers year over year is relatively easy.
I work in Red Hat Consulting, which is a much smaller share of overall revenue. It doesn't scale nearly as well, since you only get revenue periodically for weeks to months at a time, with a lot of overhead to sell and manage assignments.
Ie, the end of "trusting" videos from unknown sources with unknown reputations and agendas.
This model works very well for us, but I appreciate that it can be hard to replicate.
It is probably not the most complex integration technically, but it made the experience so smooth.