yourfanat wrote: I am using another tool for Oracle developers - dbForge Studio for Oracle. This IDE has lots of usefull features, among them: oracle designer, code competion and formatter, query builder, debugger, profiler, erxport/import, reports and many others. The latest version supports Oracle 12C. More information here.
As enterprise business moves from monoliths to microservices, adoption and successful implementations of microservices become more evident. The goal of microservices is to improve software delivery speed and increase system safety as scale increases. Documenting hurdles and problems for the use of microservices will help consultants, architects and specialists to avoid repeating the same mistakes and learn how and when to use (or not use) microservices at the enterprise level. The circumstance when microservices is an appropriate solution described in this article and based on the authors' work experiences, best practices available in the microservices community. However, using microservices architecture does not guarantee success to the enterprise.
Introduction In software development, smaller is usually better. More minor things are easier to code, easier to maintain, simpler to test, and easier to deploy. Systems built this way can be more scalable, more flexible, and deliver value with greater speed. Microservices supports this kind of development.
However, adoption of microservices architecture requires an enterprise to undergo changes across various areas. The major changes are,
Organizational Cultural Changes
The following diagram describes the changes in details.
Figure 1: Changes affecting the Enterprise
Today, enterprises are adopting technologies like analytics, mobility, social media, IoT and smart embedded devices to change customer relationships, internal processes and value propositions. Microservices acts as building blocks for building modern distributed enterprise systems and become one of the enablers in the digital transformation journey. Microservices provides the agility, reliability, maintainability, scalability and deploy ability that aid enterprises through their digital transformation process. It helps the enterprise in achieving the following factors,
Focus on Business Need
Agility, enterprises can introduce new products or enhancements into the market quickly
Enhancing the customer experience
Reliability, If a service is down, the customer will not be able to use the functionality provided by that specific service, but the rest of the system is still usable
Scalability, the system can be configured to auto-scale (up / out) and during off-peak hours, it can go back to its normal configuration resulting in a better customer experience and cost-savings for the customer
Can be developed & deployed independently of other services
There exists, numerous articles and blogs on Microservices best practices, designing good services, and a robust supporting backbone [1-3]. The following sections of the paper summarizes, when to adopt Microservices and when not to use Microservices. It also highlights enterprise adoption of Reference Architecture using Microservices.
Characteristics of Microservices Microservices is an architecture style, in which software systems or applications are composed of one or more independent and self-contained services. It is not a product, framework, or platform. It is a strategy for building large distributed systems. Microservices are loosely coupled and deployed independently of one another.
Microservices can be developed in any programming language, each running in its own process and communicating with lightweight mechanisms like HTTP resource API such as REST. Each Microservices focuses on completing one task and that one task represents a small business capability. There exist no criteria on how small a microservice must be. These services lead the application decomposition into smaller pieces. This helps to scale up parts of applications rather than scaling up the entire application. The below diagram depicts the major characteristics of Microservices which are classified as,
Figure 2: Characteristics of Microservices
Service Independent: As microservices are autonomous, each microservice can change in its lifecycle in an independent manner with other services.
Self-Contained: Services are easily replaceable and upgradeable. It promotes single ownership of the service. To achieve self-containment proper granularity in decomposition is essential.
Decentralized: Microservices decentralizes architectures, patterns, languages, standards, components and data responsibility and governance because of its architectural style.
Resiliency: If one of the microservices goes down, it won't necessarily bring the whole application down as it would with a monolithic
Polyglot: Microservices architecture supports multiple technologies, to be specific, a technology that is most fit for the purpose.
Single Responsibility: A Service is aligned to a single business activity and is responsible for that business activity and deliver the complete business logic necessary to fulfill the business activity
Scalability: Microservices can be deployed and scaled independently of each other.
Decoupled: Microservice should implement a single atomic business function. This helps in maintaining minimum dependency on other services
Implementation Agnostic: Implementation shall support multiple development platforms and technologies and can be deployed in any of the containers
Blackbox: Microservice shall be a black box (no internal details will be exposed outside the service boundary) for other components / systems using / invoking it.
Bounded Context: This is one of the important characteristic of Microservices. Other services do not need to know anything about underlying implementation or architecture of other Microservices.
Innovation: New versions of small independent services can be deployed more rapidly, making it easier to experiment and innovate.
Quality: Composability and responsibility, more maintainable code, better scaling and optimization.
End-to-End Ownership: This is a cultural shift for the project team. The development team will maintain each project built using microservices architecture as opposed to the regular practice (of handing it over to the support and maintenance team).
Independent Governance: A single team owns the complete ownership of the microservice life cycle. This team owns the all the aspects of the microservices including governance. Governance is decentralized and autonomous.
Manageability: Smaller microservices code bases are easier for developers to understand, making changes and deployments easier.
Microservices Modeling - Example Below is an example of microservices identification in e-Governance domain, the License Management application consists issue of license for various categories like starting of business, trading, weapon license etc. The application consists of several components including the LicenseFrontUI, which implements the user interface, along with some backend services for tracking, calculate fee, inspection etc. The application consists of following set of services. The below diagram depicts the sample application of License Management System using Microservices,
SOA vs Microservices Microservices Architecture is based on SOA vision, which is decomposition of software systems into loosely coupled services. Microservices extends the principles of SOA like business alignment, dependency minimization, and service contracts. Each Microservice has its own data store, and centralized governance.
SOA is preferred for an enterprise having plenty of legacy systems, heavy weight middleware and diverse applications. The environment for Microservices architecture is the borderless enterprise: end-to-end, cloud-centric digital applications leveraging virtualized infrastructure.
Microservices use continuous integration (CI) and continuous delivery (CD) methodologies and practices, as well as several critical components that were not as common in SOA, such as:
Polyglot programming and persistence.
Containers or immutable virtual machines (VMs).
The following table summarizes the difference between SOA and Microservices.
Service Oriented Architecture
SOA started as a conceptual architecture, SOA technologies have evolved from the concepts.
Microservice architecture was derived from real software development patterns observed within numerous organizations
SOA is limited to few aspects of an enterprise such as technology and governance
Microservice architecture is broad, covering the patterns, principles, culture, and enterprise governance and technologies
SOA was aiming to control and standardize enterprise application integration
Microservices goal is to be as responsive as possible to customer needs while maintaining high levels of software quality and system availability
Focus on standardization at enterprise level and follows the monolithic approach.
Allows different applications / teams to evolve autonomously.
More complex protocols like BPEL, WS-Choreography are used
Uses representational static transfer (REST) protocol
Loose or decoupled services
Atomicity is main feature of Microservices
In SOA data service layers are implemented using web-services-based data services. The exposed legacy data create-read-update-delete (CRUD) queries as web service operations.
Microservices abstract data services as RESTful resources, where individual microservices respond to RESTful calls by abstracting underlying CRUD operations.
Replacement of existing applications is complex and requires business case evaluation
Replacement is easy and most cost effective
Based on heavy weight technologies (SOAP, ESB etc) and not highly scalable
Based on lightweight technologies and is very scalable.
Application development and deployment takes longer time and its complex
Application development and deployment is rapid and simple. Less overhead
Centralized Governance. Does not support multiple development teams
Local and distributed governance. Supports multiple development teams working simultaneously and independently
Services need not be independent
Service has to be independent of other service
When to Do Microservices The following are the factors, which drive the enterprise to use Microservices as their solution.
Development for cloud based systems. Ie when enterprise decides to move from traditional SOA to cloud based applications, Microservices are preferred
To develop highly distributed systems
When the enterprise primary businessrevolves around extremely high volumetransactions
If the functionality to be highly available. Deploy the functionality as service in multiple, redundant providers so that some are available even when others are not.
For the solutions that require the integration of business capability from disparate systems and programming models
For aligning business and IT functionality
For business and technology agility
For incremental development (Agile) and continuous deployment of business software
When Not to Do Microservices The following are the factors, which negates the usage of Microservices.
Scenarios where monolithic and centralized application architecture make more sense (for more simple, small and low available application development)
For applications where consistency is high priority over eventual consistency
Small enterprises with homogeneous network and technology confined to the single vendor.
Scenarios where standards based integration not needed. The solution might be simple data exchange between applications and external systems.
When there is no frequent release because of changing requirements
Non cloud based development
Re-Architecting data platforms. If service relies upon a system of record (Mainframe, Oracle database, SAP system, and others), then Microservices do not fit the definition.
Scenarios where there is no product like ownership is required from the project teams
Cultural shift in enterprise in terms of team autonomy, long-term commitment to a technical / product stack is not possible or required.
Microservices Patterns There are many patterns related to the Microservices Architecture. Following are some popular patterns used by applications built using Microservices architecture.
Circuit Breaker: Circuit breaker pattern used in Microservices for fault tolerance to ensure that the failed service does not adversely affect the entire system.
Gateway: API Gateway is responsible for aggregating data or, in some cases, acting as a simple routing layer for appropriate services. The API gateway seen as a single point of failure. A better approach may be to create multiple API gateways for the different platform or frontends that your application needs to support.
Bounded Context: A bounded context contains models describing the domain and a boundary for the meaning of these models.
CQRS: Command and Query Responsibility Segregation is a pattern that segregates the operations that read data (Queries) from the operations that update data (Commands) by using separate interfaces
Orchestration or choreography used to execute and manage business processes or workflows.
Bulkhead: This pattern is to use to avoid faults in one part of a system to take the entire system down.
The following diagram shows the holistic view of the Microservices Pattern commonly used across the enterprise.
Figure 4: Microservices Patterns
Benefits of Microservices Microservices are build using lightweight framework, open source technologies. It offers quick time to market.
Improves fault isolation, larger applications can remain largely unaffected by the failure of a single module.
Provides business agility, supports Continuous Delivery. New Functionality can be added easily and quickly. Development teams work independently
Eliminates long-term commitment to a single technology stack, develop the code independently using whatever technology the developer feels right for delivering business function. Different part of systems can use different technology stack if needed for better performance. Technology heterogeneity or polyglot programming is one essential benefit of Microservices.
Developer perspective, makes it easier for a new developer to understand the functionality of a service
Smaller codebases help developers focus and have a higher empathic relationship with the users of their product, leading to a better motivation and clarity in their work
Ease of deployment, one part of the system can move to another machine or to another cloud while rest of the service could stay on premise
Conclusion This article narrates the situations, when to use Microservices and when not to use. Microservices are recommended for the usage at enterprise level. Adoption of Microservices by an enterprise provides the extreme time to Market and establishes the bridge between Business and IT of the enterprise. Microservices implementation provides interoperability and flexibility to the enterprise.
In Microservices the functional logic is modeled and exposed as software service and is available on demand to other applications. Microservices is recommended cautiously, when the performance is important requirement, functionality is highly available and security is important.
Extensive use of Microservices and "compositional development" by assembling services rather than low-level programming can eventually leave IT with a collection of Microservices and not really a collection of applications.
Microservices are deployable on independent technology stacks. While they leverage Cloud models to deploy and orchestrate Microservices, individual Microservices can still reside on legacy platforms, as per the requirement.
To achieve success with Microservices, enterprises must first build a well-designed application according to existing platform standards; refactor the application into a collection of Microservices as necessary to meet business needs. With the right people, processes, and tools, Microservices can deliver faster development and deployment, easier maintenance, improved scalability, and freedom from long-term technology commitment.
Finally, do not create too many Microservices. Every new Microservice uses multiple resources. Split larger services into Microservices only when the demand is for scaling, lifecycle, or data. Making them too small transfers complexity from the Microservices into the service integration task. Also, avoid sharing Microservices between systems.
It is up to the Enterprise IT architecture team to decided, when to adopt Microservices and when not to go for Microservices based on IT strategy assessment.
Acknowledgements The authors would like to thank Hari Kishan Burle, Raju Alluri of Global Enterprise Architecture
Group of Wipro Technologies for giving the required time and support in many ways in bringing
Up the article as part of Global Enterprise Architecture Practice efforts.
Disclaimer The views expressed in this article/presentation are that of authors and Wipro does not subscribe to the substance, veracity or truthfulness of the said opinion
@DevOpsSummit at Cloud Expo taking place June 6-8, 2017, at Javits Center, New York City, and is co-located with the 20th International Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world.
DevOps at Cloud Expo / @ThingsExpo 2017 New York (June 6-8, 2017, Javits Center, Manhattan)
DevOps at Cloud Expo / @ThingsExpo 2017 Silicon Valley (October 31 - November 2, 2017, Santa Clara Convention Center, CA)
The widespread success of cloud computing is driving the DevOps revolution in enterprise IT. Now as never before, development teams must communicate and collaborate in a dynamic, 24/7/365 environment. There is no time to wait for long development cycles that produce software that is obsolete at launch. DevOps may be disruptive, but it is essential.
@DevOpsSummitwill expand the DevOps community, enable a wide sharing of knowledge, and educate delegates and technology providers alike. Recent research has shown that DevOps dramatically reduces development time, the amount of enterprise IT professionals put out fires, and support time generally. Time spent on infrastructure development is significantly increased, and DevOps practitioners report more software releases and higher quality. Sponsors of @DevOpsSummitwill benefit from unmatched branding, profile building and lead generation opportunities through:
Featured on-site presentation and ongoing on-demand webcast exposure to a captive audience of industry decision-makers.
Showcase exhibition during our new extended dedicated expo hours
Breakout Session Priority scheduling for Sponsors that have been guaranteed a 35-minute technical session
Online advertising in SYS-CON's i-Technology Publications
Capitalize on our Comprehensive Marketing efforts leading up to the show with print mailings, e-newsletters and extensive online media coverage.
Sponsors of Cloud Expo / @ThingsExpo will benefit from unmatched branding, profile building and lead generation opportunities through:
Featured on-site presentation and ongoing on-demand webcast exposure to a captive audience of industry decision-makers
Showcase exhibition during our new extended dedicated expo hours
Breakout Session Priority scheduling for Sponsors that have been guaranteed a 35 minute technical session
Online targeted advertising in SYS-CON's i-Technology Publications
Capitalize on our Comprehensive Marketing efforts leading up to the show with print mailings, e-newsletters and extensive online media coverage
Unprecedented Marketing Coverage: Editorial Coverage on ITweetup to over 100,000 plus followers, press releases sent on major wire services to over 500 industry analysts
For more information on sponsorship, exhibit, and keynote opportunities, contact Carmen Gonzalez (@GonzalezCarmen) today by email at events (at) sys-con.com, or by phone 201 802-3021.
Secrets of Sponsors and Exhibitors ▸ Here Secrets of Cloud Expo Speakers ▸ Here
All major researchers estimate there will be tens of billions devices - computers, smartphones, tablets, and sensors - connected to the Internet by 2020. This number will continue to grow at a rapid pace for the next several decades.
With major technology companies and startups seriously embracing Cloud strategies, now is the perfect time to attend @CloudExpo | @ThingsExpo, June 6-8, 2017, at the Javits Center in New York City, NY and October 31 - November 2, 2017, Santa Clara Convention Center, CA. Learn what is going on, contribute to the discussions, and ensure that your enterprise is on the right path to Digital Transformation.
Track 1. FinTech Track 2. Enterprise Cloud | Digital Transformation Track 3. DevOps, Containers & Microservices Track 4. Big Data | Analytics Track 5. Industrial IoT Track 6. IoT Dev & Deploy | Mobility Track 7. APIs | Cloud Security Track 8. AI | ML | DL | Cognitive Computing
Delegates to Cloud Expo / @ThingsExpo will be able to attend 8 simultaneous, information-packed education tracks.
There are over 120 breakout sessions in all, with Keynotes, General Sessions, and Power Panels adding to three days of incredibly rich presentations and content.
Join Cloud Expo / @ThingsExpo conference chair Roger Strukhoff (@IoT2040), June 6-8, 2017, at the Javits Center in New York City, NY and October 31 - November 2, 2017, Santa Clara Convention Center, CA for three days of intense Enterprise Cloud and 'Digital Transformation' discussion and focus, including Big Data's indispensable role in IoT, Smart Grids and (IIoT) Industrial Internet of Things, Wearables and Consumer IoT, as well as (new) Digital Transformation in Vertical Markets.
Financial Technology - or FinTech - Is Now Part of the @CloudExpo Program!
Accordingly, attendees at the upcoming 20th Cloud Expo / @ThingsExpo June 6-8, 2017, at the Javits Center in New York City, NY and October 31 - November 2, 2017, Santa Clara Convention Center, CA will find fresh new content in a new track called FinTech, which will incorporate machine learning, artificial intelligence, deep learning, and blockchain into one track.
Financial enterprises in New York City, London, Singapore, and other world financial capitals are embracing a new generation of smart, automated FinTech that eliminates many cumbersome, slow, and expensive intermediate processes from their businesses.
FinTech brings efficiency as well as the ability to deliver new services and a much improved customer experience throughout the global financial services industry. FinTech is a natural fit with cloud computing, as new services are quickly developed, deployed, and scaled on public, private, and hybrid clouds.
More than US$20 billion in venture capital is being invested in FinTech this year. @CloudExpo is pleased to bring you the latest FinTech developments as an integral part of our program, starting at the 20th International Cloud Expo June 6-8, 2017 in New York City and October 31 - November 2, 2017 in Silicon Valley.
The upcoming 20th International @CloudExpo | @ThingsExpo, June 6-8, 2017, at the Javits Center in New York City, NY and October 31 - November 2, 2017, Santa Clara Convention Center, CA announces that its Call For Papers for speaking opportunities is open.
Our Top 100 Sponsors and the Leading "Digital Transformation" Companies
(ISC)2, 24Notion (Bronze Sponsor), 910Telecom, Accelertite (Gold Sponsor), Addteq, Adobe (Bronze Sponsor), Aeroybyte, Alert Logic, Anexia, AppNeta, Avere Systems, BMC Software (Silver Sponsor), Bsquare Corporation (Silver Sponsor), BZ Media (Media Sponsor), Catchpoint Systems (Silver Sponsor), CDS Global Cloud, Cemware, Chetu Inc., China Unicom, Cloud Raxak, CloudBerry (Media Sponsor), Cloudbric, Coalfire Systems, CollabNet, Inc. (Silver Sponsor), Column Technologies, Commvault (Bronze Sponsor), Connect2.me, ContentMX (Bronze Sponsor), CrowdReviews (Media Sponsor) CyberTrend (Media Sponsor), DataCenterDynamics (Media Sponsor), Delaplex, DICE (Bronze Sponsor), EastBanc Technologies, eCube Systems, Embotics, Enzu Inc., Ericsson (Gold Sponsor), FalconStor, Formation Data Systems, Fusion, Hanu Software, HGST, Inc. (Bronze Sponsor), Hitrons Solutions, IBM BlueBox, IBM Bluemix, IBM Cloud (Platinum Sponsor), IBM Cloud Data Services/Cloudant (Platinum Sponsor), IBM DevOps (Platinum Sponsor), iDevices, Industrial Internet of Things Consortium (Association Sponsor), Impinger Technologies, Interface Masters, Intel (Keynote Sponsor), Interoute (Bronze Sponsor), IQP Corporation, Isomorphic Software, Japan IoT Consortium, Kintone Corporation (Bronze Sponsor), LeaseWeb USA, LinearHub, MangoApps, MathFreeOn, Men & Mice, MobiDev, New Relic, Inc. (Bronze Sponsor), New York Times, Niagara Networks, Numerex, NVIDIA Corporation (AI Session Sponsor), Object Management Group (Association Sponsor), On The Avenue Marketing, Oracle MySQL, Peak10, Inc., Penta Security, Plasma Corporation, Pulzze Systems, Pythian (Bronze Sponsor), Cosmos, RackN, ReadyTalk (Silver Sponsor), Roma Software, Roundee.io, Secure Channels Inc., SD Times (Media Sponsor), SoftLayer (Platinum Sponsor), SoftNet Solutions, Solinea Inc., SpeedyCloud, SSLGURU LLC, StarNet, Stratoscale, Streamliner, SuperAdmins, TechTarget (Media Sponsor), TelecomReseller (Media Sponsor), Tintri (Welcome Reception Sponsor), TMCnet (Media Sponsor), Transparent Cloud Computing Consortium, Veeam, Venafi, Violin Memory, VAI Software, Zerto
About SYS-CON Media & Events SYS-CON Media (www.sys-con.com) has since 1994 been connecting technology companies and customers through a comprehensive content stream - featuring over forty focused subject areas, from Cloud Computing to Web Security - interwoven with market-leading full-scale conferences produced by SYS-CON Events. The company's internationally recognized brands include among others Cloud Expo® (@CloudExpo), Big Data Expo®(@BigDataExpo), DevOps Summit (@DevOpsSummit), @ThingsExpo® (@ThingsExpo), Containers Expo (@ContainersExpo) and Microservices Expo (@MicroservicesE).
Cloud Expo®, Big Data Expo® and @ThingsExpo® are registered trademarks of Cloud Expo, Inc., a SYS-CON Events company.
About Gopala Krishna Behara Dr. Gopala Krishna Behara is a Senior Enterprise Architect in the Enterprise Architecture & Solutions division of Wipro. He has a total of 16 years of IT experience. He can be reached at email@example.com
About Sridhar Chalasani Sridhar Chalasani is an Architect in the Global Enterprise Architecture Practice division of Wipro. He has a total of 12 years of IT experience. He can be reached at firstname.lastname@example.org
About Tirumala Khandrika Tirumala Khandrika is a Senior Architect in the Global Enterprise Architecture Practice division of Wipro. He has a total of 16 years of IT experience. He can be reached at email@example.com
JETRO showcased Japan Digital Transformation Pavilion at SYS-CON's 21st International Cloud Expo® at the Santa Clara Convention Center in Santa Clara, CA. The Japan External Trade Organization (JETRO) is a non-profit organization that provides business support services to compani...
22nd International Cloud Expo, taking place June 5-7, 2018, at the Javits Center in New York City, NY, and co-located with the 1st DXWorld Expo will feature technical sessions from a rock star conference faculty and the leading industry players in the world. Cloud computing is no...
Founded in 2000, Chetu Inc. is a global provider of customized software development solutions and IT staff augmentation services for software technology providers. By providing clients with unparalleled niche technology expertise and industry experience, Chetu has become the prem...
DXWorldEXPO LLC announced today that Dez Blanchfield joined the faculty of CloudEXPO's "10-Year Anniversary Event" which will take place on November 11-13, 2018 in New York City. Dez is a strategic leader in business and digital transformation with 25 years of experience in the I...
In his session at 21st Cloud Expo, James Henry, Co-CEO/CTO of Calgary Scientific Inc., introduced you to the challenges, solutions and benefits of training AI systems to solve visual problems with an emphasis on improving AIs with continuous training in the field. He explored app...