A Story about MeetU Environment, Architecture + Data Seeding

Stephen Jaya
MeetU Engineering
Published in
2 min readMay 2, 2018

In this week blog, i’ll share a bit about our MeetU Software Environment, Architecture, and how to seed data to it. Without further ado, let’s get on with it !

Software Environment

In MeetU Software Environment, we use continuous integration & deployment for our workflow. Every code that we commit and push will be automatically built, tested, and deployed. Backend services will be deployed to Heroku, while Frontend services will create an downloadable APK.

Deployment environment will be split into 3 environments, coba_coba, sit_uat, and production. Each of these environment is useful when developing a feature. In coba_coba, services will be used locally/individually, and are used when we want to try and test the app and services while in development stages. When we’re the services and feature are finished, it will be moved to sit_uat, where it will be tested and used in an mirror environment as production, this stage is also called staging. For example, In MeetU, because we use Heroku as a backend services in production, then sit_uat will also have its own heroku services for staging, as it will be used test the installation/configuration/migration scripts and procedures in a more serious manner before applied to production. In production stage, this is the environment that users will directly interact with.

Software Architecture

Below is the attached of MeetU deployment diagram.

MeetU deployment diagram

This diagram explains how each of the services interact, basically consists of 3 parts, Android/Frontend services, Django/Backend services, and the Postgres(sit_uat/production)/Sqlite(coba_coba) database. These services will be deployed in an Android application.

Data seeding

Within the environment and its architecture, we can easily make a data seeding and migration using Django. When we’re making changes to an object model, django will keep track of the changes using python manage.py makemigrations These changes will include changing field/column names, adding a table, etc.

So when we want to do a migration, we’ll simply use python manage.py migrate Boom! all of the databases table are migrated !

How to seed some of the data for testing purposes ? Django will easily help with its command functions! By inserting a python command inside /management/command. We can create a command for seeding the needed data.

To call this, simply use the name of the file, python manage.py seed_group :D All of the needed data will be seeded into the DB, ready to be used.

Hope you guys know a little more about MeetU development :)

--

--