The Google Cloud Meetup #6 took place on November 10, 2020 in Zürich City in the cafeteria of nine. Due to local restrictions, we were not allowed to have guests in the cafeteria, therefore all participants were online on YouTube. Thanks to Google who would have sponsored pizza and beer!
Thomas Hug, Founder of nine introduces the speakers Matthias Isler, CTO of GetYourLawyer AG and Jonas Felix, Founder of Letsboot.com.
Migrating a Marketplace to Google Cloud - From VMs and Bash Scripts to GKE and CI/CD Pipeline
GetYourLawyer is the leading platform for legal services in Switzerland. Founded in 2017 with the goal of automating documents for law firms, the start-up has developed continuously and brought in 2019 Ringier Axel Springer on board as an anchor investor. The GetYourLawyer platform is technically based on the Laravel Framework (PHP) and Node.js. There are connections to various other systems such as SAP. The frontend of the application is based on Vue.js. The decision to migrate to the cloud was based in particular on the scalability now available and the increased availability and security. The expandability and extended control over the infrastructure by GetYourLawyer were also decisive criteria. Thanks to the new infrastructure, the application now implements the "Twelve-Factor App Principles" and large parts of the DevOps approach. Since all data must be stored in Switzerland, the decision was made to use Google Cloud instead of AWS or other providers. The very advanced container orchestration Kubernetes Engine offered by Google also supported this decision. Before the migration, GetYourLawyer's entire platform was run on a virtual machine, the deployment process consisted of bash scripts that were executed on the VM. The environment was locally recreated with Vagrant.
The new infrastructure consists of an Ingress Load Balancer, three deployments for different tasks and various managed services from Google, e.g. Cloud SQL or Cloud Memorystore. Additional services are provided by nine, including the complete monitoring and supervision of the infrastructure as well as a solution for administration and evaluation of logs.
Based on Bitbucket, a fully automated CI/CD pipeline was built, which enables the delivery of new versions within minutes. The releases are automatically tested in the background to ensure their functionality.
By implementing the Infrastructure as Code (IaC) approach, the complete infrastructure can now be managed and developed by GetYourLawyer's development team. Previously, the infrastructure was a black box that could only be changed by system administrators.
Now the application is executed on containers (dockers) instead of virtual machines, so the local development environment is no longer necessary. The developers can now start and use the cloud environment locally. In order to make the application executable on a cloud environment, various extensions were necessary, but the effort was kept within limits thanks to the use of a modern framework.
Thanks to careful preparation and comprehensive testing, the actual migration was completed in 28 minutes instead of the 8 hours announced for safety reasons.
In the end, valuable experience was gained from the project, which lasted a total of 9 months. GetYourLawyer's development team now has comprehensive knowledge about the secure operation of applications on cloud environments and especially Kubernetes.
Not least thanks to the professional support of nine, the migration from GetYourLawyer to the cloud can be considered a complete success.
Challenges in Hands-On training Software Developers on Kubernetes CI/CD
Text by Jonas Felix, Letsboot.com.
It's challenging to build an intensive and efficient hands-on course for software developers to learn containerization with Kubernetes and CI/CD (because if you can't automate it, you're doing it wrong). Everything is code and our trainings are no exceptions. Doing code focussed training for several years, we built several courses with chapters consisting of slides (with reveal-md as code), exercises and an incremental course project having a solution-patch for each chapter. This way participants can work through the material efficiently and vary how much they want to challenge themselves as well as quickly catch up if there is any issue. This leads to very intense training, with a nice rhythm between explanation, exercises and support through the trainers.
Having visited several Container (Docker) and Kubernetes, as well as cloud related courses, we were longing for the same hands on course experience with a big variety of examples for this area. Especially with CI/CD, as automation has to be the absolute core of your container world. We don't want to teach containers or Kubernetes without automation. To get this kind of experience with containers you need the local container tools, a local cluster, a git project (per participant), a ci / cd pipeline, private container registry, "production/stage" cluster for delivery and a diverse example application / scenario.
Doing this on the participants machines is very hard as you have many moving parts (not just code), different tools and versions. Participants don't want to use their credit cards. Setting up separate authentication for each participant often leads to initial issues during the setup phase, which is not an effective use of time. Overall the "not on my machine" debugging block training.
To solve this we automated the whole training setup providing a developer instance for each participant on Google Cloud Platform. In addition everyone gets a personal git fork of the course project, a complete GKE production cluster, a local cluster, a private registry, a gitlab-ci pipeline as well as all the authentication set up automatically. Thanks to this automation, we can spin up 10 environments for 2-3 days of training, having 48 servers running to provide separate playgrounds and super realistic environments for each participant.
Thanks to the GCP pricing structure as well as API and the Gitlab API the cost is comparably low per participant and everyone can finally play through all the steps to containerize a diverse application, configure how it should be run on Kubernetes, deploy it on a local developer cluster, run it on a production cluster as well as build a CI/CD pipeline automating everything.
Tools we use for the setup and training:
- https://app.diagrams.net/ (to manage diagrams in git as part of markdown)
Our next Google Cloud Meetup is planned for January 12, 2021 16:00 in Zürich City at Stauffacher (nine offices, Badenerstrasse 47). Join us on-site with pizza & beer by Google or remote on Youtube!
If you have an interesting project running on Google Cloud that you want to show or if you have anything else to talk about, please contact us! We also very much appreciate suggestions for topics and possible speakers, by either meet-up-message, by using the contact form on our website, or via email to one of your contacts here at nine. We would like to keep things exciting. We look forward to seeing you again!
Check out our Meetup Group on meetup.com for upcoming Google Cloud Meetups:
Google Cloud Meetup
We plan regular events (either at our offices or in an external location) with interesting speakers and a possibility to network. Everyone that works with or is interested in ...