The Bob Bloom Show is a commentary podcast devoted to PHP, with an emphasis on PHP serverless. Hosted by Bob Bloom.
There is renewed interest in PHP's low level roots. The low-level root of PHP is the language it is written in: C.
This renewed interest includes compiling PHP feature code with the PHP interpreter, into one executable binary. And, includes speeding up code execution by way of the C language's process forks.
This all has direct relevance to PHP serverless. Which has heightened my desire to understand C.
FrankenPHP is now under the auspices of the PHP Foundation. This has further heightened my desire to understand the low level underpinings of PHP.
In this episode, I talk about this mini-trend, outline what it means to be a low level programming language, and take a quick look at random access memory. All this as a prelude to a special mid-month episode going over low level concepts in C in a classic textbook.
It is with deep gratitude that I express my thanks to my intrepid sponsors of my PHP Serverless Project, of which this podcast is a part of:* Luke Galea: https://bit.ly/LukeGalea * Tolga Ercan: https://ca.linkedin.com/in/tolga-ercan
Links* Episode's web page: https://bobbloomshow.com/episode/bob-bloom-show-ep26-low-level-php * Project site: https://phpserverlessproject.com * Commentary podcast: https://bobbloomshow.com * News podcast: https://phpserverlessnews.com * Profiles podcast: https://phpserverlessprofiles.com * Interviews podcast: https://bobbloominterviews.com * YouTube channel: https://youtube.com/@phpserverlessproject
I have a rather unique viewpoint of serverless in general, and of PHP serverless in particular. A viewpoint that I express in my podcasts, and in my PHP Serverless Project. I have not yet explicitly expressed this viewpoint in one concise podcast, so I wanted to do so now. In this episode, I enumerate the seven things about serverless that I think.
It is with deep gratitude that I express my thanks to my intrepid sponsors of my PHP Serverless Project, of which this podcast is a part of:* Luke Galea: https://bit.ly/LukeGalea * Tolga Ercan: https://ca.linkedin.com/in/tolga-ercan
Links* Episode's web page: https://bobbloomshow.com/episodes/bob-bloom-show-ep25-the-seven-things-about-serverless-that-i-think * Project site: https://phpserverlessproject.com * Commentary podcast: https://bobbloomshow.com * News podcast: https://phpserverlessnews.com * Profiles podcast: https://phpserverlessprofiles.com * Interviews podcast: https://bobbloominterviews.com * YouTube channel: https://youtube.com/@phpserverlessproject
I am thrilled, and frankly, somewhat relieved, that there is progress with my PHP Serverless Project sponsorship. This podcast show is part of this "umbrella" sponsorship. Also, my journey into PHP application servers has brought me to a classic Unix textbook.
Lamenting the state of the content creation industry, when re-visiting PHP-FPM materials. Causing me to conclude that the materials I seek, I will have to create myself. And, finding myself worried that Laravel's new venture funding might affect its open source software negatively, based on industry precedent.
A key aspect of serverless platforms is it variable pricing. Also, coming to the realization that my technical understanding of PHP application servers has hit a brick wall. To overcome, I need to do something different.
Let's take a break from my journey into PHP application servers, to talk about the PHP serverless efforts that I am about to, finally, seek sponsorship for.
It's been quite a journey learning about serverless and PHP application servers. I held many preconceived notions, which have turned out to be wrong. Let look at some of them.
This third episode of my journey into PHP application servers, I look deeper into Go. An intriguing language, I do my first Go "Hello World", and look at the docs and code samples more as to do some first programs with Go, rather than just to learn Go conceptually. A big reason is to be able to understand the source code of open source PHP app servers that are programmed in Go. Especially to understand how PHP "melds" with Go for concurrency, routing, and perhaps other native Go features. Features that I am used to seeing in servers or frameworks, but not languages.
The second episode in my journey into PHP servers and serverless. Having gone back in time and looking at mod_php and php-fpm in the first of this series, now it is time to look under the hood of what powers modern PHP application servers. The Go language is the secret sauce. What makes Go such a compelling language?
To understand today's PHP application servers, and PHP serverless offerings, I went back in time. To really take a look at the MOD_PHP module for Apache. And at PHP-FPM. This look is to presage a look at "workers" in todays PHP app servers, and at PHP serverless.
In this episode, I want to thank everyone involved, past and present, who make our local PHP groups happen. And, I want to answer a question posed in the December 2023 issue of PHP Architect Magazine. And, I want to make a suggestion about directly connecting local PHP groups to the PHP Project.
Independently register your domains. Register your domains at a domain registrar. And do nothing else with that domain registrar. The only thing you should do with your domain registrar's account is register, and manage, your domains.At your domain registrar, just do domains. Do not do email where you register your domains. Do not spin up servers where you register your domains. Do not host your website where you register your domains.
The rise of the Lambda, compute service, and general serverless resellers will slowly contribute to moving PHP away from monolithic development. This is the era of Peak PHP Monolith. An epiphany from long contemplation, watching a re:Invent video, and presenting at my local PHP meet-up group.
Incredibly, AWS is not keeping up with its native Lambda runtime updates. One answer is take a page from PHP developers: do it yourself. Yes, it is an answer.
Playing with type one hypervisor software gave me a better sense of cloud servers. So playing with compute service software should give me a better sense of serverless. In the absence of such an out-of-the-box software, instead I conceptualized what such software would entail. My starting point was the type one hypervisor.
Lambda is very accommodating to running PHP monolithic apps. The Lambda home page uses server terminology to describe what it is not. It is very logical for PHP devs to assume that Lambda is a server by another name. However, it is still not a server. With more serverless platforms being introduced into the marketplace, it is important to understand exactly what these technologies are, and to understand our own use cases, in order to best match our needs with a platform.
What is Lambda's Runtime API's "bootstrap" file?To get a first-hand feel for what this vital file really is, I messed around with it. There is a lot of API action going on. And, surprisingly, there is access to the actual Lambda folder and file structure. There appears to be no actual bootstrap stuff going on, in the traditional server sense of the word.
Diving down the Lambda PHP Runtime Rabbit Hole brought me square into something that I have successfully avoided in my two decades of enjoying PHP as my primary language of choice: PHP Internals. And not just avoided, but consciously and actively avoided. But, now, there is really no way to avoid getting involved in the PHP Internals, in some way, when it comes to doing your own PHP Runtimes for Lambda. And, now that I've broke my own barrier to looking at PHP Internals, I am the better dev for doing it. Even more so, I feel I am getting a more intimate understanding of Lambda as a result.
A frustrating aspect of understanding of "serverless" is the term itself. This term conveys what the technology is not, rather than encapsulating what the technology is. There is a silver lining. This term, when taken literally, by describing what the technology is not, profoundly conveys the cultural divide this technology represents."Less", in "serverless" means "not exist". As in: "server not exist".There is no server. The term that conveys what this technology is, as opposed to conveying what it is not, is "compute service".
Amazon Web Services does not directly support PHP for Lambda. PHP devs eager to use Lambda have a shockingly challenging road to travel with Lambda. I say shocking because AWS has directly supported using PHP with its services, but has decided not to do so with Lambda.
Seeking fifteen sponsors to fund seven months of intensive effort to publish much needed free and open source materials about Lambda+PHP, setting up and managing repos for PHP code deployed to serverless platforms, and for the new Digital Ocean Functions.
The common practice of developers seeking project sponsorship offering consulting type of inducements for sponsorship makes me nervous. I talk about why I do not offer any inducements in my GitHub Sponsors' sponsorship tiers.
Wanting to use AWS Lambda with the Laravel Framework in a "micro-services" fashion, I am starting open source projects to use Bref, DynamoDB, and lightweight form generation. To raise the profile of these projects in the dev community, I will do videos, screencasts, streaming, and podcasting.
After an extended hiatus, I am re-igniting my Bob Bloom Show. Introductory show. Go over some history. Splitting my podcast into two separate shows. The format of this show. Musings about sponsorships.