Looking enough time at the technology we can see trends that repeat over and over — 15 years ago I worked with mainframe Linux and after that, I suddenly understood that Amazon didn’t invent anything the whole idea of detachable volumes and floating ips has been around for 40 yrs)…
One of these recurring trends is how progress comes through big things being broken down into smaller pieces and how this moves the complexity from the application itself to the challenge of managing a group of more straightforward services or components. Being able to operate in smaller resolutions is a key component of the digital transformation of enterprise organizations.
Digital transformation is a buzzword that is voiced in meetings and conferences in various contextes but basically it boils down to “Doing stuff in a modern way so we can move and innovate in the speed of a modern company”
When trying not to get too excited while explaining to one of the clients (let’s call him John), about components, microservices, and fighting complexity by breaking up the monolith he finally uttered… So you’re taking all of the spaghetti code and mess we have dealt with (eventually) and throwing all of this to the infrastructural layer? ( What did we achieve with that?)
Thinking about what he said I replied… Exactly, The art of dealing with this mess is called DevOps…
I think the first time I heard the word ravioli code was in an online course by john papa talking about the move towards web components.
The main challenge we have when building big projects is not getting the thing to work, that’s the easy part, but instead being able to maintain and control the monsters that we’ve created.
Our journey is to move from spaghetti to ravioli code and with that our application might be able to reach the following targets
These ideas were introduced to me when looking at frontend architecture 4 years ago and the movement from pages to components but these recurring trends can be found in the backend with monolithic systems refactored to a microservices architecture or code once coming as a monolith or plugin-based system (like Drupal or WordPress) and being assembled by much more reusable parts (like node.js and the npm ecosystem).
My customer, realizing I was throwing the spaghetti on the system team had a point all of you’ve done is move the complexity to a different stakeholder we still need to deal with it! — This is where key tools come around and help us deal with the overwhelming complexity and this is where I think the next open-source projects and companies are going to shine.
Kubernetes has become the emerging standard in docker orchestration, with amazon joining the cncf and docker (the company)supporting kubernetes last year it basically sent a signal that Kubernetes is the next operating system you need to master.
Linux has had an amazing impact on the world and has become the de facto standard server operating system but with the complexity and challenges cloud computing introduces Kubernetes enables you to manage the cloud and I predict will have a similar impact on the world.
As you break up your legacy application to stateless microservices managed by containers make sure you orchestrate it with Kubernetes.
We have been writing node.js-powered apps since 2011 and a big reason the platform took off was its huge npm package repository amounting to 700,000 packages. When you look at a mature node application it typically has a /node_modules directory weighing 300MB and hundreds of dependencies This is typically where things get complicated but npm has a bunch of tools to manage the dependencies which let you focus on your application logic and import/require the rest.
bit creates a faster workflow for sharing, discovering, and using components and modules in different projects. It lets you “publish” components from any project without refactoring, install them in other projects, develop and change from any repo and collaborate with your team.
It lets you import components into any repository for further development, even if they’re installed with npm. Changes can then be synced across projects with smart updates and cross-repo component change merges.
I love the quote from their about page by Addy Osmani from Google basically chiming in with what I’m trying to say here…
“The secret to efficiently building ‘large’ things is generally to avoid building them in the first place. Instead, compose your large thing out of smaller, more focused pieces.“ — Addy Osmani
While the team at elementor describes their project as the number one page builder for WordPress I think their project and their mission are even deeper.
As the world moves from pages to web components projects like elementor or Gutenberg by automatic introduce an additional resolution to WordPress — the largest web ecosystem which powers 31% of the web.
It will popularize the notion of web components (or widget or block ) and beyond being able to drag and drop and orchestrate the components in the page they also provide dozens of components and basically are reinventing the way the mainstream builds websites.
Providing a growing number of components and the ability to have them interact perfectly within a page will provide the next generation of innovation in mainstream projects like WordPress or Drupal.
Snyk stands for “So now you know” — and basically its job is to manage the security aspect of the dependency chain of the multiple components requiring other components and typically adding code that has not been reviewed and that needs some sort of degree of trust.
Open source is awesome for boosting our productivity. However, taking code written by others, often with little to no vetting of its security pedigree, can put your application at risk — a risk multiplied by the many dependencies a modern application uses.
Snyk helps you understand and secure your dependencies, starting with tools that find, fix and monitor for known vulnerabilities in Node.js npm and Ruby packages.
With great complexity comes great responsibility and we need to be sure that the component we required does not introduce a threat to our system.
Let’s return to John’s (my client) remark about us shifting the complexity around, we’re moving the complexity to areas where existing tools and methodologies exist to address the complexity.
We (@linnovate) have more than a decade of experience in building complex web projects and we have built an ecosystem for digital transformation called reopen ( which uses most of the tools mentioned above ) we’d be happy to help you with your next challenge.