Building block development in managed hosting - Angelo Rossi, Manager, Complex Hosting Services,...

27
Building Block Development in Managed Hosting

Transcript of Building block development in managed hosting - Angelo Rossi, Manager, Complex Hosting Services,...

Page 1: Building block development in managed hosting - Angelo Rossi, Manager, Complex Hosting Services, Blackboard | ANZTLC15

Building Block Development in Managed Hosting

Page 2: Building block development in managed hosting - Angelo Rossi, Manager, Complex Hosting Services, Blackboard | ANZTLC15

Disclaimer

I am not a developer!

2

Page 3: Building block development in managed hosting - Angelo Rossi, Manager, Complex Hosting Services, Blackboard | ANZTLC15

Limitations vs. industry best practice

3

Flexibility during

development Testing

Change control during

rollout

QUALITY & STABILITY

Page 4: Building block development in managed hosting - Angelo Rossi, Manager, Complex Hosting Services, Blackboard | ANZTLC15

Typical MH Client Setup

Silver/Gold/Platinum Diamond

Test Fresh install, single app+db setup, no production data

Test Fresh install, single app+db setup, no production data

Staging Multiple app servers(two), copy of the production data, shared infrastructure with prod environments

Production Multiple app servers Production Multiple app servers

4

Page 5: Building block development in managed hosting - Angelo Rossi, Manager, Complex Hosting Services, Blackboard | ANZTLC15

Datacenter setup

• Test, Staging and Production environments share the same infrastructure including:– firewalls, switches, routers

– network filers

5

Page 6: Building block development in managed hosting - Angelo Rossi, Manager, Complex Hosting Services, Blackboard | ANZTLC15

Network setup

• Incoming connections from the internet are blocked with the exception of ports 80 and 443 – no exceptions

• All outgoing connections are allowed

6

Page 7: Building block development in managed hosting - Angelo Rossi, Manager, Complex Hosting Services, Blackboard | ANZTLC15

Policies

• No shell access to change settings, run scripts

• No cronjobs

• No shell access to restart the services

• No direct database access

7

Page 8: Building block development in managed hosting - Angelo Rossi, Manager, Complex Hosting Services, Blackboard | ANZTLC15

No shell access

• Existing processes reviewed when moving to Managed Hosting

• More robust change management

• No hacks, they can backfire.

8

Page 9: Building block development in managed hosting - Angelo Rossi, Manager, Complex Hosting Services, Blackboard | ANZTLC15

No database access

• SLA is the main reason

• Real “Enterprise” integrations, easier to monitor and detect performance issues and disable individual functionalities.

• More robust change control and maintenance: eg. the integrations don’t run if the system is down for maintenance.

9

Page 10: Building block development in managed hosting - Angelo Rossi, Manager, Complex Hosting Services, Blackboard | ANZTLC15

Development

• Sounds complicated and limiting!

• How am I supposed to develop and test if I have nearly no access to the system?

10

Page 11: Building block development in managed hosting - Angelo Rossi, Manager, Complex Hosting Services, Blackboard | ANZTLC15

Best Practice

• Limitations? We like to call it “Best Practice”!

11

Page 12: Building block development in managed hosting - Angelo Rossi, Manager, Complex Hosting Services, Blackboard | ANZTLC15

Solution

• Let’s break down the various phases of the process:

• - development

• - testing

• - deployment

12

Page 13: Building block development in managed hosting - Angelo Rossi, Manager, Complex Hosting Services, Blackboard | ANZTLC15

Development

• Requirements:

- Full access to the dev system: quick changes, restart services, monitor system resources and troubleshoot. Ideally no network lag and the possibility to take snapshots, revert to a fresh install etc..

- No need to reinvent the wheel: the Developer Virtual Machines are the best solution

- Possible limitations that should be taken into account are different network architecture and speed, and more in general limited app and db performance, however these should help detecting issues at an early stage

13

