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. DEVELOPMENT TO PRODUCTION

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

    ✘ Working in the context of a team ✘ Hands-on
  4. Understanding your code environments

  5. Development Environments Staging / Testing Development Production / Release

  6. What we wish happens during development

  7. 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
  8. What truly happens 20% writing coding & hoping it works

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

    80% questioning your life choices
  10. When it finally works

  11. 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
  12. WHAT REALLY HAPPENS IN STAGING

  13. 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
  14. PRODUCTION Things that happen here (Post deployment / production); ✘

    Monitoring & Reporting ✘ Incident Management ✘ A/B testing So we don’t have a case of ================>
  15. WORKING IN THE CONTEXT OF A TEAM our office

  16. 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
  17. Team Tools Project Management ✘ Trello ✘ Pivotal Tracker ✘

    Asana Communication ✘ Slack ✘ Microsoft teams ✘ Skype ✘ Whatsapp ✘ Zoom ✘ Google Hangout ✘ Email - Gmail Repository control ✘ GitHub ✘ Gitlab ✘ BitBucket
  18. Team Tools

  19. Workflows & Conventions Style Guide ✘ Airbnb ✘ Google ✘

    PSR Git Workflow ✘ PR conventions ✘ Branch Naming ✘ Commit messages Dependency Package Managers ✘ NPM ✘ YARN ✘ Composer ✘ PIP ✘ Gradle ✘ Cocoapods
  20. HANDS-ON Code

  21. 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
  22. Our development setup ✘ PC OS - (MAC, WINDOW, LINUX

    etc..) ✘ Programming Language - JavaScript NODEJS ✘ Code editor / IDE - VSCODE
  23. Staging ✘ Temporary deployment ✘ Testing ◦ Automated testing ◦

    Q/A
  24. 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..)
  25. 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
  26. 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
  27. 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
  28. 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®
  29. thanks! Any questions? You can find me at @walecloud