A Hands-On Guidebook - From Zero To Production
For in-depth details on the book and a list of all chapters, please visit www.mikenikles.com/cloud-native-web-development.
Important: To gain access to the source code, pull requests and the community with other readers, please provide your GitHub username during checkout. If you don't have one, leave the field empty and I will contact you.
About the book
Web applications once were static HTML with CSS and a backend that processed form submissions. Fast forward to today and web development is more complex than it has ever been. With new frameworks, technologies & reusable code packages appearing (what feels like) weekly, where do you begin?
In this book, we will walk through the end-to-end process of developing a cloud-native web application. You will learn technologies, processes, tips & tricks and gain hands-on experience. You will find out about mistakes made (so you can avoid them) by the author based on his two decades of experience in developing web applications.
Links to additional resources such as videos, blog posts and articles are provided where necessary to give you an opportunity to dive deeper into topics of interest. These are resources I found useful and wish I had access to earlier in my career.
The book starts with introductions to technologies used throughout the book and explains what alternatives are available.
Svelte to develop the web application
- Sapper as a static site generator
- Tailwind CSS for styling
- Firebase Hosting to host the web application
- Cypress for component and end-to-end testing
- Firebase Authentication to create accounts and authenticate users
- Cloud Firestore for data persistence
- Node.js services deployed to Cloud Functions on Google Cloud Platform to deal with asynchronous tasks (e.g. send a welcome email to new users)
The second part is hands-on, with pull requests that correspond to individual chapters in the book. All readers are part of a community and can collaborate among themselves and with the author.
We will start with a basic boilerplate repository, configure a CI / CD pipeline to test and deploy the web application and add feature toggles to ensure frequent deployments to production are fearless. For operational visibility, we will set up production monitoring & alerts and discuss how to perform rollbacks should that become necessary.
A big part is going to be how to test web applications, with component and end-to-end tests to make sure new features don't introduce regression bugs. To have the most impact, tests are going to be part of the continuous integration pipeline and deployments will not happen if a test fails.
We will configure Tailwind CSS to style the pages and components and learn about user authentication and how to interact with a database to persist and load data.
To wrap up the book, we will look at how Firestore and serverless Cloud Functions allow us to develop a scalable event-driven architecture where individual parts of the system are decoupled and can be maintained independently.
About the author
Mike is a software architect who started his career right at the peak of the dot-com bubble in summer of 2000. He currently works at Google, advising enterprise customers on their journey to the Cloud.
He focuses on cloud native web development, best practices, productivity and team morale.
Education, hands-on experience, real-world stories and access to a community of other book owners to collaborate with.