Page 14: Building block development in managed hosting - Angelo Rossi, Manager, Complex Hosting Services, Blackboard | ANZTLC15

End of the development cycle

• The B2 or integration is working. All the requirements are fulfilled what’s next?

14

Page 15: Building block development in managed hosting - Angelo Rossi, Manager, Complex Hosting Services, Blackboard | ANZTLC15

Testing

• All Managed Hosting clients have a Test environment for functional and integration testing.

• network setup is identical to production so firewall/DNS issues can be caught during this phase

• No production data but it is possible to create or import courses and create test user accounts and data.

15

Page 16: Building block development in managed hosting - Angelo Rossi, Manager, Complex Hosting Services, Blackboard | ANZTLC15

Testing - troubleshooting

• Test is a single application server instance.

• Pros:– all logs can easily be retrieved via system admin > Tools and Utilities >

Logs

– Relatively limited hardware resources. Many performance issues will show up at this stage and be caught before rolling out

• Cons: “session spraying” issues might not be caught until the B2 is deployed to a multi app server system

16

Page 17: Building block development in managed hosting - Angelo Rossi, Manager, Complex Hosting Services, Blackboard | ANZTLC15

How to install/upgrade a B2 to MH Test

• Administrators can do it from the web interface

• A restart might be required. Managed Hosting Support or your SDM can assist

17

Page 18: Building block development in managed hosting - Angelo Rossi, Manager, Complex Hosting Services, Blackboard | ANZTLC15

Staging environment - optional

• Only for Diamond clients and clients that have bought an additional service

• copy of the production system data deployed on a multi-app servers setup architecturally similar to Production.

• Diamond clients have single point of contact for maintenance and project management, the Service Delivery Manager.

• Service Delivery Managers keep their clients’ production and staging systems in sync

18

Page 19: Building block development in managed hosting - Angelo Rossi, Manager, Complex Hosting Services, Blackboard | ANZTLC15

Staging – Change Management

• This step has little to do with the development cycle

• The Service Delivery team works with the client for testing and documenting deployment and config

• This is for testing the change, not the code

• Clients’ business can test the integration with real data

19

Page 20: Building block development in managed hosting - Angelo Rossi, Manager, Complex Hosting Services, Blackboard | ANZTLC15

Rollout

20

Page 21: Building block development in managed hosting - Angelo Rossi, Manager, Complex Hosting Services, Blackboard | ANZTLC15

Production

• Deployment to prod can be done by the client or via a support ticket

• Don’t forget a rolling restart, Support will assist

21

Page 22: Building block development in managed hosting - Angelo Rossi, Manager, Complex Hosting Services, Blackboard | ANZTLC15

Production

• Go-live!

22

Page 23: Building block development in managed hosting - Angelo Rossi, Manager, Complex Hosting Services, Blackboard | ANZTLC15

Troubleshooting

• Logs!

• What’s different in Dev/Test/Staging?

23

Page 24: Building block development in managed hosting - Angelo Rossi, Manager, Complex Hosting Services, Blackboard | ANZTLC15

Performance issues

• MH WILL make the B2 inactive in case of performance issues

• Thread dumps will be provided

• Production heap dump is ~12gb, let’s try to avoid that

24

Page 25: Building block development in managed hosting - Angelo Rossi, Manager, Complex Hosting Services, Blackboard | ANZTLC15

Recommendations

• Connections timeout

• Write smart code

• Handle exceptions and log errors

• Limit database and external resources usage

25

Page 26: Building block development in managed hosting - Angelo Rossi, Manager, Complex Hosting Services, Blackboard | ANZTLC15

Self hosted clients

• This model could also be used by non hosted clients:– Self contained applications

– No issues when cloning to non-production systems

– Easier maintenance

– Future-proof

26

Page 27: Building block development in managed hosting - Angelo Rossi, Manager, Complex Hosting Services, Blackboard | ANZTLC15

Questions?

27