Slide 1

Slide 1 text

DEVELOPMENT TO PRODUCTION

Slide 2

Slide 2 text

hello! I am Wale Ayandiran A Senior Software Engineer with Andela. ✘ A marathoner ✘ Pretend dancer ✘ Likes the idea of food ✘ Advocate of kindness ✘ Why so serious advocate, hence “Heaven will not fall”

Slide 3

Slide 3 text

What we will be covering ✘ Understanding your code environments ✘ Working in the context of a team ✘ Hands-on

Slide 4

Slide 4 text

Understanding your code environments

Slide 5

Slide 5 text

Development Environments Staging / Testing Development Production / Release

Slide 6

Slide 6 text

What we wish happens during development

Slide 7

Slide 7 text

DEVELOPMENT Your comfort zone. where you get things done, the tools you use to get the initial work done. You should be very fine failing a lot in this environment without anyone getting hurt. Tools include but not limited to; ✘ Your IDE (VSCODE, SUBLIME, ATOM, ANDROID STUDIO etc..) ✘ Operating system. ✘ Technology used (PHP, JS, PYTHON, GO etc..) ✘ Application Server (optional) ✘ Optionally, your PC (HP, DELL, MAC) etc. Things that happen here; Documentation Automated testing Systems Architecturing Deployment - CI/CD

Slide 8

Slide 8 text

What truly happens 20% writing coding & hoping it works 80% questioning your life choices

Slide 9

Slide 9 text

What truly happens 20% writing coding & hoping it works 80% questioning your life choices

Slide 10

Slide 10 text

When it finally works

Slide 11

Slide 11 text

A replica of the target environment but not entirely in terms of data and other communication services involved. Mostly for manual testing of the application by Users to see if it works as expected. STAGING Things that happen here; ✘ Q/A testing ✘ User testing ✘ A/B testing ✘ Regression testing

Slide 12

Slide 12 text

WHAT REALLY HAPPENS IN STAGING

Slide 13

Slide 13 text

The target environment, the final housing of the application to serve all the users of the application. Product <> Production PRODUCTION Things that happen here (Post deployment / production); ✘ Monitoring & Reporting ✘ Incident Management ✘ A/B testing

Slide 14

Slide 14 text

PRODUCTION Things that happen here (Post deployment / production); ✘ Monitoring & Reporting ✘ Incident Management ✘ A/B testing So we don’t have a case of ================>

Slide 15

Slide 15 text

WORKING IN THE CONTEXT OF A TEAM our office

Slide 16

Slide 16 text

TEAM DYNAMICS Team dynamics are created by the nature of the team’s work, the personalities within the team, their working relationships with other people, and the environment in which the team works. Environment which team work ✘ Team tools ○ Project management ○ Communication ○ Source control ✘ Workflows & convention ○ Style guide ○ Git workflow ○ Dependency manager

Slide 17

Slide 17 text

Team Tools Project Management ✘ Trello ✘ Pivotal Tracker ✘ Asana Communication ✘ Slack ✘ Microsoft teams ✘ Skype ✘ Whatsapp ✘ Zoom ✘ Google Hangout ✘ Email - Gmail Repository control ✘ GitHub ✘ Gitlab ✘ BitBucket

Slide 18

Slide 18 text

Team Tools

Slide 19

Slide 19 text

Workflows & Conventions Style Guide ✘ Airbnb ✘ Google ✘ PSR Git Workflow ✘ PR conventions ✘ Branch Naming ✘ Commit messages Dependency Package Managers ✘ NPM ✘ YARN ✘ Composer ✘ PIP ✘ Gradle ✘ Cocoapods

Slide 20

Slide 20 text

HANDS-ON Code

Slide 21

Slide 21 text

What we will be building ✘ A simple API service using XAPI. ✘ Move from development to production using Heroku Apps. ✘ Development to production using docker containers ✘ Auto container deployment strategy CI/CD. ✘ https://github.com/wal ecloud/xapi ✘ https://heroku.com ✘ https://docker.com ✘ https://travis.com

Slide 22

Slide 22 text

Our development setup ✘ PC OS - (MAC, WINDOW, LINUX etc..) ✘ Programming Language - JavaScript NODEJS ✘ Code editor / IDE - VSCODE

Slide 23

Slide 23 text

Staging ✘ Temporary deployment ✘ Testing ○ Automated testing ○ Q/A

Slide 24

Slide 24 text

Production ✘ Hosting platform - (heroku, AWS, AZURE, GCP, Digital Ocean, On-premise server). ✘ Container housing - (docker registry, heroku container registry, Privately hosted registries. ) ✘ Monitoring & Reporting - (Runscope, Bugsnap, Datadog, New relic) ✘ Analytics - (Azure App analytics, Google Analytics etc..)

Slide 25

Slide 25 text

SOURCE LINKS ✘ Code repository - https://github.com/walecloud/lepsta ✘ Staging - https://lepsta-staging.herokuapp.com ✘ Production - https://lepsta.herokuapp.com ✘ Docker Image - https://hub.docker.com/r/walecloud/lepsta ✘ Travis CI - https://travis-ci.org/waleCloud/lepsta

Slide 26

Slide 26 text

Let’s review some concepts CI Continuous integration (CI) is focused on automatically building and testing code, as compared to CD CD Continuous delivery (CD), which automates the entire software release process up to production. DOCKER Docker is a set of platform-as-a-service products that use OS-level virtualization to deliver software in packages called containers. Containers Containers allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies, and ship it all out as one package. Registries A container registry is a collection of repositories made to store container images. A container image is a file comprised of multiple layers which can execute applications in a single instance. Cloud hosting Cloud hosting is the on-demand availability of computer system resources, especially data storage and computing power, without direct active management by the user

Slide 27

Slide 27 text

Credits Special thanks to all the people who made and released these awesome resources for free: ✘ Presentation template by SlidesCarnival ✘ Photographs by Unsplash ✘ Gifs by Giphy

Slide 28

Slide 28 text

Presentation design This presentation uses the following typographies and colors: ✘ Titles: Walter Turncoat ✘ Body copy: Sniglet You can download the fonts on these pages: https://www.fontsquirrel.com/fonts/walter-turncoat https://www.fontsquirrel.com/fonts/sniglet ✘ White #FFFFFF You don’t need to keep this slide in your presentation. It’s only here to serve you as a design guide if you need to create new slides or download the fonts to edit the presentation in PowerPoint®

Slide 29

Slide 29 text

thanks! Any questions? You can find me at @walecloud