What you are going to learn in this series
This is my first official blog post ever and it's not going to be the last. You probably came here, because you searched for a way to learn how to create a website using Docker and state-of-the-art web technologies. If yes - then you're right. This series will, however, not get into details of the actual implementation, but will basically explain how an Ubuntu machine can be set up to act as Docker host for a web site, based on different docker containers.In other blog posts, besides writing about new technologies in the world of web development, I will also tell you how to write AngularJS 2.0 applications, what coding guidelines are important for web applications and what can be done to turbo-charge your website so that it performs well in slower networks.
In this series the basic story is that I'm going to build a simple web site using the following technologies:
- Ubuntu - hosting platform
- Docker - lightweight container virtualization
- Docker Compose - orchestration for my Docker containers
- ioJS- JavaScript backend for the my REST API
- nginx - reverse proxy and web server for the blog
- mongodb - database for blog entries and meta data
- Twitter Bootstrap - the basic grid layout for the page
- Gulp - the JavaScript build system
- Yeoman - A scaffolding tool for projects
- Hapi - A easy-to-use REST API for nodejs.
- HTML5 - markup language for the front end
- JavaScript - for the front- and backend code
- AngularJS 2.0- for the frontend logic (MVVM)
- CSS3 - we need to style the page somehow, right?
The goal is to create a simple website, that talks to a REST API (and a database) - and everything will be based on docker. You can use this setup later to build your own full blown website.
I will also use this technology to create my own blog later, which means that I'm currently using this blog (http://project-webdev.blogspot.de) only for documenting my way to my own blog, until I switch to the new one. The new blog will be available under the following URL: http://www.project-webdev.com - so stay tuned!
My name is Sascha Sambale and I'm a Software Engineer specialized in Java and JavaScript (as well as other frontend technologies). I work as a Software Architect (specialized in web development and web performance) for the Robert Bosch GmbH in Stuttgart, Germany. This blog is not affiliated with Robert Bosch GmbH in any kind of way - it's strictly personal and I'm only sharing my personal opinions and thoughts, that are in no way related to my job.
Sascha
I will also use this technology to create my own blog later, which means that I'm currently using this blog (http://project-webdev.blogspot.de) only for documenting my way to my own blog, until I switch to the new one. The new blog will be available under the following URL: http://www.project-webdev.com - so stay tuned!
Who I am
Since this is Part 1 of the series, let me just start with an introduction of myself! :)My name is Sascha Sambale and I'm a Software Engineer specialized in Java and JavaScript (as well as other frontend technologies). I work as a Software Architect (specialized in web development and web performance) for the Robert Bosch GmbH in Stuttgart, Germany. This blog is not affiliated with Robert Bosch GmbH in any kind of way - it's strictly personal and I'm only sharing my personal opinions and thoughts, that are in no way related to my job.
What will be covered
The blog that I'm going to create will be all about web technologies - new trends, tutorials, hints, tips and tricks. All you need to know to get started with new web technologies. It's not my goal to make money with this blog - it's all about knowledge sharing.About this series
This series will show you how you can set up a web site using the aforementioned technologies (especially Docker). It will consist of several parts and will be updated as soon as I've managed to work on a new chapter. It will basically start with setting up Ubuntu as Docker host. I will include all necessary scripts and steps that will help you to get your system up and running.Last words
Make sure that you add this blog to your RSS reader to get updated as soon as I publish a new chapter of this series. I am not going to promise that I'll update this blog every day, but you'll get updates as soon as I've implemented the next milestone.Source code
All files mentioned in this series are available on Github, so you can play around with it! :)The following parts are/will be available
- Part 1 - Introduction (you're just reading it!)
- Part 2 - Setting up Ubuntu for production use
- Part 3 - Installing Docker
- Part 4 - Planning Docker container architecture
- Part 5 - Creating our Docker compose file
- Part 6 - Creating the Ubuntu base Docker container
- Part 7 - Creating the mongodb Docker container
- Part 8 - Creating the ioJS REST API Docker container
- Part 9 - Creating the nginx web site Docker container
- Part 10 - Creating the nginx reverse proxy Docker container
- Part 11 - Run the whole application stack with Docker Compose
Sascha