theodoreb / theodoreb.github.io

read.theodoreb.net
0 stars 1 forks source link

Post: Can Drupal scale down? #17

Open theodoreb opened 2 years ago

theodoreb commented 2 years ago

Comments for Can Drupal scale down?.

mherchel commented 2 years ago

I love this discussion. I believe that it's vital to include use-cases for smaller websites when architecting Drupal core. Doing so, will help us compete with WP (which has been killing us on smaller-scale sites).

To do so, we need several things

fgm commented 2 years ago

ISTR Long ago @chx and/or @kbahey made a Drupal run on a Nokia 810 phone, so that's a long tradition you reawakening here :-)

phpsubbarao commented 2 years ago

Make more sense Run the Drupal executable, it creates the sqlite DB, config files, upload folder, static export folder - Makes more sense and easier to easy.

kreynen commented 2 years ago

In the WP ecosystem, the customer can choose from thousands of pre-configured themes, pay a couple hundred dollars and be happy

This is only true if the site is using post types the theme supports. Simple 100 page WP sites don't generally need the type of customized content modeling and structured data required to reuse/moderate content that is often a requirement of larger projects. The shift to block editing has moved some of the theming from the theme to the block level in WP, but a lot of the work defining blocks is still done at the project/agency level and designed to work with their themes.

What @jrockowitz has been doing with https://www.jrockowitz.com/blog/schemadotorg-blueprints and the direction the Distribution Modernization Initiative has gone with feature and site recipes has a lot of potential to have our complexity and simplicity too, but we've been down this road before with https://developmentseed.org/blog/2009-06-26-recipe-for-a-feature-server.

The shift to allowing non-GPL-2.0 compatible dependencies in General projects on Drupal.org is a MAJOR change that hasn't gotten nearly enough attention. We've opened the door to site and feature recipes that require commercially licensed dependencies. Only time will tell how this will impact the Drupal ecosystem that lately has been driven largely by many of the organizations charging $50/month to host it.

xdega commented 2 years ago

I 100% agree with @mherchel here.

I have been struggling to find a good hosting solution for small experimental/personal projects since I began my Drupal journey a few years back. While you can play around a lot in local dev environments (which have become increasingly smoother with the move towards Composer-based installs), sharing projects live continues to be a struggle.

Early on, I used shared hosting to publish some projects. But this method of hosting doesn't usually have good support for modern dev pipelines (ie. Git integration), ties you down into lengthy contracts, can have security and performance issues.

The current offerings for cloud-based Drupal hosting seem to cater more to the commercial sector. $50 /month is simply not feasible for a personal blog that is going to get a handful of hits a month. Or to host a small experimental JSON:API back-end for a decoupled front-end project (especially if that front-end is just a personal portfolio/learning project).

The baffling thing here, is that the nature of cloud-based hosting is meant to be that you can start very small, and scale up as needed. But I am yet to see a Drupal hosting model that allows such a mindset. Are there innate overheads/issues with Drupal that prevent this being possible? Is this a community issue? I know that AWS Lightsail offers a rock bottom $3.50 hosting option, but this is also packaged with Bitnami (and has reported numerous issues with core updates and module installs)

To put things into perspective, https://www.wordpress.com has offered a simple blog hosting product for many years now, which starts at only $5 /month. Imagine if you could have something similar with Drupal. Even $10-$15 per month, and you get handed an admin CP login with the brand new default themes all set up and ready to roll. All you need to do is build your content. Imagine the power of such a stepping stone.

I would certainly contribute to such an initiative in a heartbeat. Although I lack the enterprise level server management background needed to get something like that off the ground, I would happily contribute monetarily and/or with UI design if it meant something more approachable for future generations.

vasilyyaremchuk commented 2 years ago

Hi Théodore,

thank you for your thoughts, you're right that the future of Drupal could be as the customizable static site generator on the base of the Tome ecosystem. Last year I had a session on Drupal Camp Poland about that topic: https://abzats.com/blog/one-possible-future-drupal/

The workflow that you mentioned you can easily implement to fork https://github.com/drupal-tome/netlify-template

I've created my pet project https://open-source-literature.org/ And just use the GitPod service to make any edits on that site, so it's possible to manage the site from the mobile device and so on.

So the idea is just to have a service where you can run your Drupal temporarily in that case you don't need a powerful device and you don't need to think about how to scale it down.

SOA-DOLWD commented 2 years ago

Curious, I run Drupal development on a local raspberry pi and then git push to siteground shared hosting service. the hosting service is cheap and has built in Drush. I suppose there is some intimidation by composer command line, but it sounds like that is Drupal 10 will simplify this. Tome looks like a great idea, and I fully support it, but I have not any problems spinning up a Drupal site in a few minutes on a respectable shared hosing system with the entry level hosting plan.

xdega commented 2 years ago

@SOA-DOLWD I used to use Site Ground. As far as shared hosing goes, I can't complain too much. But as of right now (outside of promotional pricing (which expires after a year of use), their "GoGeek" plan (which offers the Git push functionality) is still $40. It is also not scalable or cloud based.

It may be one of the better options available right now (at least for a year while you retain promotional pricing), but does it actually offer the ability to simply push a local dev project from Git, and spin up a 1:1 production server based on composer?

SOA-DOLWD commented 2 years ago

@xdega I have a git repository I push my local to, and then do a git pull remote into siteground and composer install, everything works as advertised.

chrishappy commented 2 years ago

Fascinating idea! The idea of running an executable to create a website is a strange workflow though. All the other CMSs I know of use a tarball or a shell command.

I wonder if requiring node.js would be another way of scaling down Drupal. Then the workflow could look like:

  1. Install drupal-tome as a node.js module
  2. Launch drupal from node.js, then export the static website when ready.

