Old School

Dec. 22nd, 2024 08:15 pm
qatsi: (wally)
Book Review: Amazon DynamoDB - The Definitive Guide, by Aman Dhingra and Mike Mackay
Over the years I've preferred to find out about new tools and techniques by reading a book about them. For quite a while, I'd been looking for a book on DynamoDB, but none worth taking seriously seemed to show up, as if this mode of learning had gone out of fashion (despite books on other NoSQL databases being readily available). I came across this recent release rather randomly, by searching without much expectation.

This covers the necessary ground, and it does so competently. To me, DynamoDB is difficult to classify among the varieties of NoSQL - is it a key-value store or a document store? It leans more toward the former, but with some features of the latter. The book gives various examples of the operations that can be performed, including through the use of the AWS console and the NoSQL Workbench tool, with a good description of the billing models available.

A fair amount of the book is dedicated to database design, with contrasts drawn from the more conventional normalization of RDBMS schemas. Secondary indexes are explained, with the pros and cons of the local and global options. There's some material on the internal architecture of DynamoDB, which is interesting but perhaps not directly relevant. More advanced topics include backup and restore, change data capture (CDC) streams, caching and multi-region operations. The final chapter on migrations is particularly practical, including some cases where DynamoDB may not be a good option. This book feels like it fills a gap in the market, and gives a pretty good grounding on the database.
qatsi: (Default)
Book Review: Learning Domain-Driven Design, by Vlad Khononov
A few years ago I had a fairly indifferent reaction to the original DDD book; a colleague who is more enthusiastic has been passing a copy of this around the team. It's been a tricky few months at work, with some technical and team changes that I don't like, so I inevitably approached this with some scepticism, whilst trying to keep an open mind. There are some things to agree with, like ubiquitous language, but even that is challenging in practice, in a large organisation with legacy of any size. Bounded contexts and aggregates ought to make sense, but the flexibility about granularity starts to weaken the argument, because it opens scope for disagreement. I found the argument about layered architecture versus ports and adapters particularly weak. To me it's presented confrontationally, and the exposition of the ports and adapters idea is thin, unclear, and lacking good examples. Microservice Patterns offers a better discussion on this area in my opinion. Ports and adapters still require layers in my view, it's not an either/or. The discussions on CQRS and event-sourcing were clearer; the similarly named, but totally different, practice of event storming, seemed full of contradictions and unlikely to lead to consensus. I'm afraid, with the exception of event-sourcing, it didn't really move the dial for me.
qatsi: (wally)
Book Review: OAuth 2 in Action, by Justin Richer and Antonio Sanso
I began reading this before going on holiday, but it didn't feel like holiday reading, so I put it down until I returned. Then I had covid, so this was very much a reading in two halves. But it also felt like a book of two halves, with some of the later chapters going a bit further off-topic than I would have liked. The book begins with a thorough run through several OAuth scenarios, showing how the different grant types work and explaining their pros and cons. It's a complicated subject and I'm not sure these are always clear. Several chapters are spent discussing potential implementation vulnerabilities and whilst there is good advice and it's clearly well-intentioned, it's alarming to learn the ways in which such a widely used standard can be abused. The discussions on JWT and OIDC are very useful to my work, but the later chapters on US health care standards seem irrelevant. On the whole I found this a decent reference for the technology, but there are quite a few chapters I doubt I'll dip into again.

Kanban

Apr. 23rd, 2023 11:09 am
qatsi: (wally)
Book Review: Kanban – Successful Evolutionary Change for Your Technology Business, by David J. Anderson
A re-read of this after several years. In 2015 I was joining a team that used Kanban and I wanted to find out more about it. This time I am in a team that is experimenting with Kanban, partly at my advocation. Some of what I wrote then, I still agree with, but in other aspects I am inclined to disagree. I'm not going to say that the CMMI model is entirely discredited, but I do think that most organisations probably over-estimate their maturity, and like ISO9001 and its ilk, having and adhering to a process does not automatically make that a good or practical process. In the current situation, my main motivation for moving to Kanban is in fact the lack of maturity, the continual incapability to align work into two-week sprints; I feel we need a more natural cadence of just "whenever it's right" to pull in more work and deliver predictably. Additionally I think that Kanban works well with continuous delivery, and with DevOps; for the latter, the "class of service" idea espoused in the book is potentially useful. As a team we are also going to need to be careful about work-in-progress limits, but reorganising our board has already revealed a handful of tickets that were started at some time in the past and have never been completed.
qatsi: (wally)
Book Review: The Mythical Man-Month - Essays on Software Engineering (Anniversary Edition), by Frederick P Brooks Jr
This classic came up a few months ago at work; whilst I'd heard of it and read the No Silver Bullet paper as an MSc student, I had never read the whole book. I decided it was worth a go, to see how relevant it still was. (The author was a manager working on IBM System/360 and OS/360 in the 1960s/70s, the book originally published in 1975 with this update twenty years later.)

