DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!)...
Transcript of DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!)...
![Page 1: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/1.jpg)
DevOps
Finding the right amount
#NercompPDO3
![Page 2: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/2.jpg)
Who am I?Ian [email protected] of Data and Systems IntegrationBrandeis University
- Web and Middleware Development- Identity and Access Management- Data Warehouse- Data Integrations
![Page 3: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/3.jpg)
About BrandeisFounded in 1948
Waltham, MA (9 miles west of Boston)
Undergraduate enrollment: 3,635
Graduate enrollment: 2,087
Staff FTE: 1,150
Faculty FTE: 569
![Page 4: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/4.jpg)
Finding the right amount?What do you already do? Even consider informal practices.
Where you want to see your team and why?
Consider: How much is appropriate for your environment?
![Page 5: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/5.jpg)
We do not have any DevOps software or practices.
![Page 6: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/6.jpg)
![Page 7: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/7.jpg)
My teamDevelopers that are responsible for deployments as well as responsible for the overall deployment environments.
Dev + Ops = just trying to get everything done
Is this a problem?
![Page 8: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/8.jpg)
What goals really matter to you?Maintainable
Repeatable
Minimize downtime
Limiting production support, especially off-hours
Cross-training / coverage
![Page 9: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/9.jpg)
Let’s take a closer look at DevOps concepts applied to my current practices…
![Page 10: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/10.jpg)
![Page 11: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/11.jpg)
Plan - status meetings, tickets, project managers as needed
Create - development standards
Verify - quality of our testing/verification varies on project and stakeholders
Package - Click a button, get it done
Release - Click a button, get it done (also: standards, standards, standards!)
Configure - Automatic when possible; responsibilities cross group borders
Monitor - logs, splunk, uptime robot, hyperic, alerts to email and Slack
Applying the DevOps Toolchain to My Reality
![Page 12: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/12.jpg)
OK, maybe we were doing DevOps before DevOps was cool. #OldSchoolCool #DevOps
![Page 13: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/13.jpg)
PlanningGathering requirements early and often
Change management (mitigating scope creep)
Status meetings! Consider format; hold people accountable; while making it a meeting people look forward to attending
![Page 14: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/14.jpg)
Let’s talk about standardsDirectory structure (where to find our software)
Software builds
Code structure
Software repository
Release management mechanism
![Page 15: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/15.jpg)
Directory StructureOnce you know how we organize our software you can navigate to any of it with ease.
/usr/public contains underlying software (Apache HTTPD, .so files, OpenSSL, etc.)
/var/applications contains the applications
/var/data contains database files, logs and other data files
Software runs as “distid” user (not root)
The same setup is true on any server within our purview.
![Page 16: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/16.jpg)
Underlying Software Builds (/usr/public)Download third-party kits to “build server”
Giant “make” file
Process creates /usr/public
Defined process to sync to target servers
Super easy, repeatable process to add software or do one upgrade
Extremely painful process to upgrade everything
![Page 17: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/17.jpg)
Code Structureetc directory for config files
.control directory for encrypted passwords
bin directory for scripts (e.g. cron jobs)
templates directory for HTML templates
website directory for CSS, JS, images
README
and…
![Page 18: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/18.jpg)
Perl Code Structure - Basics/var/applications/[App_Name][ver]/perllib/
Brandeis/
[App_Name]/
Handler.pm
View.pm
Process.pm
Schema.pm
Brandeis::App_Name::Process
![Page 19: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/19.jpg)
Python/Flask Code Structure -- look familiar?In addition to same standards (e.g. bin, etc, templates, README)…
config.py Config_sandbox.pyForms.py __init__.pymodels.pyprocess.pyviews.py
![Page 20: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/20.jpg)
It’s all about standards.
![Page 21: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/21.jpg)
Software RepositorySubversion (svn), Locally hosted - Future: Perhaps github
Gets the job done, but conceptually getting outdated and no reason to be on-site.
Source control doesn’t replace the need for communication between team members.
![Page 22: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/22.jpg)
VerifyQuality of our testing/verification varies on project and stakeholders
Challenges of developers being testers
Challenges of stakeholders being testers
Hired one QA staff in Project Management team for everything
Concept of Quality Champion
![Page 23: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/23.jpg)
PackagesCustom Web-based UI to build deploy software packages
Click a button to build a kit/package
Click a button to release any version
Click a button to restart a process if needed
Desire to replace with something not custom but not complex.
![Page 24: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/24.jpg)
Click to deploy
![Page 25: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/25.jpg)
Software Releases/var/applications/[production-name]/[VER#]
/var/applications/[production-name]/production → /var/applications/[production-name]/[VER#]
Not required to keep every old version on target server but can be convenient.
Automatic creation of environment specific symbolic links (e.g. /var/applications/[production-name]/production/etc/example.xml → /var/applications/[production-name]/production/etc/example.xml.DEV)
![Page 26: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/26.jpg)
Know what’s deployed
![Page 27: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/27.jpg)
Locally Hosted Third-Party SoftwareRelease to /var/applications (link from other location if needed)
Separate configuration from application -- Goal is to be able to upgrade software and overlay configuration.
Create a repeatable process (even just a simple script to create symbolic links)
![Page 28: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/28.jpg)
ConfigureUnlike software releases, this crosses into our server provisioning group
Important to have close relationship across groups
Server images (minimal vs. one with some of our basic setup and SSH keys)
Especially if minimal, manual script to walkthrough to get to our “standard”
Could be better, but at least it’s documented
![Page 29: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/29.jpg)
MonitorLogs
Splunk
uptime robot
Hyperic
alerts to email and Slack
![Page 30: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/30.jpg)
Building the culture of collaboration.
![Page 31: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/31.jpg)
Everything is changingPreference tobuy vs. build
Preference for cloud/SaaS solutions
PeopleSoft → Workday
Increasing need forIntegrations (iPaaS tool)
![Page 32: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/32.jpg)
Applying DevOps in low-code areas?Data integration software with a graphical user interface
Easy to click, drag and deploy…
But how to maintain quality?
How does this fit into DevOps practices?
Consider product limitations (e.g. what if you cannot create builds?)
![Page 33: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/33.jpg)
Room for improvementBuild server and make file vs. package management
Custom release management UI vs. cloud products
Local Subversion vs. GitHub
DevOps for iPaaS
QA / testing (let alone continuous integration)
DevOps for SaaS (e.g. Workday)
![Page 34: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/34.jpg)
Personal
Team
Other groups and outside individuals
Take time to appreciate successes
![Page 35: DevOps - NERCOMP...Release - Click a button, get it done (also: standards, standards, standards!) Configure - Automatic when possible; responsibilities cross group borders Monitor](https://reader034.fdocuments.us/reader034/viewer/2022050602/5fa9a60ad1f218542c216395/html5/thumbnails/35.jpg)
Keeping the conversation goingHow can we help each other?
Ian [email protected] of Data and Systems IntegrationBrandeis University
Please complete your evaluation emailed to you!
Thank you!