It has been nearly 5 years since we started working on Azure cloud platform. We are small team and finally I thought we have worked enough to call ourselves little knowledgeable on various platform parts- ours and others, what works and what does not, how to make the move. Microsoft Azure has evolved over years to support these requirements. It is still long way to go…but path is right. We help guide customers prioritize the workload which they can move as part of comprehensive briefing in adopting Cloud platform either as private, public or hybrid.
I have worked with customers who want to move everything in cloud hoping it will mask challenges on-premise (scale, performance, monitoring) to pragmatic folks who pick and choose workloads like email first(established enterprise challenges are myriad – no email sending/only receiving). There are many folks who want to take advantage of local infrastructure and move forward. Some folks just pick simplest and easiest – backup on cloud to get feet wet. Others push dev/test to cloud to minimize local requirements. Path varies for Enterprises & ISVs and we have lot to offer.
When migrating applications to cloud platform, simple evaluation measures are
- Legal issues (any issue with putting data on cloud, encryption required- implies key management)
- Performance requirements and verified by tests
- IO/Network/CPU – end user workload – have a plan for these tests to ensure end user and perf testing is done.
- Is the application end of life or the tools used not supported anymore – like VB6/old client server power builder applications or dos/QT based application, they will provide lot more roadblocks than progress.
- Advantages one wants to exploit of cloud – scale out, elasticity – Is that possible with existing applications. Should they be modified?
- Availability requirements (What are the availability requirements and what you can live with) – one data center vs DR to others – data movement/deployment – warm/cold.
- Is system in this form able to meet SLA. Otherwise modify/decouple to achieve the availability. Simplest requirement of handling throttling, failures of underlying infra requires change
- Requirement with Integration with On premise applications (authentication/Antivirus), pushing/pulling of data.
- Operational stuff – How will you do ALM –deploy a set of software(os+dependencies+app+topology), push patches/updates, backup, DR for for these applications.
- Monitoring requires culture change and we have seen developers jolted out of lethargy to adopt/learn new tools and work with admin folks to provide SLAs of performance and availability using canaries, graceful-degradation,failover frameworks. Existing on premise tools are becoming better but cloud based ones like NewRelic/Boundary for backend applications Gomez/Keynote for reachability/availability, corelate with frontend tools like Errorception are easier to adopt.
Non Functional stuff while doing migration
- Chalk out responsibilities of the involved people (application owner, Services provider, vendor)
- Steps/Goals of each milestone (performance/availability/workarounds)
- Chalk out support steps for each application (escalation steps )
- Placement of cloud expert locally to handhold/support + dedicated support (concepts like storage/availability group or zones from other cloud platform)
- Support of ISV apps by guiding them over time to the platform
- Chalk out how migration monitoring is done (easiest – daily/weekly vs fire meetings and owners from stakeholders)
- Production monitoring for capacity/outage/testing of failover (tool based testing – simianarmy of your own)
I have seen customers surprised as they see the amount of work they sometimes need to do to adopt cloud (availability/monitoring/performance – shared infrastructure ). Since we get customers who have tried/used other cloud platforms – so it is always fun and encouraging to see something what Google compute announced (transparent vm migration ) or what AWS added – Read replicas – life in general is becoming easier to be a developer. Although it means adapting/changing to new platform , it is a sweet journey. With frameworks from Netflix/Twitter/Linkedin and other folks – one can literally start hit ground running. This really is best time to be a developer.
Normally our help is taken by field facing teams serving our customers – but do feel free to reach out to mtcbang at microsoft dot com for help in adopting cloud platform (public/private/hybrid) or specific workloads like database , integration, sharepoint, security(device/application/infra), adopting byod-managing devices or windows 8/phone .
There is another small announcement – we are looking for a person – preferably a woman stationed out of Mumbai as part of our team(http://www.microsoft.com/en-us/mtc/default.aspx ). Requirements are very simple – listen to customer – have empathy – understand the pain and resolve it using right tools and technologies.
- Could mean using/suggesting architecture change – decouple/monitor/canary/shard the db at app or db/use reactive pattern or help create greenfield solution from ground up (20-25% of job)
- Look at performance/maintenance/availability issues around sql server/mysql/oracle (yeah we are ok with person having postgres/sybase/oracle experience as techniques remain same – tool name and methodology changes a little)
- Ability to pick up redis/cassandra/mongodb/hbase – yeah – we have get many of them too.
- At times be generalist and use capabilities of sharepoint and showcase how it helps enhance productivity using its arsenal. Yes generic sharepoint knowledge and associated tools information is good.
- Have an Idea what BI means – facts,dimensions, – what are the tools which one can use and newer ones (hadoop lake + aggregations via jobs ) + near real time stuff (streaminsight ,storm and friends).
- Have generic idea about messaging platforms (connect to source/destinations via transforms, add routing/orchestration ) – it is okay not to know this particular piece – but ideally exposed once or twice in the field
- Have basics in place – which data structure I can use on mobile device constrained by memory/storage for storage/query or what makes pragmatic sense – connecting two systems – this is very much required than a “particular way of product-feature” bent as we need to think of different ways and brainstorm the ideas with customers
- Open mind to pick up things right from phantomjs, d3.js or sci-kit to optiq and adopt/use them
Again if you know somebody or you are interested – please reach out @ [myid] at microsoft dot com – [govindk] . We do whole lot of other things like – http://dreamadream.org/2013/02/funday-at-the-microsoft-technology-center-mtc-bangalore/ and generally do not travel – are very flat and fun (shhh – we are known to do monday movies – beer/food at new joints . Basically a no-bs , do-your-thing workplace. You will have some of the most fun people like Vinod – http://blogs.extremeexperts.com/about/ (book writer, well known speaker and great friend) to Anand – https://twitter.com/tweetmsanand ( our private cloud, infrastructure, security herder ).