The first thing I noticed was the quite chatty and cheery style; it has the air of fond reminiscence of something achieved, despite difficulties. It also has an air of pragmatism, pointing out the need to work within the reality of any situation. There are some aspects of the book that are laughably dated - who below C-level has secretaries now? - and aspects that are dated in other ways - Brooks exclusively uses male pronouns to refer even to abstract colleagues. (Though to be honest, it grates in more modern books when one feels the author pointedly using female pronouns. I'm sure it's not easy to word everything in a neutral style, but perhaps we should try harder.)

But by and large, and lifting from Brooks's terminology in the No Silver Bullet chapter, the dating of technology is "accidental" rather than "essential" to any of his arguments. On the title essay, the principle is that the conventional relationship between effort (man-months) and delivery timescales does not apply to IT projects: there are practical limits that mean you can't deliver something more quickly by adding more human resources to it, in a way that might apply in other industries. The interrelationships between tasks just generates dependencies and non-linearity. Other essays in the book give thoughts and advice on how to better run such a project.

I found the essay on "Surgical Teams" particularly interesting, as it is perhaps the one area where the author's views do not conform to current practice - he argues for a strong hierarchical and command structure, whereas current practice emphasises interchangeability and flattened, empowered teams. However, the corollary of this is that it undoubtedly weakens what Brooks calls "conceptual integrity": in almost all services and systems the absence of a singular "controlling mind" is visible in the inconsistencies and joins between components, or even individual endpoints within a service.

Whilst it's not written in such terms, there is clearly embryonic thinking about agile processes. In one of the update chapters, Brooks reflects on, and has the honesty to disagree with, some of what he had written earlier. The waterfall model comes in for some criticism and he re-evaluates his approach to prototyping with an emergent direction towards incremental delivery. This perhaps is an "essential" change, the ability to release software more or less on-demand.

But fundamentally, Brooks's Law still applies: Adding more software developers to a late-running project makes it run even later.

Nostalgia

Jun. 20th, 2022 08:23 pm
qatsi: (wally)
Book Review: Electronic Dreams - How 1980s Britain Learned to Love the Computer, by Tom Lean
A friend recently commented that it's interesting to read about history you actually experienced, and it's certainly the case for this book. In fact, Lean starts rather before my time, in 1948, with the Manchester Baby, with a summary of developments through to the introduction of the microprocessor in the early 1970s. (For bonus points, Lean goes into Dominic Sandbrook feel-good history mode, in a diversion into Doctor Who with a mention of WOTAN taking over in the Post Office Tower of the 1960s.)

For some years, "home computers" had been available as kits for electronic hobbyists, though the input was likely a row of switches and the output a row of flashing lights. US manufacturers were starting to sell pre-assembled computers, but for the most part they were very expensive in the UK.

The prospect of industrial computers driving electronic automation, with dramatic changes to the labour market, sparked the government into action, as much as a government ever does, with awareness campaigns for industry. Meanwhile, in Cambridge, innovations were taking place on a budget. Sinclair produced the ZX80, then the ZX81; for a more polished product at a premium, Acorn produced the Atom. The BBC wanted a reliable machine it could use in a TV series on home computing; Acorn got the deal with the successor to the Atom and a more rigorous dialect of BASIC. The floodgates opened. Whilst not cheap, home computers became more available for those interested. (I had a Dragon 32; who needed lower case?) The government made some funding available for schools, with the BBC Micro being the common choice. (Where I lived, the alternative Research Machines 380Z, later 480Z, had been chosen, perhaps an odd choice, but as RM started to produce the IBM PC compatible Nimbus from the mid-1980s, a prescient one.)

Lean describes the boom - where people were waiting for months because of limited supply, and flaky quality control meant faults were not uncommon - and bust. With hindsight, the fact that all these machines had different, incompatible, dialects of BASIC (with the Jupiter Ace offering an even less-compatible FORTH) seems an obvious precursor to balkanization, and the use of standard domestic cassette tapes and recorders meant robust or cross-platform storage was impossible. Although the nominal intent was to offer general purpose machines, for learning and exploring technology, in practice commercial success was driven by available games software. The winners kept going into the 1990s. Another sector emerged as some manufacturers went up-market, taking on the IBM PC in the market for business applications. For a time, Britain led the way, though it all looks rather parochial now.