I don't know how much we save by adding a node.js dependency though...

xdega commented 2 years ago

@xdega I have a git repository I push my local to, and then do a git pull remote into siteground and composer install, everything works as advertised.

That's good to know. I don't think I qualify for their "promotional pricing" as a past customer, but would be nice to find something more in the $15-20 range (without promo), that offers a similar workflow.

theodoreb commented 2 years ago

@mherchel: for the theme ecosystem did you have a look at UI Suite essentially a way to implement UI Pattern and the accompanying modules. Deserves it's own post I think, there was a good presentation made at Drupal Dev Days a few weeks back.

@vasilyyaremchuk: that is great, thanks for linking to your presentation, we definitely need more of this to show how good Drupal can be at this. About the non-GPL code in general project I missed it, where does it say that? I would assume drupal.org is for GPL compatible code only.

@SOA-DOLWD: I'm happy you don't find Drupal challenging to host and manage. Shows that we did some things right :D I do know many people who don't feel that way and whose shared hosting is a pain to deal with hosting Drupal. Think of someone less technical than yourself, that would be the kind of people I have in mind.

@xdega: Hi! if you ever run into cheap Drupal hosting I'm interested too ^^

@chrishappy: That's pretty interesting. People are comfortable with nodejs and if we have a way to install Drupal from a nodejs command that could help get people to try it. It kind of goes contrary to what I'm advocating for in JavaScript management in Non-JavaScript CMS but you know what, I'd be happy to be proven wrong. If we have a npx @drupal/install command that sets up a Drupal website it would be a win. Looks like it would be possible to use nodejs to do the server and handing requests to PHP… Probably won't be pretty but it'd be a fun challenge :)

xdega commented 2 years ago

@theodoreb I am actually about to experiment with AWS options for hosting for Drupal. There's Lightsail, Amplify, or custom setups with EC2, RDS, S3, etc. It will be a bit of a learning curve, but once a good setup is found, you can use CloudFormation to create a template that sets up all the services.

There's even a serverless architecture that uses Lambdas, but it has drawbacks with keeping the functions "warm".

The question I am interested in will just be how much do all the services cost for minimal usage. I haven't been able to find much info on it. I believe that cloud hosting providers (Pantheon, Platform) are using AWS "under the hood", so it will be interesting to discover what the hosting floor even is.

Of course, if someone has already done this legwork, then I would welcome the intel ;)

xdega commented 2 years ago

As for the NodeJS idea. That sounds really interesting. Imagine a full Headless Drupal site (incl backend) hosted on something like Netlify for low cost?

xdega commented 2 years ago

@theodoreb Just checked out the #hosting channel on Drupal Slack, and found this: https://www.amezmo.com/guides/deploy-a-drupal-site-on-amezmo

It looks very promising, their pricing starts at $5, but realistically you probably want the $10. It offers git-based 0 downtime deployment, and they start you off with $50 of credit when you sign up. 🤔

ChristophWeber commented 2 years ago

I believe there is a huge opportunity to simplify the hosting plans offered by the likes of Platform.sh, Pantheon, and Amazee.io so that you'd have a turnkey simple hosting plan with limited, but enough features. Cap requests and bandwidth, and provide a way to buy into more, possibly dynamically. It would easily work for Drupal and WP both, since they have almost identical basic requirements. A couple of years ago I looked at pricing, overhead, and other business issues of offering such hosting using Digital Ocean as underlying provider. I thought it was absolutely feasible, but got stuck on customer acquisition and support, both of which I wasn't interested in working on by myself. I believe it is easily possible to get Drupal hosted at the price of a couple of lattes per month. Someone's just got to do it.

RightsandWrongsgit commented 2 years ago

For a super cheap server to practice building in Drupal I took an old Mac Mini which was so old even the operating system wouldn't support the auto-install of a MAMP stack. I attached it to my home network and still mess with it 3+ years later when I want to work something local to test it out. The 'how to' is in the Tampa Drupal User's Group presentations (https://tbdug.com/presentations).

I then got interested in the concept of VM and then containers so I started messing with Docker directly. I found, modified and updated a 12-factor-demo you can see here on GitHub that basically is an auto-install for Drupal. It has it is NOT ready to use but the Quick Start actually worked fine last time I used it. What is not ready about it is that I intentionally put a step-wise break into it with the thought I would insert "recipes" for common Drupal uses. And that became even more appealing when I found some Mid-west US Drupal Users group was working on doing "Recipes".

I have since moved away from my "homemade" Docker effort because I found Lando was a whole group of people doing what I was only much better (I am a hobbyist). My 12-factor-demo tended to be much faster in terms of 'sync' than Lando but obviously what I have is junior league in comparison of what it supports. Since I have moved to Lando/Platform.sh and am working toward some sort of auto-install for that with a CD/CI workflow leveraging Config_split in the install. I am getting close; only struggling right now on figuring out what .ENVironment to pick up in an auto-detect within a modification of the Settings.php file Platform.sh already supplies for its Lando Drupal9 template [(Branch_Name) works great for the Platform environment dev/stage/prod so it is just a question of do I detect 'dev' and have Lando coordinating with that on Platform or does that coordination require me to pick up some 'Lando' environment for local]

Anyway, I am all about an initiative to make starting with Drupal easy. My personal goal is to make it so easy that I can work with some of the charities which refurbish donated computer for classrooms, pick up a Linux install from a stick like Mint, and then trigger the Drupal auto-install of a basic site such that I could get 5th and 6th graders started with an interest in actual development. What I don't want to see happen in the process is that the simplification of this makes it 'separate' from Drupal's main strengths... e.g. Drupal Easy is not Drupal lite with a break from continuity.

chrishappy commented 2 years ago

Another cheap hosting provider: https://www.ionos.ca/hosting/drupal-hosting