Government as a Service - Architecting Australia's govCMS
-
Upload
jeffrey-mcguire -
Category
Technology
-
view
1.432 -
download
4
Transcript of Government as a Service - Architecting Australia's govCMS
Government as a ServiceArchitecting govCMS
Adam Malone @adammalone Solutions Architect APJ, Acquia
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
What is govCMS Why Drupal + Public Cloud
What has been learned How we're off the Island
Future
In the beginning
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]
govCMS is a whole of gov re-think about online, agile, accessibility, procurement, security, support and open source.
Not just code.
Criteria for govCMS
What is govCMS
govCMS OOTB→Drupal
→ Security
→Public Cloud
→Deed
→Agile
→Design Standards / Accessibility
→ Services
Open Source→ Security
→ Reuse
→ Rich pool of resources
→ Off the Island
→ No vendor lock in
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
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
Distribution Governance→ Governance is key
→ gOps
→ CAB
→ Requirements driven platform evolution
→ Documented procedures for:
→ Codebase additions
→ Platform deployment
→ Security audits
The problem
Leapfrogging giants
Many departments, one govCMS
Agency
govCMS Platform
govCMS Core
Patterns
govCMS Patterns→Pattern 1
→govCMS OOTB
→Pattern 2
→Transitionary state
→Platform evolves to meet requirements
→Pattern 3
→Custom
Architecture
Platform build
Patch workflow
→Regularly scheduled releases
→Prepared for hotfixes
→Distribution
→Feature branch workflow
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
Keeping the codebase lean
→No need to recreate the wheel
→Change management becomes easier
→Leveraging the community
→Remember what brought us here
The technical bits
Cloud
→AWS Sydney
→Constant 24/7 operational monitoring
→Disaster Recovery
→7 years of:
→Offsite site archival
→Offsite log storage
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
Tooling
→Drupal
→Drush Make
→Phing
→Composer
→PhantomJS
→PHPCS
→Behat
→Git
→Travis CI
→Autodeploy
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
Testing
→Code
→Syntactically correct
→Drupal coding standards
→Cyclometric complexity
→Functional/Behavioural
→Behat
→Automated deployments
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"
The benefits
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
Benefits to Australian residents
→Familiarity
→Rapid iteration and development
→Savings passed on
Benefits to government employees
→Freedom to contribute
→Agile process
→Modern tools
→Transferable skills
→Contributing to Open Source
Benefits to the Drupal community
→Flagship Drupal exemplar
→Mandate to contribute enhancements
→ Increasing skills in Australia
→A stake in the ground worldwide
Future
Extending govCMS
→Expanded functionality
→Further interdepartmental sharing
→DTO
→Government as an API
→Services
govCMS Worldwide
→Wider impact on Open Source as an example
→KiwiCMS?
→SgCMS?
→UniCMS?
Try govCMS
→Fork us on GitHub
→https://github.com/govCMS
→Download from drupal.org
→https://www.drupal.org/project/govcms
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
Questions?@adammalone
typhonius
https://www.adammalone.net
https://www.acquia.com