Lean also writes about other related technologies that didn't make it - Prestel, something of a walled garden pre-Internet experience plagued by Post Office bureaucracy (this was in the days of the acoustic coupler, surely the dial-up equivalent of dial-up) and monopolistic charging structures, and the Domesday Project, which picked what turned out to be an expensive technological dead-end and didn't consider the consequences of hardware obsolescence. But coming full circle, he notes the Raspberry Pi as something of a return to the original idea of a home computer for learning.
qatsi: (wally)
Book Review: Hacking with Spring Boot 2.3 - Reactive Edition, by Greg L Turnquist
I've been working with the Spring Webflux reactive stack for 18 months or so now, and whilst it does make more sense, I still feel it has a very steep learning curve without enough learning materials. Having seen a presentation by Josh Long, I didn't feel confident his book would help with real-world scenarios, and a colleague who has a copy gave it only a lukewarm endorsement; I came across this one and despite the somewhat off-putting title, decided to give it a go.

It's not a bad book, and I did learn some things along the way, but I think it may suffer from the author writing two books in parallel (there's a similar title for the "Classic Edition", which presumably deals with the conventional web stack). To be fair, the book is about Spring Boot; quite how much of the Spring ecosystem should be drawn into scope is debatable. Turnquist reaches into Spring Data, Spring Boot Actuator, and Spring Boot Security, which is a good start. Despite being one of the contributors for Spring HATEOAS, he unfortunately alights on some of the limitations and disadvantages of this format in a chapter on RESTful APIs, offering rather quirky workarounds. But on the specific reactive stack, which is the differentiating part I was most interested in, there are somewhat slim pickings. The basic idea behind reactive programming is outlined, along with the base APIs, but it rarely goes anywhere beyond superficial. There is no good explanation for the difference between map and flatMap, with little more than advice to try the latter if the former doesn't work. Yet this is a fairly fundamental point, about which I am hesitant, and still little the wiser. It is something to do with the Reactor framework kicking off another subscription, I think, but it is not well explained (and had I found good explanations on the web I wouldn't have bought this book). R2DBC is mentioned but avoided as not yet mature at the time of writing (publication was May 2020), with little suggestion for how to face the almost inevitable real-world problem of melding reactive and non-reactive code.

The code examples, sadly, are all too reminiscent of real-world code, often difficult to read. Through my career we have progressed from DLL hell through Classpath hell and now into Lambda hell. If I have to fight with counting parentheses and indentations when reading, then it's poorly-written rather than idiomatic code IMO. On the other hand, the sections on testing were more useful, with reasonable efforts around StepVerifier and a useful introduction to BlockHound. On the whole this book is probably a reasonable short introduction to Spring Boot, but someone already familiar with it will have less to gain.
qatsi: (wally)
Book Review: Microservices Patterns, by Chris Richardson
This had been on my radar for a while, and although I would have preferred a Kindle edition, it was listed as "under review" on Amazon, with the suggestion that tables or graphics weren't properly rendering, so I opted for the dead-tree version instead.

