0 To Production in 30 Minutes

Alon Valadji
Israeli Tech Radar
Published in
4 min readDec 14, 2021

TL;DR
Check out the repo with all concepts from this post: https://github.com/alonronin/rn2021

So what makes a successful product?

In Eric Reis’ “The Lean Startup” he talks about the Build — Measure — Learn feedback loop. And why is that so crucial? Our users make our product so valuable, and the faster we reach out to them, the faster we can collect relevant data and perfect our product.

It is all about the infrastructure

When we talk about the infrastructure we immediately switch our context towards the DevOps worlds. However, DevOps merely 25% of our infrastructure, and I believe that the infrastructure is 80% of our product.

So I talk about also our Code Infrastructure, the way and tools we use to communicate with our product’s stakeholders, and it can be the product, designers, users, internal users etc., and also establishing trust between us and sharing our expectations as described in Rozensky & Woods’ “Architecture Description — Viewpoints and Perspectives”.

Seeing is believing

We can write as many user stories as we need, and define fine grained specs but it never translate well to the final product until we are seeing it visually.

Visual specification gives us the ability to really understand our product and user experience before we start to convert it to code. This gives us a lot of span to change our requirements and products’ flow before we are using our most expensive resource — the development.

And it does not end with visual spec, because we want also our stakeholders to see our progress, even if it is not fully implemented and passed thru our dev flow pipeline (PR, Code Review, Testing, QA etc.)

So we need the ability to also ship our artifacts internally, and fast.

Kubernetes as our enabler

Kubernetes is a container orchestration software that enables us to ship our code as docker container and have a reverse proxy, known as Ingress, out of the box that connects our different services.

This enables us to break our software to smaller parts and ship it as one unit.

The productivity stack

The following selections are very opinionated by myself, however I believe you can choose whatever speeds up your productivity, development wise.

I chose Pulumi for our DevOps operation of creating our EKS cluster and create the relevant Policies and Service Accounts we need.

Helm for the installation of Ingress-Nginx, Cert Manager and External Dns.

Check out my post on how to Setup EKS Cluster with Pulumi and Helm.

Nx for our monorepo management that also gives us useful generators, builders and executers to use best practices as we develop our product.

Next.js for our React base framework, that gives us 0-configuration, SSR, image optimizations, i18n and much more..

Storybook for isolating our components and ship them as documentation to other developers, as style guid and even tests of our components.

TailwindCss as our Css framework, gives us lots of utilities, responsiveness, optimized for production and much more

Check out the egghead course from nx creator — Architect an Extensible Digital Garden with Next.js, Tailwind, and Nx

Github Actions for our CI/CD.

Check out my post on how to Build, Test and Deploy With NX, Docker and Kubernetes. (TBA)

Delivery, Delivery, Delivery

With our CI/CD we deploy our entire environment with each commit, and build all our docker container, so if we have a commit that passed all our checks and tests we can promote it to production instantly.

We also deploy each branch to its own namespace with entire apps that we’ve built so we can now share our work-in-progress to any stakeholder we want via https link. And of-course we deploy our main branch to its own namespace to serve as our staging / pre-production environment.

Conclusion

So we can see how we leverage technology to make everybody in our products’ team happy and see each other progress asynchronically immediately as something is on the make or ready to ship to our users.

I would like to hear your comments and suggestions. And also if you would like to implement it in your organization I would be happy to help you out.

--

--

Alon Valadji
Israeli Tech Radar

Alon is a leading software architect well-versed in Rozansky and Woods’ architectural methodologies. As a full-cycle JavaScript and web architecture torchbearer