Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Lepsta developer workshop

Lepsta developer workshop

A hands-on workshop/meetup focusing on moving code from development to production using auto-deploy functionality from github => travis => dockerhub => heroku.

Google slides looks better - https://docs.google.com/presentation/d/1FU0f-3Xd-4NgblomPzHeU3tk7d3dOhqbgSvDdbBs_rs/edit?usp=sharing

Focuses on how to improve confidence deploying your code when working with a distributed team environment.

Wale Ayandiran

September 28, 2019
Tweet

More Decks by Wale Ayandiran

Other Decks in Programming

Transcript

  1. 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”
  2. What we will be covering ✘ Understanding your code environments

    ✘ Working in the context of a team ✘ Hands-on
  3. 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
  4. 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
  5. 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
  6. PRODUCTION Things that happen here (Post deployment / production); ✘

    Monitoring & Reporting ✘ Incident Management ✘ A/B testing So we don’t have a case of ================>
  7. 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
  8. Team Tools Project Management ✘ Trello ✘ Pivotal Tracker ✘

    Asana Communication ✘ Slack ✘ Microsoft teams ✘ Skype ✘ Whatsapp ✘ Zoom ✘ Google Hangout ✘ Email - Gmail Repository control ✘ GitHub ✘ Gitlab ✘ BitBucket
  9. Workflows & Conventions Style Guide ✘ Airbnb ✘ Google ✘

    PSR Git Workflow ✘ PR conventions ✘ Branch Naming ✘ Commit messages Dependency Package Managers ✘ NPM ✘ YARN ✘ Composer ✘ PIP ✘ Gradle ✘ Cocoapods
  10. 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
  11. Our development setup ✘ PC OS - (MAC, WINDOW, LINUX

    etc..) ✘ Programming Language - JavaScript NODEJS ✘ Code editor / IDE - VSCODE
  12. 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..)
  13. 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
  14. 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
  15. 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
  16. 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®