There's the question of when it's appropriate to read a book on patterns. Every computing topic now seems to have its own patterns book, since the original. It's not really for the beginner, because it doesn't cover the basics (perhaps Sam Newman's book is better here); for more expert users, does it have anything to offer? I often find that retrospective reading formalises and reinforces what has been learnt on the job, or indicates alternative paths that could have been chosen. This is a book that fulfils those objectives. In particular, I learnt more on sagas, a clearer exposition of CQRS, a little on DDD (about which I am still a bit sceptical), and a useful introduction to service meshes and istio (where I could well imagine some details evolving rapidly, but concepts remaining valid). On API gateways, testing, observability and containerisation I was on firmer ground.

There are drawbacks too, though. A lot of the heavy lifting is done using the author's own Eventuate Tram framework, which fills a niche but is hardly commonplace. Admittedly it's an area where there is no gorilla, and I think many people (myself included) roll their own, accepting potential inconsistencies and coming up with alternative strategies to deal with them. Although there's a list of patterns on the inside cover, it's a shame that the diagram on microservices.io isn't included in the book, as this would help to draw the patterns together.
qatsi: (wally)
Book Review: Domain-Driven Design - Tackling Complexity in the Heart of Software, by Eric Evans
I'd been aware of this book for quite a while, and when it was heavily reduced on Kindle I decided the time was right. I wondered whether it would reveal that I'd been doing it all wrong for years, or whether I was doing it right without attaching the right names to things.

It's a mixed book. I found the early discussion on entities, value objects, and repositories, illuminating in that they clarified what I already intuitively understood. But whilst there was nothing to object to in the later parts of the book, it didn't really retain my attention. Published in 2004, it hasn't aged well. This may be a reflection on my personal technology stack. The code examples in the GoF Design Patterns are generally written in C++ or Smalltalk, and so were never all that familiar to me. Here, the code examples are in Java - and it's Java without generics, it's Java with entity beans, that's how old it is.

There's a whiff of Conway's Law to it as well. Design choices can be political and organisational, as well as technical. Here one senses the stale bureaucracy of enterprise software, which certainly isn't dead, but is something I suggest most enthusiastic techies would tend to avoid in a way that perhaps wasn't possible a decade or more ago. Enough companies have woken up to the need to devolve control, and to get success from that. The concepts are still valid, but the way they are presented does not always feel all that relevant.
qatsi: (wally)
Book Review: Terraform: Up and Running: Writing Infrastructure as Code, by Yevgeniy Brikman
I first encountered Terraform in a previous job, though it was heavily repackaged by an infrastructure team to the extent that I found it exhibited something like the Lasanga code anti-pattern (aka "wool wrapped in cotton"), where additional layers serve no value and inhibit understanding of the tools in use. We've been experimenting with it in my current job, so there's been a good opportunity to get a better handle on the basics of the tool and - perhaps - to avoid some of the mistakes encountered in the past.

It's an imperfect analogy, but I think of Terraform as Puppet/Chef for the cloud, and indeed that's where Brikman begins, discussing "configuration management" software versus "provisioning" software, and pointing out that in fact these things can cross over to a considerable extent; some tools are declarative whereas others are procedural, and so on. The book does a fairly good job of describing HCL (Hashicorp Configuration Language) and the Terraform tool. The examples all use AWS, which is a reasonable choice though obviously not for everyone. One of the strengths of Terraform is the support for a wide variety of ecosystems - Azure and GCP are supported as well, for example, as are other cloud systems.

One area I have to disagree on - or perhaps I misunderstood - is his recommendation to create separate folder structures for different environments. For me, the risk of diverging two or more sets of files negates so much of the benefit of using the tools in the first place, and I've seen that happen. Of course, the back-end state, which is used to keep an inventory of the resources under management, must be kept separate. It's better when you can partition your infrastructure into small pieces of state, too, so that you can lower the risk for any individual change. It's inevitable in a book that you will focus on an end-to-end example, but then assembling all the resource configurations so that you can provision everything with a single command (and a bit of good luck from your cloud provider) feels like it's treating the infrastructure as a monolith, when it would be better to treat it as a set of microservices, each small group following its own release (provisioning) cadence.

The chapter on testing Terraform code turned out to be a bit disappointing - with a tool of this type it's inevitable that mocks and stubs aren't suitable, so everything is to some degree an end-to-end test - but it does at least offer some ideas, and finally observes that testing an entire infrastructure is impractical. It would have been nice to link that to disaster recovery, though: it's not something you want to verify on every build, but a periodic check that you can provision from scratch is powerful. The book concludes with some useful observations about advocating IaC to project stakeholders.
qatsi: (wally)
Book Review: Normal Accidents - Living with High-Risk Technologies, by Charles Perrow
I came across this book from a blog post I encountered on my feed. It chimed with problems both technical and cultural at work: the idea that increasing safety measures does not always make a system safer. Of course, I'm a software engineer and the system isn't a hospital or a nuclear power station, but I was interested to see whether there were any principles that could be transferred.

It's quite a dry, academic read, but not impenetrably so. Perrow begins with an example of a simple mistake one might make in the morning, and a series of incidents that may follow from it on the way to a job interview. The sequence of events sounds unlikely, but that is rather the point. There follows a more thorough discussion of the Three Mile Island accident of 1979, of which I have a vague memory as a child. Establishing cause is one thing; establishing responsibilities is another. A catalogue of errors and neglect emerges. The point is, most of these things, on their own, would not have led to the accident: the unlikely coincidence of these things made it inevitable. Further chapters examine other industries, such as the chemical industry, air and marine transport, dams, mining, space travel and genetic engineering. The results are rarely reassuring; the nuclear industry gets highlighted only because it is relatively new, and can, in the case of leakage, readily cause damage to a much wider environment. Only air travel emerges with a reasonable bill of health, based on a combination of self-interest (no airline wants a bad safety reputation) and a culture of "blameless" reporting systems (though one never knows how blameless it actually is) for minor inconsistencies and infringements.

This is a social science book, and Perrow probes the convenient tendency for investigations to assign "operator error" as the cause of accidents. While this can't be excluded, he argues there are other factors at work. His thesis involves two axes, one of system complexity, and the other of system coupling, giving a diagram of four quadrants.

In the high-complexity, high-risk quadrant, he argues, accidents are inevitable (hence "normal"), because there is no appropriate management strategy: a strong command-and-control structure isn't flexible to allow discretion for operators to tackle an incident creatively, but high coupling between system parts and a lack of slack in the system reduces the scope for autonomy. This is where the arguments in the book become relevant to a discipline such as software engineering. For me, it's not because our systems land in a particular quadrant on Perrow's chart, but rather that we have the opportunity to choose (at least to some extent) where on the chart to build our systems. Reducing complexity and coupling is not always easy, unfortunately it sometimes doesn't even get considered and it can be a difficult "sell" to management for adding in to an existing product, even after an accident; but putting in more and more rules and "process theatre" may not make a system safer (and is guaranteed to make it less responsive). Perrow documents several cases where safety systems failed or made an accident worse.

I read the 1999 edition, which concludes with an additional chapter on some major accidents since the first edition, including the Bhopal chemical plant, Chernobyl and the Challenger space shuttle disasters. Fortunately his final chapter, on predictions for the Y2K bug, turned out to be way too pessimistic, but even he acknowledges this event was something the industry knew was coming (even if it only dealt with it at the last minute), which is a different characteristic from most of the other events described in the book.
qatsi: (wally)
Book Review: Learning Python, by Mark Lutz
I began reading this book in July. Then, when I got to around page 320, the Kindle edition went blank. I logged a support call, was refunded and told to try again, which I did, with the same result. I discovered the whole text was available on my PC Kindle application, however. Then, some months later, I deleted it from my device again and downloaded it fresh, and this time the whole book appeared. By this point I was already wearing thin of the author's style, which I found verbose, repetitive, and sometimes going to extreme lengths discussing what could only be beginner problems, presumably encountered when running training courses, that would never have occurred to me.

My interest in Python arises because it seems to be prominent in machine learning; I thought I should find out at least the basics on this subject, and an O'Reilly book seemed a logical way to learn the basics about the language itself. Although I hope I have achieved this, unfortunately it's been a very tedious process, as the book doesn't chart a particularly clear course, forever noting differences between Python 2 (which is now more or less officially dead) and 3 and going off on tangents. I come away with mixed impressions of the Python language itself: some aspects strongly hint at a mathematical background, which perhaps explains its use in ML; but others suggest a really hellish mashup, with myriad backwards-incompatible changes, bolted-on object-oriented features, and ever more esoteric interceptions and workarounds. I feel I could pick up a book on machine learning that had Python examples and follow it, but I couldn't really recommend this book as a route to getting there.
qatsi: (wally)
Book Review: Accelerate - Building and Scaling High-Performing Technology Organizations, by Nicole Forsgren, Jez Humble and Gene Kim
This was the book all the speakers were talking about at QCon. Of course they were, by and large, following the practices advocated, at which point maybe it's something of a post hoc justification; but maybe there was a greater variety of positions among the attendees at large, and it would give them some pause for thought and/or evidence for advocacy in changing their practices back in the office. Way back in the 1980s Fred Brooks posited that there was no silver bullet for software engineering; yet in recent years, DevOps has really taken off, and the authors have data that suggests adoption of some key practices - measured by deployment pipeline duration, deployment frequency, mean time to fix, and change failure rate - really does distinguish high performing organisations from the rest, even to the point of possibly defining an inverse Conway manoeuvre. In the first part of the book, they offer some commentary and suggestions for taking this approach. The second part takes an unexpected tangent, discussing the merits and designs of survey-based research; I'm sure this is valid stuff, but it seems to target quite a different audience, of survey researchers rather than IT practitioners.

QCon

Mar. 10th, 2019 04:47 pm
qatsi: (wally)
Previously, when asked at work if I want to go to any conferences, I've been indifferent; this year, somehow, I agreed to go to QCon London and so I spent three days away from work, if not away from London, last week. Having worked with two of the speakers - Sarah Wells, who gave the opening keynote presentation, and Nicky Wrightson - gave me some familiarity, as well as a chance to catch up with friends. Trying to mix familiar and unfamiliar, I also attended talks on Test-Driven Machine Learning, Life Beyond Java 8, Open Banking, Reactive Architecture, High-Performance Culture, Functional Composition, and the final keynote on Bad Science, Better Data by Ben Goldacre. It was intensive and exhausting; although there was ample time for breaks, it didn't really feel like down-time. At the best of times I'm not cut out for "networking", and this wasn't the best of times either. Nevertheless I did enjoy the conference and would recommend it to others in the profession.
qatsi: (wally)
Book Review: Building Microservices, by Sam Newman
This jumped the queue, on loan from a former colleague. Prompted by some of my quibbles in the new job, I wanted to check on received wisdom and, if there is such a thing, best practice. Although this book dates from 2015 I don't think it is out-of-date yet (there is a second edition in the pipeline, currently about a year off). Rather than being about a specific technology or implementation, this book is about microservice architectures and patterns. Sensibly it begins with the benefits of microservices, and the difficulties with monolithic systems that drive their adoption. There is also some more controversial discussion of topics where microservices can challenge conventional wisdom, such as the provision of client-side libraries or the use of DRY principles. (Strictly, I think DRY is a good principle, but it has limits, and it's bad if it leads to over-coupling between things that should be allowed to move independently.) There are chapters on looking for ways to slice a monolithic application, microservice deployment, testing, integration, monitoring, security and scaling. Sometimes I felt it could have done better in the way of examples, but that would have tied it to implementations. The problem of replacing database-level integration with cross-service joins doesn't seem to be examined all that well, as it's easily a performance nightmare; some cases, it's true, can be transferred appropriately to a data warehouse solution, but perhaps there could have been more advice on dealing with joins for synchronous user requests. But for the most part, without going too deep, it is quite thorough.
qatsi: (wally)
Book Review: AWS Lambda in Action, by Danilo Poccia
At work we do regard Amazon as a cloud services provider with a sideline of a bookstore. There's a push at work to adopt cloud services in general, including where appropriate the "serverless" model. Of course it's not actually sans server, it's rather that you, as the developer, don't control or manage the server.

