![Page 1: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/1.jpg)
Government as a ServiceArchitecting govCMS
Adam Malone @adammalone Solutions Architect APJ, Acquia
![Page 2: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/2.jpg)
About me→Solutions Architect @ Acquia→Drupal age: 4 and a bit →Trivial patch of the month winner→Emoji adept 👸 👷→ typhonius most places online→Didn't realise typhonius was a species of toad
![Page 3: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/3.jpg)
What is govCMS Why Drupal + Public Cloud
What has been learned How we're off the Island
Future
![Page 4: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/4.jpg)
In the beginning
![Page 5: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/5.jpg)
A modern approach to technology→ Policy for eGovernment and the Digital Economy [let’s go online]
→ AU gov’s Open Source Policy [share code and functionality]
→ AU gov’s Cloud Computing Policy (v3) [save costs, ensure security]
→ Best practise service design — DTO [accessibility & easier to use]
![Page 6: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/6.jpg)
govCMS is a whole of gov re-think about online, agile, accessibility, procurement, security, support and open source.
Not just code.
![Page 7: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/7.jpg)
Criteria for govCMS
![Page 8: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/8.jpg)
What is govCMS
![Page 9: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/9.jpg)
govCMS OOTB→Drupal
→ Security
→Public Cloud
→Deed
→Agile
→Design Standards / Accessibility
→ Services
![Page 10: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/10.jpg)
Open Source→ Security
→ Reuse
→ Rich pool of resources
→ Off the Island
→ No vendor lock in
![Page 11: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/11.jpg)
Security→ HTTPS everywhere
→ IP Whitelisting by default
→ No PII (yet)
→ Secure by default
→ Packaged DDOS / CDN
→ Compliant (AWS -> Acquia -> ACE -> ACSF -> govCMS)
→ IRAP assessed against the ISM
![Page 12: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/12.jpg)
Reuse before buy before buildPrinciple 3 of the Australian Government Open Source Software Policy:
“Australian Government agencies will actively participate
in open source software communities and contribute back where appropriate”
Functionality created by one agency can be made available for all
![Page 13: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/13.jpg)
Distribution Governance→ Governance is key
→ gOps
→ CAB
→ Requirements driven platform evolution
→ Documented procedures for:
→ Codebase additions
→ Platform deployment
→ Security audits
![Page 14: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/14.jpg)
The problem
![Page 15: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/15.jpg)
Leapfrogging giants
![Page 16: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/16.jpg)
Many departments, one govCMS
Agency
govCMS Platform
govCMS Core
![Page 17: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/17.jpg)
Patterns
![Page 18: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/18.jpg)
govCMS Patterns→Pattern 1
→govCMS OOTB
→Pattern 2
→Transitionary state
→Platform evolves to meet requirements
→Pattern 3
→Custom
![Page 19: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/19.jpg)
Architecture
![Page 20: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/20.jpg)
Platform build
![Page 21: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/21.jpg)
Patch workflow
→Regularly scheduled releases
→Prepared for hotfixes
→Distribution
→Feature branch workflow
![Page 22: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/22.jpg)
There's a module for that!
→Critically define requirements
→Solve the unspoken question
→Consider the platform, not just the site
→Module/requirement review
→Problem rather than module
![Page 23: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/23.jpg)
Keeping the codebase lean
→No need to recreate the wheel
→Change management becomes easier
→Leveraging the community
→Remember what brought us here
![Page 24: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/24.jpg)
The technical bits
![Page 25: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/25.jpg)
Cloud
→AWS Sydney
→Constant 24/7 operational monitoring
→Disaster Recovery
→7 years of:
→Offsite site archival
→Offsite log storage
![Page 26: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/26.jpg)
Acquia Cloud Site Factory
→SaaS application for Drupal
→Simplifies multisite management and operation
→Granular access per site/group
→Many sites, one codebase
→Site duplication
→Theming flexibility
![Page 27: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/27.jpg)
Tooling
→Drupal
→Drush Make
→Phing
→Composer
→PhantomJS
→PHPCS
→Behat
→Git
→Travis CI
→Autodeploy
![Page 28: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/28.jpg)
Building
Dependancies: git & composer
$ git clone [email protected]:govCMS/govCMS.git
$ cd govCMS
$ composer install --prefer-dist --working-dir=build
$ build/bin/phing -f build/phing/build.xml build
![Page 29: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/29.jpg)
Testing
→Code
→Syntactically correct
→Drupal coding standards
→Cyclometric complexity
→Functional/Behavioural
→Behat
→Automated deployments
![Page 30: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/30.jpg)
Behavioural testing
Feature: govCMS Google Analytics
Ensure the govCMS Google Analytics account is added.
Scenario: Check that the GA markup appears Given I go to the homepage Then the response should contain "UA-12312312-1"
![Page 31: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/31.jpg)
The benefits
![Page 32: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/32.jpg)
Benefits to agencies→Setup cost drastically reduced
→Elimination of lengthy procurement/tendering process
→Security/IRAP assessment completed
→ Increase agility
→24/7 Support
→Pro-active alerting
→Security updates
![Page 33: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/33.jpg)
Benefits to Australian residents
→Familiarity
→Rapid iteration and development
→Savings passed on
![Page 34: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/34.jpg)
Benefits to government employees
→Freedom to contribute
→Agile process
→Modern tools
→Transferable skills
→Contributing to Open Source
![Page 35: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/35.jpg)
Benefits to the Drupal community
→Flagship Drupal exemplar
→Mandate to contribute enhancements
→ Increasing skills in Australia
→A stake in the ground worldwide
![Page 36: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/36.jpg)
Future
![Page 37: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/37.jpg)
Extending govCMS
→Expanded functionality
→Further interdepartmental sharing
→DTO
→Government as an API
→Services
![Page 38: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/38.jpg)
govCMS Worldwide
→Wider impact on Open Source as an example
→KiwiCMS?
→SgCMS?
→UniCMS?
![Page 39: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/39.jpg)
Try govCMS
→Fork us on GitHub
→https://github.com/govCMS
→Download from drupal.org
→https://www.drupal.org/project/govcms
![Page 40: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/40.jpg)
Resources→ http://www.communications.gov.au/
digital_economy
→ http://www.finance.gov.au/policy-guides-procurement/open-source-software
→ http://www.finance.gov.au/policy-guides-procurement/cloud
![Page 41: Government as a Service - Architecting Australia's govCMS](https://reader031.vdocuments.us/reader031/viewer/2022030313/58ecde391a28abc1508b4571/html5/thumbnails/41.jpg)
Questions?@adammalone
typhonius
https://www.adammalone.net
https://www.acquia.com