I find myself wryly amused by the idea that lambda functions are anything new. I can't really see the difference between them and a stateless EJB in the JavaEE world. They are packaged and accessed differently, and there's a different cost model associated with them, but at a high level, it's just a piece of business functionality exposed for access somewhere on the network.

As for the book, well, it seems like a good but limited basic introduction to the AWS Lambda service. There seems to be an irony fail when the author explains that the benefit of serverless is that the developer doesn't have to worry about infrastructure, then immediately goes on to pebbledash the pages with reams of CloudFormation scripts (which, erm, provision and configure the infrastructure).

Another weak point, for me at least, is that code examples are limited to JavaScript and Python. These are clear and for the most part comprehensible even though I'm only moderately familiar with the former and not at all with the latter, but it would have been nice to have a Java example here or there. Given there are concerns about things like JVM startup time, and that Java servlets were a solution to the slow startup of CGI scripts in the early years of the web, it would be useful to have seen a discussion about whether this is a problem and either how to address it, or to explain how it's been overcome.

The examples in the book focus partly on authentication services, and partly on an image-sharing application, with integration points between the two. It's a good and realistic choice of applications, but the experience is a bit disjointed - perhaps that's inherent in the nature of Lambdas and would more positively be expressed as "decoupled". In the later sections on management of secrets I found it hard to swallow the example using hard-coded but encrypted passwords. Although I got the idea that AWS permissions would enable the code to decrypt the password at run-time, I still didn't like the idea that it could be hard-coded into the application. When you need to change that, it should be simple and quick to do so. Even just holding the encrypted data in a protected file on S3 would have made more sense with little additional complexity in the code. In the final sections, the book talks about receiving events from a MongoDB feed, but shies away from actually going into any detail, which leaves the reader a bit deflated.

On the plus side, there is quite a lot of discussion about how Lambdas can be used in conjunction with other AWS services, and this seems quite clear and sensible, although at the cost for the developer of encouraging vendor tie-in. The discussion on Lambda pricing and its consequences is also useful, though obviously subject to change. Overall, I did find this book useful, but not compelling.

Profile

qatsi: (Default)
qatsi

May 2025

S M T W T F S
    123
45678910
11 121314151617
1819 2021222324
25262728293031

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags